Ao conduzir um teste de penetração na rede interna de uma empresa, um dos primeiros vetores de ataque a ser considerado em redes Windows é encontrar e comprometer sistemas operacionais sem suporte com exploits públicos e conhecidos. Na maioria das vezes, o serviço SMB é usado. Outro problema para administradores de sistema é a falta de documentação de rede. Um pentester e / ou analista de segurança de informações de rede pode enfrentar a inteligência de rede da caixa preta em uma situação ocupada ou com a negligência total da equipe responsável pela operação. Em particular, administradores (a tese é confirmada pela pesquisa de colegas da Positive Technologies ).
Vamos formular e expandir ligeiramente o caso
É necessário um tempo adequado para localizar todos os sistemas operacionais Windows sem suporte na rede local de uma empresa com mais de 10 mil hosts, provavelmente com exploits SMB públicos.
Uma limitação do método pode ser a segmentação da rede quando algumas sub-redes são fechadas do host do pesquisador.
Quem se importa, bem-vindo sob o gato ...
ATENÇÃO! O aplicativo masscan usado neste artigo pode matar toda a rede, é uma ferramenta muito poderosa. Teste previamente sua rede em diferentes parâmetros de taxa.
- A lista de todos os endereços IP privados possíveis pode ser gravada com três máscaras 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16
Nós os inserimos em um arquivo.
root@debSec:~/search_old_os# vim subnet.lst

Para determinar rapidamente todas as sub-redes usadas, usamos masscan no modo de varredura de ping.
root@debSec:~/search_old_os# masscan --ping --rate 10000 -iL subnet.lst -oX fast_ping_scan.xml
30 . .

: , . , .
root@debSec:~/search_old_os# masscan --ping --rate 1000 -iL subnet.lst -oX fast_ping_scan.xml
.
root@debSec:~/search_old_os# cat fast_ping_scan.xml|grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'

, masscan rate 10000 . rate , 24.
root@debSec:~/search_old_os# cat fast_ping_scan.xml|grep -Eo '([0-9]{1,3}\.){3}'|sort|uniq|sed -e 's/$/0\/24/'>target_subnet.lst
499 .

masscan c rate, , 1000 .
root@debSec:~/search_old_os# masscan --ping --rate 1000 -iL target_subnet.lst -oX target_ping_scan.xml
2 , 28 . , rate 100. 20 .
, 10296 .

, , 99.91% . , .
.
root@debSec:~/search_old_os# cat target_ping_scan.xml|grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'|sort|uniq >target_ping_scan.lst
, , .
SMB. , 139,445.
msscan , .
root@debSec:~/search_old_os# masscan --port 139,445 --rate 100 -iL target_ping_scan.lst -oX ip_smb.xml
SMB, , IP.
root@debSec:~/search_old_os# cat ip_smb.xml|grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'|sort|uniq >ip_smb.lst
?
. : nse nmap.
root@debSec:~/search_old_os# nmap -Pn --script smb-vuln* -p139,445 -iL ip_smb.lst -oA nmap_smb_vuln
nmap 71 ~10 .


11 .
nmap, OS SMB.
root@debSec:~/search_old_os# nmap --script smb-os-discovery.nse -p 445,139 -iL total_smb.lst -oA all_os
( , , nmap )
, .
, .
OS. , :
root@debSec:~/search_old_os# cat all_os.nmap |grep -B 10 -E 'Windows v1|Windows Server v2|Windows v3|Windows v4|Windows v5|Windows v6' >FINAL_TOTAL_OLD_WINDOWS_FULL.lst
IP.
root@debSec:~/search_old_os# cat FINAL_TOTAL_OLD_WINDOWS_FULL.lst|grep -Eo '([0-9]{1,3}\.){3}[0-9]{1,3}'|sort|uniq >FINAL_TOTAL_OLD_WINDOWS_FULL.lst
65 .
metasploit . . .
, .
:
- .
- - .
- "", RedTeam.
- ( ).
:
- . — , .
- ActiveDirectory.
- . , , Nessus. , ( ).
O método não é o único e não é o melhor, mas nas minhas condições era o único aceitável. Espero que alguém seja útil ...