An den Positive Hack Days 8 fand erneut der gute alte Wettbewerb zum Hacken von Geldautomaten statt. Den Teilnehmern standen zwei Geldautomaten zur Verfügung, die Hardware wurde von unserem Bankensicherheitspartner Alfa-Bank zur Verfügung gestellt. Speziell für den Wettbewerb haben wir Geldautomaten eingerichtet und Schwachstellen darin gelegt. In 15 Minuten musste die Schutzausrüstung umgangen und Geld aus dem Gerät entnommen werden. Der Preisfonds belief sich auf 40 000 ₽. Ungefähr 40 Teilnehmer versuchten, die Verteidigung zu umgehen. Leonid Krolle, Organisator des Wettbewerbs und Spezialist der Sicherheitsforschungsabteilung für Bankensysteme von Positive Technologies, erläuterte die Situation und analysierte die Aufgaben im Detail.
Lassen Sie ATM Alone TeilnehmerDen Teilnehmern standen zwei Geldautomaten zur Verfügung. Auf einem von ihnen ist eine Anwendungssteuerungssoftware unserer Partner installiert, die den Start nicht vertrauenswürdiger Anwendungen verhindert. Sie können keine Anwendung ausführen, die Sie zum Abheben von Bargeld benötigen (Hallo, Cutlet Maker, BubbleMaker und Nemagiya!).
Der zweite Geldautomat ist über das Netzwerk mit der Testverarbeitung verbunden, sodass Sie eine Bargeldabhebungsoperation durchführen können (die am Geldautomaten verfügbar ist). Die Verarbeitung sendet jedoch ein Signal zur Ausgabe von der Kassette, in der sich kein Geld befindet. Daher besteht die Aufgabe der Teilnehmer darin, die Verarbeitungsantwort zu ersetzen, um Geld von der richtigen Kassette auszugeben.
Die Verbindungskabel vom Geldautomaten und der Testverarbeitung befinden sich außerhalb und können über ein Netzwerkkabel (LAN) mit ihnen verbunden werden.
Die Spieler haben das gesamte vom System abgezogene Geld weggenommen.
Geldautomaten in zwei Tagen des Forums: Sie waren traurig und einsamAnwendungskontrolle
Es gibt verschiedene Möglichkeiten, um zu überprüfen, ob eine Anwendung mit einer bestimmten Whitelist übereinstimmt - von der Überprüfung des Pfads zur ausführbaren Datei oder ihres Hashs bis zur Analyse der digitalen Signatur und Erweiterung. Tools zur Anwendungssteuerung werden am häufigsten verwendet, um zusätzlichen Schutz für Clientcomputer zu bieten (sie verbieten den Start von Software, die nicht von der Whitelist gestrichen wird) und um Sicherheit für isolierte Systeme wie Geldautomaten zu bieten, die keine ständigen Betriebsinterventionen implizieren.
Wenn die schwarze Liste der zu blockierenden Erweiterungen mehr oder weniger universell ist und einfach zu konfigurieren ist, ist die weiße Liste der zulässigen Ausführungen standardmäßig redundant - sie enthält häufig alle Anwendungen des Betriebssystems zum Zeitpunkt der Konfiguration.
In den letzten Jahren wurden viele Methoden beschrieben, um die Anwendungssteuerung mithilfe von Microsoft Windows-Tools zu umgehen (z. B. "rundll32", "regsvr32"), eine einfache Sperre, die den normalen Betrieb des Betriebssystems stört. Daher ist die Feinabstimmung der Anwendungssteuerung eine komplexe und sorgfältige Arbeit, deren Ergebnis den Teilnehmern des Aufreißwettbewerbs übergeben wurde. Beachten Sie, dass Angreifer in der realen Welt nicht so viel Zeit haben, um die Anwendungssteuerung zu umgehen.
Erster Wettkampftag
Wahrheit des Lebens :)Der Beginn des ersten Wettkampftages war geprägt von einem dichten Strom von Forumsteilnehmern, die versuchten, die Anwendungskontrolle zu umgehen und die Verarbeitungsantwort zu ersetzen - insgesamt mehr als 40 Personen.
Erste TeilnehmerInsgesamt wurden 15 Minuten für die Umgehung des Schutzes an einem Geldautomaten mit Anwendungssteuerung eingeplant: Während dieser Zeit mussten Sie die Ausführung Ihres Codes verwalten. Leider scheiterten am ersten Tag alle Versuche der Teilnehmer, ihren Exploit zu starten. Einem Teilnehmer gelang es jedoch, ein seltsames Gerät zu finden, das an einem Geldautomaten installiert war. Es war ein Skimmer - ein tragbarer Miniaturleser, der an einen Geldautomaten angeschlossen werden kann. Solche Geräte helfen Betrügern, Bankkartendaten zu stehlen: Details, PIN-Code - alle Informationen, die auf dem Magnetstreifen aufgezeichnet sind.
SkimmerNach dem Erkennen des Skimmers mussten die Kartendaten daraus extrahiert werden: Während der Vorbereitung des Wettbewerbs schrieben die Organisatoren einen Dump einer nicht vorhandenen Karte mit einer bestimmten Nummer.
Lassen Sie uns ein wenig über die Vorbereitung eines Skimmers für einen Wettbewerb sprechen.Der Skimmer besteht aus einem Magnetkopf zum Lesen und einem Gerät zum Aufzeichnen einer Audiospur (manchmal mit Wi-Fi oder Bluetooth). Diese Instanz kann auf der Basis eines Explay-Player-Recorders oder eines ähnlichen USB-Voice-Recorders erstellt werden. Beispiele
hier . In Bezug auf die Größe passen sie einfach in die Auflage des Anti-Skimmers und es ist immer noch Platz für eine Batterie, da Frankensteins Mini vorbereitet und wiederbelebt werden musste: Ein Leistungstest wurde an einem ähnlichen Gerät eines anderen Geldautomatenmodells durchgeführt. Um Platz zu sparen, ist das USB-Port-Montagepad zugeschnitten, sodass ich den Adapter selbst herstellen musste.
Adapter herstellenWir testeten die korrekte Aufnahme des Skimmer-Players gemäß den Anweisungen des Players aus dem Internet (es gab keine Zeichen auf den Tasten, da sie auf dem Gehäuse verblieben waren) und notierten die Karte und die Nummer, die die Teilnehmer vom Skimmer entfernen mussten.

So sieht eine Karte mit Magnetpulver aus
Informationen auf dem Magnetstreifen der Karte werden mithilfe der F / 2F-Frequenzcodierung (mit dem, was sie gegessen hat und wie sie decodiert werden kann - lesen Sie
hier ) aufgezeichnet und repräsentieren alphanumerische Zeichen in 7-Bit-Codierung oder digitale Zeichen in 5-Bit-Codierung. Zur Bestimmung von Lesefehlern werden Paritäts- und Längsredundanzprüfung (oder Längsstandby-Steuerung - LRC) verwendet.
Daten auf einer beliebigen Spur müssen mit dem Start des Service-Symbols beginnen und mit dem Ende des Service-Symbols enden. Diese Symbole werden so ausgewählt, dass Sie den Beginn eines Blocks nützlicher Informationen, die Richtung des Lesens der Karte und sogar das Codierungsformat der Informationen (5 Bit oder 7 Bit) bestimmen können.
Steuerzeichen dienen zur Steuerung der Hardware und können nicht zur Übertragung von Informationen (Dateninhalten) verwendet werden. Trennzeichen werden verwendet, um Datenfelder auf der Karte zu trennen.
Bei einer 7-Bit-Codierung sind die Zeichen [\] für zusätzliche nationale Zeichen reserviert und sollten nicht im Rahmen des internationalen Informationsaustauschs verwendet werden. Das Zeichen # ist für beliebige zusätzliche grafische Zeichen reserviert.
Hier ist ein Beispiel, wie es aussehen könnte:
- Standard ISO 2 Track:
; XXXXXXXXXXXXXXXXX = JJJJJJJJJJJJJ? Z - 37 Zeichen
X ... X - Kartennummer, Z - LRC (Daten beginnen mit dem Startzeichen und enden mit dem Endzeichen, die Kartennummer ist 16-stellig, LRC ist vorhanden)
Der Moment des Testens und DumpingsTatsächlich können Sie Daten vom Player in Form einer MP3-Datei kopieren, herausfinden, wo der Titel aufgenommen wurde, ihn im Audio-Editor vergrößern und Stück für Stück analysieren. Es gibt jedoch einfachere Methoden.
Zum Beispiel:
- SWipe ist eine Anwendung zum Lesen von Magnetstreifenkarten über einen Audioanschluss.
- Magnetstreifen-Decoder. Ein Programm zum Dekodieren einer Magnetstreifenkarte, das die Rohdaten vom Magnetstreifen über die Soundkarte empfängt.
Mit ihnen können Sie die Audiospurdaten mehr oder weniger genau in ASCII (entschlüsselte Daten) konvertieren.
Nach ungefähr einer Stunde wurden die Daten der im Skimmer aufgezeichneten Karte bereitgestellt. Der Honoured Prize of Spectator Sympathy fand seinen Besitzer. Herzlichen Glückwunsch an Maxim Vikhlyantsev!
Der Rest der Teilnehmer kämpfte weiter um die Hauptpreise, die an die Geldautomaten hochgeladen wurden :) Jemand versuchte, die Verteidigung zu hacken, aber es gab diejenigen, die müde waren und die Hoffnung auf eine schnelle Bereicherung verloren hatten. Trotzdem war der erste Tag stürmisch, obwohl der Hauptjackpot bei den Organisatoren blieb ...

Zweiter Tag
Blieb am hartnäckigstenAm zweiten Tag des Wettbewerbs auf dem Feld für ATM-Hacking konnte man alle gleichen Teilnehmer beobachten. Beharrlichkeit und Beharrlichkeit bei dem Versuch, einen Vektor zu finden, um den Schutz zu umgehen, blieben nicht umsonst, und hier - Stanislav Povolotsky umging die Verteidigung sicher und gewann durch die Ausführung eines nicht signierten Codes den Geldpreis am ersten Geldautomaten.
Demonstration eines erfolgreichen JobsDas Wesentliche des Netzwerkangriffs auf den zweiten Geldautomaten war wie folgt: Am Geldautomaten befand sich ein Laptop mit installierter Software, der die Verarbeitung emulierte.
Emulator verarbeitenDer Emulator wurde so konfiguriert, dass mit jeder eingelegten Karte ohne PIN-Code Geld ausgegeben wird. Die Kassette, deren Befehl der Emulator als Antwort auf die Anforderung gesendet hat, war jedoch leer. Um dieses Problem zu lösen, war es notwendig:
- das Antwortpaket des Verarbeitungsemulators abfangen;
- Zerlegen Sie die Verpackung und formen Sie Ihre eigene - nur mit der richtigen Patronennummer;
- Legen Sie eine Karte ein und antworten Sie beim Senden einer Anfrage zur Verarbeitung mit den geänderten Daten an den Geldautomaten.
- Führen Sie mit den Tools tcpdump, wireshark, scapy oder ettercap einen Wiederholungsangriff oder einen Spoofing-Angriff mit geänderten Daten durch, um auf den Geldautomaten zu reagieren.
tcpdump ist ein UNIX-Dienstprogramm mit einem Klon für Windows, mit dem Sie den Netzwerkverkehr abfangen und analysieren können, der über den Computer geleitet wird, auf dem dieses Programm ausgeführt wird.
wireshark ist ein ähnliches Dienstprogramm mit einer grafischen Benutzeroberfläche, das nur "aufgeladener" ist.
scapy ist eine interaktive Shell- und Softwarebibliothek zum Bearbeiten von Netzwerkpaketen in der Programmiersprache Python.
ettercap ist ein Dienstprogramm zur Analyse des Netzwerkverkehrs über eine Computerschnittstelle, jedoch mit zusätzlichen Funktionen. Mit dem Programm können Sie Angriffe wie "Mann in der Mitte" ausführen, um einen anderen Computer zu zwingen, Pakete nicht an den Router, sondern an den Angreifer zu übertragen.
Eigentlich ändert sich nichtsMit solch einem schwierigen Ansatz hatten die Teilnehmer Schwierigkeiten, aber sie haben sie überwunden. Der Preis für die Fälschung der Antwort von der Verarbeitung am zweiten Geldautomaten ging an das Team - Information & Public, Security Center und Usbekistan. Mit dem, was wir ihnen gratulieren! Die vollständige Liste der Gewinner finden Sie auf
der Wettbewerbsseite .