
Zscan, un conjunto de herramientas de escaneo explosivo
Consulte el registro de actualizaciones en log
Zscan es un escáner de puertos de red interna de código abierto, una herramienta de fuerza bruta y una colección de otras utilidades que se puede considerar un conjunto de herramientas. Se basa en el descubrimiento de segmentos de red interna, detección de hosts y escaneo de puertos. En el módulo blast, puede realizar fuerza bruta en servicios como mysql, mssql, redis, mongo, postgres, ftp, ssh, ldap, rdp, smb, etc. En el módulo scan, realiza funciones de escaneo como netbios, smb, oxid, socks server (escaneo de servidores proxy), ms17010, poc de http, etc. De forma predeterminada, captura el título y la información de huella digital de http. En el módulo server, puede iniciar servidores http (para cargar y descargar archivos) y socks5 (servidor proxy). El módulo tools integra pequeñas utilidades, por ahora solo nc. Se ha agregado recientemente el módulo exploit, que permite explotar servicios con fuerza bruta exitosa, incluyendo inicio de sesión interactivo ssh (con usuario/contraseña o clave), réplica maestro-esclavo de redis y escape de la caja de arena Lua (carga de archivos y ejecución de comandos), consultas ldap (con consultas comunes integradas). También hay un módulo all, que invoca todos los módulos de escaneo y fuerza bruta durante el escaneo. Admite escaneo ipv6, entrada de dominio y reconocimiento automático de CDN. Las funciones específicas del módulo son las siguientes.
La herramienta es de gran tamaño; en el futuro se lanzará una versión simplificada. El diseño modular facilita la eliminación de funciones innecesarias.``` 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支持多线程正则搜索文件
El formato de uso es```
zscan 模块 参数
中文 | English | Français | Español
config.ini y renómbralo.*.env.docker-compose up.# step 1: Copiar
cp config.ini config.dev.ini
# step 2: Configurar
# modificar config.dev.ini
# step 3: Iniciar
docker-compose up
docker-compose.yml en la raíz del proyecto se utiliza para iniciar el proyecto y también incluye una configuración de previsualización en vivo.chokidar y actualiza el contenedor en ejecución mediante un webhook de docker-py.npm install
npm run watch
docker-py llama automáticamente a live.update para actualizar el contenedor.```
/___ \ /\ \ /\ \ /\ __ \ /\ "-.\ \
// / \ _ \ \ \ ___ \ \ __ \ \ \ -. \
/_\ /_\ \ ___\ \ _\ _\ \ _\"_\
// // /_____/ //// // //
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: Habilitar este parámetro escribirá el resultado actual en log.txt en modo de anexión (puede registrar cada resultado de ejecución).
- -o --output: Por defecto el nombre de archivo en el directorio actual es Hosts; -o especifica la ruta.
- --proxy: Configurar proxy, nombre de usuario y contraseña (user:pass@ip:port) sin autenticación (ip:port).
- -T --thread: Especifica el número de hilos, por defecto 100.
- -t --timeout: Establece el tiempo de espera; si las condiciones de red son buenas y se busca velocidad, se puede configurar a 1s.
- -v --verbose: Muestra información del proceso de escaneo.
## Módulos de funcionalidad😈
<details>
<summary><b>módulo ping: los usuarios normales llaman al ping del sistema con permisos de usuario común, los usuarios root pueden optar por usar paquetes ICMP</b></summary>```
zscan ping
...``` 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>Módulo ps: escaneo de puertos y obtención de 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 y --hostfile especifican el objetivo
-p especifica el puerto; si no se especifica, se usa el puerto predeterminado, o se puede especificar "l" para usar puertos menores (aproximadamente treinta puertos comunes)
--noping escanea todos los objetivos directamente sin hacer ping primero
--icmp usa paquetes ICMP para descubrimiento de hosts al usar ping
--nowebscan parámetro para deshabilitar el escaneo web y solo realizar escaneo de puertos
--vulscan parámetro para habilitar la detección de PoC (solo se puede usar cuando el escaneo web está activado; de lo contrario, no tiene sentido)
--syn usa escaneo SYN (requiere altos privilegios)
</details>
<details>
<summary><b>módulo all: llama a todos los módulos de escaneo y fuerza bruta para escanear</b></summary>```
zscan all
-D / --debug: Activa el modo de depuración, muestra información detallada de depuración.-q / --quiet: Modo silencioso, solo muestra resultados clave.-v / --verbose: Activa el modo detallado, muestra más información de ejecución.-n / --no-color: Desactiva la salida en color.--no-banner: Oculta el banner de inicio.--no-update: Omite la comprobación de actualizaciones.--timeout: Establece el tiempo de espera de la solicitud (segundos). Valor predeterminado: 30.--retry: Establece el número de reintentos de solicitud. Valor predeterminado: 3.--proxy: Usa un proxy. Formato: .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
El módulo all es esencialmente igual que el módulo ps, excepto que cuando el módulo all escanea un puerto correspondiente, realiza reconocimiento de huellas digitales o fuerza bruta de nombres de usuario y contraseñas en el hilo actual.
Los parámetros del módulo all son los mismos que los del módulo ps, solo que se agrega un diccionario de contraseñas, que se utiliza para establecer el diccionario al escanear puertos que necesitan fuerza bruta; todo lo demás es igual.
--notburp No realizar fuerza bruta, solo escanear.
--novulscan Dado que el módulo all invoca todos los módulos, este parámetro se utiliza para deshabilitar el escaneo de vulnerabilidades.
</details>
<details>
<summary><b>blast:módulo de fuerza bruta, incluye funcionalidad de fuerza bruta para servicios comunes</b></summary>```
zscan blast
| MapBGP | Herramienta de visualización BGP | #bgp #visualización #descubrimiento #enrutamiento | Esta herramienta está diseñada para ejecutar rutas de red en vista MAPA y mostrar información BGP y traceroutes. |```
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
Básicamente, todos los módulos de fuerza bruta se usan de la misma manera, solo hay que especificar usuario/contraseña o un diccionario de usuario/contraseña, y también se puede especificar el número de hilos de fuerza bruta. Este hilo es diferente del hilo -T; el hilo -T representa la cantidad de objetivos que escaneamos concurrentemente (este objetivo es una combinación de IP y puerto, cada concurrencia equivale a enviar un paquete de datos al objetivo). burptheard significa que cuando en el hilo único del escaneo concurrente anterior encontramos nuestro puerto objetivo, por ejemplo mysql, se iniciará un ataque de fuerza bruta multihilo en el hilo de escaneo actual (aquí el objetivo se cambia a una IP específica y un puerto específico, por lo que es necesario limitar la velocidad, ya que una velocidad demasiado rápida puede hacer que el servicio objetivo no esté disponible).
</details>
<details>
<summary><b>módulo scan: módulos de escaneo comunes</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
Escanea servidores proxy en la red interna
-H especifica el objetivo, -p especifica el puerto, --type especifica el tipo de protocolo proxy a escanear (actualmente soporta socks4/5, otros protocolos están en desarrollo)
</details>
<details>
<summary><b>módulo ms17010: escaneo masivo de vulnerabilidad 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
Solo necesita especificar el objetivo
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
Si se da directamente el objetivo, escaneará netbios, oxid y smb al mismo tiempo. Se puede usar -- para especificar que solo se use uno.
</details>
<details>
<summary><b>Módulo poc: es tanto un módulo independiente como una función llamada en otros módulos</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:Lista los PoCs incorporados en la herramienta
--pocname:Es en realidad una opción de filtro que filtra los PoCs cuyo nombre contenga el campo especificado (disponible tanto para escaneo como para visualización)
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>módulo socks5: iniciar un servidor socks5</b></summary>```
zscan socks5
使用方法:重新执行原来的命令,但是使用 inscope 子命令。不需要管道、不需要重定向。
root@lock:/opt/raven# ./raven inscope <scope>
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
Se puede usar -a para especificar la IP y el puerto de escucha del servicio socks5
-p y -u especifican el nombre de usuario y la contraseña del proxy
</details>
<details>
<summary><b>Módulo httpserver: inicia un servidor HTTP que soporta autenticación y carga de archivos</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>Módulo nc: un nc simple que puede abrir puertos y conectarse a puertos</b></summary>```
zscan nc
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>módulo snmp:escaneo snmp</b></summary>```
Usage:
zscan exploit snmp [flags]
---No content provided for translation.---``` 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
--listoidLista información de consultas comunes```
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
Inicio de sesión con cuenta y contraseña: `./zscan exploit ssh -H 172.16.95.24 -U root -P 123456`
Inicio de sesión con clave pública: `./zscan exploit ssh -H 172.16.95.24 -U root -k`
Por defecto, el inicio de sesión con clave pública toma la clave privada del directorio `./ssh` del usuario actual. Se puede especificar la ruta de la clave privada con `-d/--keypath`.
</details>
<details>
<summary><b>redis: Módulo de explotación de 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
El descubrimiento de vulnerabilidades puede escanear los puertos 40000-65535 usando el módulo ps o el módulo all, y puede identificar automáticamente los puertos vulnerables.
Puede usar `-c` para ejecutar un solo comando, o sin `-c` entrar en modo interactivo (pseudo interactivo) para ejecutar comandos según la entrada.
`-p` especifica el puerto
</details>
</details>
## Ejemplo de uso 🤪
<details>
<summary><b>Descubrimiento de subred con ping:zscan ping --discover local</b></summary>```
zscan ping --discover local或者
zscan ping --discover 192.168.0.0


all. Durante el escaneo de puertos multihilo, se evalúa si el puerto está abierto; si se puede realizar fuerza bruta, inmediatamente se abre un nuevo hilo dentro del hilo actual para realizar la fuerza bruta. Esto acelera significativamente el proceso, eliminando el paso intermedio de obtener los puertos abiertos antes de lanzar la fuerza bruta.Se recomienda compilarlo usted mismo, ya que a veces los lanzamientos (releases) pueden no estar actualizados. Por ciertas razones, ahora no se proporciona el binario compilado de zscan. El comando de compilación está a continuación, tómenlo según sea necesario.``` 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
## Descargo de responsabilidad🧐
Esta herramienta está destinada únicamente a **actividades de seguridad empresarial legalmente autorizadas**. Si necesita probar su funcionalidad, configure su propio entorno de destino.
Al usar esta herramienta para realizar pruebas, debe asegurarse de que la acción cumpla con las leyes y regulaciones locales y de que haya obtenido la autorización adecuada. **No escanee objetivos no autorizados.**
Si incurre en cualquier comportamiento ilegal mientras usa esta herramienta, deberá asumir las consecuencias correspondientes por su cuenta. No asumiremos ninguna responsabilidad legal o solidaria.
Antes de instalar y usar esta herramienta, **lea atentamente y comprenda completamente cada término**. Los términos de limitación, exención de responsabilidad u otros que involucren sus derechos importantes pueden resaltarse en negrita, subrayado, etc., para llamar su atención. A menos que haya leído completamente, entendido completamente y aceptado todos los términos de este acuerdo, no instale ni use esta herramienta. Su uso o cualquier otra forma explícita o implícita de aceptación de este acuerdo se considerará como que ha leído y aceptado estar sujeto a este acuerdo.
## Enlaces de referencia👀
https://github.com/shadow1ng/fscan
https://github.com/k8gege/LadonGo
## Progreso de actualización💪
### Módulos de funcionalidad
- [x] Módulo ping: descubrimiento de host mediante ping
- [x] Llamar al ping del sistema
- [x] Enviar paquetes ICMP
- [x] Descubrimiento de segmentos de red interna
- [x] Ping a la puerta de enlace del segmento B
- [x] Escaneo OXID
- [x] Módulo de escaneo de puertos PS
- [x] Obtener título HTTP y código de estado
- [x] Identificación de huella digital HTTP
- [x] Verificación de POC HTTP
- [x] Devolver información del banner
- [x] Hacer ping antes de escanear
- [x] Módulo all: invoca todos los módulos
- [x] Módulo blast
- [x] Módulo SSH
- [x] Módulo FTP
- [x] Módulo MySQL
- [x] Módulo MSSQL
- [x] Módulo MongoDB
- [x] Módulo Redis
- [x] Módulo PostgreSQL
- [x] LDAP
- [x] SMB
- [x] RDP
- [x] Módulo scan
- [x] Módulo de escaneo de servidores proxy
- [x] Escaneo de servidores proxy SOCKS5
- [x] Módulo winscan (cortesía de @https://github.com/shenzhibuqins)
- [x] Función de escaneo SMB
- [x] Función de escaneo OXID
- [x] Función de escaneo NetBIOS
- [x] Módulo de escaneo 17010
- [x] POC
- [x] Soporte para Xray v1
- [ ] Soporte para Xray v2
- [x] Módulo server
- [x] Módulo de servidor SOCKS
- [x] Autenticación por nombre de usuario y contraseña
- [x] Módulo de servidor HTTP
- [x] Función de autenticación
- [x] Función de carga de archivos
- [x] Módulo tool
- [x] Módulo nc
- [x] Función de escucha de puertos
- [x] Función de conexión a puertos
- [x] Función de búsqueda de archivos
- [x] Búsqueda simultánea de múltiples archivos, multiproceso
- [x] Búsqueda por expresión regular
- [ ] Búsqueda de contenido de archivos
- [ ] Función de empaquetado de carpetas
- [x] Módulo exploit
- [x] Módulo sshloin
- [x] Función de inicio de sesión con nombre de usuario y contraseña (interactivo)
- [x] Función de inicio de sesión con clave (interactivo)
- [x] Módulo Redis
- [x] Ejecutar comandos de Redis
- [x] Vulnerabilidad de escape de sandbox Lua
- [x] RCE mediante replicación maestro-esclavo
- [x] Consulta LDAP
- [ ] Consulta SNMP
- [ ] Módulo WMI
- [ ] ..........
### Funcionalidades de la propia herramienta
- [x] Salida de resultados a archivo
- [x] Función de registro de cada ejecución
- [x] Función de configuración de hilos (el escaneo admite hilos muy altos)
- [x] Función de configuración de timeout
- [x] Función de proxy
- [ ] Función de proxy para protocolo UDP
- [x] Función de proxy para protocolo TCP
- [x] Función de proxy para fuerza bruta y ejecución de comandos
- [x] MySQL
- [ ] MSSQL
- [x] Redis
- [x] MongoDB
- [ ] PostgreSQL
- [x] SSH
- [x] FTP
- [x] Función de lectura de objetivos desde archivo
- [x] La fuerza bruta admite diccionarios muy grandes
- [ ] ..........
### Objetivos futuros
- [ ] Mejorar los módulos de fuerza bruta de servidores de la versión actual, admitir más comandos, lograr un uso de comandos sin obstáculos en la medida de lo posible, y agregar el módulo de explotación de bases de datos (explotación después de una fuerza bruta exitosa en la base de datos)
- [ ] MySQL
- [ ] MSSQL
- [ ] PostgreSQL
- [ ] MongoDB
- [ ] FTP
- [ ] Lanzar una versión ligera de zscna
- [ ] Eliminar todos los controladores de bases de datos para reducir el tamaño, a costa de no poder ejecutar comandos
- [ ] Eliminar módulos de bases de datos no utilizados o innecesarios
¡Gracias por las estrellas, amigos! 🥳
¡Las preguntas son bienvenidas! 👏
¡Comparte huellas digitales web y POCs!
A los desarrolladores que disfrutan escribiendo herramientas en Go, pueden unirse a nosotros: [email protected] 😃
http://user:pass@host:port--user-agent: Personaliza el User-Agent.--cookie: Personaliza la Cookie.--header: Personaliza la cabecera HTTP. Se puede usar varias veces. Ejemplo: --header "X-Forwarded-For: 127.0.0.1".-w / --workers: Establece el número de hilos de trabajo concurrentes. Valor predeterminado: 10.-t / --threads: Establece el número de hilos. Valor predeterminado: 5.--max-depth: Profundidad máxima de escaneo. Valor predeterminado: 3.```
Usage:
zscan all [flags]--pocpth:Si se especifica un directorio, se usarán todos los PoCs en ese directorio; si se especifica un PoC, solo se usará ese PoC
--pocthread:Hilos para el escaneo de PoCs
--url/--urlfile:Especifica el objetivo, -u/--url especifica uno solo, se puede escanear en lote especificando un archivo .txt
开一个简单的http服务器,能下载文件和上传文件,上传文件需要使用-u参数
-a指定监听的ip和地址
-d指定httpserver开启的根目录
-P和-U设置身份验证的用户名密码
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>searchfile模块: búsqueda de archivos multihilo, con soporte para expresiones regulares</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 especifica el directorio raíz de búsqueda. En Linux se puede usar una ruta relativa; en Windows se necesita una ruta absoluta.
-f especifica el nombre del archivo a buscar. Se pueden usar -f archivo1 -f archivo2 para buscar múltiples archivos.
-r utiliza expresiones regulares. En realidad, -f también usa expresiones regulares, pero se reemplaza por ^nombre_archivo$
--walk se refiere a la profundidad del directorio para abrir hilos de recorrido: lógicamente, recorre cuántas carpetas hay debajo del directorio dado y luego abre tantos hilos para recorrer esas subcarpetas. Por lo tanto, esta profundidad no debe ser demasiado alta. Aunque cuanto más profundo, más rápido, puede causar un uso elevado de la CPU (a tres niveles ya es bastante alto, por lo que en escenarios especiales se recomienda usar 1).
可以通过使用--walk和--get进行查询
密码不指定的话默认使用public
-c se utiliza para ejecutar el modo de comando normal de Redis
--exec: modo de ejecución de comandos mediante replicación maestro-esclavo
--upload: modo de carga de archivos mediante replicación maestro-esclavo
--lua: modo de explotación de vulnerabilidad de escape de sandbox Lua
Se requiere uno de los cuatro parámetros anteriores
--detpath: se utiliza para especificar la ruta absoluta donde la replicación maestro-esclavo sube el archivo al objetivo
--lport: puerto de escucha del nodo maestro (es decir, zscan) durante la replicación maestro-esclavo, por defecto 20001
--lhost: dirección de escucha del nodo maestro (es decir, zscan) durante la replicación maestro-esclavo, debe garantizar que el Redis objetivo pueda acceder a ella
--so: archivo .so que se sube al objetivo al ejecutar comandos mediante replicación maestro-esclavo
--srcpath: archivo fuente que se sube mediante replicación maestro-esclavo