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

Tutoriels

English version with Google Translate

[Reverse Engineering – partie 3] Résolution des contraintes de sécurité par l'obfuscation

Par Rédaction, secuobs.com
Le 15/09/2007


Résumé : Cette partie concerne les différentes techniques d'obfuscation qui étaient présentes dans l'exécutable à reverser pour la première étape du concours de sécurité informatique Hacker Challenge 2007, retrouver également ici les informations permettant de les contourner en partie grâce à une seconde analyse effectuée avec l'utilitaire LordPE. - Lire l'article



Le registre esi pointait à ce moment là sur la structure IMAGE_SECTION_HEADER, puis lisait les noms des sections (IMAGE_SECTION_HEADER.Name) dans le but d'y effectuer des opérations de décryptage :

JR:004284C8 section_scanner: ; CODE XREF: decryptor+22C
JR:004284C8 push edx
JR:004284C9 push eax
JR:004284CA db 3Eh
JR:004284CA cmp dword ptr [esi], 'xet.'
JR:004284D1 jz code_decryption
JR:004284D7 db 3Eh
JR:004284D7 cmp dword ptr [esi], 'EDOC'
JR:004284DE jz code_decryption
JR:004284E4 db 3Eh
JR:004284E4 cmp dword ptr [esi], 'tad.'
JR:004284EB jz data_decryption
JR:004284F1 db 3Eh
JR:004284F1 cmp dword ptr [esi], 'ATAD'
JR:004284F8 jz data_decryption
JR:004284FE db 3Eh
JR:004284FE cmp dword ptr [esi], 'SSB'
JR:00428505 jz short bss_decryption
JR:00428507 db 3Eh
JR:00428507 cmp dword ptr [esi], 'adi.'
JR:0042850E jz idata_decryption
JR:00428514 db 3Eh
JR:00428514 cmp dword ptr [esi], 'ade.'
JR:0042851B jnz short edata_decryption
[…]

typedef struct _IMAGE_SECTION_HEADER {
BYTE Name[IMAGE_SIZEOF_SHORT_NAME];
union {
DWORD PhysicalAddress;
DWORD VirtualSize;
} Misc;
DWORD VirtualAddress;
DWORD SizeOfRawData;
DWORD PointerToRawData;
DWORD PointerToRelocations;
DWORD PointerToLinenumbers;
WORD NumberOfRelocations;
WORD NumberOfLinenumbers;
DWORD Characteristics;
} IMAGE_SECTION_HEADER,
*PIMAGE_SECTION_HEADER;



Après avoir vérifié que les algorithmes de décryptage étaient sensiblement identiques il n’y avait donc aucun intérêt à tous les détailler, c’est pourquoi il ne sera décrit qu’une seule routine de décryptage, libre à chacun de faire de même avec les autres :

JR:0042847C _code_code_decryption proc near ; CODE XREF: decryptor+105p
JR:0042847C mov edi, esi
JR:0042847E jmp short loc_428484
JR:0042847E ; -------------------------------------------------------------------
JR:00428480 db 90h ; É
JR:00428481 db 90h ; É
JR:00428482 db 90h ; É
JR:00428483 db 90h ; É
JR:00428484 ; -------------------------------------------------------------------
JR:00428484
JR:00428484 loc_428484: ; CODE XREF: _code_code_decryption+2j
JR:00428484 ; _code_code_decryption+3Aj
JR:00428484 lodsb
JR:00428485 clc
JR:00428486 add al, 10h
JR:00428488 stc
JR:00428489 jmp short loc_42848C
JR:00428489 ; -------------------------------------------------------------------
JR:0042848B db 0C2h ; -
JR:0042848C ; -------------------------------------------------------------------
JR:0042848C
JR:0042848C loc_42848C: ; CODE XREF: _code_code_decryption+Dj
JR:0042848C jmp short loc_42848F
JR:0042848C ; -------------------------------------------------------------------
JR:0042848E db 0C2h ; -
JR:0042848F ; -------------------------------------------------------------------
JR:0042848F
JR:0042848F loc_42848F: ; CODE XREF: _code_code_decryption:loc_42848Cj
JR:0042848F jmp short loc_428492
JR:0042848F ; -------------------------------------------------------------------
JR:00428491 db 0E9h ; Ú
JR:00428492 ; -------------------------------------------------------------------
JR:00428492
JR:00428492 loc_428492: ; CODE XREF: _code_code_decryption:loc_42848Fj
JR:00428492 xor al, 53h
JR:00428494 ror al, 0BDh
JR:00428497 add al, 0AFh
JR:00428499 sub al, 1Fh
JR:0042849B jmp short loc_42849E
JR:0042849B ; -------------------------------------------------------------------
JR:0042849D db 0E8h ; Þ
JR:0042849E ; -------------------------------------------------------------------
JR:0042849E
JR:0042849E loc_42849E: ; CODE XREF: _code_code_decryption+1Fj
JR:0042849E jmp short loc_4284A1
JR:0042849E ; -------------------------------------------------------------------
JR:004284A0 db 0C2h ; -
JR:004284A1 ; -------------------------------------------------------------------
JR:004284A1
JR:004284A1 loc_4284A1: ; CODE XREF: _code_code_decryption:loc_42849Ej
JR:004284A1 jmp short loc_4284A4
JR:004284A1 ; -------------------------------------------------------------------
JR:004284A3 db 0C2h ; -
JR:004284A4 ; -------------------------------------------------------------------
JR:004284A4
JR:004284A4 loc_4284A4: ; CODE XREF: _code_code_decryption:loc_4284A1j
JR:004284A4 jmp short loc_4284A7
JR:004284A4 ; -------------------------------------------------------------------
JR:004284A6 db 0E9h ; Ú
JR:004284A7 ; -------------------------------------------------------------------
JR:004284A7
JR:004284A7 loc_4284A7: ; CODE XREF: _code_code_decryption:loc_4284A4j
JR:004284A7 jmp short loc_4284AA
JR:004284A7 ; -------------------------------------------------------------------
JR:004284A9 db 0E8h ; Þ
JR:004284AA ; -------------------------------------------------------------------
JR:004284AA
JR:004284AA loc_4284AA: ; CODE XREF: _code_code_decryption:loc_4284A7j
JR:004284AA jmp short loc_4284AD
JR:004284AA ; -------------------------------------------------------------------
JR:004284AC db 0E8h ; Þ
JR:004284AD ; -------------------------------------------------------------------
JR:004284AD
JR:004284AD loc_4284AD: ; CODE XREF: _code_code_decryption:loc_4284AAj
JR:004284AD jmp short loc_4284B0
JR:004284AD ; -------------------------------------------------------------------
JR:004284AF db 0E9h ; Ú
JR:004284B0 ; -------------------------------------------------------------------
JR:004284B0
JR:004284B0 loc_4284B0: ; CODE XREF: _code_code_decryption:loc_4284ADj
JR:004284B0 add al, 0A0h
JR:004284B2 add al, 0Fh
JR:004284B4 nop
JR:004284B5 stosb
JR:004284B6 loop loc_428484
JR:004284B8 retn
JR:004284B8 _code_code_decryption endp



Comme déjà dit précèdement l’obfuscation pouvait être facilement détournée, il suffisait de remplaçer l'ensemble des instructions redondantes par des insctructions nulles de saut NOP (No Operation), on obtenait alors quelque chose de déjà beaucoup plus propre :

JR:0042847C _code_code_decryption proc near ; CODE XREF: decryptor+105 p
JR:0042847C mov edi, esi
JR:00428484 ; _code_code_decryption+3A j
JR:00428484 lodsb ; get encrypted byte.
JR:00428485 clc
JR:00428486 add al, 10h
JR:00428488 stc
JR:00428492 xor al, 53h
JR:00428494 ror al, 0BDh
JR:00428497 add al, 0AFh
JR:00428499 sub al, 1Fh_code_code_decryption:loc_4284AD
JR:004284B0 add al, 0A0h
JR:004284B2 add al, 0Fh
JR:004284B4 nop
JR:004284B5 stosb ; restore uncrypted byte.
JR:004284B6 loop loc_428484
JR:004284B8 retn
JR:004284B8 _code_code_decryption endp



L’algorithme tenait en fait dans moins d’une dizaine d’instructions ; une fois toutes les sections déchiffrées, l’exécutable se contentait de « jumper » sur l’Original Entry Point (OEP), c'est-à-dire le véritable point d’entré vers le cœur du programme :

JR:0042843A jmp jmp_jmp_oep
[…]
JR:00428890 jmp_jmp_oep: ; CODE XREF: inside_the_pseudopacker+139j
JR:00428890 jmp jmp_oep
[…]
JR:004289D0 jmp_oep: ; CODE XREF: inside_the_pseudopacker:jmp_jmp_oep
JR:004289D0 mov edx, offset OriginalEntryPoint
JR:004289D5 jmp edx



Grâce à un utilitaire de debugging comme Immunity Debugger ( lien ) ou Ollydbg ( lien ) dans le cas suivant, on pouvait alors poser un breakpoint à l’adresse 0x00429D5 :

JR:004289D5 jmp edx


Une pression sur la touche F7 suffisait pour exécuter un single step (traçage ligne par ligne) et exécuter le « jmp edx » et arrivait enfin à l’OEP :


004094B8 E8 7C810000 CALL final.00411639
004094BD ^ E9 40FEFFFF JMP final.00409302
004094C2 55 PUSH EBP



Il ne restait plus qu’a ouvrir à nouveau l'utilitaire LordPE et à réaliser un « dump full » afin de nous retrouver avec un exécutable qui pouvait à nouveau être analysé sous le désassembleur sans oublier au passage de modifier l’Entrypoint sur la valeur de l'adresse mémoire 0x4094B8 grâce à la fonction PE Editor :





Rappelons que l'objectif de cette première étape du concours était avant tout d'effectuer une opération de reverse engineering sur une formule mathématique dont le résultat avait pour valeur de sortie « 10.9319 » ; avant d’arriver à afficher cette fameuse valeur le programme ouvrait un fichier password.txt dans lequel il lisait deux caractères :

.text:00406FE8 lea edx, [ebp+68h+_2chars]
.text:00406FEB push edx ; char *
.text:00406FEC call j__atol ; 0x59
.text:00406FF1 mov ecx, eax
.text:00406FF3 mov eax, 30C30C31h
.text:00406FF8 imul ecx
.text:00406FFA sar edx, 3
.text:00406FFD mov eax, edx
.text:00406FFF shr eax, 1Fh
.text:00407002 add eax, edx
.text:00407004 imul eax, 2Ah
.text:00407007 mov edx, ecx
.text:00407009 add esp, 4
.text:0040700C sub edx, eax ; edx must be equal to eax (0x54)
.text:0040700E jnz short bad_password
.text:00407010 test ecx, ecx
.text:00407012 jz short bad_password
.text:00407014 push offset aThankYou_ ; "Thank you. \n"
.text:00407019 push offset StringOuput
.text:0040701E call printf



Grâce à l'utilitaire de debuggage on s'apercevait assez rapidement que le contenu devait être égal à la valeur 0x54 soit 84.


Autres ressources dans ce dossier :

[Reverse Engineering – partie 1] Hacker Challenge, solution et résolution de la première étape - lien

[Reverse Engineering – partie 2] Analyse de l'exécutable - lien

[Reverse Engineering – partie 4] Résolution des contraintes de sécurité par anti-debugging – lien

[Reverse Engineering – partie 5] Résolution du premier objectif - lien

[Reverse Engineering – partie 6] Résolution du second objectif et finalisation de la première étape du concours - lien



Les mots clés pour les articles publiés sur SecuObs : reverse engineering sécurité
Les articles de la revue de presse sur les mots clés : reverse engineering
Les videos sur SecuObs pour les mots clés : engineering
Les éléments de la revue Twitter pour les mots clés : engineering
Voir tous les articles de "Rédaction" publiés sur SecuObs (691 résultats)
Voir tous les articles publiés par l'organisme "secuobs" sur SecuObs (998 résultats)


- Article suivant : [Reverse Engineering – partie 4] Résolution des contraintes de sécurité par anti-debugging
- Article précédent : [Reverse Engineering – partie 2] Analyse de l'exécutable
- Article suivant dans la catégorie Tutoriels : [Reverse Engineering – partie 4] Résolution des contraintes de sécurité par anti-debugging
- Article précédent dans la catégorie Tutoriels : [Reverse Engineering – partie 2] Analyse de l'exécutable


Les derniers commentaires de la catégorie Tutoriels:
- UPDATE Snort 2.9.1.1 ...
- Apache Issues Patch To Stop Reverse-Proxy Bypass Attack ...
- ESRT @HackerTheDude @r0bertmart1nez @xanda @morenops - Kernel hacking the BSD way, new post ...
- ESRT @room362 - The Dirty Little Secrets They Didn't Teach You In Pentesting Class ...
- ESRT @jcran @dkarg - Metasploit Payloads VS Libemu - Alienvault Labs ...

Les derniers articles de la catégorie Tutoriels :
- PktAnon un framework pour l anonymat des traces PCAP
- [NessusWX – Partie 2] Audits et conclusion
- [NessusWX – Partie 1] Introduction, installation et configuration
- [IDS Snort Windows – Partie 4] Conclusion et webographie
- [IDS Snort Windows – Partie 3] Exemple de fichier de configuration
- [IDS Snort Windows – Partie 2] Installation et configuration
- [IDS Snort Windows – Partie 1] Introduction aux IDS et à SNORT
- [Sécurité et PHP - Partie 5] Astuces
- [Sécurité et PHP - Partie 4] Remote PHP Vulnerabilty Scanner
- [Sécurité et PHP - Partie 3] Les failles PHP




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 :