Contribuez à SecuObs en envoyant des bitcoins ou des dogecoins.
Nouveaux articles (fr): 1pwnthhW21zdnQ5WucjmnF3pk9puT5fDF
Amélioration du site: 1hckU85orcGCm8A9hk67391LCy4ECGJca

Contribute to SecuObs by sending bitcoins or dogecoins.

Chercher :
Newsletter :  


Revues :
- Presse
- Presse FR
- Vidéos
- Twitter
- Secuobs





Sommaires :
- Tendances
- Failles
- Virus
- Concours
- Reportages
- Acteurs
- Outils
- Breves
- Infrastructures
- Livres
- Tutoriels
- Interviews
- Podcasts
- Communiques
- USBsploit
- Commentaires


Revue Presse:
- Tous
- Francophone
- Par mot clé
- Par site
- Le tagwall


Top bi-hebdo:
- Ensemble
- Articles
- Revue
- Videos
- Twitter
- Auteurs


Articles :
- Par mot clé
- Par auteur
- Par organisme
- Le tagwall


Videos :
- Toutes
- Par mot clé
- Par site
- Le tagwall


Twitter :
- Tous
- Par mot clé
- Par compte
- Le tagwall


Commentaires :
- Breves
- Virus
- Failles
- Outils
- Tutoriels
- Tendances
- Acteurs
- Reportages
- Infrastructures
- Interviews
- Concours
- Livres
- Communiques


RSS/XML :
- Articles
- Commentaires
- Revue
- Revue FR
- Videos
- Twitter


RSS SecuObs :
- sécurité
- exploit
- windows
- attaque
- outil
- microsoft


RSS Revue :
- security
- microsoft
- windows
- hacker
- attack
- network


RSS Videos :
- curit
- security
- biomet
- metasploit
- biometric
- cking


RSS Twitter :
- security
- linux
- botnet
- attack
- metasploit
- cisco


RSS Comments :
- Breves
- Virus
- Failles
- Outils
- Tutoriels
- Tendances
- Acteurs
- Reportages
- Infrastructures
- Interviews
- Concours
- Livres
- Communiques


RSS OPML :
- Français
- International











Revue de presse francophone :
- Appaloosa AppDome nouent un partenariat pour accompagner les entreprises dans le déploiement et la protection des applications mobiles
- D-Link offre une avec un routeur VPN sans fil AC
- 19 mai Paris Petit-Déjeuner Coreye Développer son business à l'abri des cyberattaques
- POYNTING PRESENTE LA NOUVELLE ANTENNE OMNI-291, SPECIALE MILIEU MARITIME, CÔTIER ET MILIEU HUMIDE
- Flexera Software Les utilisateurs français de PC progressent dans l'application de correctifs logiciels, mais des défis de tailles subsistent
- Riverbed lance SD-WAN basé sur le cloud
- Fujitsu multi-récompensé VMware lui décerne plusieurs Partner Innovation Awards à l'occasion du Partner Leadership Summit
- Zscaler Private Access sécuriser l'accès à distance en supprimant les risques inhérents aux réseaux privés virtuels
- QNAP annonce la sortie de QTS 4.2.1
- Une enquête réalisée par la société de cyber sécurité F-Secure a décelé des milliers de vulnérabilités graves, potentiellement utilisables par des cyber criminels pour infiltrer l'infrastru
- Trouver le juste équilibre entre une infrastructure dédiée et cloud le dilemme de la distribution numérique
- 3 juin - Fleurance - Cybersécurité Territoires
- Cyber-assurances Seules 40 pourcents des entreprises françaises sont couvertes contre les violations de sécurité et les pertes de données
- Des étudiants de l'ESIEA inventent CheckMyHTTPS un logiciel qui vérifie que vos connexions WEB sécurisées ne sont pas interceptées
- Les produits OmniSwitch d'Alcatel-Lucent Enterprise ALE gagnent en sécurité pour lutter contre les cyber-attaques modernes

Dernier articles de SecuObs :
- DIP, solution de partage d'informations automatisée
- Sqreen, protection applicative intelligente de nouvelle génération
- Renaud Bidou (Deny All): "L'innovation dans le domaine des WAFs s'oriente vers plus de bon sens et d'intelligence, plus de flexibilité et plus d'ergonomie"
- Mises à jour en perspective pour le système Vigik
- Les russes ont-ils pwn le système AEGIS ?
- Le ministère de l'intérieur censure une conférence au Canada
- Saut d'air gap, audit de firmware et (in)sécurité mobile au programme de Cansecwest 2014
- GCHQ: Le JTRIG torpille Anonymous qui torpille le JTRIG (ou pas)
- #FIC2014: Entrée en territoire inconnu
- Le Sénat investit dans les monnaies virtuelles

Revue de presse internationale :
- VEHICLE CYBERSECURITY DOT and Industry Have Efforts Under Way, but DOT Needs to Define Its Role in Responding to a Real-world Attack
- Demand letter served on poll body over disastrous Comeleak breach
- The Minimin Aims To Be The Simplest Theremin
- Hacking group PLATINUM used Windows own patching system against it
- Hacker With Victims in 100 Nations Gets 7 Years in Prison
- HPR2018 How to make Komboucha Tea
- Circuit Bender Artist bends Fresnel Lens for Art
- FBI Director Suggests iPhone Hacking Method May Remain Secret
- 2016 Hack Miami Conference May 13-15, 2016
- 8-bit Video Wall Made From 160 Gaming Keyboards
- In An Era Of Decline, News Sites Can t Afford Poor Web Performance
- BeautifulPeople.com experiences data breach 1m affected
- Swedish Air Space Infringed, Aircraft Not Required
- Why cybercriminals attack healthcare more than any other industry
- Setting the Benchmark in the Network Security Forensics Industry

Annuaire des videos
- FUZZING ON LINE PART THREE
- Official Maltego tutorial 5 Writing your own transforms
- Official Maltego tutorial 6 Integrating with SQL DBs
- Official Maltego tutorial 3 Importing CSVs spreadsheets
- install zeus botnet
- Eloy Magalhaes
- Official Maltego tutorial 1 Google s websites
- Official Maltego tutorial 4 Social Networks
- Blind String SQL Injection
- backdoor linux root from r57 php shell VPS khg crew redc00de
- How To Attaque Pc With Back Track 5 In Arabique
- RSA Todd Schomburg talks about Roundup Ready lines available in 2013
- Nessus Diagnostics Troubleshooting
- Panda Security Vidcast Panda GateDefender Performa Parte 2 de 2
- MultiPyInjector Shellcode Injection

Revue Twitter
- RT @fpalumbo: Cisco consistently leading the way ? buys vCider to boost its distributed cloud vision #CiscoONE
- @mckeay Looks odd... not much to go on (prob some slideshow/vid app under Linux)
- [SuggestedReading] Using the HTML5 Fullscreen API for Phishing Attacks
- RT @BrianHonan: Our problems are not technical but cultural. OWASP top 10 has not changed over the years @joshcorman #RSAC
- RT @mikko: Wow. Apple kernels actually have a function called PE_i_can_has_debugger:
- [Blog Spam] Metasploit and PowerShell payloads
- PinkiePie Strikes Again, Compromises Google Chrome in Pwnium Contest at Hack in the Box: For the second time thi...
- @mikko @fslabs y'all wldn't happen to have lat/long data sets for other botnets, wld you? Doing some research (free/open info rls when done)
- RT @nickhacks: Want to crash a remote host running Snow Leopard? Just use: nmap -P0 -6 --script=targets-ipv6-multicast-mld #wishiwaskidding
- An inexpensive proxy service called is actually a front for #malware distribution -

Mini-Tagwall
Revue de presse : security, microsoft, windows, hacker, attack, network, vulnerability, google, exploit, malware, internet, remote, iphone

+ de mots clés pour la revue de presse

Annuaires des videos : curit, security, biomet, metasploit, biometric, cking, password, windows, botnet, defcon, tutorial, crypt, xploit

+ de mots clés pour les videos

Revue Twitter : security, linux, botnet, attack, metasploit, cisco, defcon, phish, exploit, google, inject, server, firewall

+ de mots clés pour la revue Twitter

Top bi-hebdo des articles de SecuObs
- [Ettercap – Partie 2] Ettercap par l'exemple - Man In the Middle et SSL sniffing
- [Infratech - release] version 0.6 de Bluetooth Stack Smasher
- [IDS Snort Windows – Partie 2] Installation et configuration
- [Infratech - vulnérabilité] Nouvelle version 0.8 de Bluetooth Stack Smasher
- Mises à jour en perspective pour le système Vigik
- USBDumper 2 nouvelle version nouvelles fonctions !
- EFIPW récupère automatiquement le mot de passe BIOS EFI des Macbook Pro avec processeurs Intel
- La sécurité des clés USB mise à mal par USBDUMPER
- Une faille critique de Firefox expose les utilisateurs de Tor Browser Bundle
- Installation sécurisée d'Apache Openssl, Php4, Mysql, Mod_ssl, Mod_rewrite, Mod_perl , Mod_security

Top bi-hebdo de la revue de presse
- StackScrambler and the Tale of a Packet Parsing Bug

Top bi-hebdo de l'annuaire des videos
- DC++ Botnet. How To DDos A Hub With Fake IPs.
- Comment creer un server botnet!!!!(Réseau de pc zombies)
- Defcon 14 Hard Drive Recovery Part 3

Top bi-hebdo de la revue Twitter
- RT @secureideas: I believe that all the XSS flaws announced are fixed in CVS. Will test again tomorrow if so, release 1.4.3. #BASESnort
- Currently, we do not support 100% of the advanced PDF features found in Adobe Reader... At least that's a good idea.
- VPN (google): German Foreign Office Selects Orange Business for Terrestrial Wide: Full
- @DisK0nn3cT Not really, mostly permission issues/info leak...they've had a couple of XSS vulns but nothing direct.
- Swatting phreaker swatted and heading to jail: A 19-year-old American has been sentenced to eleven years in pris..
- RT @fjserna You are not a true hacker if the calc.exe payload is not the scientific one... infosuck.org/0x0035.png

Top des articles les plus commentés
- [Metasploit 2.x – Partie 1] Introduction et présentation
- Microsoft !Exploitable un nouvel outil gratuit pour aider les développeurs à évaluer automatiquement les risques
- Webshag, un outil d'audit de serveur web
- Les navigateurs internet, des mini-systèmes d’exploitation hors de contrôle ?
- Yellowsn0w un utilitaire de déblocage SIM pour le firmware 2.2 des Iphone 3G
- CAINE un Live[CD|USB] pour faciliter la recherche légale de preuves numériques de compromission
- Nessus 4.0 placé sous le signe de la performance, de l'unification et de la personnalisation
- [Renforcement des fonctions de sécurité du noyau Linux – Partie 1] Présentation
- [IDS Snort Windows – Partie 1] Introduction aux IDS et à SNORT
- Origami pour forger, analyser et manipuler des fichiers PDF malicieux

Demi-Reversing de l'IAT

Si vous voulez bloquer ce service sur vos fils RSS
Si vous voulez nous contacter ou nous proposer un fil RSS

Menu > Articles de la revue de presse : - l'ensemble [tous | francophone] - par mots clé [tous] - par site [tous] - le tagwall [voir] - Top bi-hebdo de la revue de presse [Voir]

S'abonner au fil RSS global de la revue de presse



Demi-Reversing de l'IAT

Par Geo's blog
Le [2009-07-24] à 01:07:00



Présentation : Un post que j'ai fait sur Nibbles pour apporté ma modeste part. Je le poste ici quand même - sans me soucier des éventuels soucis de formatage. Source http nibbles.tuxfamily.org p 409 --------------------------------------------------------------------- L'IAT - ou Import Address Table - est une section souvent présente dans les fichiers exécutables windows structurés par le format PE. Pour les connaisseurs, on peut la trouver sous le nom de .idata voire de .rdata . Il existe des techniques de piratage de cette section, comme le hooking IAT que je n'expliciterai malheureusement pas, n'ayant pas encore les connaissances requises pour . Dans les fichiers exécutables, les sections sont des blocs de données regroupés par utilisation. On a généralement .text la section code de notre fichier exécutable, où se retrouvent les instructions séquentielles qui seront exécutées par le processeur du binaire pur, donc .data la section qui contient, en vrac, des données au préalable initialisées à notifier que, dans la section .code, l'algorithme généré par le compilateur va se démerder pour adresser ses données .bss la section qui contient des données non-initialisées généralement présente sous des octets nuls, l'algorithme présent dans la section .code va pouvoir y stocker des données .idata la section importations , que nous allons étudier sans déconner . Nous allons, tout d'abord, définir ce qu'est la section importation je dirai IAT par la suite , étudier son intérêt, pour enfin passer à un peu de pratique pour faire joujou avec Demi-Reversing car on a des données théoriques, et parce qu'on va faire de la pratique . J'oubliais de préciser il faut connaître un minimum le format PE pour assurer une plus ou moins bonne compréhension de l'article. IAT C'est quoi, ça ------------------------- Littéralement, Import Address Table. Cette section a sa fonction particulière elle consiste à regrouper le nom des fonctions dynamiques - si je puis dire - présente dans les DLL - kernel32.dll, user32.dll... - afin de pouvoir les utiliser dans le programme. Par exemple, beaucoup de programmes auront besoin de la fonction ExitProcess , programmée dans la bibliothèque kernel32.dll . Il va donc falloir préciser dans l'IAT que l'on aura besoin de cette fameuse fonction. Pourquoi Parce que c'est la vie et tu la boucles les fonctions sont adressées différemment en fonction des systèmes d'exploitation, que ce soit Windows XP ou Windows Vista 32 bits, dans nos futurs exemples . Si les adresses étaient toutes les mêmes, on n'aurait pas besoin de préciser le nom des fonctions à importer. Leur adresse aurait suffit. Qui va trouver les adresses, alors Le loader de Windows, tout simplement. Lorsque ce loader va charger votre programme en mémoire, il va aller chercher les adresses des fonctions dont il a trouvé le nom, et va écrire ces adresses dans la section IAT. L'endroit de l'écriture est défini lui-même dans la section IAT. Tout est paramétré dedans. Nous allons l'étudier. Structure de l'IAT ------------------ Pour la suite, nous allons nous servir d'un binaire basique qui ne fait qu'afficher Hello . Vous pouvez l'obtenir à cette adresse http nibbles.tuxfamily.org wp-content uploads 2009 07 hello.exe L'IAT commence toujours par des structures de type _IMPORT_DESCRIPTOR . Sa définition est la suivante include typedef struct __IMPORT_DESCRIPTOR union DWORD Characteristics 0 for terminating null import descriptor DWORD OriginalFirstThunk RVA to original unbound IAT P_THUNK_DATA DWORD TimeDateStamp 0 if not bound, -1 if bound, and real date time stamp in _DIRECTORY_ENTRY_BOUND_IMPORT new BIND O.W. date time stamp of DLL bound to Old BIND DWORD ForwarderChain -1 if no forwarders DWORD Name DWORD FirstThunk RVA to IAT if bound this IAT has actual addresses _IMPORT_DESCRIPTOR typedef _IMPORT_DESCRIPTOR UNALIGNED P_IMPORT_DESCRIPTOR Énumérons, un à un, les membres de cette structure Characteristics OriginalFirstThunk DWORD, donc 4 octets il s'agit d'une adresse virtuelle relative - se référer à l'ImageBase dans l'en-tête PE pour récupérer l'adresse virtuelle absolue - indiquant un pointeur vers le tableau des fonctions à importer. Ces fonctions sont définies par la structure suivante include typedef struct __IMPORT_BY_NAME WORD Hint BYTE Name 1 _IMPORT_BY_NAME, P_IMPORT_BY_NAME Avec - Hint WORD 2 octets le numéro identifiant de la fonction. Il n'est pas explicitement valide, et sert à titre indicatif pour le loader windows - Name Byte 1 octet le nom de la fonction. On ne se servira pas de ce membre de structure pour obtenir le nom de la fonction sa taille est inconnue, tant la chaîne de caractère se termine de toute évidence par un octet nul. TimeDataStamp DWORD 4 octets indique la date de création du fichier. Ce membre ne contient pas forcément une valeur valide 0 dans plusieurs cas ForwarderChain DWORD 4 octets un champ qu'on voit souvent à 0. J'ai essayé de me renseigner sur Google, je n'ai vu que des c'est un truc avancé, on en parlera après , alors qu'il n'en parlent jamais. De ce fait, on va oublier ce champ puisqu'il ne gênera pas pour la suite Name DWORD 4 octets adresse virtuelle relative codée sur 4 octets et qui pointe sur une chaîne de caractère terminée par un octet nul. Cette chaîne correspond au nom de la DLL dont les fonctions proviennent FirstThunk à peu près pareil que OriginalFirstThunk. Je dis bien à peu près , parce qu'il m'est plus fiable lors de la manipulation de l'IAT sur plusieurs exécutables différents. On ne connait pas exactement le nombre de structures _IMPORT_DESCRIPTOR . On sait juste que la dernière structure contient tout ses membres non-initialisés donc 0 . Grâce au membre OriginalFirstThunk, on va pouvoir pointer sur un lot d'adresses virtuelles relatives qui correspondent à des pointeurs sur des structures _IMPORT_BY_NAME . On ne connait pas le nombre exact de structures présentes il faut simplement s'arrêter jusqu'à ce qu'on tombe sur une adresse virtuelle relative égale à 0. Grâce à ça, on va pouvoir connaître les fonctions importées de la DLL. Le champ FirstThunk - le dernier de la structure - quant à lui, lorsque le programme est chargé en mémoire, pointe sur un lot d'adresses virtuelles qui correspondent aux adresses mémoires des fonctions. Ce sont ses adresses qui seront appelées par le programme dans la section .text ou CODE pour les programmes compilés avec un environnement Borland . Prenons notre désassembleur favori ollydbg. Ouvrons notre exécutable hello.exe , faisons Alt M ou View Memory et cliquons sur. Vous avez ça caption id align aligncenter width 444 caption OllyDbg visualisation de l'IAT OllyDbg visualisation IAT caption J'ai tracé, en rouge, le chemin engendré par les pointeurs pour arriver au nom de la première fonction importée par le programme. Notez bien que les adresses mémoires sont écrites à l'envers, car c'est comme ça que sont représentés les entiers en dur dans la mémoire. On a donc, en fin de trajet, le Hint de la fonction ainsi que son nom, encadrés en bleus. En vert, j'ai tracé le chemin pour mettre en évidence le pointage vers la DLL Kernel32.dll. Voyons maintenant vers quoi pointe FirstThunk au lieu de OriginalFirstThunk caption id attachment_413 align aligncenter width 444 caption OllyDbg visualisation de l'IAT OllyDbg visualisation de l'IAT caption Ce champ pointe vers les adresses mémoires des fonctions. Pour être sûr de ce que j'avance, je vais utiliser arwin pour vérifier que la fonction AddAtom ait bien l'adresse 0x7C835535. Vous pouvez télécharger l'utilitaire ici http nibbles.tuxfamily.org wp-content uploads 2009 07 arwin.exe en voici son code source include include arwin - win32 address resolution program by steve hanna v.01 vividmachines.com shanna uiuc.edu you are free to modify this code but please attribute me if you change the code. bugfixes additions are welcome please email me to compile you will need a win32 compiler with the win32 SDK this program finds the absolute address of a function in a specified DLL. happy shellcoding int main int argc, char argv HMODULE hmod_libname FARPROC fprc_func printf arwin - win32 address resolution program - by steve hanna - v.01 n if argc arwin.exe kernel32.dll AddAtomA arwin - win32 address resolution program - by steve hanna - v.01 AddAtomA is located at 0x7c835535 in kernel32.dll On en déduit que le loader a bien placé l'adresse des fonctions dans la table d'importations. Un peu de prog ---------------- Depuis quelques temps, je bosse sur une bibliothèque pour me permettre d'analyser et manipuler le format PE de sorte à mieux le cerner. Je vais vous communiquer trois sources main.c prog principal , pe.h définitions de fonctions et pe.c les fonctions . main.c include include include include pe.h int main int argc, char argv if argc fp fopen filename, rb if MyPe-fp printf Erreur lors de l'ouverture de pourcentss abandon. n , filename return -1 DWORD MagicWord Lecture de l'en-tête DOS fread MyPe-ImageDosHeader, sizeof _DOS_HEADER , 1, MyPe-fp Déplacement jusqu'à l'en-tête PE fseek MyPe-fp, MyPe-ImageDosHeader.e_lfanew, SEEK_SET Lecture du mot magique fread MagicWord, sizeof DWORD , 1, MyPe-fp Lecture de l'en-tête PE fread MyPe-ImageFileHeader, sizeof _FILE_HEADER , 1, MyPe-fp Est-ce bien un PE if MagicWord _NT_SIGNATURE return -2 L'en-tête optionnelle existe if MyPe-ImageFileHeader.SizeOfOptionalHeader 0 On la lit fread MyPe-ImageOptionalHeader, sizeof _OPTIONAL_HEADER , 1, MyPe-fp On va lire toutes les sections MyPe-ImagesSectionHeader P_SECTION_HEADER malloc MyPe-ImageFileHeader.NumberOfSections sizeof _SECTION_HEADER int i for i 0 i ImageFileHeader.NumberOfSections i fread MyPe-ImagesSectionHeader i , sizeof _SECTION_HEADER , 1, MyPe-fp return 1 Cette fonction affiche les en-têtes de chaque section. param MyPe PortableExecutable structure PortableExecutable VOID PE_DmpSectionHeaders PortableExecutable MyPe int i 4 PE 0 0 fseek MyPe.fp, 4 MyPe.ImageDosHeader.e_lfanew sizeof MyPe.ImageFileHeader MyPe.ImageFileHeader.SizeOfOptionalHeader, SEEK_SET for i 0 i ImagesSectionHeader Cette fonction retourne l'offset - en dur dans le fichier - d'une section dont on connait le nom. param MyPe PortableExecutable structure PortableExecutable. param name char nom de la section DWORD Pe_GetOffsetFromSection PortableExecutable MyPe, char name int i 0 while strcmp MyPe.ImagesSectionHeader i .Name, name i PE.exe hello.exe KERNEL32.dll - AddAtomA - ExitProcess - FindAtomA - GetAtomNameA - SetUnhandledExceptionFilter msvcrt.dll - __getmainargs - __p__environ - __p__fmode - __set_app_type - _assert - _cexit - _iob - _onexit - _setmode - abort - atexit - free - malloc - memset - printf - signal Le code C est très crasseux et reste à améliorer, autant sur la revue des algos que sur l'ajout de nouvelles fonctionnalités. Vous pouvez obtenir l'archive contenant sources exécutable fichier projet Code Blocks ici http nibbles.tuxfamily.org wp-content uploads 2009 07 PE.zip Conclusion ---------- La section IAT reste intéressante en elle. Son fonctionnement est tel qu'elle puisse importer des fonctions de n'importe quelle DLL - tant qu'elle existe - sans en connaître ses adresses mémoires. Simplement ses noms. Il existe cependant d'autres méthodes pour faire appel à des fonctions sans passer par l'IAT, telles que l'utilisation des fonctions LoadLibrary et GetProcAddress . Liens 0vercl0k's blog. API Hooking - IAT patching premier sur Google, bravo à notre ami pendule 0vercl0k's blog. Dump Own iat., un article aux objectifs semblables. Toujours d'0vercl0k. Désolé pour les bavures sur le formatage des différents codes sources. L'archive reste normalement à disposition .




AddThis Social Bookmark Widget



Les derniers articles du site "Geo's blog" :

- Comprendre ce à quoi servent __cdecl et __stdcall en langage C, ainsi que leurs différences
- End.
- Comment supporter __construct et __destruct en PHP 4
- Une bonne raison d'utiliser intval
- Analyse de winpcap - Petite rectification
- Fonctionnalités intéressantes dans notepad
- Analyse de winpcap - Partie II
- Analyse de winpcap - Partie I
- Joujou avec winpcap
- Réimport Ret into libc théorie pratique




S'abonner au fil RSS global de la revue de presse

Menu > Articles de la revue de presse : - l'ensemble [tous | francophone] - par mots clé [tous] - par site [tous] - le tagwall [voir] - Top bi-hebdo de la revue de presse [Voir]



Si vous voulez bloquer ce service sur vos fils RSS :
- avec iptables "iptables -A INPUT -s 88.191.75.173 --dport 80 -j DROP"
- avec ipfw et wipfw "ipfw add deny from 88.191.75.173 to any 80"
- Nous contacter par mail




SecuToolBox :

Mini-Tagwall des articles publiés sur SecuObs :

Mini-Tagwall de l'annuaire video :

Mini-Tagwall des articles de la revue de presse :

Mini-Tagwall des Tweets de la revue Twitter :