mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-27 15:12:11 +00:00
244 lines
35 KiB
Markdown
244 lines
35 KiB
Markdown
# Le spoofing de SSDP et des dispositifs UPnP avec EvilSSDP
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Travaillez-vous dans une entreprise de **cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
|
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Partagez vos astuces de piratage en soumettant des PR au [repo hacktricks](https://github.com/carlospolop/hacktricks) et au [repo hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
|
|
|
</details>
|
|
|
|
**Ce post a été copié depuis** [**https://www.hackingarticles.in/evil-ssdp-spoofing-the-ssdp-and-upnp-devices/**](https://www.hackingarticles.in/evil-ssdp-spoofing-the-ssdp-and-upnp-devices/)
|
|
|
|
## **Introduction**
|
|
|
|
### **Qu'est-ce que SSDP ?**
|
|
|
|
SSDP ou Simple Service Discovery Protocol est un protocole de réseau conçu pour la **publicité et la découverte des services de réseau**. Il peut fonctionner sans aucune configuration DHCP ou DNS. Il a été conçu pour être utilisé dans des environnements résidentiels ou de petits bureaux. Il utilise UDP comme protocole de transport sous-jacent sur le **port 1900**. Il utilise la méthode HTTP NOTIFY pour annoncer l'établissement ou le retrait de services à un groupe multicast. C'est la base du protocole de découverte UPnP.
|
|
|
|
### **Quels sont les dispositifs UPnP ?**
|
|
|
|
UPnP ou Universal Plug and Play est un ensemble de **protocoles de réseau** qui permettent aux dispositifs en réseau, tels que les ordinateurs personnels, les imprimantes, les passerelles Internet, les points d'accès Wi-Fi et les dispositifs mobiles de **découvrir la disponibilité de chacun sur le réseau** et d'établir des services de réseau pour les communications, le partage de données et de divertissement. L'architecture UPnP prend en charge le réseau de configuration zéro. Un dispositif compatible UPnP de n'importe quel fournisseur peut rejoindre dynamiquement un réseau, obtenir une adresse IP, **annoncer son nom, annoncer ou transmettre ses capacités** sur demande et apprendre la présence et les capacités d'autres dispositifs.
|
|
|
|
### **Flux**
|
|
|
|
La pile **UPnP** se compose de **six couches** : adressage, découverte, description, contrôle, événement et présentation.
|
|
|
|
Dans la couche d'adressage, les systèmes compatibles UPnP essaient d'obtenir une adresse IP via **DHCP**. Si cela n'est pas possible, ils **s'assignent une adresse** de la plage 169.254.0.0/16 (RFC 3927), un processus connu sous le nom d'AutoIP.
|
|
|
|
Ensuite, vient la couche de découverte, dans laquelle le système recherche d'autres dispositifs sur le réseau en utilisant le **Simple Service Discovery Protocol** (SSDP). Les deux façons de découvrir les dispositifs sont **activement** et **passivement**. Lors de l'utilisation de la méthode **active**, les dispositifs compatibles UPnP **envoient un message de découverte** (appelé une **requête M-SEARCH**) à l'adresse multicast **239.255.255.250 sur le port UDP 1900.** Nous appelons cette requête HTTPU (HTTP sur UDP) car elle contient un en-tête similaire à l'en-tête HTTP. La requête M-SEARCH ressemble à ceci :
|
|
```
|
|
M-SEARCH * HTTP/1.1
|
|
ST: ssdp:all
|
|
MX: 5
|
|
MAN: ssdp:discover
|
|
HOST: 239.255.255.250:1900
|
|
```
|
|
Les systèmes UPnP qui écoutent cette demande doivent répondre avec un message unicast UDP qui annonce l'emplacement HTTP du fichier XML de description, qui répertorie les services pris en charge par le périphérique.
|
|
|
|
Lors de l'utilisation de la méthode **passive** pour découvrir des périphériques, les périphériques compatibles UPnP annoncent périodiquement leurs services sur le réseau en envoyant un message **NOTIFY à l'adresse multicast** 239.255.255.250 sur le port UDP 1900. Ce message, qui suit, ressemble à celui envoyé en réponse à la découverte active:
|
|
```
|
|
NOTIFY * HTTP/1.1\r\n
|
|
HOST: 239.255.255.250:1900\r\n
|
|
CACHE-CONTROL: max-age=60\r\n
|
|
LOCATION: http://192.168.10.254:5000/rootDesc.xml\r\n
|
|
SERVER: OpenWRT/18.06-SNAPSHOT UPnP/1.1 MiniUPnPd/2.1\r\n
|
|
NT: urn:schemas-upnp-org:service:WANIPConnection:2
|
|
```
|
|
La description de chaque profil UPnP est référencée soit dans la valeur du champ LOCATION du message de réponse reçu lors de la découverte active, soit dans le message NOTIFY reçu lors de la découverte passive.
|
|
|
|
La couche de contrôle est probablement la plus importante; elle permet aux clients d'envoyer des commandes au dispositif UPnP en utilisant les URL du fichier de description. Ils peuvent le faire en utilisant le protocole SOAP (Simple Object Access Protocol), un protocole de messagerie qui utilise XML sur HTTP. Les dispositifs envoient des requêtes SOAP à l'endpoint controlURL, décrit dans la balise \<service> à l'intérieur du fichier de description. Une balise \<service> ressemble à ceci:
|
|
```xml
|
|
<service>
|
|
<serviceType>urn:schemas-upnp-org:service:WANIPConnection:2</serviceType>
|
|
<serviceId>urn:upnp-org:serviceId:WANIPConn1</serviceId>
|
|
<SCPDURL>/WANIPCn.xml</SCPDURL>
|
|
<controlURL>/ctl/IPConn</controlURL>
|
|
<eventSubURL>/evt/IPConn</eventSubURL>
|
|
</service>
|
|
```
|
|
### **IGD - Internet Gateway Device**
|
|
|
|
**IGD** cartographie les ports dans les configurations de traduction d'adresse réseau (NAT). IGD permet à une application d'ajouter dynamiquement une cartographie de port temporaire sur le routeur pour une certaine période de temps (sans que l'utilisateur n'ait besoin d'effectuer une étape manuelle).
|
|
|
|
La plupart des appareils n'acceptent normalement pas les paquets SSDP via l'interface WAN, mais certains d'entre eux peuvent encore accepter des commandes IGD via des points de contrôle SOAP ouverts.
|
|
|
|
Dans la section Outil Umap, vous pouvez trouver un moyen d'exploiter ce vecteur.
|
|
|
|
## **Outils**
|
|
|
|
### **Miranda**
|
|
|
|
[**Miranda**](https://raw.githubusercontent.com/0x90/miranda-upnp/master/src/miranda.py) est un client UPnP python2 qui peut être utile pour découvrir les services UPnP, obtenir les détails et envoyer des commandes à ces services :
|
|
```
|
|
upnp> msearch
|
|
|
|
Entering discovery mode for 'upnp:rootdevice', Ctl+C to stop...
|
|
|
|
|
|
SSDP reply message from 192.168.1.254:49152
|
|
XML file is located at http://192.168.1.254:49152/wps_device.xml
|
|
Device is running Unspecified, UPnP/1.0, Unspecified
|
|
|
|
|
|
|
|
SSDP reply message from 192.168.1.254:53350
|
|
XML file is located at http://192.168.1.254:53350/37699b14/rootDesc.xml
|
|
Device is running Linux/3.4.11 UPnP/1.0 MiniUPnPd/1.9
|
|
|
|
|
|
upnp> host list
|
|
[0] 192.168.1.254:49152
|
|
[1] 192.168.1.254:53350
|
|
|
|
upnp> host get 0
|
|
upnp> host details 0
|
|
|
|
Host name: 192.168.1.254:49152
|
|
UPNP XML File: http://192.168.1.254:49152/wps_device.xml
|
|
|
|
|
|
Device information:
|
|
Device Name: WFADevice
|
|
Service Name: WFAWLANConfig
|
|
controlURL: wps_control
|
|
eventSubURL: wps_event
|
|
serviceId: urn:wifialliance-org:serviceId:WFAWLANConfig1
|
|
SCPDURL: wps_scpd.xml
|
|
fullName: urn:schemas-wifialliance-org:service:WFAWLANConfig:1
|
|
ServiceActions:
|
|
PutMessage
|
|
NewInMessage
|
|
InMessage:
|
|
dataType: bin.base64
|
|
|
|
[...]
|
|
|
|
upnp> host send 0 WFADevice WFAWLANConfig PutMessage
|
|
```
|
|
### Umap
|
|
|
|
L'outil [**umap**](https://github.com/0x90/upnp-arsenal/blob/master/umap-bypass.py) peut aider à **découvrir les commandes upnp** qui sont **disponibles** depuis les interfaces **WAN** même si elles ne sont pas annoncées dans ces interfaces (cela est dû à des implémentations défectueuses). Notez que si, par exemple, vous testez un routeur et que vous y avez accès à la fois depuis le réseau interne et l'interface WAN, vous devriez essayer d'**énumérer tous les services depuis le réseau interne** (en utilisant **miranda** par exemple) et ensuite essayer d'**appeler ces services depuis le réseau externe**.
|
|
|
|
### **Autres outils UPnP**
|
|
|
|
Trouvez sur [**https://github.com/0x90/upnp-arsenal**](https://github.com/0x90/upnp-arsenal) plus d'outils upnp.
|
|
|
|
### **Evil SSDP**
|
|
|
|
L'outil Evil SSDP a été développé par [initstring](https://twitter.com/init\_string). Cet outil est hébergé sur GitHub. Nous allons utiliser la commande git clone pour cloner tout le contenu du git sur notre machine attaquante. La commande git clone créera un répertoire portant le même nom que sur GitHub. Étant donné que l'outil est développé en Python version 3, nous devrons utiliser python3 suivi du nom du fichier .py pour exécuter le programme. Ici, nous pouvons voir un écran d'aide de base de l'outil.
|
|
```bash
|
|
git clone https://github.com/initstring/evil-ssdp.git
|
|
cd evil-ssdp/ls
|
|
python3 evil-ssdp.py --help
|
|
```
|
|
![](https://i0.wp.com/1.bp.blogspot.com/-O6lddDvxqts/Xkq5PHqeE\_I/AAAAAAAAisQ/FKOCxVwT9cMy54lLy0SsYcKoM5Q95K5mQCLcBGAsYHQ/s1600/1.png?w=687\&ssl=1)
|
|
|
|
Dans le répertoire cloné, nous trouverons un répertoire nommé templates. Il contient tous les modèles pré-compilés qui peuvent être utilisés pour le phishing de l'utilisateur cible.
|
|
|
|
## **Spoofing Scanner SSDP**
|
|
|
|
Maintenant que nous avons exécuté l'outil sans aucun problème, utilisons-le pour obtenir des informations d'identification. Dans cette première pratique, nous allons usurper un scanner en tant que périphérique UPnP fiable. Pour commencer, nous devrons configurer le modèle.
|
|
|
|
### **Configuration du modèle**
|
|
|
|
Pour utiliser l'outil, nous devrons fournir l'interface réseau. Ici, sur notre machine attaquante, nous avons "eth0" comme interface, vous pouvez trouver votre interface en utilisant la commande "ifconfig".
|
|
|
|
Après avoir fourni l'interface, nous utiliserons le paramètre "--template" pour passer un modèle que nous avons trouvé précédemment dans le répertoire des modèles. Pour usurper un scanner, nous exécuterons la commande suivante. Comme nous pouvons le voir, l'outil a fait son travail et a hébergé plusieurs fichiers de modèle sur notre machine attaquante au port 8888. Nous avons également le pointeur SMB hébergé.
|
|
```bash
|
|
ls temlates/
|
|
python3 evil-ssdp.py eth0 --template scanner
|
|
```
|
|
![](https://i0.wp.com/1.bp.blogspot.com/-kg05jQ03Fnw/Xkq5Qing\_qI/AAAAAAAAisk/GYK8MuCKqKUalqh3DHGWVRoyDlAQaxUrwCLcBGAsYHQ/s1600/2.png?w=687\&ssl=1)
|
|
|
|
### **Manipulation de l'utilisateur**
|
|
|
|
La prochaine étape logique consiste à manipuler l'utilisateur pour qu'il clique sur l'application. Étant sur le même réseau que la cible, notre faux scanner apparaîtra sur son explorateur. C'est là que UPnP entre en jeu. L'outil Evil SSDP crée ce scanner authentique sur le système de la cible sans aucune interaction forcée avec celle-ci.
|
|
|
|
![](https://i1.wp.com/1.bp.blogspot.com/-\_05xXp10Buk/Xkq5Qz4yosI/AAAAAAAAiso/HdHr0qJ59rkR2ur\_UYcrHMdf93uqMhXUwCLcBGAsYHQ/s1600/3.png?w=687\&ssl=1)
|
|
|
|
En cliquant sur l'icône à l'intérieur de l'Explorateur, nous serons redirigés vers le navigateur Web par défaut, ouvrant notre lien hébergé. Les modèles que nous avons utilisés sont en jeu ici. L'utilisateur est maintenant conscient qu'il/elle est effectivement connecté à un scanner authentique ou à un faux dispositif UPnP que nous avons généré. La cible inconsciente n'ayant aucune idée entre les valides et les faux identifiants entre lesquels choisir, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations de connexion valides et les informations de connexion fausses, entre les informations
|
|
```bash
|
|
python3 evil-ssdp.py eth0 --template office365
|
|
```
|
|
![](https://i1.wp.com/1.bp.blogspot.com/-8GWxmKPDkIo/Xkq5RmgF8\_I/AAAAAAAAis0/bxVTcd4aBCUZBEDuUIg3-G39aMu7l5YCgCLcBGAsYHQ/s1600/6.png?w=687\&ssl=1)
|
|
|
|
Comme nous pouvons le voir, l'outil a fait son travail et a hébergé plusieurs fichiers de modèle sur notre machine attaquante au port 8888.
|
|
|
|
### **Manipulation de l'utilisateur**
|
|
|
|
Dès que nous exécutons l'outil, nous avons un périphérique UPnP nommé Office365 Backups. Cela a été fait par l'outil sans avoir à envoyer de fichier, de charge utile ou tout autre type d'interaction à l'utilisateur cible. Tout ce qui reste, c'est que l'utilisateur clique sur l'icône.
|
|
|
|
![](https://i0.wp.com/1.bp.blogspot.com/-txqBOw02D6w/Xkq5RgolUcI/AAAAAAAAis4/wkQTzYBmtdU\_Nbq9X1qI47FlJtdqHvIjQCLcBGAsYHQ/s1600/7.png?w=687\&ssl=1)
|
|
|
|
Lorsque l'utilisateur cible clique sur l'icône, il est redirigé vers notre fausse page de modèle via son navigateur par défaut. Il s'agit d'une page Microsoft très authentique. L'utilisateur sans méfiance entre ses identifiants valides sur cette page.
|
|
|
|
![](https://i1.wp.com/1.bp.blogspot.com/-69Tf3PRpvhM/Xkq5RziDXzI/AAAAAAAAis8/vjejKgh0XigRHFC2Ib8QCpPlzx\_RAu4eACLcBGAsYHQ/s1600/8.png?w=687\&ssl=1)
|
|
|
|
### **Récupération des identifiants**
|
|
|
|
Dès que l'utilisateur entre les identifiants et qu'ils sont transmis en tant que demande de publication sur le serveur, qui est notre machine cible, nous voyons que sur notre terminal, nous avons les identifiants.
|
|
|
|
![](https://i0.wp.com/1.bp.blogspot.com/-3KXN6DKT\_E0/Xkq5SEwhKHI/AAAAAAAAitA/a2gTi5UwNE0JsMH-XQEW33MchkxgjPGSwCLcBGAsYHQ/s1600/9.png?w=687\&ssl=1)
|
|
|
|
## **Déviation de l'utilisateur vers un SSDP de coffre-fort de mot de passe**
|
|
|
|
Jusqu'à présent, nous avons réussi à usurper l'utilisateur cible pour obtenir des identifiants de scanner et des identifiants de sauvegarde Office365. Mais maintenant, nous allons pour la chose la plus importante qui est utilisée comme un UPnP, le coffre-fort de mot de passe.
|
|
|
|
### **Configuration du modèle**
|
|
|
|
Comme nous l'avons fait dans nos pratiques précédentes, nous devrons configurer le modèle pour le coffre-fort de mot de passe. En un rien de temps, l'outil héberge le modèle de coffre-fort de mot de passe sur le port 8888.
|
|
```bash
|
|
python3 evil-ssdp.py eth0 --template password-vault
|
|
```
|
|
### **Manipulation de l'utilisateur**
|
|
|
|
En passant à la machine cible, nous voyons que le Password Vault UPnP est visible dans l'Explorateur. Maintenant, il suffit que l'utilisateur clique sur le périphérique et tombe dans notre attaque. En voyant quelque chose comme Password Vault, l'utilisateur sera tenté de cliquer sur l'icône.
|
|
|
|
![](https://i2.wp.com/1.bp.blogspot.com/-3oMPYaCZ46k/Xkq5PB4zQ\_I/AAAAAAAAisM/i5C8qZVB8RYWBwAkiKCZbdptIbsnk4CUwCLcBGAsYHQ/s1600/11.png?w=687\&ssl=1)
|
|
|
|
Comme l'utilisateur sans méfiance pense qu'il/elle a accompli des choses très importantes avec les fausses clés et les mots de passe. Cela fonctionne comme une distraction pour l'utilisateur, car cela le conduira à essayer cette liste exhaustive de justificatifs sans succès.
|
|
|
|
![](https://i0.wp.com/1.bp.blogspot.com/-SrCMlWIUxCM/Xkq5Pg\_IznI/AAAAAAAAisU/L\_ZIvQKfltkyk9iUCrEGyXCojx5b86uFgCLcBGAsYHQ/s1600/12.png?w=687\&ssl=1)
|
|
|
|
## **Falsification de SSDP Microsoft Azure**
|
|
|
|
Lorsque l'on travaille avec la falsification, l'une des tâches les plus importantes est de ne pas laisser l'utilisateur cible savoir qu'il/elle a été victime de la falsification. Cela peut être réalisé en redirigeant l'utilisateur après que l'attaquant ait récupéré les justificatifs ou les cookies ou tout ce que l'attaquant voulait acquérir. L'outil evil\_ssdp dispose d'un paramètre (-u) qui redirige l'utilisateur ciblé vers n'importe quelle URL choisie par l'attaquant. Examinons le fonctionnement de ce paramètre en action.
|
|
|
|
Pour commencer, nous utiliserons python3 pour charger l'outil. Ensuite, nous mentionnons l'interface réseau qui doit être utilisée. Maintenant, pour cette pratique, nous utiliserons le modèle de stockage Microsoft Azure. Après avoir sélectionné le modèle, nous mettons le paramètre (-u) et mentionnons ensuite n'importe quelle URL où nous voulons rediriger l'utilisateur. Ici, nous utilisons le lien officiel de Microsoft. Mais cela peut être n'importe quel site malveillant.
|
|
```bash
|
|
python3 evil-ssdp.py eth0 --template microsoft-azure -u https://malicous-site.com
|
|
```
|
|
### **Manipulation de l'utilisateur**
|
|
|
|
Maintenant que nous avons lancé l'outil, il créera un périphérique UPnP sur la machine cible comme indiqué dans l'image ci-dessous. Pour que l'attaque réussisse, la cible doit cliquer sur le périphérique.
|
|
|
|
![](https://i1.wp.com/1.bp.blogspot.com/-rROTfEGP3z8/Xkq5QBn46dI/AAAAAAAAisc/7RDv7fI3BPYt1XmrKVRKOEHurkGY1xeogCLcBGAsYHQ/s1600/14.png?w=687\&ssl=1)
|
|
|
|
Après avoir cliqué sur l'icône, nous voyons que l'utilisateur est redirigé vers la page officielle de Microsoft. Cela peut être ce que l'attaquant veut.
|
|
|
|
![](https://i2.wp.com/1.bp.blogspot.com/-gU36s2kyIbg/Xkq5QVRh61I/AAAAAAAAisg/hN3uVMTPh-suDiH5ID3-mWcQiNvDVYeJACLcBGAsYHQ/s1600/15.png?w=687\&ssl=1)
|
|
|
|
Ceci conclut notre pratique de cet outil de spoofing impressionnant.
|
|
|
|
## **Atténuation**
|
|
|
|
* Désactiver les périphériques UPnP.
|
|
* Éduquer les utilisateurs pour prévenir les attaques de phishing.
|
|
* Surveiller le réseau pour le voyage de mot de passe en clair.
|
|
|
|
<details>
|
|
|
|
<summary><a href="https://cloud.hacktricks.xyz/pentesting-cloud/pentesting-cloud-methodology"><strong>☁️ HackTricks Cloud ☁️</strong></a> -<a href="https://twitter.com/hacktricks_live"><strong>🐦 Twitter 🐦</strong></a> - <a href="https://www.twitch.tv/hacktricks_live/schedule"><strong>🎙️ Twitch 🎙️</strong></a> - <a href="https://www.youtube.com/@hacktricks_LIVE"><strong>🎥 Youtube 🎥</strong></a></summary>
|
|
|
|
* Travaillez-vous dans une **entreprise de cybersécurité** ? Voulez-vous voir votre **entreprise annoncée dans HackTricks** ? ou voulez-vous avoir accès à la **dernière version de PEASS ou télécharger HackTricks en PDF** ? Consultez les [**PLANS D'ABONNEMENT**](https://github.com/sponsors/carlospolop) !
|
|
* Découvrez [**The PEASS Family**](https://opensea.io/collection/the-peass-family), notre collection exclusive de [**NFTs**](https://opensea.io/collection/the-peass-family)
|
|
* Obtenez le [**swag officiel PEASS & HackTricks**](https://peass.creator-spring.com)
|
|
* **Rejoignez le** [**💬**](https://emojipedia.org/speech-balloon/) [**groupe Discord**](https://discord.gg/hRep4RUj7f) ou le [**groupe telegram**](https://t.me/peass) ou **suivez** moi sur **Twitter** [**🐦**](https://github.com/carlospolop/hacktricks/tree/7af18b62b3bdc423e11444677a6a73d4043511e9/\[https:/emojipedia.org/bird/README.md)[**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
|
|
* **Partagez vos astuces de piratage en soumettant des PR au [repo hacktricks](https://github.com/carlospolop/hacktricks) et au [repo hacktricks-cloud](https://github.com/carlospolop/hacktricks-cloud)**.
|
|
|
|
</details>
|