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
- réseau


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 :
- Vigilance - phpMyAdmin Cross Site Scripting des fonctions de mise au point et surveillance, analysé le 22 10 2014
- Vigilance - Noyau Linux déni de service via KVM, analysé le 22 10 2014
- Vigilance - Cisco IOS XE élévation de privilèges via ANI, analysé le 10 10 2014
- Vigilance - Cisco IOS XE injection de routes dans ACP de ANI, analysé le 10 10 2014
- Vigilance - Cisco IOS XE validation incorrecte des certificats avec ANI, analysé le 10 10 2014
- Drupal, une faille World Wide sur le web
- La fillière du hack des magasins Target est Russe
- Le premier G-man des USA fustige la crypto
- LPM cybersécurité des OIV quel bilan 10 mois après
- Vigilance - IBM WebSphere MQ non filtrage de CHLAUTH, analysé le 09 10 2014
- Jean-Pierre Carlin, LogRhythm Le SIEM, premier rempart pour limiter les pertes liées aux cyberattaques
- Vigilance - OpenBSD déni de service via le lancement d'un programme avec un en-tête ELF incohérent, analysé le 20 10 2014
- Hurricane Electric développe sa présence dans le monde au sein des datacenters d'Equinix
- Vigilance - HP Data Protector multiples vulnérabilités de crs.exe, analysé le 24 07 2014
- Vigilance - Apple QuickTime corruption de mémoire via MVHD, analysé le 24 07 2014

Dernier articles de SecuObs :
- 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
- #LPM2013: Un nouvel espoir ?
- L'ANSSI durcit le ton

Revue de presse internationale :
- NJ Bill to Expand Security Breach Notifications Clears First Legislative Hurdle
- The Book of PF, 3rd Edition is Here, First Signed Copy Can Be Yours
- 11-08-2014 Crypto currency overview, hardware and trends
- Labatt says hackers responsible for 'slut' tweet on Alexander Keith site
- Two new attacks on Tor
- Italian Supreme Court Bans the 'Microsoft Tax'
- Always Be Advancing An Update from Customer Success
- Embedding Is Not Copyright Infringement, EU Court Rules
- Miami-Dade Resident Sentenced In Stolen Identity Unemployment Insurance Fraud Scheme
- Massachusetts Man Sentenced To 21 Months In Prison For Role In Multimillion-Dollar International Cybercrime Scheme
- Why is the Sun Yellow Why is the Sky Blue SaturdayMorningCartoons
- How Does Cloud Computing Work SaturdayMorningCartoons
- CHP Officers Steal, Forward Nude Pictures From Arrestee Smartphones
- Sex toys e-tailer notifies some customers of breach
- Google Blacklists Bit.ly

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
- Le ministère de l'intérieur censure une conférence au Canada
- OSSTMM une méthodologie Open Source pour les audits de sécurité
- Une faille critique de Firefox expose les utilisateurs de Tor Browser Bundle
- [Ettercap – Partie 3] Ettercap par l'exemple - Affaiblissement de protocoles et attaque par injection
- [Trames et paquets de données avec Scapy – Partie 1] Présentation
- Mises à jour en perspective pour le système Vigik
- Sipvicious, un outil d’audit pour SIP
- [(in)Sécurité du protocole HTTPS par Sysun Technologies – partie 1] Introduction à HTTPS
- La sécurité des clés USB mise à mal par USBDUMPER

Top bi-hebdo de la revue de presse

Top bi-hebdo de l'annuaire des videos
- Comment creer un server botnet!!!!(Réseau de pc zombies)

Top bi-hebdo de la revue Twitter

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

[WiShMaster - partie 4] Principe et Fonctionnement - RConnect/WiShMaster Vs firewalls personnels (1)

Par Benjamin Caillat, Mastère Spécialisé Sécurité ESIEA
Le 16/09/2006


Résumé : Présentation de RConnect (principe, défauts), modification (shellcodisation, brouillage) et utilisation de la backdoor. Principe, utilisation et mise en oeuvre des techniques d'injection de thread dans un autre processus. Encapsulation d'un backdoor. - Lire l'article



WiShMaster dans le détail

La suite de ce dossier présentera un exemple d'utilisation de WiShMaster basé sur la shellcodisation d'une backdoor toute simple afin d'en améliorer les capacités.

Après une rapide présentation du principe de la backdoor, il présentera les possibilités ouvertes par l'opération de shellcodisation et se terminera par une évaluation de la détection de la backdoor sous sa nouvelle forme par quelques firewalls personnels.

Il faut bien noter que l’objectif de WiShMaster est de transformer un code en shellcode afin de pouvoir le manipuler aisément.

L’utilisation exposée dans cet article reste donc un exemple parmi un ensemble de possibilités, que j’ai choisi car il s’inscrit dans la continuité de recherches personnelles sur la problématique de filtrage des flux sortants.

Il permettra de plus de détailler un peu le fonctionnement des firewalls personnels. WiShMaster n’a en aucun cas pour but ultime de faire de la protection ou de l’amélioration de code malicieux.


Présentation de RConnect


Principe de RConnect

RConnect est une backdoor très simple programmée en moins d’une heure. Son principe est de se connecter sur un serveur (technique de « reverse-connect »), puis de servir d’intermédiaire entre un processus « cmd.exe » caché s’exécutant sur la cible et le serveur. Pour le serveur, nous utiliserons simplement l’outil « netcat » ( lien ).






Une fois la connexion réseau établie, les commandes saisies au niveau de netcat sont envoyées à RConnect, qui les transmet au processus « cmd » caché où elles sont interprétées. La sortie standard du processus « cmd » est récupérée par RConnect et transmise au serveur netcat où elle est affichée.

L'attaquant dispose ainsi d’un accès « cmd distant ».

Il faut noter que les données circulent au niveau du réseau directement encapsulées dans TCP. La connexion entre la cible et l'attaquant ne peut donc s’établir à travers un proxy web. Le code de RConnect représente une centaine de lignes. Plusieurs versions peuvent être trouvées assez facilement sur le web.


Les défauts de RConnect

RConnect comporte plusieurs limitations importantes :

- L’exécution de la backdoor n’effectue pour l’instant aucune opération visible, ce qui risque fortement d’éveiller les soupçons de l’utilisateur. L’idéal serait qu’elle soit inclue dans une application réelle par exemple dans un petit jeu. Cependant, cette solution requiert d’avoir les sources de ce logiciel, afin de pouvoir inclure la backdoor et compiler l’exécutable final,

- Ensuite, la vie de la backdoor est liée à celle du processus d’origine. L'attaquant perdra donc l’accès à la cible lorsque l’utilisateur terminera ce processus, par exemple en quittant le petit jeu.

Pour résoudre ce problème, nous pouvons par exemple simuler la fin du programme en cachant la fenêtre principale et en poursuivant l’exécution en arrière plan. Il faut cependant noter que le processus apparaîtra toujours dans la liste des processus actifs.

Ensuite, le programme contenant RConnect sera inconnu des firewalls personnels. Si le poste cible est équipé d’une telle protection, la tentative d’accès de la backdoor au réseau sera détectée et généralement une popup de confirmation sera affichée.

- Enfin, le code de RConnect est « statique ». Il est donc aisé de construire une signature antivirale le caractérisant. RConnect sera ensuite instantanément arrêtée par les anti-virus lors de son arrivée sur le poste cible.

Il est possible de la rendre à nouveau indétectable en modifiant la portion de code sur laquelle est basée la signature, cependant cette opération nécessite d’avoir une idée de l’antivirus installé, afin de connaître la partie du code à modifier et de recompiler la backdoor.

RConnect comporte donc actuellement des limitations très importantes qui la rendent relativement peu utilisable dans un contexte réel.


La shellcodisation de RConnect

RConnect a été écrite en respectant les conventions de codage de WiShMaster et peut donc être shellcodisée. Analysons si cette transformation permet d’éliminer certaines des limitations évoquées ci-dessus.


Le brouillage de RConnect

Après l’opération de shellcodisation, RConnect se présente sous la forme d’un tableau d’octets continus qu’il est très facile d’encoder par un algorithme type XOR. L’exécutable final est alors composé de deux parties : la partie déchiffrement et le shellcode RConnect brouillé.






Il devient très difficile de construire une signature antivirale de la backdoor ; en effet la partie déchiffrement peut être rapidement réécrite pour produire un code totalement différent. La partie shellcode peut être intégralement changée par simple modification de la clé XOR de brouillage.

Dans sa forme la plus simple, la partie déchiffrement se contente de déchiffrer le shellcode RConnect et de lui transmettre l’exécution. Il est cependant possible d’écrire un code plus évolué contenant par exemple des fonctionnalités anti-émulation afin de déjouer les antivirus utilisant cette technique.


L’injection de RConnect dans un autre processus


Principe de la technique d’injection de thread

Sous Windows, les processus sont constitués d’un espace mémoire privé « à plat » de 4 Go, d’au moins un thread et d’un ensemble de ressources (handles de fichiers ouverts,…). En règle générale, les ressources d’un processus sont privées et ne peuvent être altérées par un autre processus.

Il existe cependant certaines fonctions permettant de contourner cette barrière. Dans notre cas, les trois fonctions suivantes sont particulièrement intéressantes :

- VirtualAllocEx : permet d’allouer un bloc de mémoire dans l’espace mémoire d’un autre processus,

- WriteProcessMemory : permet d’écrire des données dans l’espace mémoire d’un autre processus,

- CreateRemoteThread : permet de créer un thread dans un autre processus (en lui fournissant également l’adresse de début d’exécution).

Un processus peut exécuter du code dans un autre processus en combinant ces trois fonctions : il commence par allouer une portion de mémoire dans le processus cible en appellant VirtualAllocEx et la remplit avec du code via WriteProcessMemory. Il crée ensuite un nouveau thread dans ce processus en indiquant le début du buffer alloué comme point d’entrée :






Cette technique d’injection de thread impose cependant deux contraintes

- Tout d’abord, les processus sont des éléments représentés dans le noyau au niveau de l’Object Manager et possédant des droits ; ces opérations sont donc soumises à un contrôle d’accès.

Par exemple, un processus lancé par un utilisateur restreint ne pourra (heureusement) pas injecter du code dans un processus « SYSTEM ».

Il n’est par contre nul besoin d’être administrateur pour effectuer ces opérations ; un processus lancé dans une session « utilisateur restreint » pourra agir sur tous les processus de la session.

- Ensuite le code injecté s’exécute à une adresse inconnue dans un espace mémoire inconnu. Il doit donc être totalement autonome et relocalisable, c'est-à-dire être un shellcode.


Utilisation de l’injection de thread

Maintenant que RConnect est un shellcode, il devient donc possible de l’injecter dans un autre processus. Par exemple, nous pouvons lancer un navigateur caché et l’injecter avec RConnect. Cette technique résout deux des problèmes cités précédemment :

- Tout d’abord, la backdoor va s’exécuter dans le processus navigateur et devient indépendante du processus d’origine. L’arrêt de celui-ci n’aura aucun impact sur la vie de la backdoor.

- Ensuite, les connexions établies par la backdoor seront vues par les firewalls personnels comme provenant d’un processus navigateur, autorisé à accéder au web, et ne provoqueront aucune alerte.


Mise en œuvre de l’injection

Pour réaliser l’injection, nous allons utiliser un « injecter ». Il s’agit d’un programme contenant une fonction qui prend en paramètre un buffer et sa taille, le déchiffre avec une clé XOR, récupère le chemin vers le navigateur par défaut, lance une instance suspendue et cachée de ce programme et l’injecte avec le shellcode.

L’« injecter » va bien sûr lui-même être shellcodisé par WiShMaster et brouillé avec une autre clé XOR, si bien que nous obtenons finalement un shellcode composé de la version shellcodisée de « injecter », suivie par RConnect shellcodisé.

Si nous incluons ce shellcode dans un programme effectuant directement le déchiffrement et transférant l’exécution à l’injecter, nous obtenons un exécutable ayant la structure suivante :






Les parties en couleur sont encodées par la clé de la couleur correspondante. Lors de l’exécution, la partie « Déchiffrement injecter » va déchiffrer l’injecter et lui transmettre l’exécution.

Celui-ci va lancer une instance cachée du navigateur par défaut, déchiffrer RConnect et l’injecter dans ce processus.

L’instance de RConnect dans le navigateur va alors se connecter sur le serveur du pirate, connexion qui sera autorisée par le firewall personnel.






L’encapsulation de la backdoor

Maintenant que RConnect est un shellcode, il devient relativement facile d’infecter un exécutable quelconque, à la manière d’un virus. Un exécutable sous Windows est au format PE (Portable Executable).

Comme décrit dans la première partie, le fichier est composé d’entêtes, suivies de sections contenant le programme en tant que tel (code et données) et des informations utilisées par Windows pour créer le processus (table d’importation, …).

L’une des entêtes contient notamment l’adresse du point d’entrée, c'est-à-dire l’adresse de première instruction exécutée lors de la création du processus (pour être précis, il s’agit de son adresse virtuelle relative, mais nous ne rentrerons pas plus dans les détails).






Une possibilité d’infection relativement simple consiste à ajouter le shellcode dans la dernière section en agrandissant celle-ci à la taille adéquate. Le point d’entrée est ensuite modifié pour pointer vers le début du shellcode :






Un saut est ajouté à la fin du shellcode afin que l’exécution normale du programme se poursuive. Il est relativement rapide de programmer un outil réalisant ce type d’infection de manière automatique à partir d’un shellcode et d’un exécutable quelconque.

Dès lors, nous n’avons plus besoin d’avoir le code source d’un logiciel. N’importe quel exécutable peut devenir porteur de la backdoor. Il faut noter que la présence d’un point d’entrée dans la dernière section risque d’augmenter la probabilité de détection par les antivirus.

Il est bien sûr possible de programmer un outil un peu plus perfectionné qui ajouterait par exemple des sauts dans les données inutiles à la fin des différentes sections.

Autres ressources dans ce même dossier :

[WiShMaster - Partie 1] Introduction à l'ecriture de shellcodes en C - lien

[WiShMaster - Partie 2] Principe de shellcodisation avec WiShMaster (1) - lien

[WiShMaster - Partie 3] Principe de shellcodisation avec WiShMaster (2) - lien

[WiShMaster - Partie 5] Principe et Fontionnement - RConnect/WiShMaster Vs firewalls personnels (2) - lien

[WiShMaster - Partie 6] Principe et Fonctionnement - RConnect/WiShMaster Vs firewalls personnels (3) - lien

[WiShMaster - Partie 7] Résultat de RConnect avec des firewalls personnels et conclusion - lien



- Article suivant : [WiShMaster - partie 5] Principe et Fonctionnement - RConnect/WiShMaster Vs firewalls personnels (2)
- Article précédent : [WiShMaster - partie 3] Principe de shellcodisation avec WiShMaster (2)
- Article suivant dans la catégorie Tutoriels : [WiShMaster - partie 5] Principe et Fonctionnement - RConnect/WiShMaster Vs firewalls personnels (2)
- Article précédent dans la catégorie Tutoriels : [WiShMaster - partie 3] Principe de shellcodisation avec WiShMaster (2)


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 :