
Divida os resultados completos da varredura de portas e use-os para execuções direcionadas do Nmap.
Divida Et Impera E Escaneie (e também mescle os resultados da varredura)
DivideAndScan é usado para automatizar eficientemente a rotina de varredura de portas, dividindo-a em 3 fases:
Para a 1ª fase, pretende-se usar um scanner de portas rápido*, cuja saída é analisada e armazenada em um único arquivo de banco de dados (TinyDB). Em seguida, durante a 2ª fase, varreduras Nmap individuais são lançadas para cada alvo com seu conjunto de portas abertas (o multiprocessamento é suportado) de acordo com os dados do banco de dados. Finalmente, na 3ª fase, as saídas Nmap separadas são mescladas em um único relatório em diferentes formatos (XML / HTML / texto simples / grepable) com nMap_Merger. A parte de visualização é fornecida pelo DrawNmap.
Casos de uso potenciais:
* Scanners de porta disponíveis:
AVISO. Todas as informações contidas neste repositório são fornecidas apenas para fins educacionais e de pesquisa. O autor não é responsável por qualquer uso ilegal desta ferramenta.

Para dividir e escanear com sucesso, precisamos de algumas boas ferramentas de varredura de portas (nos exemplos abaixo, os lançamentos do GitHub são obtidos via eget).
📑 Nota: se você não quiser lidar com dependências no seu sistema operacional host, vá para a parte do Docker.
sudo apt install nmap xsltproc -y
sudo nmap --script-updatedb
pushd /tmp
wget https://github.com/ivre/masscan/archive/refs/heads/master.zip -O masscan-master.zip
unzip masscan-master.zip
cd masscan-master
make
sudo make install
popd && rm -rf /tmp/masscan-master*
eget -t 2.0.1 -a amd64 RustScan/RustScan --to /tmp/rustscan.deb
sudo dpkg -i /tmp/rustscan.deb && rm /tmp/rustscan.deb
sudo wget https://gist.github.com/snovvcrash/8b85b900bd928493cd1ae33b2df318d8/raw/fe8628396616c4bf7a3e25f2c9d1acc2f36af0c0/rustscan-ports-top1000.toml -O /root/.rustscan.toml
sudo mkdir /opt/naabu
sudo eget -s linux/amd64 projectdiscovery/naabu --to /opt/naabu
sudo ln -sv /opt/naabu/naabu /usr/local/bin/naabu
sudo mkdir /opt/nimscan
sudo eget -a NimScan elddy/NimScan --to /opt/nimscan
sudo ln -sv /opt/nimscan/nimscan /usr/local/bin/nimscan
sudo mkdir /opt/sx
sudo eget -s linux/amd64 v-byte-cpu/sx --to /opt/sx
sudo ln -sv /opt/sx/sx /usr/local/bin/sx
sudo mkdir /opt/pd
sudo eget -s linux/amd64 projectdiscovery/dnsx --to /opt/pd
sudo ln -sv /opt/pd/dnsx /usr/local/bin/dnsx
DivideAndScan está disponível no PyPI como divideandscan, embora eu recomende instalá-lo a partir do GitHub com pipx para ter sempre a versão mais recente:
~$ pipx install -f "git+https://github.com/snovvcrash/DivideAndScan.git"
~$ das
Há também um lançamento empacotado com shiv (embora com tamanho de arquivo grande):
# shiv -e das.divideandscan:main -o das.pyz divideandscan
~$ wget https://github.com/snovvcrash/DivideAndScan/releases/latest/download/das.pyz && chmod +x das.pyz
~$ ./das.pyz
Para fins de depuração, você pode configurar um ambiente de desenvolvimento com poetry:
~$ git clone --recurse-submodules https://github.com/snovvcrash/DivideAndScan
~$ cd DivideAndScan
~$ poetry install
~$ poetry run das
📑 Nota: DivideAndScan usa sudo para executar todos os scanners de porta, então solicitará a senha quando os comandos de varredura forem invocados.
Você pode executar DivideAndScan em um contêiner Docker da seguinte forma:
~$ docker run --rm -it --name das -v ~/.das:/root/.das -v `pwd`:/app -p 8050:8050 snovvcrash/divideandscan
Como a ferramenta requer alguns dados de entrada e produz alguns dados de saída, você deve especificar seu diretório de trabalho atual como ponto de montagem em /app dentro do contêiner. Além disso, publicar a porta 8050 no host permite acessar o aplicativo Dash usado para visualização de relatórios Nmap.
Você pode querer definir um alias para tornar o comando base mais curto:
~$ alias das='docker run --rm -it --name das -v ~/.das:/root/.das -v `pwd`:/app -p 8050:8050 snovvcrash/divideandscan'
~$ das

Vamos enumerar portas abertas para todas as máquinas ativas no Hack The Box.
-p1-49151. Na segunda captura de tela, estou revisando os resultados da varredura por hosts e por portas:~$ das -db htb add -rm masscan '-e tun0 --rate 1000 -iL hosts.txt -p1-49151 --open'
~$ das -db htb scan -hosts all -show
~$ das -db htb scan -ports all -show
~$ das -db htb scan -hosts all -oA report
~$ das -db htb scan -hosts all -oA report -nmap '-Pn -sVC -O' -parallel
Você pode emparelhar seu scanner de portas favorito com DivideAndScan implementando um único método parse para sua saída em das/parsers/DUMMY_SCANNER.py (veja exemplo para masscan):
from das.parsers import IAddPortscanOutput
class AddPortscanOutput(IAddPortscanOutput):
"""Classe filha para processar a saída do DUMMY_SCANNER."""
def parse(self):
"""
Analisador de saída bruta do DUMMY_SCANNER.
:return: um par de valores (nome do arquivo de saída bruta do portscan, número de hosts adicionados ao BD)
:rtype: tuple
"""
hosts = set()
for line in self.portscan_raw:
# Implementação do analisador DUMMY_SCANNER
pass
return (self.portscan_out, len(hosts))
usage: das [-h] [-db DB] {db,add,scan,dns,report,parse,draw,tree,help} ...
-----------------------------------------------------------------------------------------------
| ________ .__ .__ .___ _____ .____________ |
| \______ \ |__|__ _|__| __| _/____ / _ \ ____ __| _/ _____/ ____ _____ ____ |
| | | \| \ \/ / |/ __ |/ __ \ / /_\ \ / \ / __ |\_____ \_/ ___\\__ \ / \ |
| | ` \ |\ /| / /_/ \ ___// | \ | \/ /_/ |/ \ \___ / __ \| | \ |
| /_______ /__| \_/ |__\____ |\___ >____|__ /___| /\____ /_______ /\___ >____ /___| / |
| \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ |
| {@snovvcrash} {https://github.com/snovvcrash/DivideAndScan} {vX.Y.Z} |
-----------------------------------------------------------------------------------------------
argumentos posicionais:
{db,add,scan,dns,report,parse,draw,tree,help}
db utilitários para manipulações manuais do BD
add executar uma varredura completa de portas e adicionar a saída ao BD
scan executar varreduras Nmap direcionadas contra hosts e portas do BD
dns mapear nomes de domínio de um arquivo de entrada para endereços IP correspondentes do BD
report mesclar saídas Nmap separadas em um único relatório (https://github.com/CBHue/nMap_Merger)
parse analisar relatórios Nmap XML brutos por nomes de serviço e imprimir entradas no formato {serviço}://{host}:{porta}
draw visualizar relatórios Nmap XML (https://github.com/jor6PS/DrawNmap)
tree mostrar o conteúdo do diretório ~/.das/ usando tree
help mostrar o diálogo --help embutido de um scanner de portas selecionado
opções:
-h, --help mostrar esta mensagem de ajuda e sair
-db DB nome do BD para trabalhar
Psst, ei amigo... Quer fazer um p0r7 5c4nn1n6 organizado?
fuff para automatizar fuzzing de diretórios webparse)|
Forneça ao módulo ⚠️ Aviso: por favor, certifique-se de que entende o que está fazendo, porque quase todas as ferramentas de varredura de portas podem danificar o sistema que está sendo testado se usadas de forma inadequada. Quando o módulo inicia seu trabalho, um diretório |
|
Inicie varreduras Nmap direcionadas com o módulo Para iniciar o Nmap simultaneamente em múltiplos processos, especifique a opção O formato de saída é selecionado com as opções Além disso, você pode inspecionar o conteúdo do banco de dados com a opção |
|
Para gerar um relatório independentemente do módulo 📑 Nota: lembre-se de que o módulo |