
Zscan um conjunto de ferramentas de varredura agressiva
Veja o conteúdo da atualização no log
Zscan é um conjunto de ferramentas de código aberto para varredura de portas internas, ferramentas de brute force e outros utilitários, podendo ser chamado de kit de ferramentas. Baseado na descoberta de segmentos de rede interna, descoberta de hosts e varredura de portas, é possível realizar brute force nos módulos blast para serviços como mysql, mssql, redis, mongo, postgres, ftp, ssh, ldap, rdp, smb, etc. No módulo scan, são realizadas varreduras como netbios, smb, oxid, socks server (varredura de servidores proxy), ms17010, varredura de PoC http, etc. Por padrão, captura o título e as informações de impressão digital (fingerprint) do http. No módulo server, é possível iniciar servidores http (com upload/download de arquivos) e socks5 (servidor proxy). No módulo tools, são integradas pequenas ferramentas utilitárias, atualmente apenas nc. Recentemente foi adicionado o módulo exploit, que permite explorar serviços com brute force bem-sucedido, como login interativo SSH (com usuário/senha ou chave), replicação mestre-escravo do Redis e escape de sandbox Lua (upload de arquivos e execução de comandos), consulta LDAP (com consultas comuns embutidas). Há também o módulo all, que ao escanear chama todos os módulos de varredura e brute force. Suporta varredura IPv6, entrada de domínio e identificação automática de CDN. As funções específicas de cada módulo são as seguintes:
O tamanho da ferramenta é grande; futuramente será lançada uma versão simplificada. O design modular facilita a remoção de funcionalidades indesejadas.``` 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支持多线程正则搜索文件
O formato de uso é```
zscan 模块 参数
-t, --target: Especifica o IP ou domínio de destino, no formato como 192.168.1.100, example.com, 192.168.1.0/24
-p, --port: Especifica a porta de destino, valores possíveis: all verifica todas as portas, custom portas personalizadas, top1000 verifica as 1000 principais portas, top100 verifica as 100 principais portas, null não verifica portas. Valor padrão top1000
-i, --interface: Especifica a interface de rede a ser usada, como eth0, wlan0, etc.
-s, --speed: Define a velocidade de verificação, valores possíveis: 1 (mais rápido), 2, 3, 4, 5 (mais lento). Valor padrão 3
-r, --rate: Taxa de envio de pacotes personalizada (pacotes/segundo), por exemplo -r 1000 significa enviar 1000 pacotes por segundo.
-f, --frag: Habilita a verificação com fragmentação IP. Isso pode contornar alguns sistemas IDS/IPS, fragmentando pacotes no nível do NMAP, dificultando a detecção por alguns sistemas de filtragem. No entanto, pode fazer com que alguns firewalls descartem todos os pacotes fragmentados, impossibilitando a obtenção de resultados precisos.
-t, -traceroute: Realiza rastreamento de caminho durante a verificação. Ao escanear um alvo, também faz o traceroute a ele, permitindo saber por quais roteadores os pacotes passaram da origem até o destino. Isso é muito valioso em ataques de rede, ajudando a entender a topologia da rede e descobrir possíveis vulnerabilidades de roteamento.
--spoofip: Falsifica o endereço IP de origem (IP spoofing). Destina-se a ocultar o endereço IP real do atacante ou contornar ACLs baseadas em IP (listas de controle de acesso). Requer configuração em conjunto com outras opções.
--spoofmac: Especifica um endereço MAC falsificado. Também usado para ocultar a identidade do atacante e contornar filtros de endereço MAC.
--randomize-hosts: Aleatoriza a ordem dos alvos de verificação, reduzindo a probabilidade de detecção por IDS/IPS.
--scan-delay: Define um atraso de verificação, evitando a detecção e bloqueio devido ao envio rápido de pacotes. Por exemplo, configura um atraso em milissegundos entre duas sondagens consecutivas.
-T: Define o modelo de temporização, valores possíveis de T0 a T5 (mais rápido). Modelos diferentes controlam a taxa de envio, tempos limite, etc.
-max-rtt-timeout: Define o tempo limite máximo de RTT (tempo de ida e volta).
-min-rtt-timeout: Define o tempo limite mínimo de RTT.
-initial-rtt-timeout: Define o tempo limite de RTT inicial. Este é o valor de timeout usado na fase inicial de sondagem.
-max_retries: Define o número máximo de retransmissões. Determina quantas vezes um pacote de sondagem pode ser retransmitido antes de desistir após um timeout.```
/___ \ /\ \ /\ \ /\ __ \ /\ "-.\ \
// / \ _ \ \ \ ___ \ \ __ \ \ \ -. \
/_\ /_\ \ ___\ \ _\ _\ \ _\"_\
// // /_____/ //// // //
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
As Flags dentro do módulo representam os parâmetros do comando atual, as Global Flags representam parâmetros globais (que podem ser usados por todos os comandos). Aqui, as Flags são parâmetros globais, que podem ser usados por todos os módulos.
- `--log`: Ativar este parâmetro gravará os resultados da execução atual no arquivo log.txt no modo de anexação (pode registrar os resultados de cada execução)
- `-o --output`: Por padrão, o nome do arquivo é 'Hosts' no diretório atual; -o especifica o caminho
- `--proxy`: Configurar proxy, nome de usuário e senha (user:pass@ip:port); se não precisar de autenticação, apenas (ip:port)
- `-T --thread`: Especificar número de threads, padrão 100
- `-t --timeout`: Configurar timeout, se a rede estiver boa e desejar velocidade, pode definir como 1s
- `-v --verbose`: Exibir informações do processo de escaneamento
## Módulos de Funcionalidade😈
Módulos atuais:
<details>
<summary><b>Módulo ping: usuários comuns chamam o ping do sistema; com privilégios root, pode optar por usar pacotes ICMP</b></summary>```
zscan ping
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
É necessário especificar um dos dois parâmetros, host ou hostfile. Quando tiver privilégios root, pode usar -i para não chamar o ping local, mas sim enviar pacotes ICMP por conta própria (se o número de threads for muito alto, como milhares, chamar o comando ping local pode causar alto uso da CPU).
--discover tem dois modos de descoberta de segmentos de rede: um é o ping do gateway do segmento B da rede, o outro é a varredura Oxid.
--discover é necessário fornecer um parâmetro. Se for fornecido local (zscan ping --disconver local), ele lerá as informações da placa de rede local e escaneará os segmentos B da rede local. Por exemplo, se ler duas placas de rede locais 192.168.13.13 e 172.16.95.23, então ele fará ping nos dois segmentos B: 192.168.0.0/16 e 172.16.0.0/16.
Também é possível especificar um ou mais IPs de segmento B, por exemplo, 172.17.0.0 ou 172.18.0.0,10.10.0.0. Vários segmentos IP são separados por vírgula.
</details>
<details>
<summary><b>módulo ps: varredura de portas e obtenção de título HTTP</b></summary>```
zscan ps
[No input text provided to translate.]``` 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 especificam o alvo
-p especifica a porta, se não especificado, usa a porta padrão, ou especifique "l" para usar less port (cerca de trinta portas comuns)
--noping escaneia todos os alvos diretamente sem ping primeiro
--icmp ao usar ping, usa pacotes ICMP para descoberta de hosts
--nowebscan parâmetro usado para desabilitar o escaneamento web e apenas fazer escaneamento de portas
--vulscan parâmetro usado para ativar a detecção de POC (só pode ser usado quando o escaneamento web está ativado, caso contrário não faz sentido)
--syn usa escaneamento SYN (requer altos privilégios)
</details>
<details>
<summary><b>módulo all: chama todos os módulos de escaneamento e força bruta para escanear</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
Para mais informações sobre a instalação e utilização, consulte a documentação oficial.
Aqui estão alguns links que podem ser úteis para quem deseja contribuir ou aprender mais sobre segurança cibernética:
Esta ferramenta destina-se exclusivamente a fins educacionais e de testes de segurança autorizados. O uso indevido pode violar leis locais e internacionais. O desenvolvedor não se responsabiliza por qualquer uso inadequado.
# Exemplo de uso responsável:
python scanner.py --target example.com --scan-type full
Lembre-se sempre de obter permissão por escrito antes de escanear qualquer sistema.
Este projeto está licenciado sob a MIT License - veja o arquivo para detalhes.
graph TD
A[Interface CLI] --> B[Gerenciador de Módulos]
B --> C[Scanner de Rede]
B --> D[Analisador de Vulnerabilidades]
B --> E[Gerador de Relatórios]
C --> F[nmap]
D --> G[Banco de Dados CVE]
E --> H[HTML]
E --> I[Markdown]Responsável por interpretar os argumentos do usuário e iniciar o fluxo de trabalho apropriado. Implementada usando argparse.
Orquestra a execução sequencial dos módulos de escaneamento e análise, garantindo a passagem correta dos resultados intermediários.
Utiliza nmap para realizar a descoberta de hosts e identificação de portas abertas. Os parâmetros do escaneamento são configurados dinamicamente.
Consulta bases de dados públicas para mapear versões inadequadas de software a CVEs. Suporta CVE-2021-41773 (Apache Path Traversal) e outras.
Constrói relatórios em HTML e Markdown com tabelas, gráficos e recomendações. O modelo é personalizável.
# Configurar a API Key do banco de dados (exemplo)
export CVE_API_KEY="sua_chave_aqui"
Para uma lista completa de variáveis de ambiente, veja env_template.
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
Basicamente, todos os módulos de brute force funcionam da mesma forma: basta especificar um nome de usuário e senha, ou um dicionário de usuários e senhas, e também é possível especificar o número de threads de brute force. Essas threads são diferentes das threads -T. As threads -T representam o número de alvos que escaneamos concorrentemente (esse alvo é uma combinação de IP e porta, cada concorrência equivale a enviar um pacote de dados para o alvo). 'burptheard' representa que, quando, na thread única do escaneamento concorrente acima, encontramos nossa porta alvo, por exemplo, mysql, ele iniciará um brute force multithread na thread de escaneamento atual (aqui o alvo muda para um IP específico e uma porta específica. Aqui é necessário limitar a velocidade, pois a velocidade muito rápida pode tornar o serviço alvo indisponível).
</details>
<details>
<summary><b>módulo scan: módulos de varredura comuns</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
Também é possível compilar e instalar o Graylog e seus componentes a partir do código fonte. Isso oferece maior controle sobre o processo de build e permite personalizações avançadas. No entanto, é mais complexo e demorado do que usar pacotes pré-compilados ou containers Docker.
Para compilar os componentes do Graylog a partir do código fonte, são necessários os seguintes pré-requisitos:
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
Escanear servidores proxy na rede interna
-H especifica o alvo, -p especifica a porta, --type especifica o tipo de protocolo de proxy a ser escaneado (atualmente suporta socks4/5, outros protocolos em desenvolvimento)
</details>
<details>
<summary><b>módulo ms17010: escaneamento em lote da vulnerabilidade 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
Se der o alvo diretamente, ele escaneará netbios, oxid e smb ao mesmo tempo. Você pode usar -- para especificar apenas um.
</details>
<details>
<summary><b>Módulo poc: é tanto um módulo independente quanto uma função chamada em outros 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:列出工具内置的poc
--pocname:其实是一个筛选选项,他会筛选出poc名字中包含指定字段的poc(扫描和查看都可用)
--pocpth:指定目录的话就会使用该目录下所有poc,指定poc的话就会只使用这个poc
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 módulo: iniciar um servidor socks5</b></summary>```
zscan socks5
[!IMPORTANTE] Ter uma conta OpenAI é um pré-requisito.
Atualmente, o AceLdr suporta as seguintes funcionalidades:
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: um nc simples, que pode abrir porta e conectar a porta</b></summary>```
zscan nc
HackBrowserData é uma ferramenta de linha de comando para descriptografar e extrair dados de navegadores. Ela suporta exportar senhas, histórico, cookies, favoritos e informações de cartão de crédito de diversos navegadores.
Acesse a página Releases para baixar o binário correspondente ao seu sistema operacional.
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: varredura SNMP</b></summary>```
Usage:
zscan exploit snmp [flags]
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 listar informações comuns de consulta```
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
Login com senha de conta: ./zscan exploit ssh -H 172.16.95.24 -U root -P 123456
Login com chave pública: ./zscan exploit ssh -H 172.16.95.24 -U root -k
O login com chave pública, por padrão, irá buscar a chave privada no diretório ./ssh do usuário atual. Pode-se usar -d/--keypath para especificar o caminho da chave privada.
</details>
<details>
<summary><b>redis: módulo de exploração 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
A descoberta de vulnerabilidades pode usar o módulo ps ou o módulo all para escanear de 40000 a 65535, identificando automaticamente portas vulneráveis.
Use -c para executar um comando; sem -c, entre no modo interativo (pseudo-interativo) para executar comandos conforme a entrada.
-p especifica a porta.
</details>
</details>
## Exemplo de uso🤪
<details>
<summary><b>Descoberta de segmento de rede com ping: zscan ping --discover local</b></summary>```
zscan ping --discover local或者
zscan ping --discover 192.168.0.0


all. Durante a varredura multitarefa de portas, quando uma porta aberta é detectada e pode ser atacada por força bruta, uma nova thread é imediatamente iniciada dentro da thread atual para realizar a força bruta. Isso acelera consideravelmente o processo, eliminando a etapa intermediária de primeiro obter as portas abertas e depois realizar a força bruta.Recomenda-se compilar por conta própria; às vezes os releases podem não estar atualizados. Por certos motivos, não estou mais fornecendo binários pré-compilados do zscan. O comando de compilação está abaixo, pegue-o conforme necessário.``` 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
## Aviso Legal 🧐
Esta ferramenta destina-se **exclusivamente a atividades legítimas de segurança empresarial autorizadas**. Se precisar testar a usabilidade da ferramenta, monte seu próprio ambiente de destino.
Ao usar esta ferramenta para testes, você deve garantir que a ação esteja em conformidade com as leis e regulamentos locais e que tenha obtido autorização suficiente. **Não escaneie alvos não autorizados.**
Se você realizar qualquer atividade ilegal durante o uso desta ferramenta, será o único responsável pelas consequências. Não assumiremos qualquer responsabilidade legal ou solidária.
Antes de instalar e usar esta ferramenta, **leia e entenda completamente todos os termos**. Cláusulas de limitação, isenção de responsabilidade ou outras que envolvam seus direitos significativos podem estar em negrito, sublinhado ou outro destaque para chamar sua atenção. A menos que você tenha lido, entendido completamente e aceitado todos os termos deste acordo, não instale nem use esta ferramenta. Seu uso ou qualquer outra forma de aceitação expressa ou implícita deste acordo será considerada como leitura e concordância com os termos deste acordo.
## Links de Referência 👀
https://github.com/shadow1ng/fscan
https://github.com/k8gege/LadonGo
## Progresso das Atualizações 💪
### Módulos Funcionais
- [x] Módulo ping: Descoberta de hosts via ping
- [x] Chamar ping do sistema
- [x] Enviar pacotes ICMP
- [x] Descoberta de sub-redes internas
- [x] Ping no gateway da sub-rede (segmento B)
- [x] Escaneamento OXID
- [x] Módulo de escaneamento de portas
- [x] Obter título HTTP e código de status
- [x] Identificação de impressão digital HTTP
- [x] Verificação de PoC HTTP
- [x] Retornar informações de banner
- [x] Ping antes de escanear
- [x] Módulo all: Chama todos os 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] Módulo LDAP
- [x] Módulo SMB
- [x] Módulo RDP
- [x] Módulo scan
- [x] Módulo de escaneamento de servidor proxy
- [x] Escaneamento de servidor proxy SOCKS5
- [x] Módulo winscan (@https://github.com/shenzhibuqins)
- [x] Escaneamento SMB
- [x] Escaneamento OXID
- [x] Escaneamento NetBIOS
- [x] Módulo de escaneamento 17010
- [x] PoC
- [x] Suporte a xray v1
- [ ] Suporte a xray v2
- [x] Módulo server
- [x] Módulo servidor SOCKS
- [x] Autenticação por nome de usuário e senha
- [x] Módulo servidor HTTP
- [x] Função de autenticação
- [x] Função de upload de arquivos
- [x] Módulo tool
- [x] Módulo NC
- [x] Função de escuta de porta
- [x] Função de conexão de porta
- [x] Função de busca de arquivos
- [x] Busca simultânea de múltiplos arquivos, multithread
- [x] Busca por expressão regular
- [ ] Busca por conteúdo de arquivo
- [ ] Função de compactação de pastas
- [x] Módulo exploit
- [x] Módulo SSHLogin
- [x] Login com nome de usuário e senha (interativo)
- [x] Login com chave (interativo)
- [x] Módulo Redis
- [x] Executar comandos Redis
- [x] Vulnerabilidade de fuga de sandbox Lua
- [x] RCE via replicação mestre-escravo
- [x] Consulta LDAP
- [ ] Consulta SNMP
- [ ] Módulo WMI
- [ ] ..........
### Funcionalidades da Própria Ferramenta
- [x] Saída de resultados para arquivo
- [x] Registro de logs de cada execução
- [x] Configuração de threads (escaneamento suporta threads ultra-altas)
- [x] Configuração de timeout
- [x] Função de proxy
- [ ] Proxy para protocolo UDP
- [x] Proxy para protocolo TCP
- [x] Proxy para brute force e execução de comandos
- [x] MySQL
- [ ] MSSQL
- [x] Redis
- [x] MongoDB
- [ ] PostgreSQL
- [x] SSH
- [x] FTP
- [x] Leitura de alvos a partir de arquivo
- [x] Suporte a dicionários enormes para brute force
- [ ] ..........
### Objetivos Futuros
- [ ] Melhorar os módulos de brute force dos servidores atuais, suportar mais comandos, buscar uso sem obstáculos e adicionar módulos de exploração de banco de dados (após brute force bem-sucedida)
- [ ] MySQL
- [ ] MSSQL
- [ ] PostgreSQL
- [ ] MongoDB
- [ ] FTP
- [ ] Criar versão simplificada do zscna
- [ ] Remover todos os drivers de banco de dados para reduzir tamanho (custo: não poder executar comandos)
- [ ] Remover módulos de banco de dados pouco usados ou inúteis
Agradecemos pelas estrelas, pessoal! 🥳
Sinta-se à vontade para relatar problemas 👏
Fiquem à vontade para compartilhar impressões digitais web e PoCs
Quem gosta de escrever ferramentas em Go pode se juntar a nós: [email protected] 😃
Basta especificar o alvo
--pocthread:poc扫描的线程
--url/--urlfile:指定目标,-u/--url指定单个,可以通过指定txt批量扫描
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
开一个简单的http服务器,能下载文件和上传文件,上传文件需要使用-u参数
-a指定监听的ip和地址
-d指定httpserver开启的根目录
-P和-U设置身份验证的用户名密码
git clone https://github.com/moonD4rk/HackBrowserData.git
cd HackBrowserData
go build -o HackBrowserData main.go
./HackBrowserData -b chrome -o output_dir
| Parâmetro | Descrição |
|---|---|
-b | Tipo de navegador (chrome/firefox/edge/opera/brave/vivaldi) |
-o | Diretório de saída |
-f | Formato de exportação (csv/json/text) |
-r | Recuperar automaticamente o keychain (necessário no macOS) |
-v | Exibir número da versão |
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>Módulo searchfile: pesquisa de arquivos multithread com suporte a 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指定搜索的根目录,linux可以使用相对路径,winsows上需要绝对路径
-f指定要搜索的文件名,可以使用-f 文件名1 -f 文件名2 来搜索多个文件
-r是使用正则,其实本质上-f也是使用正则只不过给替换成^文件名$
--walk是指遍历开启线程的目录深度:逻辑上是在给定的目录下面遍历有多少文件夹,然后开启多少线程去遍历这些子文件夹,所有这个深度不要太高,虽然越深越快,但是会导致cpu利用过高(三层其实就已经会占用很高了,所以特殊场景建议使用1)
Pode consultar usando --walk e --get
Se a senha não for especificada, o padrão é usar 'public'
-c用来执行普通的redis命令模式
--exec: executa o modo de comando usando replicação mestre-escravo
--upload: modo de upload de arquivo usando replicação mestre-escravo
--lua: usa o modo de vulnerabilidade de escape de sandbox Lua
Um desses quatro parâmetros é obrigatório
--detpath: usado para especificar o caminho absoluto para o qual a replicação mestre-escravo fará upload do arquivo para o destino
--lport: porta que o nó mestre (ou seja, zscan) escuta durante a replicação mestre-escravo, padrão 20001
--lhost: endereço que o nó mestre (ou seja, zscan) escuta durante a replicação mestre-escravo, é necessário garantir que o redis alvo possa acessá-lo
--so: arquivo so carregado no alvo ao executar comandos de replicação mestre-escravo
--srcpath: arquivo fonte para upload de arquivos de replicação mestre-escravo