Archives de l’auteur : opc0de
Return-Oriented Programming sur GNU/Linux
*** Qu’est ce que le Return-Oriented Programming ? *** Le ROP est une technique d’exploitation sans injection de code. Cette technique permet de bypasser certaines protections contre les attaques de type buffer overflow. Ces restrictions sont entre autre le NX … Continuer la lecture
Les shellcodes x86 et x86_64 sur GNU/Linux
0x1 – Définition Les shellcodes sont utilisés le plus souvent comme code arbitraire ou malveillant que l’on injecte dans la mémoire d’un programme vulnérable. Un shellcode a la forme d’une chaîne de caractères sous forme hexadécimale contenant en réalité une … Continuer la lecture
L’off-by-one
Intro : L’off-by-one n’est pas un buffer overflow classique car le principe d’exploitation est totalement différent. Pour cet article nous allons utiliser ce code source vulnérable et désactiver l’aslr (sysctl -w kernel.randomize_va_space=0) 1234567891011121314151617181920212223242526272829#include <stdio.h> #include <string.h> #define limit 1024 int … Continuer la lecture
Les format string bugs
Les Format String Bugs 0x01 – Intro Un format string bug peut se produire lorsque le programmeur passe à l’une des fonctions de la famille de printf une chaîne fournie par l’utilisateur. Cet utilisateur peut alors très bien fournir une … Continuer la lecture
Les shellcodes x86 sur Windows seven :
Un shellcode est un code arbitraire injecté dans la mémoire comme par exemple dans le cas d’un buffer overflow permettant de faire ce que l’on veut sur le pc de la victime, on les appelle shellcode car ce type de … Continuer la lecture
List Exported Functions :
Je vous présente ici un petit tool avec interface graphique qui liste les fonctions exportées d’une dll (comme par exemple kernel32.dll) avec possibilité d’obtenir l’adresse effective d’une fonction grâce à un menu par un clic droit sur un nom de … Continuer la lecture
Get Shellcode pour Windows :
Cet outil permet d’obtenir le shellcode à injecter dans un buffer depuis l’exécutable généré par votre assembleur. 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258#include <windows.h> #include <stdio.h> #include <windowsx.h> typedef FILE *PFILE; #define APPLICATIONNAME "Get Shellcode\0" #define CLASSNAME "GetShellcode\0" #define IDC_FILENAME_EDIT … Continuer la lecture
Le format PE :
Le format PE (Portable Executable) est le format utilisé sur Windows pour organiser les fichiers exécutables ainsi que les fichiers objets, donc, chaque .exe et .dll (pour ne citer qu’eux) sont créés selon ce format. Maintenant nous allons voir comment … Continuer la lecture
Introduction au cracking (le cas basique) :
En guise de petite introduction au cracking, je vais vous expliquer, à titre informatif, comment cracker un des clients IRC (sûrement le plus utilisé actuellement sur windows). L’outil utilisé pour y parvenir est le débogueur OllyDbg. Il faut ouvrir le … Continuer la lecture
Generate Hash :
Code sans GUI qui permet de générer le hash d’une fonction comme par exemple MessageBoxA pour être utilisé dans les shellcodes sur windows. 1234567891011121314151617181920212223242526272829303132333435363738394041424344#include <windows.h> #include <stdio.h> int main(int argc, char *argv[]) { char *funcname = NULL; … Continuer la lecture