2. OSINT et reconnaissance

Description et Objectifs:


https://book.hacktricks.xyz/generic-methodologies-and-resources/pentesting-network#discovering-hosts
Il est essentiel d'effectuer de la reconnaissance sur la cible de l'attaque, le but étant de découvrir le périmètre du SI de la cible. Selon moi, découvrir le réseau physique et le potentiel d'une attaque dessus fait aussi partie de l'étape d'OSINT.

Assets discovery


En gros c'est une découverte externe des services d'une entreprise
MALTEGO #TODO

Host


https://book.hacktricks.xyz/generic-methodologies-and-resources/pentesting-network#sniffing

Azure :


Def et Fonctionnement :


Microsoft Entra ID est un identity provider qui remplace Active directory dans le cloud et offre de nombreuses options de sécurité qui rendent les attaques plus difficiles.

Étapes d'attaques :


Détection :


Détection tenant Azure

Fonctionnement :


scripter ca et faire une wordlist (publier l'outil sur github à chaque fois)
D'abord on veut détecter si l'entreprise possède un Az AD, on peut le faire avec :

https://login.microsoftonline.com/getuserrealm.srf?login=username@gothamlab.onmicrosoft.com&xml=1

En remplaçant gothamlab par le nom de la boîte :
Pasted image 20240610154839.png
Si le nom managed apparait alors la boîte possède un Az AD.
https://www.synacktiv.com/en/publications/azure-ad-introduction-for-red-teamers

Reconnaissance non connecté :


Une fois le tenant trouvé on va essayer de détecter quels comptes sont présents sur le tenant.

Détection de comptes sur le tenant :


Tool : https://github.com/nyxgeek/AzureAD_Autologon_Brute?tab=readme-ov-file
Voici la commande initiale :

python3 azuread_autologon_brute.py -d test.microsoft.com -U users.txt -p test

Avec :

BBBBB@gothamlab.onmicrosoft.com@microsoft.com
CCCCC@gothamlab.onmicrosoft.com@microsoft.com
DDDDD@gothamlab.onmicrosoft.com@microsoft.com
EEEEE@gothamlab.onmicrosoft.com@microsoft.com
FFFFF@gothamlab.onmicrosoft.com@microsoft.com
GGGGG@gothamlab.onmicrosoft.com@microsoft.com
HHHHH@gothamlab.onmicrosoft.com@microsoft.com
IIIII@gothamlab.onmicrosoft.com@microsoft.com
JJJJJ@gothamlab.onmicrosoft.com@microsoft.com
KKKKK@gothamlab.onmicrosoft.com@microsoft.com
LLLLL@gothamlab.onmicrosoft.com@microsoft.com
MMMMM@gothamlab.onmicrosoft.com@microsoft.com
NNNNN@gothamlab.onmicrosoft.com@microsoft.com
OOOOO@gothamlab.onmicrosoft.com@microsoft.com
PPPPP@gothamlab.onmicrosoft.com@microsoft.com
QQQQQ@gothamlab.onmicrosoft.com@microsoft.com
RRRRR@gothamlab.onmicrosoft.com@microsoft.com
SSSSS@gothamlab.onmicrosoft.com@microsoft.com
TTTTT@gothamlab.onmicrosoft.com@microsoft.com

Cet outil permet de détecter les comptes actifs et disponibles.

Ressources :
https://www.synacktiv.com/en/publications/azure-ad-introduction-for-red-teamers
https://cloud.hacktricks.xyz/pentesting-cloud/azure-security/az-azuread

IP discovery


Le scan d'IP peut utiliser :

NMAP :

IP Discovery

Il est possible de faire de la détection d'adresses IP sur un réseau avec nmap par exemple :

nmap -sn 172.23.132.18-254

La balise -sn permet de désactiver le scanning de ports.
Comme pour le scanning de ports, il est possible de changer le type de prob envoyées en changeant le scanning type.
Il est aussi possible de scanner les ports en même temps que l'on trouve leurs adresses IPs. On peut aussi sauvegarder le scan de port afin de réutiliser les adresses IP.
L'option -Pn permet de skipper l'étape de ping.
Pourquoi ? Nmap ping d'abord les machines pour voir si elle sont actives avant de faire autre chose (par exemple un port scan ACK). Cela permet d'éviter les firewall qui ne laissent pas passer les pings.

Evasion Firewall

Dans le cas où un firewall est présent, il est possile

Port Scan


Le port scan peut utiliser NMAP avec cette technique :

Port Scanning

La commande la plus simple est :

nmap <ip of machine>

Il est possible de préciser les ports à scanner ou un range de ports :

nmap -p 22,80,443 <IP address of the second VM>
ou
nmap -p 1-100 <IP address of the second VM

L'option -sV est très importante puisqu'elle permet de tenter de découvrir quels services run sur les ports. Aussi -A permet une analyse plus précise pour découvri de nombreuses choses.
Dans le cas où des défenses sont présentes, il faut faire des variations de scan ou changer le timing.

On peut faire suivre plusieurs scans pour être de plus en plus précis dans nos scans :
On peut commencer par un scan très brute :

nmap -p 1-1000 <IP> -sS -T5 -A -sV -v -oN result.txt

le but est de scanner la cible de manière très rapide et d'obtenir des informations rapidement. (-oN permet de créer un fichier pour l'utiliser ensuite)
Si on obtient pas assez de résultats, on peut ralentir la cadence et être moins offensif pour simplement obtenir la liste des ports ouvers:

nmap -p 1-1000 <IP> -sX -T3 -v -oG result.txt

BONUS :
La commande

cat result.txt | grep '/[a-z][a-z][a-z] open' | cut -d'/' -f1 | paste -sd, -

permet de récupérer les ports qui sont ouverts précédemment pour les réutiliser plus tard.
Exemple pour scanner un pc de manière discrète avec ces nouveaux ports :

nmap -p $(cat result.txt | grep '/[a-z][a-z][a-z] open' | cut -d'/' -f1 | paste -sd, -) <IP> -sS -T1 -v -sV

Ce scan peut prendre de nombreuses minutes il faut donc bien réduire le nombre de ports à scanner.

Service and Version discovery


(et utilisation de failles dans les anciennes versions)

Hosts discovery :


Le but ici est de découvrir les hosts du service interne.
#TODO