80 Commits

Author SHA1 Message Date
Andrew Rioux
0bda72491c
feat: added basic structure around packet transfer 2023-09-25 23:24:37 -04:00
Andrew Rioux
867464f673
feat: added more robust handling of actions 2023-09-21 13:39:02 -04:00
Andrew Rioux
ed13defb07
feat: started to make a TCP state machine 2023-09-20 20:50:04 -04:00
Andrew Rioux
f092548a8c
feat: worked some on the tcp client
found out ethtool helps make the program work with lxc sockets
2023-09-20 00:15:15 -04:00
Andrew Rioux
f5b31954d4
feat: trying out smoltcp 2023-09-19 19:19:29 -04:00
Andrew Rioux
35bcf5352b
feat: added test tcp client 2023-09-19 10:24:51 -04:00
Andrew Rioux
e5f6c2aa7e
feat: added modified TCP packet parser
checksum generation code is different, to allow for
some sneaky tricks with regards to identifying the sparse
session but binding to the same port multiple times
2023-09-18 01:29:05 -04:00
Andrew Rioux
25948a17f4
feat: starting the TCP client proof of concept 2023-09-17 14:07:31 -04:00
Andrew Rioux
0ef459bcfe
feat: added framework for TCP client 2023-09-14 01:30:29 -04:00
Andrew Rioux
fb98d062ef
fix: file operations acknowledge pwd now
file operations (edit, download, upload) on the client did not work
outside of the current working directory of the binary on the server, as
they did not acknowledge the current working directory on the client
2023-09-12 19:55:37 -04:00
Andrew Rioux
726e6dff13
feat: added cd
added cd and fixed all the warnings in the source code
2023-09-08 23:26:10 -04:00
Andrew Rioux
ae24c2e0ad
feat: added the ability to edit files remotely 2023-09-08 22:48:02 -04:00
Andrew Rioux
eb5e86067b
feat: added ability to download files 2023-09-08 21:25:20 -04:00
Andrew Rioux
239c5ccc40
fix: made code compile for now 2023-09-07 12:56:30 -04:00
Andrew Rioux
cd23ec1b80
feat: continuing work on downloading files 2023-09-06 19:44:13 -04:00
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