ETHERPUPPET(1)

πŸ’– ETHERPUPPET(1) πŸ’–

okay so bestie, welcome to the manual page for etherpuppet, a General Commands Manual situation, and honestly? it's giving genius. let's get into it. 🧚✨


🌸 NAME 🌸

etherpuppet β€” create a virtual interface from a remote Ethernet interface. that's the whole vibe. that's the whole point. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

etherpuppet [-s port] [-c target:port] [-B] [-S] [-M filter] [-C]
            [-i iface]
etherpuppet [-m] [-s port] [-c target:port] [-I iface]

two whole moods, bestie. pick your fighter. πŸ‘‘


πŸ‘‘ DESCRIPTION πŸ‘‘

so etherpuppet is a small program that will create a virtual interface (TUN/TAP) on one machine from the ethernet interface of another machine through a TCP connection. Everything seen by the real interface will be seen by the virtual one. Everything sent to the virtual interface will be emitted by the real one. it's literally a mirror. a little puppet. iconic. πŸŽ€

It has been designed because one often has a small machine as his Internet gateway, and sometimes want to run some big applications that need raw access to this interface, for sniffing (Ethereal, etc.) or for crafting packets that do not survive being reassembled, NATed, etc. like... your gateway is babygirl and your big app has main character energy, and they need to meet. that's the lore. 😭

When launched with the first syntax, etherpuppet is a slave that will send to its master everything that passes on the given interface. With the second syntax, etherpuppet is the master and will create the special TAP device (whose default name starts with puppet.). In both modes, etherpuppet is able to either connect or listen to its slave/master. switching roles? we love a versatile icon. 🫢

Traffic seen by the real interface is sent through the TCP connection to the doll interface. Thus, it is important that this connection is not seen by the real interface (or else, we'll have a cute infinite traffic loop).

bestie. BABE. listen to me. if the connection sees itself you get an infinite traffic loop. it's cute in theory and catastrophic in practice. do not do this. πŸ’€

The options are as follows:

✨ OPTIONS ✨

  • -s port β€” Listen on the given TCP port. be the one who waits. the listener. the calm one. 🌊
  • -c ip:port β€” Connect to the slave/master on the given IP/port. be the one who reaches out. brave. πŸ¦‹
  • -i iface β€” Vampirize the given interface name. yes it literally says vampirize. slay. πŸ§›β€β™€οΈ
  • -I ifname β€” Choose the name of the virtual interface. name your child. πŸ’–
  • -m β€” Master mode. take the crown, queen. πŸ‘‘
  • -B β€” Do not use BPF. With this option, etherpuppet may see its own traffic.
  • -S β€” Build BPF with the content of SSH_CONNECTION environment variable.
  • -M src:sp,dst:dp β€” Build manually a BPF filter that will exclude matching traffic in both directions. you're hand-crafting the filter, artisan behavior. 🌈
  • -C β€” Do not copy real interface parameters to virtual interface.

The source and destination are by default the TCP connection end points. If you go through SSH tunneling, you can use the -S option to use SSH_CONNECTION environment variable content instead, so that you will filter out the SSH connection of your current session and not the connection to the local SSH tunnel end point (which is pointless). If this still not fit your needs, you can manually specify the connection end points with -M. like, -S is the autopilot, -M is the manual transmission, and both are valid. iykyk ✨

If you connect two Etherpuppet instances in master mode, you'll get a TCP tunnel through virtual interfaces. cute. functional. a little romance between two masters. πŸ’ž

If you connect two Etherpuppet instances in slave mode, you may get some kind of inefficient distributed bridge, but more probably, you'll get a big mess.

fr fr. two slaves = chaos. it's giving "we tried our best" energy. don't. πŸ™ˆ

🫢 AUTHORS 🫢

The etherpuppet program was written by Philippe Biondi <phil@secdev.org>. πŸ‘‘

This manual page was written by Vincent Bernat <bernat@debian.org>, for the Debian project (but may be used by others). sharing is caring, periodt. πŸ’œ


and that's the whole page bestie!! this little number is from the Debian fam, dated August 7, 2008 β€” vintage but make it cunty. go forth and puppet some ethernet. mwah πŸ’…βœ¨

πŸ“¦ where this page comes from