**Système SCADA** ** Presentation:** SCADA : Supervisory Control and Data Acquisition : est un système de télégestion à grande échelle permettant de traiter en temps réel un grand nombre de télémesures et de contrôler à distance des installations techniques. En bref c'est un logiciel qui va tourner la plus part du temps sur un système Windows pour faire de la supervision et stocker les données renvoyées par les différents capteurs. PLC: Programmable logic controller : est un dispositif électronique programmable destiné à la commande de processus industriels. C'est une machine qui embarque du code qui va faire exécuter différentes action aux machines. MODBUS : est un protocole de communication non-propriétaire, créé en 1979 par Modicon, utilisé pour des réseaux d'automates programmables. Il a deux modes, le plus utilisés et le mode RTU : (RS232, RS422) Il fonctionne sur le principe Maître/Esclave. Seul le maître est actif, les esclaves sont complètement passifs.C'est le maître qui doit lire et écrire dans chaque esclave. Un petit schémas pour vous expliquer le fonctionnement : {{ :scada.png?nolink&300 |}} ** Exploitation:** Les systèmes industriels sont des systèmes développés pour durer entre 10 et 40 ans. Leur cout de maintenance est exorbitant, ce sont souvent des systèmes qui ne sont pas mis à jour. Leur mise à jour demanderait de revalider totalement le fonctionnement du système, cela se chiffrerait en milliers voir en millions d'euros. La majeur partie des installations fonctionnent avec des protocoles comme le ftp ou le snmpv1 qui ne sont pas des protocoles sécurisés. Pour commencer notre exploitation nous allons télécharger le paquet [[https://github.com/glastopf/conpot]] conpot est un honeypot dédié au système SCADA, il permet d'émuler un plc. Pour son installation je vous conseille une Debian 7 64bits (j'ai essayé avec une debian 8.0 mais il y a une erreur de SSL qui n'a pas l'air d'avoir encore été patché. N'hésitez pas à me tenir au courant si vous y arrivez) Je ne couvrirai pas la partie installation sur cet article. Je vous laisse chercher des guides via 8.8.8.8. **Première Étape :** Commençons par un petit scan sur notre réseau pour découvrir où se trouve notre machine. NE SURTOUT PAS UTILISER NMAP CONTRE UN PLC VOUS ALLEZ LE DDOS. Un petit outil python à été développé : [[https://github.com/yanlinlin82/plcscan?files=1]] Il va scanner le port 102 et 502 sur toutes les machines de votre réseau. Le port 502 est utilisé par le protocole Modbus.(Le protocole qui permet de donner des ordres aux machines) {{ :plcscan-e1433012103650.png?nolink |}} Maintenant nous allons faire un scan pour découvrir si le PLC gère des esclaves. python plcscan.py --brute-uid 192.168.0.25 {{ :plcscan2.png?nolink |}} Nous voyons que nous avons deux esclaves dirigés par le plc. **Deuxième Étape** Nous allons le scanner d'une autre manière pour obtenir encore plus de renseignement. Comme je vous l'ai dit les systèmes SCADA utilise souvent le protocole SNMP avec le groupe public par défaut. snmpcheck est un très bon outil pour réaliser ce genre de test. snmpcheck -t host -c community Dans notre cas notre host sera 192.168.0.25 , la community quand à elle est public et bien celle par défaut. Tout cela nous donne : snmpcheck -t 192.168.0.25 -c public {{ :snmpcheck.png?nolink |}} **Troisième Étape :** Vous avez assez d'information pour envoyer votre ordre aux différents esclaves en utilisant le protocole Modbus.