<summary><strong>Aprenda hacking no AWS do zero ao herói com</strong><ahref="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
* Se você quer ver sua **empresa anunciada no HackTricks** ou **baixar o HackTricks em PDF**, confira os [**PLANOS DE ASSINATURA**](https://github.com/sponsors/carlospolop)!
* Adquira o [**material oficial PEASS & HackTricks**](https://peass.creator-spring.com)
* Descubra [**A Família PEASS**](https://opensea.io/collection/the-peass-family), nossa coleção de [**NFTs**](https://opensea.io/collection/the-peass-family) exclusivos
* **Junte-se ao grupo** 💬 [**Discord**](https://discord.gg/hRep4RUj7f) ou ao grupo [**telegram**](https://t.me/peass) ou **siga-me** no **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/carlospolopm)**.**
* **Compartilhe suas técnicas de hacking enviando PRs para os repositórios github do** [**HackTricks**](https://github.com/carlospolop/hacktricks) e [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud).
* **`-sL`**: Não é invasivo, lista os alvos fazendo solicitações **DNS** para resolver nomes. É útil para saber se, por exemplo, www.prueba.es/24 todas as Ips são nossos alvos.
* **`-Pn`**: **No ping**. Isso é útil se você sabe que todos eles estão ativos (se não, você poderia perder muito tempo, mas essa opção também produz falsos negativos dizendo que eles não estão ativos), evita a fase de descoberta.
* **`-sn`** : **No port scan**. Após completar a fase de reconhecimento, não escaneia portas. É relativamente furtivo e permite um pequeno escaneamento de rede. Com privilégios, envia um ACK (-PA) para 80, um SYN(-PS) para 443 e uma solicitação de eco e uma solicitação de Timestamp, sem privilégios, sempre completa conexões. Se o alvo for a rede, só usa ARP(-PR). Se usado com outra opção, apenas os pacotes da outra opção são descartados.
* **`-PR`**: **Ping ARP**. É usado por padrão ao analisar computadores em nossa rede, é mais rápido do que usar pings. Se você não quiser usar pacotes ARP, use `--send-ip`.
* **`-PS <ports>`**: Envia pacotes SYN para os quais, se responder SYN/ACK, está aberto (para o qual responde com RST para não terminar a conexão), se responder RST está fechado e se não responder está inacessível. Caso não tenha privilégios, é usado automaticamente uma conexão total. Se nenhum porto for dado, ele joga para 80.
* **`-PA <ports>`**: Como o anterior, mas com ACK, combinando ambos dá melhores resultados.
* **`-PU <ports>`**: O objetivo é o oposto, são enviados para portas que se espera que estejam fechadas. Alguns firewalls só verificam conexões TCP. Se estiver fechado, é respondido com porta inacessível, se for respondido com outro icmp ou não respondido, é deixado como destino inacessível.
* **`-PE, -PP, -PM`** : ICMP PINGS: replay de eco, timestamp e addresmask. São lançados para descobrir se o alvo está ativo.
* **`-PY<ports>`**: Envia sondas SCTP INIT para 80 por padrão, INIT-ACK(aberto) ou ABORT(fechado) ou nada ou ICMP inacessível(inativo) pode ser respondido.
* **`-PO <protocols>`**: Um protocolo é indicado nos cabeçalhos, por padrão 1(ICMP), 2(IGMP) e 4(Encap IP). Para os protocolos ICMP, IGMP, TCP (6) e UDP (17), os cabeçalhos do protocolo são enviados, para o resto, apenas o cabeçalho IP é enviado. O propósito disso é que, devido à má formação dos cabeçalhos, Protocolo inacessível ou respostas do mesmo protocolo são respondidas para saber se está ativo.
* **`-n`**: No DNS
* **`-R`**: DNS sempre
### Técnicas de escaneamento de portas
* **`-sS`**: Não completa a conexão, então não deixa rastro, muito bom se puder ser usado.(privilégios) É o que é usado por padrão.
* **`-sT`**: Completa a conexão, então deixa rastro, mas pode ser usado com certeza. Por padrão sem privilégios.
* **`-sU`**: Mais lento, para UDP. Principalmente: DNS(53), SNMP(161,162), DHCP(67 e 68), (-sU53,161,162,67,68): aberto(resposta), fechado(porta inacessível), filtrado (outro ICMP), aberto/filtrado (nada). Em caso de aberto/filtrado, -sV envia numerosas solicitações para detectar qualquer uma das versões que o nmap suporta e pode detectar o verdadeiro estado. Aumenta muito o tempo.
* **`-sY`**: Protocolo SCTP falha em estabelecer a conexão, então não há logs, funciona como -PY
* **`-sN,-sX,-sF`:** Null, Fin, Xmas, podem penetrar em alguns firewalls e extrair informações. Baseiam-se no fato de que máquinas em conformidade com o padrão devem responder com RST todas as solicitações que não têm as flags SYN, RST ou ACK levantadas: aberto/filtrado(nada), fechado(RST), filtrado (ICMP inacessível). Não confiável no Windows, Cisco, BSDI e OS/400. No unix sim.
* **`-sM`**: Maimon scan: Envia flags FIN e ACK, usado para BSD, atualmente retornará todos como fechados.
* **`-sA, sW`**: ACK e Janela, é usado para detectar firewalls, para saber se os portos estão filtrados ou não. O -sW distingue entre aberto/fechado, pois os abertos respondem com um valor de janela diferente: aberto (RST com janela diferente de 0), fechado (RST janela = 0), filtrado (ICMP inacessível ou nada). Nem todos os computadores funcionam dessa maneira, então se tudo estiver fechado, não está funcionando, se for alguns abertos, está funcionando bem, e se for muitos abertos e poucos fechados, está funcionando ao contrário.
* **`-sI`:** Idle scan. Para os casos em que há um firewall ativo, mas sabemos que ele não filtra para um certo Ip (ou quando simplesmente queremos anonimato), podemos usar o scanner zumbi (funciona para todos os portos), para procurar possíveis zumbis podemos usar o script ipidseq ou o exploit auxiliary/scanner/ip/ipidseq. Este scanner baseia-se no número IPID dos pacotes IP.
* **`--badsum`:** Envia a soma errada, os computadores descartariam os pacotes, mas os firewalls poderiam responder algo, é usado para detectar firewalls.
* **`-sZ`:** Scanner SCTP "estranho", ao enviar sondas com fragmentos de eco de cookie, eles devem ser descartados se abertos ou respondidos com ABORT se fechados. Pode passar por firewalls que o init não passa, o ruim é que não distingue entre filtrado e aberto.
* **`-sO`:** Protocolo Ip scan. Envia cabeçalhos ruins e vazios nos quais às vezes nem o protocolo pode ser distinguido. Se chegar ICMP protocolo inacessível está fechado, se chegar porta inacessível está aberto, se chegar outro erro, filtrado, se não chegar nada, aberto|filtrado.
* **`-b <server>`:** FTPhost--> É usado para escanear um host a partir de outro, isso é feito conectando-se ao ftp de outra máquina e pedindo para enviar arquivos para os portos que você deseja escanear de outra máquina, de acordo com as respostas saberemos se estão abertos ou não. \[\<user>:\<password>@]\<server>\[:\<port>] Quase todos os servidores ftp não permitem mais fazer isso e, portanto, é de pouca utilidade prática.
**-p:** Serve para dar os portos a escanear. Para selecionar os 65335: **-p-** ou **-p all**. O Nmap tem uma classificação interna de acordo com sua popularidade. Por padrão, usa os 1000 principais. Com **-F** (fast scan) analisa os 100 principais. Com **--top-ports \<numero>** Analisa esse número de principais (de 1 até 65335). Verifica os portos em ordem aleatória, para que isso não aconteça **-r**. Também podemos selecionar portos: 20-30,80,443,1024- Isso último significa que olhe para frente do 1024. Também podemos agrupar os portos por protocolos: U:53,T:21-25,80,139,S:9. Também podemos escolher um intervalo dentro dos portos populares do nmap: -p \[-1024] analisa até o 1024 dos incluídos em nmap-services. **--port-ratio \<ratio>** Analisa os portos mais comuns que uma proporção que deve estar entre 0 e 1
**--version-intensity \<numero>** Regulamos a intensidade, de forma que quanto mais baixo só lançará as sondas mais prováveis, mas não todas. Com isso podemos reduzir consideravelmente o tempo de escaneamento UDP
**--osscan-limit** Para escanear bem um host é necessário que pelo menos haja 1 porto aberto e outro fechado, se não for dada essa condição e tivermos colocado isso, não tenta fazer previsão de os (economiza tempo)
**Para usar um script só tem que colocar: namp --script Nome\_do\_script objetivo** --> Ao colocar o script, será executado tanto o script quanto o escaner, então também se podem colocar opções do escaner, podemos adicionar **“safe=1”** para que se executem só os que são seguros.
Nmap divide o número total de host a escanear em grupos e analisa esses grupos em blocos de forma que até que não tenham sido analisados todos, não passa ao seguinte bloco (e o usuário também não recebe nenhuma atualização até que se tenha analisado o bloco) de esta forma, é mais ótimo para nmap usar grupos grandes. Por defeito em classe C usa 256.
Pode-se controlar o número de escaners em paralelo, mas é melhor que não (nmap já incorpora controle automático baseado no estado da rede): **--min-parallelism** _**\<numprobes>**_**;** **--max-parallelism** _**\<numprobes>**_
Podemos modificar o rtt timeout, mas não costuma ser necessário: **--min-rtt-timeout** _**\<time>**_**,** **--max-rtt-timeout** _**\<time>**_**,** **--initial-rtt-timeout** _**\<time>**_
Muitos portos demoram muito em responder ao estar filtrados ou fechados, se só nos interessam os abertos, podemos ir mais rápido com: **--defeat-rst-ratelimit**
**-f** Para fragmentar pacotes, por defeito os fragmenta em 8bytes depois da cabeçalha, para especificar esse tamanho usamos ..mtu (com isso, não usar -f), o offset deve ser múltiplo de 8. **Escaners de versão e scripts não suportam a fragmentação**
**-D decoy1,decoy2,ME** Nmap envia escaneres, mas com outras direções IPs como origem, dessa forma te escondem a ti. Se colocares o ME na lista, nmap te situará aí, melhor colocar 5 ou 6 antes de ti para que te mascarem completamente. Pode-se gerar IPs aleatórias com RND:\<numero> Para gerar \<numero> de IPs aleatórias. Não funcionam com detector de versões sem conexão de TCP. Se estás dentro de uma rede, te interessa usar IPs que estejam ativas, pois senão será muito fácil descobrir que tu és a única ativa.
Muitos administradores deixam portos de entrada abertos para que tudo funcione corretamente e lhes é mais fácil que buscar outra solução. Estes podem ser os portos DNS ou os de FTP... para buscar essa vulnerabilidade nmap incorpora: **--source-port** _**\<portnumber>**_**;-g** _**\<portnumber>**__São equivalentes_