adding a bind shell that can allow for more practice with future
features such as multiple transports, encryption, transferring files,
and a more robust client interface
the backdoor example always listened on port 54248 and did not allow for
configuration, but now it can be changed by passing in a command line argument
if the bind shell example is compiled with the right feature and is run
inside a(n) (im)properly configured Docker container, it is now able to
break out and run some commands on the host
for some reason, under this breakout mode, it runs a little weird with
networking commands, but does fine with file system or IPC based commands
Made it use a single UDP client as well as proper randomized ports to go
through network firewalls, requiring stdin, status, stderr, and stdout
all go over a single UDP socket
Updated the client to have a prompt
replaced dev container Dockerfile with one which uses
Ubuntu instead of Alpine. The Docker in Docker feature only
works on Ubuntu, not Debian or Alpine, and the LLDB extension
to enable debugging only supports Debian/Ubuntu
AggregateInterface can be used to gather multiple libpcap interfaces
together in order to listen to all simultaneously and also selectively
send on different interfaces
this just involved a better understanding of the data
types provided by libnl and some refactoring to make querying
as a user of the libnl library easier
One of the more interesting selling points about this project is that it
works through local system firewalls on Linux (iptables, nf_tables)
This commit makes the testing environments in the docker containers
actually have to go up against a firewall, one which has a default
incoming and outgoing policy of drop
there was an attempt to use libnl to look up addresses directly with
FIB_LOOKUP, and some of that code was left over. This commit cleans up
such leftover code