[BBB] [GDB] Exploitation de binaire ARM
Publié : sam. 13 juil. 2019, 20:55
Bonjour,
Je suis actuellement un tutoriel sur l’ASM ARM et l’exploitation de binaire ARM (https://azeria-labs.com/writing-arm-assembly-part-1/), je suis en train de faire les challenges proposés (https://azeria-labs.com/part-3-stack-ov ... hallenges/).
J’ai fait jusqu’au 5ᵉ challenge sous l’OS original qui tournait sur mon BeagleBoneBlackrevC, c’est-à-dire bone-debian-9.5-iot-armhf-2018-10-07-4gb.img (https://debian.beagleboard.org/images/b ... 4gb.img.xz).
Pour des raisons de logiciels pas vraiment à jour sur la version de Debian, faisant planter GDB à l’erreur de segmentation, j’ai décidé d’installer mon OS préféré (https://archlinuxarm.org/platforms/armv ... bone-black) pour avoir les correctifs de ce bug par une version à jour du logiciel.
Sauf qu’il y a un problème maintenant sous Arch.
Sous GDB j’ai eu juste à changer une adresse pour que mon exploit sur le chalenge 5 remarche, mais ce n’est plus le cas en dehors de GDB avec ce même changement.
Je précise que j’ai désactivé l’ASLR et que le binaire fourni par le challenge n’a aucune protection.
Je ne comprends pas pourquoi mon exploit ne marche plus en dehors de GDB alors qu’il marchait sur le Debian de manière identique à l’extérieur de GDB comme dans GDB.
Je suppose qu’il doit surement avoir quelques choses qui change sur la stack entre l’environnement GDB et en dehors de GDB, mais cela me parait bizarre que les variables d’environnement dans GDB et en dehors soient différentes?! J’ai remarqué par exemple que python ne s’exécutait pas correctement par defaut, il lui manquait dans locale.conf LANG=en_US.UTF-8 pour afficher correctement certain caractère Unicode alors que locale.gen était correctement configuré
Est-ce qu’il y a des mesures de protection supplémentaire sur ArchlinuxARM d’activé par défaut? J’ai remarqué par exemple qu’il y avait systemd-auditd qui tournait dans le fond ce qu’il n’y a pas sur mon installation x86. Est-ce qu’il y a d’autre changement ou une documentation qui les listes?
Comment je résous cela? Merci d’avance
Je suis actuellement un tutoriel sur l’ASM ARM et l’exploitation de binaire ARM (https://azeria-labs.com/writing-arm-assembly-part-1/), je suis en train de faire les challenges proposés (https://azeria-labs.com/part-3-stack-ov ... hallenges/).
J’ai fait jusqu’au 5ᵉ challenge sous l’OS original qui tournait sur mon BeagleBoneBlackrevC, c’est-à-dire bone-debian-9.5-iot-armhf-2018-10-07-4gb.img (https://debian.beagleboard.org/images/b ... 4gb.img.xz).
Pour des raisons de logiciels pas vraiment à jour sur la version de Debian, faisant planter GDB à l’erreur de segmentation, j’ai décidé d’installer mon OS préféré (https://archlinuxarm.org/platforms/armv ... bone-black) pour avoir les correctifs de ce bug par une version à jour du logiciel.
Sauf qu’il y a un problème maintenant sous Arch.
Sous GDB j’ai eu juste à changer une adresse pour que mon exploit sur le chalenge 5 remarche, mais ce n’est plus le cas en dehors de GDB avec ce même changement.
Je précise que j’ai désactivé l’ASLR et que le binaire fourni par le challenge n’a aucune protection.
Je ne comprends pas pourquoi mon exploit ne marche plus en dehors de GDB alors qu’il marchait sur le Debian de manière identique à l’extérieur de GDB comme dans GDB.
Je suppose qu’il doit surement avoir quelques choses qui change sur la stack entre l’environnement GDB et en dehors de GDB, mais cela me parait bizarre que les variables d’environnement dans GDB et en dehors soient différentes?! J’ai remarqué par exemple que python ne s’exécutait pas correctement par defaut, il lui manquait dans locale.conf LANG=en_US.UTF-8 pour afficher correctement certain caractère Unicode alors que locale.gen était correctement configuré
Est-ce qu’il y a des mesures de protection supplémentaire sur ArchlinuxARM d’activé par défaut? J’ai remarqué par exemple qu’il y avait systemd-auditd qui tournait dans le fond ce qu’il n’y a pas sur mon installation x86. Est-ce qu’il y a d’autre changement ou une documentation qui les listes?
Comment je résous cela? Merci d’avance