Shodan - le jumeau noir de Google



Une source

S in IoT signifie sécurité
Shodan a déjà été écrit plus d'une fois, y compris ici. Je voudrais suggérer encore une fois de passer en revue les capacités de ce merveilleux outil et les principes de son fonctionnement. Je souhaite tout de suite faire une réserve sur le fait que la situation avec ce moteur de recherche est assez classique pour les chercheurs dans le domaine de la sécurité de l'information - l'outil peut être utilisé à la fois avec de bonnes intentions et fortement en dehors de la loi.



Disclamer: l'

utilisation du moteur de recherche lui-même n'est pas punissable. Entrer avec succès dans un panneau de commande ouvert d'un nœud de terminal pétrolier quelque part à Singapour et expérimenter l'ouverture des amortisseurs est déjà punissable. Les personnes hostiles peuvent venir frapper. Par conséquent, soyez raisonnable et respectez l'espace des autres. Nous sommes contre l'utilisation de Shodan à des fins autres que de recherche ou d'analyse de nos propres systèmes.



Je propose de revenir une fois sur les capacités de ce moteur de recherche, les particularités de sa syntaxe et d'essayer de trouver quelque chose d'intéressant. Et n'imprimons pas Guerre et Paix sur les imprimantes réseau d'autres personnes.



Les gens sont insouciants



Les canaux sont devenus gigabit, des outils comme ZMap sont apparus, qui permettent de scanner tout le tableau d'adresses IPv4 en quelques minutes. Et encore, il y a encore beaucoup de gens qui sont sincèrement sûrs que si vous ne parlez à personne du service augmenté, vous ne pouvez pas vous soucier de sa protection.



Malheureusement, très rapidement, d'abord, des robots automatiques viendront à vous, puis de vraies personnes, si quelque chose d'intéressant est trouvé. J'ai oublié de désactiver vsftpd en temps voulu, ce que j'ai soulevé pendant un moment. En conséquence, un mois plus tard, j'ai été surpris de constater que des fichiers texte contenant du spam, quelques petites archives cryptées et des joies similaires apparaissent et disparaissent régulièrement à l'intérieur.



Si le problème se limitait aux administrateurs juniors et aux gens ordinaires qui ne pardonnent pas une certaine insouciance et un manque de qualifications, alors je ne peux tout simplement pas justifier les entreprises qui intègrent délibérément des portes dérobées dans leurs produits matériels. Des exemples classiques sont les caméras IP populaires Hikvision et Dahua . Il y a eu des histoires similaires avec les routeurs D-link, Huawei et d'autres fabricants.



Et avec l'avènement de l'Internet des objets, avec ses approches de mise en œuvre «sûres», tout devient complètement triste. Ici, vous avez des ampoules intelligentes sans mot de passe qui fonctionnent avec Internet externe via HTTP. Ou même des aspirateurs robotiques qui serviront à attaquer votre infrastructure interne, comme cela s'est produit avec Dongguan Diqee... C'est généralement amusant là-bas - les vulnérabilités CVE-2018-10987 et CVE-2018-10988 vous ont permis d'obtenir les droits root, de prendre le contrôle de l'appareil, de conduire au point souhaité et d'obtenir une image de la caméra infrarouge de l'appareil.





Une histoire similaire s'est produite avec LG Hom-Bot , où un attaquant pouvait intercepter le contrôle et utiliser un aspirateur innocent comme point d'envahir le réseau de quelqu'un d'autre.



Comment fonctionne Shodan



Les choses ont beaucoup changé quand Shodan est arrivé. Eh bien, d'accord, en fait, tout est resté le même, mais au moins il y avait une opportunité d'évaluer l'ampleur d'une catastrophe particulière et d'essayer d'atteindre le fournisseur pour fermer la vulnérabilité. Shodan est essentiellement un hybride de nmap -sV sur toute la plage IPv4 et les résultats des moteurs de recherche. Les robots d'exploration analysent scrupuleusement l'intégralité d'Internet, tentent de se connecter aux ports ouverts et, à l'aide d'une empreinte digitale, identifient le service derrière ces ports.





Un exemple de résultat de recherche pour "vuln: cve-2014-0160".



En combinaison avec la recherche, cela permet d'estimer rapidement le nombre de versions de logiciels vulnérables après la publication de la prochaine vulnérabilité.



Les données de chaque publication sont stockées dans une structure que les développeurs appellent bannière. Voici à quoi ça ressemble:



{
    "data": "Moxa Nport Device
            Status: Authentication disabled
            Name: NP5232I_4728
            MAC: 00:90:e8:47:10:2d",
    "ip_str": "46.252.132.235",
    "port": 4800,
    "org": "Starhub Mobile",
    "location": {
        "country_code": "SG"
    }
}


En fonction de la quantité d'informations reçues, une bannière peut contenir beaucoup plus de champs qui peuvent être filtrés et recherchés. Par défaut, seul le champ de données est recherché, ce qui est en partie pour des raisons de sécurité. Le champ de données sera très différent dans différentes bannières, selon le type d'application, de serveur ou de périphérique.



HTTP/1.1 200 OK
Server: nginx/1.1.19
Date: Sat, 03 Oct 2015 06:09:24 GMT
Content-Type: text/html; charset=utf-8
Content-Length: 6466
Connection: keep-alive


Voici à quoi ressemblerait un champ de données typique pour un serveur HTTP. Vous pouvez voir les principaux paramètres et la version.



Copyright: Original Siemens Equipment
PLC name: S7_Turbine
Module type: CPU 313C
Unknown (129): Boot Loader           A
Module: 6ES7 313-5BG04-0AB0  v.0.3
Basic Firmware: v.3.3.8
Module name: CPU 313C
Serial number of module: S Q-D9U083642013
Plant identification: 
Basic Hardware: 6ES7 313-5BG04-0AB0  v.0.3


Et voici à quoi ressemble un contrôleur industriel Siemens S7 beaucoup plus inhabituel. À ce stade, il devient déjà un peu effrayant de voir quels appareils peuvent traîner sur Internet et accéder aux résultats de recherche. D'un autre côté, la sécurité par l'obscurité n'a encore aidé personne.



Un cas d'utilisation typique suppose que vous donniez une requête générale au champ de données, puis que vous affiniez votre recherche avec de nombreux filtres. Le format de la demande ressemble à ceci:



nuclear reactor filtername1:value filtername2:value filtername3:value


Notez qu'il n'y a pas d'espace après les deux points. Dans ce cas, dans un premier temps, tous les enregistrements contenant «réacteur nucléaire» dans le champ de données générales seront sélectionnés, puis tous les filtres répertoriés seront appliqués séquentiellement pour restreindre les objets de recherche.



Une liste complète des filtres est disponible ici . Dans le même temps, une partie n'est disponible que pour les comptes payants, par exemple "tag" et "vuln".



Essayer de rechercher





Essayons quelque chose comme un contrôleur de porte.





C'est merveilleux. Voyons maintenant tous les contrôleurs HID VertX appartenant à Spectrum Business.



door controller org:"Spectrum Business"


Après cela, en cliquant sur un hôte spécifique, un bref résumé des données collectées sur celui-ci est développé. Ou vous pouvez voir la sortie complète des données brutes.



Données brutes par 70.62.170.218
Property Name 	Value
area_code 	null
asn 	AS10796
city 	Garfield Heights
country_code 	US
country_code3 	null
country_name 	United States
data.0._shodan.crawler 	4aca62e44af31a464bdc72210b84546d570e9365
data.0._shodan.id 	e85c3c1b-54ff-4194-8dc1-311da6851e5d
data.0._shodan.module 	http
data.0._shodan.options.referrer 	5ee031c4-75c3-423f-99b8-5c06dd97cf14
data.0._shodan.ptr 	True
data.0.data 	
data.0.domains 	['rr.com']
data.0.hash 	0
data.0.hostnames 	['rrcs-70-62-170-218.central.biz.rr.com']
data.0.http.host 	70.62.170.218
data.0.http.html 	null
data.0.http.html_hash 	null
data.0.http.location 	/
data.0.http.redirects 	[]
data.0.http.robots 	null
data.0.http.robots_hash 	null
data.0.http.securitytxt 	null
data.0.http.securitytxt_hash 	null
data.0.http.server 	null
data.0.http.sitemap 	null
data.0.http.sitemap_hash 	null
data.0.http.title 	null
data.0.port 	443
data.0.timestamp 	2020-09-02T15:26:31.443605
data.0.transport 	tcp
data.1._shodan.crawler 	4aca62e44af31a464bdc72210b84546d570e9365
data.1._shodan.id 	458e8be2-04df-4db7-8499-8e378792584e
data.1._shodan.module 	http
data.1._shodan.ptr 	True
data.1.data 	HTTP/1.1 301 Moved Permanently Location: https://70.62.170.218:443/ Content-Length: 0 Date: Wed, 02 Sep 2020 15:26:23 GMT Server: HID-Web
data.1.domains 	['rr.com']
data.1.hash 	-788227878
data.1.hostnames 	['rrcs-70-62-170-218.central.biz.rr.com']
data.1.http.host 	70.62.170.218
data.1.http.html 	
data.1.http.html_hash 	0
data.1.http.location 	/
data.1.http.redirects 	[]
data.1.http.robots 	null
data.1.http.robots_hash 	null
data.1.http.securitytxt 	null
data.1.http.securitytxt_hash 	null
data.1.http.server 	HID-Web
data.1.http.sitemap 	null
data.1.http.sitemap_hash 	null
data.1.http.title 	null
data.1.port 	80
data.1.timestamp 	2020-09-02T15:26:24.253885
data.1.transport 	tcp
data.2._shodan.crawler 	70752434fdf0dcec35df6ae02b9703eaae035f7d
data.2._shodan.id 	b7f280e3-cffc-4ddd-aa4b-1f9cd9e4d2be
data.2._shodan.module 	vertx-edge
data.2._shodan.ptr 	True
data.2.data 	HID VertX/ Edge door controller MAC: 00:06:8E:41:AB:81 Name: EdgeEHS400 Internal IP: 70.62.170.218 Type: EHS400 Firmware Version: 2.1.1.101 Firmware Date: 2018-05-03-11
data.2.domains 	[]
data.2.hash 	-764264635
data.2.hostnames 	[]
data.2.opts.raw 	646973636f76657265643b3039313b30303a30363a38453a34313a41423a38313b456467654548533430303b37302e36322e3137302e3231383b313b4548533430303b322e312e312e3130313b323031382d30352d30332d31313b
data.2.port 	4070
data.2.tags 	['ics']
data.2.timestamp 	2020-08-26T20:59:09.260224
data.2.transport 	udp
data.2.vertx.firmware_data 	2018-05-03-11
data.2.vertx.firmware_version 	2.1.1.101
data.2.vertx.internal_ip 	70.62.170.218
data.2.vertx.mac 	00:06:8E:41:AB:81
data.2.vertx.name 	EdgeEHS400
data.2.vertx.type 	EHS400
data.3._shodan.crawler 	4aca62e44af31a464bdc72210b84546d570e9365
data.3._shodan.id 	43663d5e-db76-4cba-8f14-6c1bf417ddd3
data.3._shodan.module 	ntp
data.3._shodan.ptr 	True
data.3.data 	NTP protocolversion: 3 stratum: 3 leap: 0 precision: -17 rootdelay: 0.108978271484 rootdisp: 0.162017822266 refid: 1209934681 reftime: 3807379353.45 poll: 3
data.3.domains 	['rr.com']
data.3.hash 	-1317347992
data.3.hostnames 	['rrcs-70-62-170-218.central.biz.rr.com']
data.3.opts.raw 	1c0303ef00001be60000297a481e2359e2efff9972f64603e2f0016cc6b1f800e2f0016ceef1bb83e2f0016cef0fb34d
data.3.port 	123
data.3.timestamp 	2020-08-25T21:30:20.877776
data.3.transport 	udp
dma_code 	510
domains 	['rr.com']
hostnames 	['rrcs-70-62-170-218.central.biz.rr.com']
ip 	1178512090
ip_str 	70.62.170.218
isp 	Spectrum Business
last_update 	2020-09-02T15:26:31.443605
latitude 	41.4344
longitude 	-81.6373
org 	Spectrum Business
os 	null
ports 	[80, 123, 443, 4070]
postal_code 	null
region_code 	OH
tags 	['ics']




Que pouvez-vous trouver d'autre intéressant



En fait, ce qu'ils n'ont tout simplement pas trouvé. À la fois le contrôle des turbines de la centrale hydroélectrique et le contrôleur pour le contrôle des systèmes de refroidissement de la patinoire municipale. Voici quelques options intéressantes et relativement inoffensives.







"Server: Prismview Player"


Affiche des panneaux publicitaires extérieurs. Et pour toujours, les capteurs de température affichent un zéro absolu.





http.title:"Tesla PowerPack System" http.component:"d3" -ga3ca4f2


Affiche l'état actuel du Tesla PowerPack .



Internet n'est pas l'endroit le plus sûr



En fait, les listes disponibles sont tout simplement infinies. Vous pouvez trouver les panneaux de contrôle des éoliennes et les centres de médias de quelqu'un en vietnamien, qui sortent sur Internet. Tenez-vous-en à quelques règles de base et tout ira bien.



  1. Si l'appareil peut fonctionner hors ligne, ne l'exposez pas à Internet
  2. Si vous avez vraiment besoin d'exposer l'appareil à Internet, vous n'avez pas besoin d'y transférer l'accès directement. Utilisez un VPN pour vous connecter à votre réseau
  3. ,





All Articles