nxsctl 0.3.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- nxsctl-0.3.3/.gitignore +7 -0
- nxsctl-0.3.3/LICENSE +21 -0
- nxsctl-0.3.3/PKG-INFO +150 -0
- nxsctl-0.3.3/README.md +126 -0
- nxsctl-0.3.3/nxs/__init__.py +1 -0
- nxsctl-0.3.3/nxs/cli.py +433 -0
- nxsctl-0.3.3/nxs/models.py +37 -0
- nxsctl-0.3.3/nxs/output.py +176 -0
- nxsctl-0.3.3/nxs/profiles.py +14 -0
- nxsctl-0.3.3/nxs/runner.py +434 -0
- nxsctl-0.3.3/nxs/ticket.py +187 -0
- nxsctl-0.3.3/pyproject.toml +38 -0
nxsctl-0.3.3/.gitignore
ADDED
nxsctl-0.3.3/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 nicetrykiddo
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
nxsctl-0.3.3/PKG-INFO
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: nxsctl
|
|
3
|
+
Version: 0.3.3
|
|
4
|
+
Summary: Credential capability mapping for NetExec
|
|
5
|
+
Project-URL: Homepage, https://github.com/nicetrykiddo/nxs
|
|
6
|
+
Project-URL: Repository, https://github.com/nicetrykiddo/nxs
|
|
7
|
+
Author: nicetrykiddo
|
|
8
|
+
License-Expression: MIT
|
|
9
|
+
License-File: LICENSE
|
|
10
|
+
Keywords: active-directory,ldap,netexec,nxc,pentest,red-team,smb,wmi
|
|
11
|
+
Classifier: Environment :: Console
|
|
12
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
18
|
+
Classifier: Topic :: Security
|
|
19
|
+
Classifier: Typing :: Typed
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Requires-Dist: rich>=13.7.0
|
|
22
|
+
Requires-Dist: typer>=0.12.0
|
|
23
|
+
Description-Content-Type: text/markdown
|
|
24
|
+
|
|
25
|
+
# nxs
|
|
26
|
+
|
|
27
|
+
> What can this cred actually do?
|
|
28
|
+
|
|
29
|
+
`nxs` is a credential capability mapper powered by [NetExec](https://github.com/Pennyw0rth/NetExec). It takes a credential and checks it against 10 different protocols (SMB, LDAP, WMI, WinRM, SSH, RDP, MSSQL, FTP, VNC, NFS) to show you exactly what level of access you have on the target.
|
|
30
|
+
|
|
31
|
+
## Install
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
pipx install nxsctl
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
Requires [NetExec](https://github.com/Pennyw0rth/NetExec) (`nxc`) in PATH.
|
|
38
|
+
|
|
39
|
+
## Usage
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' -d domain.local
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
Password prompt if `-p` is omitted:
|
|
46
|
+
|
|
47
|
+
```bash
|
|
48
|
+
nxs 10.10.10.10 -u john.doe -d domain.local
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Hash authentication:
|
|
52
|
+
|
|
53
|
+
```bash
|
|
54
|
+
nxs 10.10.10.10 -u john.doe -H NT_HASH -d domain.local
|
|
55
|
+
nxs 10.10.10.10 -u john.doe -H LM_HASH:NT_HASH -d domain.local
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Quickstart
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
nxs 10.10.10.10 -u admin -p 'Password123!'
|
|
62
|
+
|
|
63
|
+
# Spray a file of credentials (format: user:pass or user:hash)
|
|
64
|
+
nxs 10.10.10.10 -f creds.txt
|
|
65
|
+
|
|
66
|
+
# Password spray — one password across a user list
|
|
67
|
+
nxs 10.10.10.10 -u users.txt -p 'Password123!'
|
|
68
|
+
|
|
69
|
+
# All combinations — every user × every password (-C/--combo)
|
|
70
|
+
nxs 10.10.10.10 -u users.txt -p passwords.txt -C
|
|
71
|
+
|
|
72
|
+
# Specific protocols
|
|
73
|
+
nxs 192.168.1.0/24 -u john.doe -H 'LM:NT' --protocols ssh,winrm
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
OPSEC mode (single-threaded, low retry):
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' -d domain.local --opsec
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Kerberos:
|
|
83
|
+
|
|
84
|
+
```bash
|
|
85
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' -d domain.local -k --kdc-host dc01.domain.local
|
|
86
|
+
|
|
87
|
+
# Authenticate with a ccache ticket file (no password needed):
|
|
88
|
+
nxs 10.10.10.10 -T user.ccache
|
|
89
|
+
|
|
90
|
+
# Scan a directory of tickets:
|
|
91
|
+
nxs 10.10.10.10 -T ./tickets/
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
JSON output:
|
|
95
|
+
|
|
96
|
+
```bash
|
|
97
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' --json
|
|
98
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' --json --raw
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
Save raw proof:
|
|
102
|
+
|
|
103
|
+
```bash
|
|
104
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' --save loot/
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
Verbose output (detailed execution info, WIP...):
|
|
108
|
+
|
|
109
|
+
```bash
|
|
110
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' --verbose
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Example Output
|
|
114
|
+
|
|
115
|
+
```text
|
|
116
|
+
nxs v0.1.0 10.10.10.10 · john.doe@domain.local · 4 protocols
|
|
117
|
+
|
|
118
|
+
[+] SMB WRITE Shared[READ+WRITE], Web[READ]
|
|
119
|
+
[+] LDAP READ Enumerated 15 domain users
|
|
120
|
+
[-] WINRM NO Authentication failed
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
With `--verbose`, detailed output is nested underneath:
|
|
124
|
+
|
|
125
|
+
```text
|
|
126
|
+
nxs v0.1.0 10.10.10.10 · admin · 1 protocols
|
|
127
|
+
|
|
128
|
+
[+] WINRM EXEC domain.local\admin
|
|
129
|
+
↳ USER INFORMATION
|
|
130
|
+
↳ ----------------
|
|
131
|
+
↳ User Name SID
|
|
132
|
+
↳ ================= ============================================
|
|
133
|
+
↳ domain\admin S-1-5-21-3623811015-3361044348-30300820-500
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
## Access Levels
|
|
137
|
+
|
|
138
|
+
| Level | Marker | Meaning |
|
|
139
|
+
|-------|--------|---------|
|
|
140
|
+
| `ADMIN` | `[+]` | Admin-level access |
|
|
141
|
+
| `EXEC` | `[+]` | Command execution |
|
|
142
|
+
| `WRITE` | `[+]` | Write access |
|
|
143
|
+
| `READ` | `[+]` | Read access |
|
|
144
|
+
| `AUTH` | `[*]` | Authenticated, no further access |
|
|
145
|
+
| `UNCLEAR` | `[?]` | Inconclusive result |
|
|
146
|
+
| `NO` | `[-]` | Authentication failed or port closed |
|
|
147
|
+
|
|
148
|
+
## License
|
|
149
|
+
|
|
150
|
+
[MIT](LICENSE)
|
nxsctl-0.3.3/README.md
ADDED
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
# nxs
|
|
2
|
+
|
|
3
|
+
> What can this cred actually do?
|
|
4
|
+
|
|
5
|
+
`nxs` is a credential capability mapper powered by [NetExec](https://github.com/Pennyw0rth/NetExec). It takes a credential and checks it against 10 different protocols (SMB, LDAP, WMI, WinRM, SSH, RDP, MSSQL, FTP, VNC, NFS) to show you exactly what level of access you have on the target.
|
|
6
|
+
|
|
7
|
+
## Install
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
pipx install nxsctl
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
Requires [NetExec](https://github.com/Pennyw0rth/NetExec) (`nxc`) in PATH.
|
|
14
|
+
|
|
15
|
+
## Usage
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' -d domain.local
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Password prompt if `-p` is omitted:
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
nxs 10.10.10.10 -u john.doe -d domain.local
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
Hash authentication:
|
|
28
|
+
|
|
29
|
+
```bash
|
|
30
|
+
nxs 10.10.10.10 -u john.doe -H NT_HASH -d domain.local
|
|
31
|
+
nxs 10.10.10.10 -u john.doe -H LM_HASH:NT_HASH -d domain.local
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Quickstart
|
|
35
|
+
|
|
36
|
+
```bash
|
|
37
|
+
nxs 10.10.10.10 -u admin -p 'Password123!'
|
|
38
|
+
|
|
39
|
+
# Spray a file of credentials (format: user:pass or user:hash)
|
|
40
|
+
nxs 10.10.10.10 -f creds.txt
|
|
41
|
+
|
|
42
|
+
# Password spray — one password across a user list
|
|
43
|
+
nxs 10.10.10.10 -u users.txt -p 'Password123!'
|
|
44
|
+
|
|
45
|
+
# All combinations — every user × every password (-C/--combo)
|
|
46
|
+
nxs 10.10.10.10 -u users.txt -p passwords.txt -C
|
|
47
|
+
|
|
48
|
+
# Specific protocols
|
|
49
|
+
nxs 192.168.1.0/24 -u john.doe -H 'LM:NT' --protocols ssh,winrm
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
OPSEC mode (single-threaded, low retry):
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' -d domain.local --opsec
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
Kerberos:
|
|
59
|
+
|
|
60
|
+
```bash
|
|
61
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' -d domain.local -k --kdc-host dc01.domain.local
|
|
62
|
+
|
|
63
|
+
# Authenticate with a ccache ticket file (no password needed):
|
|
64
|
+
nxs 10.10.10.10 -T user.ccache
|
|
65
|
+
|
|
66
|
+
# Scan a directory of tickets:
|
|
67
|
+
nxs 10.10.10.10 -T ./tickets/
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
JSON output:
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' --json
|
|
74
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' --json --raw
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Save raw proof:
|
|
78
|
+
|
|
79
|
+
```bash
|
|
80
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' --save loot/
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
Verbose output (detailed execution info, WIP...):
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
nxs 10.10.10.10 -u john.doe -p 'Password123' --verbose
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Example Output
|
|
90
|
+
|
|
91
|
+
```text
|
|
92
|
+
nxs v0.1.0 10.10.10.10 · john.doe@domain.local · 4 protocols
|
|
93
|
+
|
|
94
|
+
[+] SMB WRITE Shared[READ+WRITE], Web[READ]
|
|
95
|
+
[+] LDAP READ Enumerated 15 domain users
|
|
96
|
+
[-] WINRM NO Authentication failed
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
With `--verbose`, detailed output is nested underneath:
|
|
100
|
+
|
|
101
|
+
```text
|
|
102
|
+
nxs v0.1.0 10.10.10.10 · admin · 1 protocols
|
|
103
|
+
|
|
104
|
+
[+] WINRM EXEC domain.local\admin
|
|
105
|
+
↳ USER INFORMATION
|
|
106
|
+
↳ ----------------
|
|
107
|
+
↳ User Name SID
|
|
108
|
+
↳ ================= ============================================
|
|
109
|
+
↳ domain\admin S-1-5-21-3623811015-3361044348-30300820-500
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Access Levels
|
|
113
|
+
|
|
114
|
+
| Level | Marker | Meaning |
|
|
115
|
+
|-------|--------|---------|
|
|
116
|
+
| `ADMIN` | `[+]` | Admin-level access |
|
|
117
|
+
| `EXEC` | `[+]` | Command execution |
|
|
118
|
+
| `WRITE` | `[+]` | Write access |
|
|
119
|
+
| `READ` | `[+]` | Read access |
|
|
120
|
+
| `AUTH` | `[*]` | Authenticated, no further access |
|
|
121
|
+
| `UNCLEAR` | `[?]` | Inconclusive result |
|
|
122
|
+
| `NO` | `[-]` | Authentication failed or port closed |
|
|
123
|
+
|
|
124
|
+
## License
|
|
125
|
+
|
|
126
|
+
[MIT](LICENSE)
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
__version__ = "0.3.3"
|