
Zscan un set di strumenti di scansione aggressiva
Vedi il log per gli aggiornamenti log
Zscan è un insieme open source di scanner di rete interna, strumenti di brute force e altre utility, può essere definito un kit di strumenti. Basato sul rilevamento di sottoreti interne, rilevamento host e scansione porte, nel modulo blast può eseguire brute force su servizi come mysql, mssql, redis, mongo, postgres, ftp, ssh, ldap, rdp, smb; nel modulo scan può effettuare scansioni netbios, smb, oxid, socks server (scansione proxy), ms17010, http poc scan, ecc. Per impostazione predefinita, cattura il titolo HTTP e le impronte digitali. Nel modulo server può avviare un server HTTP (caricamento/scaricamento file) e un server socks5 (proxy). Il modulo tools integra piccole utility, per ora solo nc. Recentemente aggiunto il modulo exploit, che può sfruttare servizi con brute force riuscita, supporta login interattivo SSH (nome utente/password o chiave), replica master-slave Redis e fuga sandbox Lua (caricamento file ed esecuzione comandi), query LDAP (con query comuni integrate). C'è anche il modulo all, che durante la scansione richiama tutti i moduli di scansione e brute force. Supporta scansione IPv6, input di dominio e riconoscimento automatico CDN. Di seguito le funzioni specifiche dei moduli
Lo strumento è piuttosto grande, in futuro uscirà una versione ridotta. La progettazione modulare rende facile rimuovere le funzionalità non necessarie``` all 调用所有扫描和爆破模块 ping 主机发现和网段发现 ps 基本的端口扫描和http指纹识别title抓取 scan 扫描模块 --->ms17010扫描 --->poc漏洞扫描(内置380个poc) --->proxyfind内网代理服务器扫描 --->winscan Windows的smb,netbios和oxid扫描 blast 爆破服务模块(包括以下爆破模块) --->ftp --->ldap --->mongo --->mssql --->mysql --->postgres --->rdp --->redis --->smb --->ssh server start http server or socks5 server --->http服务器(可上传下载文件) --->socks5服务器(可启动一个代理服务器,支持身份验证) exploit 漏洞利用模块 --->ldap查询 --->redis组从复制上传文件执行命令,lua沙箱逃逸RCE --->snmp查询 --->ssh登陆 --->sunlogin向日葵RCE tools 实用工具模块 --->nc简单的nc,可以开放端口连接端口 --->searchfile支持多线程正则搜索文件
Formato di utilizzo```
zscan 模块 参数
[No input content provided to translate.]```
/___ \ /\ \ /\ \ /\ __ \ /\ "-.\ \
// / \ _ \ \ \ ___ \ \ __ \ \ \ -. \
/_\ /_\ \ ___\ \ _\ _\ \ _\"_\
// // /_____/ //// // //
Usage: zscan [command]
Available Commands: all Use all scan mode blast Common service blasting exploit sshlogin,redisexec help Help about any command ping ping scan to find computer ps Port Scan scan ms17010,proxyfind,snmp,winscan(smb,netbios,oxid),poc server start http server or socks5 server
Flags: -h, --help help for zscan --nobar disable portscan progress bar -o, --output string the path of result file (default "result.txt") --proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080) -T, --thread thread Set thread eg:2000 (default 600) -t, --timeout time Set timeout(s) eg:5s (default 5s) -v, --verbose Show verbose information
I flag all'interno del modulo rappresentano i parametri per il comando corrente, mentre i flag globali sono parametri disponibili per tutti i comandi.
I flag qui indicati sono globali e possono essere utilizzati da ogni modulo.
- `--log`: abilitando questo parametro, il risultato dell'esecuzione corrente viene scritto in `log.txt` in modalità append (per conservare i risultati di ogni esecuzione).
- `-o` / `--output`: di default il nome del file è `Hosts` nella directory corrente; `-o` specifica un percorso diverso.
- `--proxy`: imposta un proxy, con nome utente e password (`user:pass@ip:port`) oppure senza autenticazione (`ip:port`).
- `-T` / `--thread`: imposta il numero di thread, di default 100.
- `-t` / `--timeout`: imposta il timeout; se la rete è veloce e si vuole maggiore rapidità, lo si può impostare a 1s.
- `-v` / `--verbose`: mostra le informazioni di avanzamento della scansione.
## Moduli funzionali 😈
Moduli attualmente disponibili:
<details>
<summary><b>Modulo ping: con permessi utente normale richiama il ping di sistema, con permessi di root si può scegliere di usare pacchetti ICMP</b></summary>```
zscan ping
Questo è il file di configurazione principale dello strumento.
Il file di configurazione è in formato YAML e si trova in ~/.config/cloudctl/config.yaml.
Il file di configurazione principale di cloudctl è composto dalle seguenti sezioni:
clusters:
- name: production
server: https://k8s.example.com:6443
certificate-authority-data: <base64-ca>
cloudctl supporta i principali provider cloud come AWS, Azure, GCP e 阿里云. Ogni provider richiede un file di configurazione separato.
cloudctl fornisce una serie di comandi per gestire le risorse cloud e i cluster Kubernetes.
cloudctl [command] [flags]
Ad esempio, per elencare tutti i cluster:``` Usage: zscan ping [flags]
Flags: -d, --discover string Live network segment found,local parameter uses the local NIC information。eg:zscan ping -d local/zscan ping -d 172.18.0.0,172.19.0.0 -h, --help help for ping -H, --host hosts Set hosts(The format is similar to Nmap) --hostfile string Set host file -i, --icmp Icmp packets are sent to check whether the host is alive(need root)
Global Flags: --nobar disable portscan progress bar -o, --output string the path of result file (default "result.txt") --proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080) -T, --thread thread Set thread eg:2000 (default 600) -t, --timeout time Set timeout(s) eg:5s (default 5s) -v, --verbose Show verbose information
必须指定host和hostfile两个参数其中的一个,当有root权限的时候可以使用-i不调用本地的ping而是自己发icmp数据包(线程开的特别高的话几千那种,调用本地ping命令会导致cpu占用过高)
--discover两种网段发现模式,一种是ping网络b段网关,一种是oxid扫描
--discover后面需要给一个参数,如果给local(zscan ping --disconver local)就会读取本地网卡信息,去扫描本地的网络b段,例如读取到本地的两张网卡192.168.13.13和172.16.95.23,那么他就会去ping192.168.0.0/16和172.16.0.0/16这两个b段
还可以给定一个或者多个b段ip例如172.17.0.0或者172.18.0.0,10.10.0.0,多个ip段用逗号隔开
</details>
<details>
<summary><b>ps模块:端口扫描和获取httptitle</b></summary>```
zscan ps
Usage:
zscan ps [flags]
Flags:
-b, --banner Return banner information
-h, --help help for ps
-H, --host hosts Set hosts(The format is similar to Nmap) eg:192.168.1.1/24,172.16.95.1-100,127.0.0.1
--hostfile string Set host file
-i, --icmp Icmp packets are sent to check whether the host is alive(need root)
--noping not ping discovery before port scanning
--nowebscan Whether to perform HTTP scanning (httpTitle and HTTP vulnerabilities)(default on)
-p, --port port Set port eg:1-1000,3306,3389 or use " zscan ps -p l" ) to scan less port(thirty port)
-s, --syn use syn scan
--vulscan Whether to perform HTTP vulnerabilities(default off)
Global Flags:
--nobar disable portscan progress bar
-o, --output string the path of result file (default "result.txt")
--proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080)
-T, --thread thread Set thread eg:2000 (default 600)
-t, --timeout time Set timeout(s) eg:5s (default 5s)
-v, --verbose Show verbose information
```
--host e --hostfile specificano il target
-p specifica la porta, se non specificata usa la porta predefinita, oppure specifica "l" per usare less port (circa trenta porte comuni)
--noping esegue direttamente la scansione di tutti i target senza prima fare ping
--icmp quando si usa ping, utilizza pacchetti ICMP per la scoperta degli host
--nowebscan parametro per disabilitare la scansione web, eseguendo solo la scansione delle porte
--vulscan parametro per abilitare il rilevamento PoC (può essere usato solo quando la scansione web è attiva, altrimenti non ha senso)
--syn utilizza la scansione SYN (richiede privilegi elevati)
</details>
<details>
<summary><b>modulo all: richiama tutti i moduli di scansione e brute force per eseguire la scansione</b></summary>```
zscan all
```
Usage: zscan all [flags]
Flags: -h, --help help for all -H, --host hosts Set hosts(The format is similar to Nmap) eg:192.168.1.1/24,172.16.95.1-100,127.0.0.1 --hostfile string Set host file -i, --icmp Icmp packets are sent to check whether the host is alive(need root) --noburp Set postgres passworddict path --noping Not ping before port scanning --novulscan disable http vulnerability scan --passdict string Set postgres passworddict path -P, --password string Set postgres password -p, --port port Set port eg:1-1000,3306,3389 or use " zscan all -p l" ) to scan less port(thirty port) -U, --username string Set user name
Global Flags: --nobar disable portscan progress bar -o, --output string the path of result file (default "result.txt") --proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080) -T, --thread thread Set thread eg:2000 (default 600) -t, --timeout time Set timeout(s) eg:5s (default 5s) -v, --verbose Show verbose information
all模块本质是和ps模块基本相同,只不过all模块扫到对应的端口的时候会在当前线程中进行指纹识别或者用户名密码爆破
all模块参数和ps模块相同,就多了一个密码字典,是用来设置扫到需要爆破的端口时候的字典,其他都一样
--notburp 不进行爆破只进行扫描
--novulscan 由于all模块会调用所有模块,这个参数用于禁止漏洞扫描
</details>
<details>
<summary><b>blast:爆破模块,包括常见服务的爆破功能</b></summary>```
zscan blast
Indice
Available Commands: ftp burp ftp username and password ldap burp ldap username and password mongo burp mongodb username and password mssql burp mssql username and password mysql burp mysql username and password postgres burp postgres username and password rdp burp remote desktop(3389) redis burp redis password smb burp smb usernamae and password ssh burp ssh username password or traverse the key
Flags: -h, --help help for blast
Global Flags: --nobar disable portscan progress bar -o, --output string the path of result file (default "result.txt") --proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080) -T, --thread thread Set thread eg:2000 (default 600) -t, --timeout time Set timeout(s) eg:5s (default 5s) -v, --verbose Show verbose information
Fondamentalmente, tutti i moduli di brute force vengono utilizzati allo stesso modo: è sufficiente specificare nome utente e password, oppure un dizionario di nomi utente e password. È inoltre possibile specificare il numero di thread per il brute force. Questo thread è diverso dal thread specificato con `-T`. Il thread `-T` rappresenta il numero di obiettivi scansionati in modo concorrente (l'obiettivo è una combinazione di IP e porta, ogni concorrenza equivale all'invio di un pacchetto dati all'obiettivo). `burptheard` indica che, quando nel singolo thread della scansione concorrente sopra menzionata viene scoperta la nostra porta obiettivo, ad esempio MySQL, verrà avviato un brute force multi-thread nel thread di scansione corrente (qui l'obiettivo viene sostituito da una porta specifica su un IP specifico). A questo punto è necessario limitare la velocità, poiché una velocità troppo elevata potrebbe rendere il servizio obiettivo non disponibile.
</details>
<details>
<summary><b>Modulo scan: moduli di scansione comuni</b></summary>```
Usage:
zscan scan [command]
Available Commands:
ms17010 MS17_010 scan
poc poc check
proxyfind Scan proxy
snmp snmp scan
winscan netbios、smb、oxid scan
Flags:
-h, --help help for scan
Global Flags:
--nobar disable portscan progress bar
-o, --output string the path of result file (default "result.txt")
--proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080)
-T, --thread thread Set thread eg:2000 (default 600)
-t, --timeout time Set timeout(s) eg:5s (default 5s)
-v, --verbose Show verbose information
Flags: -h, --help help for proxyfind -H, --host hosts Set hosts(The format is similar to Nmap) eg:192.168.1.1/24,172.16.95.1-100,127.0.0.1 --hostfile string Set host file -p, --ports port Set port eg:1-1000,3306,3389 (default "1080,1089,8080,7890,10808") --type string Set the scan proxy type(socks4/socks5/http) (default "socks5")
Global Flags: --log Record the scan results in chronological order,Save path./log.txt -O, --output Whether to enter the results into a file(default ./result.txt),can use --path set --path string the path of result file (default "result.txt") -T, --thread thread Set thread eg:2000 (default 100) -t, --timeout time Set timeout(s) eg:5s (default 3s) -v, --verbose Show verbose information
扫描内网中的代理服务器
-H 指定目标,-p指定端口,--type指定扫描的代理协议类型(目前支持socks4/5,其他协议还在努力中)
</details>
<details>
<summary><b>ms17010模块:ms17010漏洞批量扫描</b></summary>```
Usage:
zscan scan ms17010 [flags]
Flags:
-h, --help help for ms17010
-H, --host string Set target
--hostfile string Set host file
Global Flags:
--log Record the scan results in chronological order,Save path./log.txt
-O, --output Whether to enter the results into a file(default ./result.txt),can use --path set
--path string the path of result file (default "result.txt")
-T, --thread thread Set thread eg:2000 (default 100)
-t, --timeout time Set timeout(s) eg:5s (default 3s)
-v, --verbose Show verbose information
Basta specificare il target
Flags: -h, --help help for winscan -H, --host string Set target --hostfile string Set host file --netbios netbios scan --oxid oxid scan --smb smb scan
Global Flags: --log Record the scan results in chronological order,Save path./log.txt -O, --output Whether to enter the results into a file(default ./result.txt),can use --path set --path string the path of result file (default "result.txt") -T, --thread thread Set thread eg:2000 (default 100) -t, --timeout time Set timeout(s) eg:5s (default 3s) -v, --verbose Show verbose information
Se si fornisce direttamente il target, verranno scansionati contemporaneamente netbios, oxid e smb. È possibile utilizzare -- per specificare di usarne solo uno.
</details>
<details>
<summary><b>poc模块: è sia un modulo indipendente che una funzione richiamata da altri moduli</b></summary>```
poc check
Usage:
zscan scan poc [flags]
Flags:
-h, --help help for poc
-l, --listpoc List built in poc
--pocname string set the poc name
--pocpath string set target url
--pocthread int set poc scan thread (default 500)
-u, --url string set target url
--urlfile string set target file
Global Flags:
--nobar disable portscan progress bar
-o, --output string the path of result file (default "result.txt")
--proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080)
-T, --thread thread Set thread eg:2000 (default 600)
-t, --timeout time Set timeout(s) eg:5s (default 5s)
-v, --verbose Show verbose information
-l/--list:elenca i poc integrati nello strumento
--pocname:in realtà è un'opzione di filtro, che filtra i poc il cui nome contiene il campo specificato (disponibile sia per scansione che per visualizzazione)
Available Commands: httpserver Start an authentication HTTP server socks5 Create a socks5 server
Flags: -h, --help help for server
Global Flags: --nobar disable portscan progress bar -o, --output string the path of result file (default "result.txt") --proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080) -T, --thread thread Set thread eg:2000 (default 600) -t, --timeout time Set timeout(s) eg:5s (default 5s) -v, --verbose Show verbose information
<details>
<summary><b>Modulo socks5: avvia un server socks5</b></summary>```
zscan socks5
Flags: -a, --addr string Specify the IP address and port of the Socks5 service (default "0.0.0.0:1080") -h, --help help for socks5 -P, --password string Set the socks5 service authentication password -U, --username string Set the socks5 service authentication user name
Global Flags: --log Record the scan results in chronological order,Save path./log.txt -O, --output Whether to enter the results into a file(default ./result.txt),can use --path set --path string the path of result file (default "result.txt") -T, --thread thread Set thread eg:2000 (default 100) -t, --timeout time Set timeout(s) eg:5s (default 3s) -v, --verbose Show verbose information
È possibile utilizzare -a per specificare l'IP e la porta su cui il servizio socks5 ascolta
-p e -u specificano il nome utente e la password del proxy
Flags: -a, --addr string set http server addr (default "0.0.0.0:7001") -d, --dir string set HTTP server root directory (default ".") -h, --help help for httpserver -P, --pass string Set the authentication password -U, --user string Set the authentication user
Global Flags: --log Record the scan results in chronological order,Save path./log.txt -O, --output Whether to enter the results into a file(default ./result.txt),can use --path set --path string the path of result file (default "result.txt") -T, --thread thread Set thread eg:2000 (default 100) -t, --timeout time Set timeout(s) eg:5s (default 3s) -v, --verbose Show verbose information
Avvia un semplice server HTTP, in grado di scaricare e caricare file; per caricare file è necessario utilizzare il parametro -u
-a specifica l'indirizzo IP e la porta in ascolto
-d specifica la directory radice del server HTTP
-P e -U impostano nome utente e password per l'autenticazione
</details>
</details>
<details>
<summary><b>Modulo tools: integra strumenti comuni</b></summary>```
Usage:
zscan tools [command]
Available Commands:
nc A easy nc
Flags:
-h, --help help for tools
Global Flags:
--nobar disable portscan progress bar
-o, --output string the path of result file (default "result.txt")
--proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080)
-T, --thread thread Set thread eg:2000 (default 600)
-t, --timeout time Set timeout(s) eg:5s (default 5s)
-v, --verbose Show verbose information
Flags: -a, --addr string listen/connect host address eg(listen):-a 0.0.0.0:4444 eg(connect):-a 172.16.95.1:4444 -h, --help help for nc -l, --listen listen mode(default connect)
Available Commands: ldap Ldap queries redis Redis utilizes modules snmp snmp scan sshlogin Login using a user name, password, or key sunlogin sunlogin RCE CNVD-2022-10270
Flags: -h, --help help for exploit
Global Flags: --nobar disable portscan progress bar -o, --output string the path of result file (default "result.txt") --proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080) -T, --thread thread Set thread eg:2000 (default 600) -t, --timeout time Set timeout(s) eg:5s (default 5s) -v, --verbose Show verbose information
<details>
<summary><b>modulo snmp: scansione snmp</b></summary>```
Usage:
zscan exploit snmp [flags]
Flags: -h, --help help for sshlogin -H, --host string Set ssh server host -d, --keypath string Set public key path -k, --login_key Use public key login -P, --password string Set ssh password -p, --port int Set ssh server port (default 22) -U, --username string Set ssh username
Global Flags: --nobar disable portscan progress bar -o, --output string the path of result file (default "result.txt") --proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080) -T, --thread thread Set thread eg:2000 (default 600) -t, --timeout time Set timeout(s) eg:5s (default 5s) -v, --verbose Show verbose information
Login con nome utente e password: ./zscan exploit ssh -H 172.16.95.24 -U root -P 123456
Login con chiave pubblica: ./zscan exploit ssh -H 172.16.95.24 -U root -k
Per impostazione predefinita, il login con chiave pubblica cerca la chiave privata in ~/.ssh, è possibile specificare un percorso diverso per la chiave privata con -d/--keypath
</details>
<details>
<summary><b>redis: modulo di sfruttamento redis</b></summary>```
Usage:
zscan exploit redis [flags]
Flags:
-c, --command string Set the command you want to execute eg:(zscan exploit redis -H 172.16.95.16 -P 123456 -c "keys *")
--dstpath string set target path
--exec use execute the command mode
-h, --help help for redis
-H, --host string Set redis server host
--lhost string set listen host(!!!Make sure the target has access!!!)
--lport int set listen port(!!!Make sure the target has access!!!) (default 20001)
--lua use CVE-2022-0543 to attack
-P, --password string Set redis password
-p, --port int Set redis server port (default 6379)
--so string set .so file path
--srcpath string set upload file path
--upload use upload mode
Global Flags:
--nobar disable portscan progress bar
-o, --output string the path of result file (default "result.txt")
--proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080)
-T, --thread thread Set thread eg:2000 (default 600)
-t, --timeout time Set timeout(s) eg:5s (default 5s)
-v, --verbose Show verbose information
Usage: zscan exploit sunlogin [flags]
Flags: -c, --command string command you want to execute -h, --help help for sunlogin -H, --host string Set redis server host -p, --port int Set RCE port
Global Flags: --nobar disable portscan progress bar -o, --output string the path of result file (default "result.txt") --proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080) -T, --thread thread Set thread eg:2000 (default 600) -t, --timeout time Set timeout(s) eg:5s (default 5s) -v, --verbose Show verbose information
漏洞发现可以使用ps模块或者all模块对40000-65535进行扫描,可以自动识别出漏洞端口
可以使用`-c`执行一条命令,不使用`-c`进入交互式(伪交互式)按照输入执行命令
`-p`指定端口
</details>
</details>
## Esempi di utilizzo🤪
<details>
<summary><b>Scansione di sottoreti con ping: `zscan ping --discover local`</b></summary>```
zscan ping --discover local或者
zscan ping --discover 192.168.0.0


Si consiglia di compilare da soli, le release potrebbero non essere sempre aggiornate. Per qualche motivo, ora non vengono forniti zscan precompilati, il comando di compilazione è qui sotto.``` go get github.com/zyylhn/zscan go bulid 或者docker编译 docker pull golang docker run -v "$GOPATH":/go -v "$PWD":/go/src/zscan -w /go/src/zscan -e GOOS="darwin" -e GOARC H="amd64" golang go build -v -ldflags="-s -w" -trimpath -o zscan_mac_x64 docker run -v "$GOPATH":/go -v "$PWD":/go/src/zscan -w /go/src/zscan -e GOOS="windows" -e GOAR CH="amd64" golang go build -v -ldflags="-s -w" -trimpath -o zscan_x64.exe docker run -v "$GOPATH":/go -v "$PWD":/go/src/zscan -w /go/src/zscan -e GOOS="linux" -e GOARCH ="amd64" golang go build -v -ldflags="-s -w" -trimpath -o zscan_linux_x64
## Dichiarazione di esonero di responsabilità🧐
Questo strumento è destinato esclusivamente a **comportamenti di costruzione della sicurezza aziendale legalmente autorizzati**. Se hai bisogno di testare la funzionalità di questo strumento, ti preghiamo di configurare autonomamente un ambiente di destinazione.
Quando utilizzi questo strumento per eseguire rilevamenti, devi assicurarti che tale attività sia conforme alle leggi e ai regolamenti locali e di aver ottenuto un'autorizzazione adeguata. **Non eseguire scansioni su obiettivi non autorizzati.**
Se durante l'utilizzo di questo strumento commetti atti illegali, dovrai assumerti le conseguenze corrispondenti. Non ci assumiamo alcuna responsabilità legale o connessa.
Prima di installare e utilizzare questo strumento, ti preghiamo di **leggere attentamente e comprendere appieno ogni clausola**. Le clausole relative a limitazioni, esclusioni di responsabilità o altri aspetti che coinvolgono diritti fondamentali potrebbero essere evidenziate in grassetto o sottolineate per attirare la tua attenzione. A meno che tu non abbia letto, compreso e accettato integralmente tutte le clausole del presente accordo, ti preghiamo di non installare o utilizzare questo strumento. L'uso dello strumento o qualsiasi altra forma di accettazione esplicita o implicita del presente accordo costituirà la tua accettazione di essere vincolato da questo accordo.
## Link di riferimento👀
https://github.com/shadow1ng/fscan
https://github.com/k8gege/LadonGo
## Stato degli aggiornamenti💪
### Moduli funzionali
- [x] Modulo ping: rilevamento host tramite ping
- [x] Invocazione del ping di sistema
- [x] Invio di pacchetti ICMP
- [x] Rilevamento di sottoreti LAN
- [x] Ping del gateway della sottorete di classe B
- [x] Scansione OXID
- [x] Modulo di scansione porte
- [x] Acquisizione del titolo HTTP e del codice di stato
- [x] Riconoscimento delle impronte digitali HTTP
- [x] Verifica POC HTTP
- [x] Restituzione delle informazioni del banner
- [x] Prima ping, poi scansione
- [x] Modulo all: chiama tutti i moduli
- [x] Modulo blast
- [x] Modulo SSH
- [x] Modulo FTP
- [x] Modulo MySQL
- [x] MSSQL
- [x] Modulo MongoDB
- [x] Modulo Redis
- [x] Modulo PostgreSQL
- [x] LDAP
- [x] SMB
- [x] RDP
- [x] Modulo scan
- [x] Modulo di scansione del server proxy
- [x] Scansione del server proxy SOCKS5
- [x] Modulo winscan @https://github.com/shenzhibuqins
- [x] Funzione di scansione SMB
- [x] Funzione di scansione OXID
- [x] Funzione di scansione NetBIOS
- [x] Modulo di scansione 17010
- [x] POC
- [x] Supporto per xray v1
- [ ] Supporto per xray v2
- [x] Modulo server
- [x] Modulo server SOCKS
- [x] Autenticazione nome utente e password
- [x] Modulo server HTTP
- [x] Funzione di autenticazione
- [x] Funzione di caricamento file
- [x] Modulo tool
- [x] Modulo NC
- [x] Funzione di ascolto su porta
- [x] Funzione di connessione a porta
- [x] Funzione di ricerca file
- [x] Ricerca simultanea di più file, multi-thread
- [x] Ricerca tramite espressioni regolari
- [ ] Ricerca del contenuto dei file
- [ ] Funzione di compressione delle cartelle
- [x] Modulo exploit
- [x] Modulo SSHlogin
- [x] Funzione di login con nome utente e password (interattiva)
- [x] Funzione di login con chiave (interattiva)
- [x] Modulo Redis
- [x] Esecuzione di comandi Redis
- [x] Exploit di evasione dalla sandbox Lua
- [x] RCE tramite replica master-slave
- [x] Query LDAP
- [ ] Query SNMP
- [ ] Modulo WMI
- [ ] ..........
### Funzionalità dello strumento stesso
- [x] Output dei risultati su file
- [x] Registrazione dei log di ogni esecuzione
- [x] Impostazione del numero di thread (la scansione supporta thread molto elevati)
- [x] Impostazione del timeout
- [x] Funzione proxy
- [ ] Funzione proxy per il protocollo UDP
- [x] Funzione proxy per il protocollo TCP
- [x] Funzione proxy per esecuzione di brute force e comandi
- [x] MySQL
- [ ] MSSQL
- [x] Redis
- [x] MongoDB
- [ ] PostgreSQL
- [x] SSH
- [x] FTP
- [x] Lettura degli obiettivi da file
- [x] Supporto per dizionari molto grandi nel brute force
- [ ] ..........
### Obiettivi futuri
- [ ] Completare i moduli di brute force per i vari server nella versione corrente, supportare più comandi, raggiungere un uso dei comandi senza ostacoli e aggiungere moduli di sfruttamento dei database (sfruttamento dopo il successo del brute force)
- [ ] MySQL
- [ ] MSSQL
- [ ] PostgreSQL
- [ ] MongoDB
- [ ] FTP
- [ ] Rilasciare una versione ridotta di zscan
- [ ] Rimuovere tutti i driver dei database per ridurre le dimensioni, al costo di non poter eseguire comandi
- [ ] Rimuovere i moduli di database non comunemente usati o inutili
Grazie per le stelle, amici🥳
Benvenuti a segnalare problemi👏
Benvenuti a condividere impronte digitali web e POC
Se ti piace scrivere strumenti in Go, puoi unirti a noi: [email protected]😃
--pocpth:se si specifica una directory, verranno utilizzati tutti i poc in quella directory; se si specifica un singolo poc, verrà utilizzato solo quel poc
--pocthread:thread della scansione poc
--url/--urlfile:specifica il target, -u/--url specifica un singolo target, è possibile eseguire scansioni batch specificando un file txt
Global Flags: --log Record the scan results in chronological order,Save path./log.txt -O, --output Whether to enter the results into a file(default ./result.txt),can use --path set --path string the path of result file (default "result.txt") -T, --thread thread Set thread eg:2000 (default 100) -t, --timeout time Set timeout(s) eg:5s (default 3s) -v, --verbose Show verbose information
-a指定地址,不使用-l的话代表连接目标,使用-l为监听端口
</details>
<details>
<summary><b>modulo searchfile: ricerca file multithread, con supporto per regex</b></summary>```
Search files that support regular matching
Usage:
zscan tools searchfile [flags]
Flags:
-d, --dir string set search base Dir
-f, --file stringArray set filename eg:zscan tools searchfile -d ./ -f pass.txt -f user.txt
-h, --help help for searchfile
-r, --regexp stringArray Specifies the re matching parameters
--walk int Traversal turns on multithreading depth(Try not to go above 5) (default 3)
Global Flags:
--nobar disable portscan progress bar
-o, --output string the path of result file (default "result.txt")
--proxy string Connect with a proxy(user:[email protected]:1080 or 172.16.95.1:1080)
-T, --thread thread Set thread eg:2000 (default 600)
-t, --timeout time Set timeout(s) eg:5s (default 5s)
-v, --verbose Show verbose information
-d specifica la directory radice per la ricerca. Su Linux si possono usare percorsi relativi, su Windows servono percorsi assoluti
-f specifica i nomi di file da cercare. Si possono usare -f nomefile1 -f nomefile2 per cercare più file
-r usa le espressioni regolari. In realtà anche -f usa regex internamente, ma le trasforma in ^nomefile$
--walk indica la profondità di directory per cui avviare thread: logicamente, sotto la directory data conta quante sottodirectory ci sono e avvia un thread per ognuna. Non impostare una profondità troppo alta: più è profonda, più veloce, ma causerà un uso elevato della CPU (già tre livelli sono molto intensivi, quindi in scenari particolari si consiglia 1)
| Indicatore tecnico | Descrizione funzione |
|---|
| Mascheramento della firma | Il catturatore analizza la crittografia HTTPS, supporta la forzatura di un percorso di firma contraffatto, mascherando le informazioni come file di sistema per il rilevamento da parte del server. |
| Ricostruzione TCP/UDP | Supporta la ricostruzione dei flussi di dati tra protocolli per contrastare l'offuscamento del protocollo. |
| Rilevamento anomalie | L'algoritmo della finestra scorrevole dinamica calcola lo scostamento delle caratteristiche del traffico in tempo reale; se P<0.05 viene considerato anomalo. |
| Grafo di conoscenza | Integra il database CVE e il framework ATT&CK, costruendo automaticamente le relazioni di correlazione dei percorsi di attacco. |
| Analisi visuale | Fornisce visualizzazioni come il grafo topologico della catena di attacco, la mappa di calore, il diagramma temporale, ecc. tramite Gephi SDK. |
| Flags: |
--burpthread int Set burp password thread(recommend not to change) (default 100)
--get string set an oid
-h, --help help for snmp -H, --host string Set target --hostfile string Set host file -l, --listoid List commonly used OIDs --password string set a password (default "public") --passwordfile string passwords dict file, eg: ./dict/password.txt -p, --port port Set port (default 161) --version string specifies SNMP version to use. 1|2c|3 (default "2c") --walk string set an oid
Global Flags: --log Record the scan results in chronological order,Save path./log.txt -O, --output Whether to enter the results into a file(default ./result.txt),can use --path set --path string the path of result file (default "result.txt") -T, --thread thread Set thread eg:2000 (default 100) -t, --timeout time Set timeout(s) eg:5s (default 3s) -v, --verbose Show verbose information
--listoid elenca le informazioni di query comuni```
0: 系统基本信息 SysDesc GET 1.3.6.1.2.1.1.1.0
1: 监控时间 sysUptime GET 1.3.6.1.2.1.1.3.0
2: 系统联系人 sysContact GET 1.3.6.1.2.1.1.4.0
3: 获取机器名 SysName GET 1.3.6.1.2.1.1.5.0
4: 机器所在位置 SysLocation GET 1.3.6.1.2.1.1.6.0
5: 机器提供的服务 SysService GET 1.3.6.1.2.1.1.7.0
6: 系统运行的进程列表 hrSWRunName WALK 1.3.6.1.2.1.25.4.2.1.2
7: 系统安装的软件列表 hrSWInstalledName WALK 1.3.6.1.2.1.25.6.3.1.2
8: 网络接口列表 ipAdEntAddr WALK 1.3.6.1.2.1.4.20.1.1
Puoi eseguire query utilizzando --walk e --get
Se non viene specificata una password, per impostazione predefinita viene usata 'public'
-c用来执行普通的redis命令模式
--exec:使用主从复制执行命令模式
--upload:使用主从复制的上传文件模式
--lua:使用lua沙箱逃逸漏洞模式
以上四个参数必须需要其中一个
--detpath:用来指定主从复制将文件上传到目标的绝对路径
--lport:主从复制时主节点(也就是zscan)监听的端口,默认20001
--lhost:主从复制时主节点(也就是zscan)监听的地址,必须要保证目标redis能访问到
--so:主从复制执行命令的时候上传到目标上的so文件
--srcpath:主从复制上传文件的源文件