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

[Mécanisme de sécurité Microsoft Windows XP/VISTA – Partie 2] /GS et cookie

Par Rédaction, secuobs.com
Le 18/12/2007


Résumé : Le flag /GS, activé par défaut sous Visual Studio 2005, permet de générer un cookie en vue de prévenir l’exécution de code malveillant attaché à l'exploitation d'une faille de type dépassement de mémoire tampon ou Buffer overflow. - Lire l'article



Le flag /GS est activé par défaut sous Visual Studio 2005 ( lien ), il permet de générer un cookie parfois appelé également canarie ; cette option ne permet pas d’empêcher les attaques de type overflow, mais elle permet tout de même de prévenir l’exécution de code malveillant s'y attachant.

On définira le cookie comme un entier témoin, stocké à deux endroits différents afin de pouvoir vérifier son authenticité, c'est-à-dire d’en détecter la moindre modification. Le cookie est stocké dans la pile mémoire au début d’une fonction appelée prologue, puis à la fin de la fonction appelée epilogue la fonction __security_check_cookie vérifie l’authenticité du cookie avant de quitter la fonction avec l'opcode retn si le cookie est bien valide.

Pour information, le cookie est généré par la fonction __security_init_cookie(), qui est exécutée pendant l’initialisation des CRT (C Run-Time Library) c'est-à-dire par la fonction __mainCRTStartup. Cette fonction utilise une série de paramètres aléatoires générés par les fonctions suivantes : le temps avec GetSystemTimeAsFileTime, GetTickCount et QueryPerformanceCounter ainsi que les ID du processus et du thread avec GetCurrentProcessId, GetCurrentThreadId.

Pour les plus curieux d’entre vous voici l’algorithme de génération du cookie :

.text:004016F4 __security_init_cookie proc near; CODE XREF: mainCRTStartupp
.text:004016F4
.text:004016F4 PerformanceCount= LARGE_INTEGER ptr -10h
.text:004016F4 SystemTimeAsFileTime= _FILETIME ptr -8
.text:004016F4
.text:004016F4 push ebp
.text:004016F5 mov ebp, esp
.text:004016F7 sub esp, 10h
.text:004016FA mov eax, __security_cookie
.text:004016FF and [ebp+SystemTimeAsFileTime.dwLowDateTime], 0
.text:00401703 and [ebp+SystemTimeAsFileTime.dwHighDateTime], 0
.text:00401707 push ebx
.text:00401708 push edi
.text:00401709 mov edi, 0BB40E64Eh
.text:0040170E cmp eax, edi
.text:00401710 mov ebx, 0FFFF0000h
.text:00401715 jz short __generate_cookie
.text:00401717 test eax, ebx
.text:00401719 jz short __generate_cookie
.text:0040171B not eax
.text:0040171D mov __security_cookie_complement, eax
.text:00401722 jmp short _exit
.text:00401724 ;
.text:00401724
.text:00401724 __generate_cookie: ; CODE XREF: __security_init_cookie+21j
.text:00401724 ; __security_init_cookie+25j
.text:00401724 push esi
.text:00401725 lea eax, [ebp+SystemTimeAsFileTime]
.text:00401728 push eax ; lpSystemTimeAsFileTime
.text:00401729 call ds:__imp__GetSystemTimeAsFileTime@4 ; GetSystemTimeAsFileTime(x)
.text:0040172F mov esi, [ebp+SystemTimeAsFileTime.dwHighDateTime]
.text:00401732 xor esi, [ebp+SystemTimeAsFileTime.dwLowDateTime]
.text:00401735 call ds:__imp__GetCurrentProcessId@0 ; GetCurrentProcessId()
.text:0040173B xor esi, eax
.text:0040173D call ds:__imp__GetCurrentThreadId@0 ; GetCurrentThreadId()
.text:00401743 xor esi, eax
.text:00401745 call ds:__imp__GetTickCount@0 ; GetTickCount()
.text:0040174B xor esi, eax
.text:0040174D lea eax, [ebp+PerformanceCount]
.text:00401750 push eax ; lpPerformanceCount
.text:00401751 call ds:__imp__QueryPerformanceCounter@4 ; QueryPerformanceCounter(x)
.text:00401757 mov eax, dword ptr [ebp+PerformanceCount+4]
.text:0040175A xor eax, dword ptr [ebp+PerformanceCount]
.text:0040175D xor esi, eax
.text:0040175F cmp esi, edi
.text:00401761 jnz short loc_40176A
.text:00401763 mov esi, 0BB40E64Fh
.text:00401768 jmp short __save_cookie
.text:0040176A ;
.text:0040176A
.text:0040176A loc_40176A: ; CODE XREF: __security_init_cookie+6Dj
.text:0040176A test esi, ebx
.text:0040176C jnz short __save_cookie
.text:0040176E mov eax, esi
.text:00401770 shl eax, 10h
.text:00401773 or esi, eax
.text:00401775
.text:00401775 __save_cookie: ; CODE XREF: __security_init_cookie+74j
.text:00401775 ; __security_init_cookie+78j
.text:00401775 mov __security_cookie, esi
.text:0040177B not esi
.text:0040177D mov __security_cookie_complement, esi
.text:00401783 pop esi
.text:00401784
.text:00401784 _exit: ; CODE XREF: __security_init_cookie+2Ej
.text:00401784 pop edi
.text:00401785 pop ebx
.text:00401786 leave
.text:00401787 retn
.text:00401787 __security_init_cookie endp



Quant à la fonction __security_check_cookie, elle se contente de comparer le cookie sauvegardé sur la pile mémoire avec le __security_cookie contenu en dur dans le programme ; il est régénéré à chaque lancement du programme. Si les valeurs sont différentes une erreur est reportée par l’intermédiaire de la fonction __report_faufilure :

.text:00401090 __security_check_cookie proc near ; DATA XREF: _except_handler4+10o
.text:00401090 cmp ecx, __security_cookie
.text:00401096 jnz short loc_40109A
.text:00401098 rep retn
.text:0040109A ;
.text:0040109A
.text:0040109A loc_40109A: ; CODE XREF: __security_check_cookie+6j
.text:0040109A jmp __report_faufilure
.text:0040109A __security_check_cookie endp



Exemple :

int main(int argc, char **argv)
{
unsigned char buffer[64];

if (argc < 2)
{
printf("pas assez d'argument\n");
return 0;
}

//
// Etant donné que le cookie se situe à une adresse fixe, en fonction des allocations
// des buffers, il est possible de le lire directement en ajustant les pointeurs.
//

printf("Cookie offset = 0x%08X\n
Cookie value = 0x%02X%02X%02X%02X\n",
(int)&buffer + sizeof(buffer) + 4,
(buffer[sizeof(buffer) + 4 + 3]),
(buffer[sizeof(buffer) + 4 + 2]),
(buffer[sizeof(buffer) + 4 + 1]),
(buffer[sizeof(buffer) + 4]));

//
// Overflow !
//

printf("\nStack overflow reussi ...\n");

//
// Ici on utilise memcpy() pour copier le buffer, la taille est définie par la longueur
// de la chaîne de caractère du premier argument.
//

memcpy(buffer, argv[1], strlen(argv[1]));

printf("Cookie offset = 0x%08X\n
Cookie value = 0x%02X%02X%02X%02X\n",
(int)&buffer + sizeof(buffer) + 4,
(buffer[sizeof(buffer) + 4 + 3]),
(buffer[sizeof(buffer) + 4 + 2]),
(buffer[sizeof(buffer) + 4 + 1]),
(buffer[sizeof(buffer) + 4]));

return 0;
}



L'exécution a pour résultat :

\Projects\seh\release>seh.exe AAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AA
Cookie offset = 0x0012FF78
Cookie value = 0x5BDCB8C2

Stack overflow reussi ...

Cookie offset = 0x0012FF78
Cookie value = 0x41414141



Comme on peut le constater, on a un accès direct en écriture sur le cookie qui est sauvegardé dans la pile mémoire ; cela n'est plus possible depuis la sortie du Service Pack 1 (SP1 - lien ) pour Visual Studio. Sous Visual Studio 2005 SP1, de nouveaux pragmas ont fait leur apparition ; ils rendent le flag /GS beaucoup plus agressif et entreprenant d’après Michael Howard, un ingénieur de chez Microsoft ( lien )

Cela permet de forcer le cookie de la pile mémoire à être stocké dans la pile mémoire de la fonction en tant que première variable ; ce qui signifie qu’il sera stocké avant les variables locales de la fonction. Et par là même il sera donc beaucoup plus compliqué d'obtenir un accès en écriture contrairement au cas précédent voir même impossible pour le cas précédent.

Voici la syntaxe de ces pragmas :

#pragma strict_gs_check([push,] on )
#pragma strict_gs_check([push,] off )
#pragma strict_gs_check(pop)



Un pragma sert à passer des informations au compilateur directement depuis le code.


Autres ressources dans ce dossier :

[Mécanisme de sécurité Microsoft Windows XP/VISTA – Partie 1] Présentation des problématiques – lien

[Mécanisme de sécurité Microsoft Windows XP/VISTA – Partie 3] SafeSEH – lien

[Mécanisme de sécurité Microsoft Windows XP/VISTA – Partie 4] Address Space Layout Randomization, No eXecution et User Account Control – lien

[Mécanisme de sécurité Microsoft Windows XP/VISTA – Partie 5] Patchguard, rootkit, hibernation et webographie – lien



Les mots clés pour les articles publiés sur SecuObs : sécurité microsoft windows cookie
Les articles de la revue de presse sur les mots clés : microsoft windows cookie
Les videos sur SecuObs pour les mots clés : microsoft windows cookie
Les éléments de la revue Twitter pour les mots clés : microsoft windows cookie
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 : [Mécanisme de sécurité Microsoft Windows XP/VISTA – Partie 3] SafeSEH
- Article précédent : [Mécanisme de sécurité Microsoft Windows XP/VISTA – Partie 1] Présentation des problématiques
- Article suivant dans la catégorie Tutoriels : [Mécanisme de sécurité Microsoft Windows XP/VISTA – Partie 3] SafeSEH
- Article précédent dans la catégorie Tutoriels : [Mécanisme de sécurité Microsoft Windows XP/VISTA – Partie 1] Présentation des problématiques


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 :