Ich schreibe das nicht, um anzugeben, was für ein cooler Hacker ich bin und welche krassen Fähigkeiten ich eingesetzt habe, um Gamma bloßzustellen. Ich schreibe das, um Hacken zu entmystifizieren und um zu zeigen wie einfach es ist. Und hoffentlich um euch zu informieren und zu inspirieren raus zu gehen und zu hacken.

Dieser Gastbeitrag wurde zuerst von @GammaGroupPR, dem Hacker von Gamma FinFisher, auf Pastebin veröffentlicht. Vielen Dank an Kilian für die Übersetzung.

1. Einführung

Ich schreibe das nicht, um anzugeben, was für ein cooler Hacker ich bin und welche krassen Fähigkeiten ich eingesetzt habe, um Gamma bloßzustellen. Ich schreibe das, um Hacken zu entmystifizieren und um zu zeigen wie einfach es ist. Und hoffentlich um euch zu informieren und zu inspirieren raus zu gehen und zu hacken. Wenn du keine Erfahrung mit Programmieren oder Hacken hast, wird dir einiges in diesem Text wie eine Fremdsprache vorkommen. Schau dir den Abschnitt über Quellen und Materialien am Ende an, der hilft dir loszulegen. Und glaube mir, sobald du die Grundlagen gelernt hast, wird dir klar werden, dass es wirklich einfacher ist als eine Informationsfreiheits-Anfrage zu stellen.

2. Sicher bleiben

Das hier ist illegal, also musst du ein paar grundlegende Vorsichtsmaßnahmen treffen:

Lege dir eine versteckte, verschlüsselte Partition mit Truecrypt 7.1a an. Installiere Whonix in der verschlüsselten Partition. (Optional) Wahrscheinlich dürfte es ausreichen, mit Whonix alles über Tor laufen zu lassen. Besser ist es jedoch, keine Internetverbindung zu verwenden, die mit deinem Namen und deiner Adresse verknüpft ist. Eine Antenne, Aircrack und Reaver können hier nützlich sein.

Solange du deinen gesunden Menschenverstand benutzt – das heißt, nie etwas mit Hacking-Bezug außerhalb von Whonix machen, nie deine normale Computernutzung innerhalb von Whonix erledigen, keine Informationen über dein echtes Leben im Gespräch mit anderen Hacker/innen erwähnen und nie mit deinen illegalen Hacker-Taten bei Freunden im echten Leben prahlen – dann kannst du so ziemlich alles tun, was du willst, ohne Angst zu haben.

HINWEIS: Ich empfehle, NICHT direkt über Tor zu hacken. Tor ist brauchbar für Dinge, wie etwa im Internet surfen, wenn es aber um die Verwendung von Hacking-Tools wie nmap, sqlmap und nikto geht, die tausende von Anfragen machen, laufen die nur sehr langsam über Tor. Außerdem wirst du eine öffentliche IP-Adresse wollen, um „connect back shells“ zu empfangen. Ich empfehle, über Server, die du gehackt hast oder über einen virtual private server (VPS), den du mit Bitcoin bezahlt hast, zu hacken. So läuft nur die Textschnittstelle, die geringe Bandbreite braucht, zwischen dir und dem Server über Tor. Alle Befehle, die du ausführst, laufen über eine schöne, schnelle Verbindung zu deinem Ziel.

3. Das Ziel erkunden

Im Grunde benutze ich nur immer wieder fierce, Whois-Abfragen von IP-Adressen und Domain-Namen und Reverse-Whois-Abfragen, um alle IP-Adressbereiche und Domain-Namen zu finden, die mit einer Organisation verbunden sind.

Zum Beispiel Blackwater: Wir fangen an und wissen, dass ihre Homepage unter academi.com zu finden ist. Lassen wir „fierce.pl -DNS academi.com“ laufen, finden wir diese Subdomains:

67.238.84.228 email.academi.com 67.238.84.242 extranet.academi.com 67.238.84.240 mail.academi.com 67.238.84.230 secure.academi.com 67.238.84.227 vault.academi.com 54.243.51.249 www.academi.com

Jetzt machen wir Whois-Abfragen und finden heraus, dass die Homepage von www.academi.com von Amazon Web Service gehostet wird, während die anderen IPs im folgenden Bereich liegen:

NetRange: 67.238.84.224 - 67.238.84.255 CIDR: 67.238.84.224/27 CustName: Blackwater USA Adresse: 850 Puddin Ridge Rd

Eine Whois-Abfrage von academi.com verrät auch, dass sie unter der gleichen Adresse registriert ist, also verwenden wir das als String (Zeichenfolge) für die Reverse-Whois-Suche. Soweit ich weiß, kosten alle tatsächlichen Reverse-Whois Suchdienste Geld, also schummle ich einfach mit Google:

"850 Puddin Ridge Rd" inurl:ip-address-lookup "850 Puddin Ridge Rd" inurl:domaintools

Jetzt lässt man jetzt „fierce.pl -range“ über die IP-Bereiche laufen, um DNS-Namen nachzuschlagen und „fierce.pl -dns“ über die Domain-Namen, um Subdomains und IP-Adressen zu finden. Mache weitere Whois-Abfragen und wiederhole den Vorgang, bis du alles gefunden hast.

Google die Organisation auch einfach und stöbere auf ihrer Webseite herum. Beispielsweise finden wir auf academi.com Links zu einem Karriere-Portal, einem Online-Shop, und einer Mitarbeiter-Infoseite, damit haben wir jetzt einige weitere:

54.236.143.203 careers.academi.com 67.132.195.12 academiproshop.com 67.238.84.236 te.academi.com 67.238.84.238 property.academi.com 67.238.84.241 teams.academi.com

Wenn du die Anfragen von Whois und anderen wiederholst, stellst du fest, dass academiproshop.com scheinbar nicht von Blackwater gehostet oder gewartet wird, so dass du es von der Liste der interessanten IPs/Domains streichen kannst.

Im Fall von FinFisher war es einfach eine Whois-Abfrage von finfisher.com, die mich zur ungeschützten Seite finsupport.finfisher.com geführt hat, weil sie auf den selben Namen „FinFisher GmbH“ registriert war. Googelt man nach „FinFisher GmbH“ inurl:domaintools findet man gamma-international.de, was wiederum zu finsupport.finfisher.com weiterleitet.

…Jetzt hast du eine grobe Idee, wie ich ein Ziel auskundschafte.

Das ist tatsächlich einer der wichtigsten Teile, denn je größer die Angriffsfläche ist, die du aufdeckst, desto leichter wird es sein, irgendwo darin ein Loch zu finden.

4. Scannen & Ausnutzen

Scanne alle IP-Bereiche, die du gefunden hast, mit nmap, um alle laufenden Dienste zu finden. Neben einem Standard-Port-Scan wird unterschätzt, nach SNMP zu scannen.

Jetzt, für jeden laufenden Service, den du findest:

Legt er etwas offen, was er nicht sollte? Manchmal lassen Unternehmen Dienste laufen, die keine Authentifizierung erfordern und gehen davon aus, dass es sicher ist, weil die URL oder IP, um darauf zuzugreifen, nicht öffentlich ist. Vielleicht hat fierce eine git Subdomain gefunden und du kannst auf git.companyname.come/gitweb/ gehen und den Quellcode suchen. Ist er schrecklich falsch konfiguriert? Vielleicht haben sie einen FTP-Server, der anonymen Lese- oder Schreib-Zugang zu einem wichtigen Verzeichnis erlaubt. Vielleicht haben sie einen Datenbank-Server mit einem leeren Admin-Passwort (lol Stratfor). Vielleicht verwenden ihre eingebundenen Geräte (VOIP-Boxen, IP-Kameras, Router, etc.) das Standardpasswort des Herstellers. Läuft er mit einer alten Softwareversion, die für einen öffentlichen „Exploit“ anfällig ist?

Webserver verdienen eine eigene Kategorie. Für alle Webserver, darunter auch solche, die nmap oft auf nicht-standard Ports findet, tue ich in der Regel folgendes:

1) Klicke im Browser durch. Besonders auf Subdomains, die Fierce findet, die nicht für die Öffentlichkeit bestimmt sind, wie test.company.com oder dev.company.com findet man oft interessante Sachen einfach nur beim Surfen.

2) Verwende nikto. Es wird Dinge wie webserver/.svn/, webserver/backup/, webserver/phpinfo.php und ein paar tausend andere verbreitete Fehler und Fehlkonfigurationen überprüfen.

3) Finde heraus, welche Software auf der Webseite verwendet wird. WhatWeb ist nützlich.

4) Je nachdem mit welcher Software die Webseite läuft, verwende spezifischere Werkzeuge wie wpscan, CMS-Explorer, und Joomscan.

Probiere das zunächst auf allen Diensten, um zu sehen, ob irgendeine Fehlkonfiguration, öffentlich bekannte Sicherheitslücke oder eine andere einfache Zugangsmöglichkeit besteht. Wenn nicht, wird es Zeit eine neue Sicherheitslücke zu finden:

5) Kundenspezifisch programmierte Web-Apps sind ein fruchtbarerer Boden für Fehler als große, weit verbreitete Projekte, also versuche es dort zuerst. Ich benutze ZAP, und einige Kombinationen seiner automatisierten Tests, zusammen mit händischem Herumstochern mit der Hilfe des „Intercepting Proxy“.

6) Besorg dir eine Kopie für die nicht-kundenspezifische Software, die sie verwenden. Wenn es freie Software ist, kannst du sie einfach herunterladen. Wenn sie proprietär ist, kannst du sie in der Regel raubkopieren. Wenn sie proprietär und so obskur ist, dass man sie nicht raubkopieren kann, kannst du sie kaufen (lame) oder über Google eine andere Webseite finden, die die gleiche Software verwendet und leichter zu hacken ist, und von dort eine Kopie ziehen.

Für finsupport.finfisher.com war es folgender Prozess:

nikto im Hintergrund laufen lassen.

Die Webseite aufrufen. Nach einer Login-Seite schauen. Schnell mit sqli das Login-Formular checken.

Nachschauen, ob WhatWeb weiß, auf welcher Software die Webseite läuft.

WhatWeb kennt sie nicht, also will ich als Nächstes die Frage beantworten, ob es eine eigene Webseite von Gamma ist, oder ob es andere Webseites mit der gleichen Software gibt.

Ich schaue in den Quelltext der Seite und finde eine URL, nach der ich suchen kann (index.php ist nicht wirklich einzigartig für diese Software). Ich nehme Scripts/scripts.js.php und google: allinurl:“Scripts/scripts.js.php“

Ich finde eine Handvoll anderer Seiten mit der gleichen Software, die alle von der gleichen kleinen Webdesign-Firma programmiert wurden. Es sieht aus, als wäre jede Webseite individuell programmiert, aber sie beinhalten eine Menge gemeinsamen Quelltext. Also hacke ich ein paar davon, um eine Sammlung an Code von der Webdesign-Firma zu bekommen.

An dieser Stelle kann ich die Berichte der Journalisten vor mir sehen, die aufbauschend schreiben: „In einem raffinierten, mehrstufigen Angriff kompromittierten die Hacker erst eine Webdesign-Firma, um vertrauliche Daten zu erlangen, die ihnen dann beim Angriff auf die Gamma Group behilflich waren…“

Aber es ist wirklich ziemlich einfach, fast auf Autopilot durchzuführen, sobald du den Dreh raus hast. Es dauerte nur ein paar Minuten, um:

allinurl:“Scripts/scripts.js.php“ zu googlen und die anderen Webseiten zu finden.

Festzustellen, dass sie alle für SQL-Injection anfällig sind, beim ersten URL-Parameter, den ich versuche.

Zu realisieren, dass sie alle mit Apache ModSecurity laufen, also muss ich sqlmap mit der Option –tamper=’Sabotage/modsecurityversioned.py‘ verwenden.

Die Admin-Login-Daten zu erlangen, sich einzuloggen und eine PHP-Shell hochzuladen (die Überprüfung für zulässige Dateinamenserweiterungen wurde auf Client-Seite in Javascript gemacht) und den Quellcode der Webseite herunterzuladen.

Bei einem Blick in den Quellcode stelle ich fest, dass sie es auch Verdammt Anfällige Web App v2 hätten nennen können. Es hat SQL-Injection, Local File Inclusion, die Datei-Upload-Überprüfung wird vom Client in JavaScript gemacht, und wenn du nicht authentifiziert bist, schickt dich die Admin-Seite einfach wieder auf die Login-Seite mit einem Location-Header, den man mit einem „Intercepting Proxy“ einfach herausfiltern kann und der Zugang funktioniert bestens.

Zurück auf der finsupport Seite antwortet die Admin-Seite /BackOffice/ mit „403 Forbidden“, und ich habe einige Probleme mit der Local File Inclusion, also wechsle ich zu SQL-Injection (es ist schön, ein Dutzend Optionen zur Auswahl zu haben). Die anderen Webseiten der Webdesigner hatten alle eine print.php, in die man eigene Datenbankbefehle einzuschleusen konnte, also stelle ich einige schnelle Anfragen an:

https://finsupport.finfisher.com/GGI/Home/print.php?id=1 und 1=1

https://finsupport.finfisher.com/GGI/Home/print.php?id=1 und 2=1

Die zeigen, dass auch finsupport diese print.php hat und diese anfällig ist. Und es hat Adminrechte in der Datenbank! Für MySQL bedeutet das, du kannst Dateien lesen und schreiben. Stellt sich heraus, dass die Seite magicquotes aktiviert hat, sodass ich „INTO OUTFILE“ nicht verwenden kann, um Dateien zu schreiben. Aber ich kann ein kurzes Skript verwenden, das

„sqlmap –file-read“ verwendet, um den PHP-Quelltext für eine URL zu bekommen

eine normale Web-Anfrage stellt, um das HTML zu bekommen

Dateien findet, die im PHP-Quelltext enthalten oder erforderlich sind

PHP-Dateien findet, die im HTML verlinkt sind

…, um rekursiv den Quelltext der gesamten Webseite herunterzuladen.

Beim Durchschauen des Quelltexts sehe ich, dass Kunden an ihre Support-Tickets eine Datei anhängen können und es gibt keine Überprüfung der Dateierweiterung. Also suche ich mir einen Benutzernamen und Kennwort aus der Kundendatenbank, erstelle eine Support-Anfrage mit einer angehängten PHP-Shell und ich bin drin!

5. Rechte ausweiten (oder dabei versagen)

___________ < got r00t? > ----------- ^__^ (oo)_______ (__) )/ ||----w | || || ^^^^^^^^^^^^^^^^

Auf über 50% der Linux-Server da draußen kann man mit zwei einfachen Skripts – Linux_Exploit_Suggester, und unix-privesc-check – „root“ erlangen, also Admin-Rechte.

Auf finsupport lief die aktuellste Version von Debian ohne lokale Root-Exploits, aber unix-privesc-check ergab:

WARNUNG: /etc/cron.hourly/mgmtlicensestatus wird von cron als root ausgeführt. Der Benutzer www-data kann in /etc/cron.hourly/mgmtlicensestatus schreiben WARNUNG: /etc/cron.hourly/webalizer wird von cron als root ausgeführt. Der Benutzer www-data kann in /etc/cron.hourly/webalizer schreiben

Also füge ich in /etc/cron.hourly/webalizer hinzu:

chown root:root /path/to/my_setuid_shell chmod 04755 /path/to/my_setuid_shell

Warte eine Stunde, und … nichts. Stellt sich heraus, dass obwohl der cron-Prozess läuft, scheinbar keine echten cron-Jobs ausgeführt werden. Im Webalizer-Verzeichnis zeigt sich, dass die Statistik seit letztem Monat nicht aktualisiert wurde. Offenbar wird cron nach einer Änderung der Zeitzone manchmal zur falschen Zeit oder manchmal gar nicht ausgeführt und muss nach Änderung der Zeitzone neu gestartet werden. ls -l /etc/localtime zeigt, die Zeitzone wurde am 6. Juni aktualisiert, zur gleichen Zeit hat Webalizer die Aufzeichnung der Statistiken gestoppt, also ist das wahrscheinlich das Problem. Jedenfalls ist das Einzige was dieser Server macht, die Webseite auszuliefern, so dass ich bereits Zugang zu allem Interessanten darauf habe. Root würde nicht viel Neues bringen, also schaue ich mir den Rest des Netzwerks an.

6. Weiter umschauen

Der nächste Schritt ist, dich um das lokale Netzwerk der gehackten Box herum umzusehen. Das ist so ziemlich das Gleiche wie der erste „Scannen & Ausnutzen“-Schritt, außer dass hinter der Firewall viel mehr interessante Dienste offen liegen. Ein Tarball, der eine statisch gelinkte Kopie von nmap und all seinen Skripten enthält, die du hoch laden und auf jeder Box laufen lassen kannst, ist dafür sehr praktisch. Die verschiedenen nfs-* und insbesondere smb-* Skripte, die nmap hat, werden extrem hilfreich sein.

Die einzige interessante Sache, die ich aus dem lokalem Netzwerk von finsupport ziehen konnte, war ein weiterer Webserver mit einem Ordner namens „qateam“, der ihre mobile Malware enthielt.

7. Spaß haben

Sobald du im Netzwerk bist, beginnt der eigentliche Spaß. Verwende einfach deine Fantasie. Ich habe diese Artikel zwar als Anleitung für Möchtegern-Whistleblower bezeichnet, aber es gibt keinen Grund, dich auf das Leaken von Dokumente zu beschränken. Mein ursprünglicher Plan war folgender:

Gamma hacken und eine Kopie der FinSpy-Server-Software bekommen.

Schwachstellen in FinSpy-Server finden.

Im Internet nach allen FinSpy command-and-control (C&C)-Servern suchen und sie hacken.

Die Gruppen, die sie betreiben, identifizieren.

Die C&C-Server dazu verwenden, ein Programm auf alle Ziele hochzuladen und auszuführen, das ihnen sagt, von wem sie ausspioniert wurden.

Die C&C-Server verwenden, um FinFisher auf allen Zielen zu deinstallieren.

Die ehemaligen C&C-Server zu einem Botnetz verbinden um Gamma Group zu DDoSen.

Erst als es mir nicht gelang, Gamma vollständig zu hacken, ich dafür einige interessante Dokumente aber keine Kopie der FinSpy-Server-Software hatte, musste ich ich mit dem weit weniger lustigen Backup-Plan anfreunden, ihr Zeug zu leaken und mich auf Twitter über sie lustig zu machen.

Richtet eure GPUs auf FinSpy-PC+Mobile-2012-07-12-Final.zip und crackt das Passwort endlich, damit ich mit Schritt 2 weitermachen kann!

8. Andere Methoden

Die allgemeine Methode, die ich oben beschrieben habe – also durchsuchen, Schwachstellen finden und diese ausnutzen – ist nur eine Möglichkeit zu hacken, und wahrscheinlich eher für Menschen mit Programmierkenntnissen geeignet. Es gibt nicht den einen richtigen Weg und jede Methode, die funktioniert, ist so gut wie jede andere. Diese anderen Wege will ich, ohne dabei ins Detail zu gehen, noch erwähnen:

1) Exploits in Web-Browsern, Java, Flash oder Microsoft Office in überzeugenden E-Mails an Mitarbeiter schicken, die sie dazu bewegen den Link oder den Anhang zu öffnen. Oder eine Webseite hacken, die von den Mitarbeitern häufig besucht wird und den Browser/Java/Flash-Exploit dort einbauen.

Diese Methode wird von den meisten Regierungs-Hackergruppen verwendet, aber du musst keine Regierung mit Millionenbudgets für 0-Day-Forschung und FinSploit- oder VUPEN-Abonnements sein, um das durchzuziehen. Man bekommt ein qualitativ hochwertiges Exploit-Kit aus Russland für ein paar Tausend, und für viel weniger kann man Zugang zu einem mieten. Es gibt auch Metasploit browser autopwn, aber wahrscheinlich hast du mehr Glück ohne Exploits und mit einer gefälschten Flash-Update-Nachricht.

2) Die Ausnutzung der Tatsache, dass die Menschen zu 95% nett, vertrauensvoll und hilfsbereit sind.

Die Informationssicherheits-Industrie hat dazu einen Begriff erfunden, um das wie eine Wissenschaft klingen zu lassen: „Social Engineering“. Das ist wahrscheinlich der beste Weg, wenn du nicht all zu viel über Computer weißt und es ist wirklich alles was man braucht, um ein erfolgreicher Hacker zu sein.

9. Material

Links:

Bücher:

Abgesehen von Hacker-spezifischen Dingen hilft fast alles, was für einen Systemadministrator sinnvoll ist um ein Netzwerk einzurichten und zu verwalten, auch dabei, es zu erkunden. Das umfasst unter anderem die Vertrautheit mit der Windows-Kommandozeile und der UNIX-Shell, grundlegende Scripting-Fähigkeiten, Kenntnisse von LDAP, Kerberos, Active Directory, Netzwerken usw.

10. Outro

Du wirst feststellen, dass einiges hier genauso klingt wie das, was Gamma macht. Hacken ist ein Werkzeug. Es ist nicht der Verkauf von Hacking-Tools, was Gamma böse macht. Es ist, auf wen Gammas Kunden es abgesehen haben und zu welchem Zweck, was sie böse macht. Das heißt nicht, dass Werkzeuge automatisch neutral sind. Hacken ist ein offensives Werkzeug. Genauso wie Guerilla-Kriegsführung es schwieriger macht, ein Land zu besetzen: immer, wenn Angriff billiger ist als Verteidigung, ist es schwieriger illegitime Autorität und Ungleichheit aufrecht zuhalten. Deswegen habe ich diesen Artikel geschrieben, um Hacken ein Stück einfacher und zugänglicher zu machen. Und ich wollte zeigen, dass der Hack der Gamma Group wirklich nichts Besonderes war, nur normale SQL-Injection und dass du die Möglichkeit hast, raus zu gehen und ähnliche Aktionen zu starten.

Solidarität mit allen in Gaza, israelischen Kriegsdienstverweigerern, Chelsea Manning, Jeremy Hammond, Peter Sunde, anakata und allen anderen inhaftierten Hackern, Dissidenten und Verbrechern!