Andrew Rioux
50b5c1a921
feat: added upload file capability
2023-09-06 14:56:21 -04:00
Andrew Rioux
231108f2c3
fix: swapped to just run the binary on the server
...
moved away from `sh -c`
2023-09-06 09:04:26 -04:00
Andrew Rioux
17e6056a03
fix: fixed stdin for processes
...
started work on upload file command
2023-09-06 00:07:15 -04:00
Andrew Rioux
9bb31ee6fa
feat: added the ability to run commands remotely
...
commands can now be sent and their outputs received
2023-09-05 19:58:40 -04:00
Andrew Rioux
52538ac7d7
feat: added the ability to send commands
2023-09-05 19:05:26 -04:00
Andrew Rioux
47b2191335
feat: working on spawning commands
2023-09-05 09:43:00 -04:00
Andrew Rioux
1e5f515a25
feat: adding packet handling to server
2023-09-04 19:10:43 -04:00
Andrew Rioux
fb43a27ba3
feat: added ip to sysinfo
2023-09-04 01:30:01 -04:00
Andrew Rioux
7f1f43a601
feat: added a basic interactivity to the client
2023-09-04 01:11:55 -04:00
Andrew Rioux
7876e00dc8
fix: improved the logic for generating binaries
...
cross platform logic wasn't handled well for generating linux binaries
on windows or vice versa
2023-09-02 23:59:28 -04:00
Andrew Rioux
81fb2ed548
feat: added windows support
...
factored out the packet parsing logic from libpcap
will probably come back to linking against libpcap in a later version
2023-09-02 23:09:05 -04:00
Andrew Rioux
4449a771e2
feat: added connection and authentication
...
client can now generate a server binary, and try to connect to it and
get capabilities
2023-09-02 22:29:13 -04:00
Andrew Rioux
cda6388596
feat: fleshed out handling a new connection
2023-09-02 16:58:25 -04:00
Andrew Rioux
d7a0deba0c
feat: added transport layers for sparse 0.5 target
2023-09-02 15:26:58 -04:00
Andrew Rioux
aecf1c9b80
feat: adding a bind shell example with more stuff
...
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
2023-09-02 14:32:34 -04:00
Andrew Rioux
180b29531a
feat: added setuid capabilities
2023-08-23 22:40:21 -04:00
Andrew Rioux
1517ca6f1c
fix: addressed edge cases for external routing
2023-08-17 18:18:05 -04:00
Andrew Rioux
b770d53f57
feat: added a way to specify port to listen on
...
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
2023-05-28 15:17:09 -04:00
Andrew Rioux
bd31c6457d
feat: added a docker breakout feature
...
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
2023-05-12 17:41:20 -04:00
Andrew Rioux
a03b50ead4
fix: added a default route for MAC addresses
...
there were issues with MAC addresses not having a valid route when it
couldn't find the right route
2023-05-12 17:33:22 -04:00
Andrew Rioux
5ab43a10fe
fix: fixing revshell example and its routes
2023-05-12 01:16:52 -04:00
Andrew Rioux
4123175eda
doc: converting org mode to markdown
2023-05-10 21:54:19 -04:00
Andrew Rioux
d5e78b5746
fix: made it so that the TERM variable is shared
...
now commands like clear work
2023-05-09 21:26:53 -04:00
Andrew Rioux
57cd4aa2be
docs: updated docs to use cargo make
2023-05-09 21:26:29 -04:00
Andrew Rioux
f1e5b2d979
refactor: redid the bindshell example
...
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
2023-05-09 21:02:46 -04:00
Andrew Rioux
8ad7127d4d
feat: added the beginnings of sparse-protocol
...
sparse protocol allows for composing of different "protocols" at
runtime, and will allow for DNS and TCP as well as different TCP
protocols like HTTP
2023-05-09 10:34:03 -04:00
Andrew Rioux
968df54f59
build: added auto deleting of configure~ for git
2023-05-07 18:12:28 -04:00
Andrew Rioux
8aab9be638
build: made it so dev containers can partly debug
...
symbol tables appear to be messed up and it doesn't work with async
Rust, so will try to refactor the code to be sync and see how it fares
2023-05-07 14:17:28 -04:00
Andrew Rioux
813dc104e8
build: added git tasks to Makefile
2023-05-07 00:39:22 -04:00
Andrew Rioux
52e458296c
build: made it easier to build bind-shell
2023-05-07 00:08:04 -04:00
Andrew Rioux
318e1b6d05
build: added GitHub docs and workflows
2023-05-06 23:35:38 -04:00
Andrew Rioux
3257dfced0
build: adding to Cargo make config
...
Adding default tasks and setup task to run when container is made
2023-05-06 23:35:38 -04:00
Andrew Rioux
c984b9eb56
docs: removed extra comments
2023-05-06 23:35:38 -04:00
Andrew Rioux
f72aa6e98d
refactor: changed workflow to use Ubuntu
...
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
2023-05-06 23:35:38 -04:00
Andrew Rioux
f3453f4399
fix: removing unneeded code
2023-05-06 23:35:38 -04:00
Andrew Rioux
0fe2c033b3
build: adding debugging to dev container
2023-05-06 23:35:33 -04:00
Andrew Rioux
978d7cb089
chore: run cargo fmt
2023-05-06 22:50:34 -04:00
Andrew Rioux
798eda764f
refactor: removed debug code
2023-05-06 22:50:31 -04:00
Andrew Rioux
c142af62f1
fix: added forgotten error handling
...
AggregateInterface was lacking some special error handling for certain cases
2023-05-06 22:49:28 -04:00
Andrew Rioux
24dff10b6b
feat: added AggregateInterface
...
AggregateInterface can be used to gather multiple libpcap interfaces
together in order to listen to all simultaneously and also selectively
send on different interfaces
2023-05-06 22:48:04 -04:00
Andrew Rioux
cfdf8f7e86
refactor: simplified route query code
...
fighting the borrow checker
2023-05-06 22:47:40 -04:00
Andrew Rioux
c16bf366b7
fix: fixed weird issues with querying routes
...
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
2023-05-06 22:46:42 -04:00
Andrew Rioux
be5772fa23
build: actually added firewalls to test container
...
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
2023-05-06 22:45:47 -04:00
Andrew Rioux
1165d687ff
docs: added basic documentation to libnl
2023-05-06 22:45:30 -04:00
Andrew Rioux
113a43ac41
refactor: cleaned up some code
...
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
2023-05-06 22:44:40 -04:00
Andrew Rioux
04a529e32f
build: added clippy in dev environment
2023-05-06 22:44:36 -04:00
Andrew Rioux
95b5f3ee82
feat: added basic wrapper around libnl
2023-05-06 22:44:31 -04:00
Andrew Rioux
da9aa2178c
feat: added basic rust wrapper around libnl
2023-05-06 22:44:23 -04:00
Andrew Rioux
2fc1916273
feat: added static linking against libnl
...
libnl will be used to help understand kernel routing tables
2023-05-06 22:44:20 -04:00
Andrew Rioux
9ebf4b931b
docs: adding preliminary documentation
2023-05-06 22:44:17 -04:00