vendredi 28 septembre 2012

Emulateur de clavier à base de Teensy. Alternative à l'USB S3.

Il existe différentes classes d'attaques par clé USB. Par exemple par ingénierie sociale on peut partager des documents en espérant qu'un utilisateur l'ouvre sans se soucier des effets secondaires. Mais on a aussi une version automatique de cette attaque avec les clés USB S3 qui simulent un lecteur CDROM et profitent donc de la fonction autorun de Windows pour exécuter des commandes de manière automatique. Pour lutter contre ce genre d'attaque les administrateurs désactivent l'autorun par défaut et bouchent les ports USB avec de la glu. De plus, les dernières versions des différents systèmes d'exploitation ne sont plus aussi "naïf" lors du traitement de l'insertion d'un appareil compatible autorun. L'attaque est donc toujours possible mais limitée. C'est là que le Teensy offre une alternative difficile à contrecarrer.

Le Teensy est une carte comportant un micro contrôleur de type AVR donc compatible avec l'environnement de développement Arduino. L'intérêt par rapport à une carte Arduino classique est sa taille et le support de base de l'USB. Le Teensy ne coute que 16 dollars et fait à peu prêt la taille d'une clé USB. Branché sur un PC, quelque soit l'OS il émule au choix un clavier, une souris ou un joystick. Il respecte le protocole USB-HID qui gère les protocoles d'entrée sortie, a l'inverse de la clé USB S3 qui suit le protocole USB-Storage. On peut par l'intermédiaire du Teensy effectuer des opérations clavier/souris à la manière d'un humain mais ceci de manière automatique et programmable.
Les avantages pour un hacker sont multiples:

  • Comme le Terminator le Teensy ne se fatigue pas, il tape plus vite que vous et ne fait pas d'erreur de frappe.
  • Il est plus discret de brancher une clé USB que de taper toute une succession de commande.
  • Il ne dépend absolument pas de l'autorun activé
  • Il fonctionne quelque soit le système d'exploitation

Un Teensy peut être utilisé dans des attaques extrêmement variées. Tout dépend de ce qu'il est programmé pour faire:

  • Installation automatique de logiciel
  • Exécution de programme à partir du Teensy, à partir du PC, à partir du réseau, ...
  • Création de compte utilisateur
  • Copie de fichier sur le Teensy pour les récupérer plus tard, upload vers Internet, ...
  • Forme de Cross Site Request Forgery en accédant à des sites internet avec les cookies du PC attaqué.
  • Etc. Les possibilités sont infinies.



Le Teensy est un parfait exemple des attaques orientées hardware qui sont de plus en plus fréquentes. Firmware infectés, système embarqués malicieux, chevaux de Troie par l'intermédiaire d'appareils extérieurs à l'entreprise, routeurs contaminés, etc. La partie logiciel s'étant nettement renforcée depuis 10 ans (du moins pour les OS) il est de plus en plus intéressant de les contourner en s'attaquant directement au hardware, moins surveillé et moins rodé aux attaques. Le Teensy utilisé de cette façon (car il est important de préciser que son utilisation frauduleuse n'est pas son ambition de départ) est particulièrement pernicieux puisque se faisant passer pour un clavier il est très difficile de le différencier d'un humain.

lundi 24 septembre 2012

Firevault 2 et reset de mot de passe par la partition de secours

Spécifier un mot de passe pour vous connecter à votre compte OSX ne vous protège absolument pas du vol de fichier si quelqu'un passe un peu de temps avec votre Mac. En effet il suffit de booter sur la partition de secours (en maintenant appuyé ALT au démarrage) et de taper "resetpassword" dans un terminal pour pouvoir remettre à zéro le mot de passe de la partition qui vous intéresse. Un voleur pourra donc sans problème accéder à vos données et cela sans même se donner la peine de sortir le disque dur pour le lire à partir d'un autre PC. On retrouve d'ailleurs le même genre d'aberration sous Windows lorsqu'on le boot à partir du CD d'installation ou sous Linux lorsque l'on monte le disque avec une live CD Linux quelconque (commande chgpasswd)

Une façon de ralentir un hacker est d'instaurer un mot de passe EFI c'est à dire l'équivalent du BIOS sur OSX. On ne pourra remettre le mot de passe à zéro sans démonter l'ordinateur pour en extraire le disque dur.

Depuis Mountain Lion j'utilise le chiffrage du disque complet Filevault 2 proposé par OSX mais j'ai quand même vérifié que l'astuce de la partition de secours ne fonctionnait plus avec cette option. Déjà avec Filevault 2 d'activé on se rend compte que la commande ALT ne lance plus la partition de secours. On peut en revanche y accéder par CMD+R.

En revanche lorsque l'on boote sur la partition de secours et que l'on lance la commande "resetpassword" la partition principale n'est pas proposée. Ce qui confirme qu'elle n'est pas visible par le terminal. On pourrait s'étonner également de pouvoir booter sans mot de passe sur la partition de secours mais c'est parce que Filevault 2 ne chiffre par défaut que la partition principale.

A noter qu'il est possible de déverrouiller la partition FileVault en saisissant le mot de passe associé afin de pouvoir opérer une vérification de fichier ou une réparation de système de fichier dessus.

vendredi 14 septembre 2012

Partage Windows 7 vers Backtrack (Ubuntu)

Normalement dans ce sens là c'est plus facile une fois que vous avez installé le support de Samba comme expliqué dans le post précédent.

Cependant si en utilisant l'explorateur de fichier de la Backtrack vous obtenez le message d'erreur suivant: "Failed to retrieve share list from server".

Ou quand en utilisant la ligne de commande avec smbtree vous avez: "Error NTSTATUSUNSUCCESSFUL"

Alors il faut réaliser la modification suivante dans le fichier /etc/samba/smb.conf: ; name resolve order = lmhosts host wins bcast
name resolve order = lmhosts wins bcast host

Partage Samba Backtrack (Ubuntu) vers Windows (7)

Note pour moi même car je galère toujours à effectuer ce genre de configuration. Donc déjà il faut installer le support de Samba sur la Backtrack:
apt-get install samba
apt-get install system-config-samba

L'interface de configuration s'installe dans le menu System sous le nom Administration/Samba. Cette interface graphique modifie le fichier de configuration /etc/samba/smb.conf que vous pouvez également décider d'éditer manuellement.
Ensuite il faut créer un utilisateur pour samba et lui attribuer un mot de passe:
adduser sambauser
smbpassword -a sambauser

Vous pouvez alors utiliser l'interface graphique pour ajouter un répertoire partagé et spécifier que l'utilisateur sambauser peut y accéder. Attention aux droits d'accès unix du répertoire partagé. Si vous y accédez par l'utilisateur sambauser mais que sambauser n'a pas accès au répertoire en local, Windows n'y accèdera pas non plus. Vous pouvez également décider de ne pas spécifier d'utilisateur samba et alors Windows se connectera au partage sans couple compte / mot de passe.

Maintenant et c'est là que ça se complique si sous Windows 7 vous vous payez l'erreur "Windows cannot access" code 0x800070043. J'ai trouvé la solution dans le forum Ubuntu je vous la remet ici:
Start -> Control Panel -> System and Security -> Administrative Tools -> Local Security Policy -> Local Policies -> Security Options Ensuite sélectionnez l'option “Network security: LAN Manager authentication level” et paramétrez là à “Send LM & NTLM responses”

Puis paramétrez les deux options “Network security: Minimum session security for NTLM SSP client” et “Network security: Minimum session security for NTLM SSP server” en désactivant l'option “Require 128 bit encryption”.

Vous pouvez désactiver le lancement automatique du service samba au démarrage en commentant: #start on local-filesystems dans /etc/init/smb.conf Vous pourrez toujours activer ou désactiver le service par la commande: service smbd start/stop Dernière chose la découverte des machines compatibles smb ne fonctionne pas aussi bien sous Windows que Bonjour sous OSX donc si votre machine Backtrack n'est pas tout de suite détectée par Windows vous pouvez lui forcer la main en vous rendant directement à l'adresse de la machine Backtrack: smb://192.168.1.30