
Ensemble d'outils exploitant le CVE-2017-9097 (+RCE)
Une vulnérabilité a été découverte dans les applications web associées à ICS/OT qui s'exécutent sur des serveurs Anti-Web (jusqu'à sa version 3.8.7). Les vulnérabilités identifiées affectent plusieurs fabricants renommés de l'industrie de l'automatisation des processus industriels et des télécommunications. Ces dispositifs possèdent déjà deux CVE similaires et anciens (CVE-2010-4730 & CVE-2010-4733), après quoi, suite à un rapport, un troisième CVE (2017-9097) a été obtenu et le fournisseur a immédiatement publié un correctif. D'autres ont suivi peu après.
Pour avoir une référence approximative du degré d'exposition de ces dispositifs, nous nous appuyons sur les hôtes indexés dans Shodan, qui dénombrent un peu plus de 800 dispositifs potentiellement vulnérables.

En ce qui concerne la LFI que notre outil tente d'exploiter, aujourd'hui les différents fournisseurs concernés disposent de leurs correctifs officiels respectifs qui contrent la vulnérabilité. Ainsi, tenter d'exploiter le défaut permet de vérifier l'engagement des opérateurs et responsables de ces technologies, répondant à une question fondamentale : « Les correctifs correspondants ont-ils été installés ? »
Un premier outil tente d'exploiter et de corroborer l'existence d'une LFI. Un second outil cherche à tirer parti de la LFI en récupérant le fichier où sont stockées les identifiants donnant accès au panneau web. Les noms d'utilisateur y sont en clair et les mots de passe sont hachés avec md5, que l'outil tentera de casser. Enfin, un dernier outil exploite une RCE.
usr@pwn:~$ git clone https://github.com/ezelf/AntiWeb_testing-Suite
usr@pwn:~$ cd AntiWeb_testing-Suite
usr@pwn:~$ ls -l
total 16
drwxr-xr-x 4 root root 4096 sep 14 21:05 LFI
drwxr-xr-x 4 root root 4096 sep 14 21:05 RCE
-rwxrwxr-x 1 root root 1852 sep 24 08:42 README.md
drwxr-xr-x 3 root root 4096 sep 24 08:00 seekAndDestroy
Corrobore simplement l'existence de la LFI, en consultant des chemins prédéfinis et/ou en donnant la possibilité à l'utilisateur de passer son propre chemin.
Optionnellement, on peut lui fournir un cookie de session (valide).
usr@pwn:~$ python anti-web-v1.py --help
usage: anti-web.py [-h] [-v] --host HOST [--port PORT] [--file LFI]
[+] CVE: CVE-2017-9097
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
--host HOST host
--port PORT Set port (default = 80)
--file LFI Test LFI
-ck COOKIE Set Cookie
[+] Demo: anti-web.py --host 192.168.1.100 --port 80

Cet outil cherche à faire bon usage de la LFI. Pour cela, il cible le fichier « /home/config/users.cfg » où se trouvent les identifiants permettant l'accès à l'application web.

« Seek And Destroy » parse ce fichier, identifie le hash correspondant à la concaténation du mot de passe et de son utilisateur passée à la fonction de hachage Md5. À l'aide de listes précalculées, on découvre ce qui se cache derrière ces hachages.

On peut attaquer individuellement un seul hôte ou une liste de ceux-ci.
usr@pwn:~$ python seekAndDestroy.py --help
usage: seekAndDestroy.py [-h] [-v] [--host HOST] [--list HOST_LIST]
[--port PORT]
[+] Obtain and break the credentials of your industrial control system .
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
--host HOST host
--list HOST_LIST hosts
--port PORT set port (default = 80)
[+] Usage: seelAndDestroy.py --list host_list.txt --port 8080
Et nous arrivons à ce qui est peut-être le plus intéressant : la possibilité d'exécuter des commandes du système d'exploitation du matériel supportant le système vulnérable. *** « Du HTTP au Shell » ***
.

#### à suivre... (demain c'est lundi. xd)
usr@pwn:~$ python rce.py --help
usage: RCE.py [-h] [-v] --host HOST [--port PORT] -ck COOKIE --cmd COMMAND
[+] COMMANDS over your industrial control system .
optional arguments:
-h, --help show this help message and exit
-v, --version show program's version number and exit
--host HOST Host
--port PORT Port
-ck COOKIE Cookie
--cmd COMMAND Command
[+] Demo: python rce.py --host <host> -ck <sessionCookie> --cmd "ls -la /"
....Wait
* https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9097
* https://ics-cert.us-cert.gov/advisories/ICSA-17-222-05
* https://www.seebug.org/vuldb/ssvid-96555 (RCE)
* https://www.seebug.org/vuldb/ssvid-96556 (LFI)
* https://vuldb.com/es/?id.102570
* https://github.com/hoytech/antiweb/
* https://nvd.nist.gov/vuln/detail/CVE-2017-9097
* https://www.9165619.com/vulnerability/cve-2017-9097-89702
* http://old.cnnvd.org.cn/vulnerability/show/cv_id/2017051027
* http://jvndb.jvn.jp/ja/contents/2017/JVNDB-2017-005240.html
* http://plugins.openvas.org/nasl.php?oid=106886 (*down)
* http://webcache.googleusercontent.com/search?q=cache:Z1VaYjaZLB4J:plugins.openvas.org/nasl.php%3Foid%3D106886+&cd=1&hl=es-419&ct=clnk&gl=cl
''' [+] CVE-2009-4462 ( Intellicom NetBiterConfig.exe ) [+] CVE-2009-4463 ( Intellicom NetBiterConfig.exe ) (http://blog.48bits.com/exposing-hms-hicp-protocol-0day-light/)
[+] CVE-2010-4730 ( Directory traversal vulnerability in cgi-bin/read.cgi in WebSCADA )
[+] CVE-2010-4731 ( Absolute path traversal vulnerability in cgi-bin/read.cgi in WebSCADA )
[+] CVE-2010-4732 ( RCE, using a config.html 2.conf action to replace the logo page's GIF image file )
[+] CVE-2010-4733 ( default username and password to obtain superadmin access via the web interface )
Intellicom NetBiter products based on the NB100 and NB200 platforms, including:
WebSCADA (WS100)
WebSCADA (WS200)
Easy Connect (EC150)
Modbus RTU – TCP Gateway (MB100)
Serial Ethernet Server (SS100).
* https://ics-cert.us-cert.gov/advisories/ICSA-10-316-01A
'''
Les outils en question se trouvent dans (AntiWeb_testing-Suite) : https://github.com/ezelf/AntiWeb_testing-Suite/
Vidéo combinant les trois outils dans leur première version bêta : https://www.youtube.com/watch?v=HdkZA1DO08Y