
Zscan un ensemble d'outils de scan agressif
Consultez le journal log
Zscan est un ensemble open source de scanner de ports intranet, d'outils de brute force et d'autres utilitaires, que l'on peut appeler une boîte à outils. Basé sur la découverte de segments intranet, la découverte d'hôtes et le scan de ports, il permet d'effectuer du brute force sur les services mysql, mssql, redis, mongo, postgres, ftp, ssh, ldap, rdp, smb, etc. dans le module blast. Dans le module scan, il peut effectuer des scans de type netbios, smb, oxid, serveur socks (scan de proxy), ms17010, poc http, etc. Par défaut, il capture le titre HTTP et les informations d'empreinte. Dans le module server, il peut démarrer un serveur HTTP (permettant le téléchargement de fichiers) et un serveur SOCKS5 (proxy). Le module tools intègre des petits utilitaires pratiques, pour l'instant uniquement nc. Le module exploit, récemment ajouté, permet d'exploiter les services ayant fait l'objet d'un brute force réussi : connexion interactive SSH (par mot de passe ou clé), réplication maître-esclave Redis et échappement du sandbox Lua (téléchargement de fichiers et exécution de commandes), requêtes LDAP (avec des requêtes courantes intégrées). Il existe également un module all qui, lors d'une analyse, appelle tous les modules de scan et de brute force. Il prend en charge le scan IPv6, la saisie de noms de domaine et l'identification automatique du CDN. Les fonctions spécifiques des modules sont les suivantes :
L'outil est relativement volumineux ; une version allégée sera proposée ultérieurement. La conception modulaire permet de supprimer facilement les fonctions inutiles.``` 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支持多线程正则搜索文件
Le format d'utilisation est```
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
模块内的Flag表示当前命令的参数,Global Flags表示全局参数(所有命令都可使用)
这里的Flags是全局参数,所有模块都可以使用
- --log:启用这个参数会将当前运行结果以追加形式写入log.txt(可以记录每次运行的结果)
- -o --output:默认在当前目录中文件名为Hosts,使用-o指定路径
- --proxy :设置代理,用户名密码(user:pass@ip:port)不需要身份验证(ip:port)
- -T --thread:指定线程数,默认100
- -t --timeout:设置超时时间,网络条件好追求速度的话可以设置成1s
- -v --verbose:设置显示扫描过程信息
## Modules fonctionnels 😈
Modules déjà disponibles :
<details>
<summary><b>Module ping : en tant qu'utilisateur normal, appelle le ping système ; en tant que root, peut utiliser des paquets ICMP</b></summary>```
zscan ping
Charge utile.``` 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
Vous devez spécifier l'un des deux paramètres `host` ou `hostfile`. Lorsque vous disposez des privilèges root, vous pouvez utiliser `-i` pour ne pas appeler le `ping` local mais envoyer vous-même des paquets ICMP (si le nombre de threads est très élevé, par exemple plusieurs milliers, appeler la commande `ping` locale peut entraîner une utilisation excessive du CPU).
`--discover` propose deux modes de découverte de sous-réseaux : l'un en pingant la passerelle du réseau de classe B, l'autre en effectuant un scan oxid.
`--discover` nécessite un paramètre. Si vous donnez `local` (`zscan ping --discover local`), il lira les informations de la carte réseau locale et analysera le réseau de classe B local. Par exemple, si les deux cartes réseau locales sont `192.168.13.13` et `172.16.95.23`, il pingera alors les deux sous-réseaux de classe B `192.168.0.0/16` et `172.16.0.0/16`.
Vous pouvez également spécifier une ou plusieurs adresses IP de classe B, par exemple `172.17.0.0` ou `172.18.0.0`, `10.10.0.0`. Plusieurs segments IP sont séparés par des virgules.
</details>
<details>
<summary><b>Module ps : scan de ports et récupération du titre HTTP</b></summary>```
zscan ps
fscan est un puissant outil de scan réseau interne, prenant en charge de multiples fonctions de scan, y compris le scan de ports, l'identification de services, le scan de vulnérabilités, le cassage de mots de passe faibles, etc.``` 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 et --hostfile spécifient la cible
-p spécifie le port ; si non spécifié, utilise le port par défaut, ou spécifiez "l" pour utiliser less port (environ trente ports courants)
--noping scanne directement toutes les cibles sans d'abord les pinger
--icmp utilise des paquets ICMP pour la découverte d'hôtes lors du ping
--nowebscan : désactive le scan web, effectue uniquement le scan de ports
--vulscan : active la détection de PoC (utilisable uniquement lorsque le scan web est activé, sinon sans objet)
--syn utilise le scan SYN (nécessite des privilèges élevés)
</details>
<details>
<summary><b>module all : appelle tous les modules de scan et de force brute pour scanner</b></summary>```
zscan all
[No content provided in the INPUT section. Please provide the Markdown text to translate.]``` 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
(contenu manquant - rien à traduire)``` Usage: zscan blast [command]
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
基本上所有的爆破模块使用方式都相同,指定用户名密码或者用户名密码字典即可,还可以指定爆破线程,这个线程和-T的线程不同,-T的线程代表我们并发扫描的目标数量(这个目标是ip和端口的组合,每次并发相当于对目标发送了一个数据包),burptheard代表当我们在上面的并发扫描的单个线程中发现了我们的目标端口例如mysql,他会在当前的扫描线程中开启一个多线程爆破(这里的目标换成了特定ip特定的一个端口,这里就需要进行限速,速度太快可能导致目标服务不可用)
</details>
<details>
<summary><b>module scan : modules de scan courants</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
Cette branche ne sera plus maintenue. Le projet a été déplacé ici :
Pour la documentation sur l'utilisation de ce code, veuillez consulter le tag v0.1.0 ou la version v0.1.0.
Lisez avant utilisation ! Cette liste n'est pas garantie complète, il est recommandé de consulter la documentation pour des informations complètes.``` Usage: zscan proxyfind [flags]
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
只需要指定目标即可
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
如果直接给目标的话会同时扫描netbios,oxid,smb。可以使用--来指定只使用某一个
</details>
<details>
<summary><b>poc模块:既是一个单独模块也是一个功能在其他模块调用</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 : Liste des POC intégrés de l'outil
--pocname : C'est en fait une option de filtrage, elle filtrera les POC dont le nom contient le champ spécifié (disponible pour la numérisation et la visualisation)
--pocpth : Si un répertoire est spécifié, tous les POC de ce répertoire seront utilisés ; si un POC est spécifié, seul ce POC sera utilisé
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>socks5 module: ouvrir un serveur socks5</b></summary>```
zscan socks5
0x05 Liens de référence
Consultez l'article détaillé sur cet outil (même principe que l'outil) : https://mp.weixin.qq.com/s/iSbrp_fOa2Ho0QgoKhYQxQ
0x06 Lien du projet
https://github.com/Mustard404/Auto_proxy```
Usage:
zscan server socks5 [flags]
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
可以使用-a指定socks5服务监听的ip和端口
-p和-u指定代理的用户名和密码
</details>
<details>
<summary><b>httpserver模块:开启一个http服务器,支持身份认证和文件上传</b></summary>```
Usage:
zscan server httpserver [flags]
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
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
<details>
<summary><b>Module nc : un nc simple, permettant d'ouvrir un port et de se connecter à un port.</b></summary>```
zscan nc
(empty input - no text to translate)``` Usage: zscan nc [flags]
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)
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>Module searchfile : recherche multi-thread de fichiers, avec support des expressions régulières</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
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>module snmp : scan snmp</b></summary>```
Usage:
zscan exploit snmp [flags]
MAIS veuillez noter : cela nécessite une connexion DNS externe fonctionnelle...``` 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 lister les informations de requête courantes```
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
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
Connexion par mot de passe de compte : ./zscan exploit ssh -H 172.16.95.24 -U root -P 123456
Connexion par clé publique : ./zscan exploit ssh -H 172.16.95.24 -U root -k
Par défaut, la connexion par clé publique va chercher la clé privée dans ./ssh sous le répertoire de l'utilisateur actuel. Vous pouvez spécifier le chemin de la clé privée avec -d/--keypath.
</details>
<details>
<summary><b>redis: module d'exploitation 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
La découverte de vulnérabilités peut utiliser le module `ps` ou le module `all` pour scanner les ports 40000-65535, et permet d'identifier automatiquement les ports vulnérables.
Vous pouvez utiliser `-c` pour exécuter une commande, ou sans `-c` pour entrer en mode interactif (pseudo-interactif) et exécuter des commandes en fonction de l'entrée.
`-p` spécifie le port.
</details>
</details>
## 使用示例🤪
<details>
<summary><b>Découverte de sous-réseau par ping:zscan ping --discover local</b></summary>```
zscan ping --discover local或者
zscan ping --discover 192.168.0.0


all. Pendant le scan multithread des ports, il détecte les ports ouverts. Si un port peut être bruteforcé, un nouveau thread est immédiatement lancé dans le thread actuel pour effectuer le brute-force. Cela augmente considérablement la vitesse. Cela élimine l'étape intermédiaire consistant à d'abord obtenir les ports ouverts puis à les bruteforcer.Il est recommandé de compiler vous-même. Les versions release peuvent parfois ne pas être mises à jour. Pour une raison ou une autre, je ne fournis plus de zscan pré-compilé. Les commandes de compilation se trouvent ci-dessous.``` 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
## Avertissement légal 🧐
Cet outil est destiné uniquement aux **actions de sécurité autorisées légalement** au sein des entreprises. Si vous souhaitez tester sa disponibilité, veuillez configurer votre propre environnement cible.
Lorsque vous utilisez cet outil pour des tests, assurez‑vous que cette action est conforme aux lois et réglementations locales et que vous avez obtenu les autorisations nécessaires. **N'effectuez pas de scan sur des cibles non autorisées.**
Si vous commettez un acte illégal en utilisant cet outil, vous assumez seul les conséquences ; nous déclinons toute responsabilité légale ou conjointe.
Avant d'installer et d'utiliser cet outil, veuillez **lire attentivement et comprendre pleinement toutes les clauses**. Les clauses de limitation, d'exonération de responsabilité ou toute autre clause affectant vos droits importants peuvent être mises en évidence en gras ou soulignées. À moins que vous n'ayez lu, compris et accepté toutes les clauses de cet accord, veuillez ne pas installer ni utiliser cet outil. Votre utilisation ou toute autre indication expresse ou implicite de votre acceptation de cet accord constitue votre lecture et votre accord d'être lié par cet accord.
## Références 👀
https://github.com/shadow1ng/fscan
https://github.com/k8gege/LadonGo
## Progression des mises à jour 💪
### Modules fonctionnels
- [x] Module ping : découverte d'hôtes par ping
- [x] Appel du ping système
- [x] Envoi de paquets ICMP
- [x] Découverte de segments réseau internes
- [x] Ping de la passerelle du segment B
- [x] Scan OXID
- [x] Module de scan de ports
- [x] Récupération du titre HTTP et du code d'état
- [x] Reconnaissance d'empreinte HTTP
- [x] Validation POC HTTP
- [x] Retour d'informations de bannière
- [x] Ping avant scan
- [x] Module all : appelle tous les modules
- [x] Module blast
- [x] Module SSH
- [x] Module FTP
- [x] Module MySQL
- [x] MSSQL
- [x] Module MongoDB
- [x] Module Redis
- [x] Module PostgreSQL
- [x] LDAP
- [x] SMB
- [x] RDP
- [x] Module scan
- [x] Module de scan de serveur proxy
- [x] Scan de serveur proxy SOCKS5
- [x] Module winscan @https://github.com/shenzhibuqins
- [x] Fonctionnalité de scan SMB
- [x] Fonctionnalité de scan OXID
- [x] Fonctionnalité de scan NetBIOS
- [x] Module de scan 17010
- [x] POC
- [x] Prise en charge de xray v1
- [ ] Prise en charge de xray v2
- [x] Module serveur
- [x] Module serveur SOCKS
- [x] Authentification par nom d'utilisateur et mot de passe
- [x] Module de démarrage du serveur HTTP
- [x] Fonctionnalité d'authentification
- [x] Fonctionnalité de téléversement de fichiers
- [x] Module outil
- [x] Module nc
- [x] Fonctionnalité d'écoute de port
- [x] Fonctionnalité de connexion de port
- [x] Fonctionnalité de recherche de fichiers
- [x] Recherche simultanée de plusieurs fichiers, multithread
- [x] Recherche par expression régulière
- [ ] Recherche de contenu dans les fichiers
- [ ] Fonctionnalité de compression de dossier
- [x] Module exploit
- [x] Module sshlogin
- [x] Fonctionnalité de connexion par nom d'utilisateur et mot de passe (interactive)
- [x] Fonctionnalité de connexion par clé (interactive)
- [x] Module Redis
- [x] Exécution de commandes Redis
- [x] Vulnérabilité d'évasion de sandbox Lua
- [x] RCE par réplication maître‑esclave
- [x] Requête LDAP
- [ ] Requête SNMP
- [ ] Module WMI
- [ ] ..........
### Fonctionnalités de l'outil lui‑même
- [x] Exportation des résultats vers un fichier
- [x] Fonctionnalité de journalisation de chaque exécution
- [x] Fonctionnalité de configuration des threads (scan supporte des threads très élevés)
- [x] Fonctionnalité de configuration du délai d'attente
- [x] Fonctionnalité de proxy
- [ ] Proxy pour le protocole UDP
- [x] Proxy pour le protocole TCP
- [x] Proxy pour le brute‑force de services et l'exécution de commandes
- [x] MySQL
- [ ] MSSQL
- [x] Redis
- [x] MongoDB
- [ ] PostgreSQL
- [x] SSH
- [x] FTP
- [x] Fonctionnalité de lecture des cibles depuis un fichier
- [x] Brute‑force prenant en charge les très grands dictionnaires
- [ ] ..........
### Objectifs futurs
- [ ] Améliorer les modules de brute‑force des serveurs dans la version actuelle, prendre en charge plus de commandes, viser une utilisation sans obstacle des commandes, et ajouter un module d'exploitation de base de données (exploitation après un brute‑force réussi de la base de données)
- [ ] Mysql
- [ ] Mssql
- [ ] Postgres
- [ ] Mongodb
- [ ] Ftp
- [ ] Publier une version allégée de zscna
- [ ] Supprimer tous les pilotes de base de données pour réduire la taille, au prix de ne pas pouvoir exécuter de commandes
- [ ] Supprimer les modules de base de données peu utilisés ou inutiles
Merci pour les étoiles, les amis ! 🥳
Bienvenue pour poser des questions 👏
N'hésitez pas à partager des empreintes Web et des POC
Les amis qui aiment écrire des outils en Go peuvent nous rejoindre : [email protected] 😃
--pocthread : Threads pour le scan POC
--url/--urlfile : Spécifier la cible, -u/--url pour une cible unique, ou via un fichier txt pour un scan par lots
Lance un serveur HTTP simple, capable de télécharger et d'uploader des fichiers. Pour uploader, il faut utiliser le paramètre -u
-a spécifie l'IP et le port d'écoute
-d spécifie le répertoire racine du serveur HTTP
-P et -U définissent le nom d'utilisateur et le mot de passe pour l'authentification
-d指定搜索的根目录,linux可以使用相对路径,winsows上需要绝对路径
-f指定要搜索的文件名,可以使用-f 文件名1 -f 文件名2 来搜索多个文件
-r是使用正则,其实本质上-f也是使用正则只不过给替换成^文件名$
--walk是指遍历开启线程的目录深度:逻辑上是在给定的目录下面遍历有多少文件夹,然后开启多少线程去遍历这些子文件夹,所有这个深度不要太高,虽然越深越快,但是会导致cpu利用过高(三层其实就已经会占用很高了,所以特殊场景建议使用1)
可以通过使用--walk和--get进行查询
密码不指定的话默认使用public
-c用来执行普通的redis命令模式
--exec:使用主从复制执行命令模式
--upload:使用主从复制的上传文件模式
--lua:使用lua沙箱逃逸漏洞模式
以上四个参数必须需要其中一个
--detpath:用来指定主从复制将文件上传到目标的绝对路径
--lport:主从复制时主节点(也就是zscan)监听的端口,默认20001
--lhost:主从复制时主节点(也就是zscan)监听的地址,必须要保证目标redis能访问到
--so:主从复制执行命令的时候上传到目标上的so文件
--srcpath:主从复制上传文件的源文件