samedi 10 décembre 2011

Social Engineering Toolkit (Partie II: le site web malveillant)

Dans notre série "découverte de SET” (Social Engineering Toolkit) nous allons nous intéresser à la création d'une page web contenant un code malveillant permettant de prendre la main sur la machine de la victime.
Une fois l'accès permis, nous allons récupérer les mots de passe de la victime en utilisant le bon vieux "John The Ripper".

Après avoir configuré SET (en utilisant notre Backtrack 5 préféré) pour générer une fausse page web, et après avoir choisi le type de charge utile, nous lançons le serveur nous permettant d'attendre patiemment la connexion de la machine de la victime.

Dans cet article nous ne nous intéressons pas aux moyens permettant de provoquer le "clic" de la victime sur notre fausse page web. Mais comme vous le savez il en existe de nombreux comme par exemple l'envoi d'un mail de phishing ciblé ou l'utilisation des réseaux sociaux.

Le scénario est donc le suivant:

  • la victime clique sur la page web
  • le browser s'arrête brutalement
  • un faux exécutable est lancé à l'insu de la victime (la machine est corrompue)
  • l'attaquant prend la main sur la machine de la victime

La vidéo ci-dessous décrit les détails de cette attaque et de sa configuration:

Prenons le cas où le compte de la victime a des droits "utilisateur" alors l'attaquant accède à la machine mais il lui est nécessaire de mettre en œuvre une élévation de privilèges pour accéder aux mots de passe.
Si le compte de la victime a les droits "administrateur" alors tout devient plus simple; l'attaquant accède directement au fichier des mots de passe.

Il ne lui reste alors plus qu'à utiliser John The Ripper pour découvrir le mot de passe "administrateur" de la machine (et ce n'est qu'un exemple).

Pour information le test a été fait avec un Windows XP SP3 et Internet Explorer 6 (selon SET cette attaque fonctionne également avec IE 6, 7, 8, 9 et Firefox).

Est-il nécessaire de rappeler les règles élémentaires de protection? Non bien sûr, vos droits, lorsque vous surfez sur internet, ne sont pas des droits "administrateur"!

vendredi 2 décembre 2011

Social Engineering Toolkit (Partie I: la récolte des mots de passe)

L'objectif de cet article est de découvrir les immenses possibilités du Social Engineering Toolkit (appelé SET) disponible dans Backtrack5.

ScreenShot001

Le cas d'utilisation que nous avons choisi de couvrir consiste à créer un faux site web pour récupérer les noms d'utilisateur et les mots de passe des utilisateurs imprudents.

C'est SET qui prend en charge la création du faux site web et la récupération des identifiants de l'utilisateur.

En plus de SET, il est nécessaire de configurer un MITM (Man In The Middle) basé sur un spoofing DNS du nom de domaine cible. Ce spoofing DNS est permis par Ettercap.

Concrètement:

  • La victime accède comme à l'accoutumée à Facebook
  • Elle est redirigée vers le faux site web généré par SET.
  • L'utilisateur s'authentifie.
  • Son authentification échoue et SET récupère son nom d'utilisateur et son mot de passe
  • La victime est redirigée vers la page de login officiel de Facebook
  • Elle s’authentifie de nouveau, pensant avoir saisi un mauvais mot de passe lors de sa première tentative

Tous les détails de l’attaque dans la vidéo ci-dessous:

Cette attaque est particulièrement imparable si le MITM a pu être mis en place et si l'utilisateur n'est pas paranoïaque.

samedi 12 novembre 2011

La création de noms de domaine comme indicateur de tendance!

Obtenir les bons indicateurs pour identifier les tendances du moment, voilà le rêve de tous les éditeurs de solutions informatiques!

Pourquoi ne pas utiliser le nombre de création de domaines intégrant un mot clef particulier comme indicateur d'évolution de la tendance associée à ce mot clef ?
Prenons un exemple, si nous sommes capables de tracer le nombre de créations de noms de domaine contenant le mot clef "cloud" par mois, nous obtiendrons un indicateur intéressant sur la maturité de l'écosystème concernant le cloud.

Et bien c'est possible avec l'aide d'un petit script Visual Basic et du site "dailydomainspy.com". Ce site recense toutes les créations de domaines dans le monde par jour.

ScreenShot186 
Une page web correspond à un jour suivant la syntaxe suivante:

http://dailydomainspy.com/domain-annee-mois-jour-page.htm

On peut donc écrire un script qui parcourt le contenu de ces pages à la recherche d'un mot clef présent dans le nom du domaine.

Vous pouvez télécharger le script ici. Il suffit alors de suivre les étapes suivantes:

1) Ouvrir le fichier de configuration "config.txt" pour préciser votre recherche

errorFileName=erreurs1.txt     // nom du fichier contenant les pages web parsées
resultsFileName=results1.txt    // nom du fichier contenant la liste des noms de domaine filtrés
countFileName=quantite1.txt    // nom de fichier contenant le nombre de noms de domaine créés par mois
startMonth=6            // mois de début de la recherche
endMonth=7            // mois de fin de la recherche
startDay=1            // jour de début de la recherche
endDay=31            // jour de fin de la recherche
chosenYear=2011            // année de la recherche
maxpages=1000            // nombre de pages maximum pour un jour
keySearch=gaming        // critère de recherche

2) Lancer le "extracteurDeNomsDeDomaine.vbs"

En fonction des critères choisis la recherche peut durer longtemps, très longtemps, trop longtemps... Vous êtes prévenu!

3) Consulter vos résultats et tracer votre courbe

ScreenShot185

Le fichier "quantite1.txt" contient le nombre de domaines par mois
Le fichier "results1.txt" contient l'ensemble des noms de domaines correspondant au critère recherche.

Ce script peut être modifié pour récupérer tout autre type d'informations dans une page web.

vendredi 11 novembre 2011

Du nouveau dans le “cloud” d'Amazon!

Amazon se positionne comme un acteur majeur des services dans le “cloud” au travers de l'offre AWS (Amazon Web Services).

ScreenShot181

Voici les différents services que propose l’offre AWS:

AWS Elastic Beanstalk
AWS Elastic Beanstalk permet de déployer et gérer rapidement vos applications dans le “cloud”: auto-scaling, monitoring, load-balancing

Amazon S3 (Simple Storage Service)
S3 permet de stocker et retrouver n'importe quelles données de 1 octet à 5 To

Amazon propose des interfaces REST et SOAP pour développer votre propre application permettant d'automatiser la gestion de vos données

Chaque nouvel utilisateur dispose gratuitement de 5 Go de stockage (avec 20000 requêtes de type "GET" autorisées, 2000 de type "PUT" et 15 Go de transfert de données chaque mois, et ce pendant une année)

Avis aux amateurs!

Amazon EC2 (Elastic Compute Cloud)
EC2 propose un service web pour gérer vos applications dans des machines virtuelles avec la capacité mémoire et CPU de votre choix

Amazon VPC (Virtual Private Cloud)
VPC propose la gestion d'un réseau privé virtuel (à utiliser en complément de S3 et EC2)

Parmi de nombreux autres services Amazon vous propose également:
  • de gérer votre base de données relationnelles dans le “cloud” (avec Amazon RDS Relational Database Service)
  • de gérer la publication de messages d'une application pour les délivrer aux abonnés (avec Amazon SNS Simple Notification Service)
  • de créer des utilisateurs et de gérer leurs droits sur l'utilisation de vos ressources Amazon (Amazon IAM Identity and Access Management)
Bien sûr vous avez toujours la possibilité de ne payer que ce que vous consommez!

Toutes ces ressources peuvent être gérer au travers de AWS Management Console (on voit ici l'onglet de Amazon S3)

ScreenShot180

Par défaut l’authentification des utilisateurs pour accéder à AWS se base sur les mots de passe.

ScreenShot176

Mais, cerise sur le gâteau, Amazon propose une authentification 2 facteurs utilisant l'OTP et plus particulièrement les tokens Gemalto

ScreenShot177

Par défaut vous utilisez un mot de passe mais vous pouvez à tout moment passer à la vitesse supérieure.

La première étape consiste à acheter le token Gemalto sur le webstore de Gemalto

ScreenShot178

La deuxième étape consiste à activer le token en suivant la procédure ci-dessous.

ScreenShot179

En conclusion, Amazon confirme que l'OTP est une bonne solution pour protéger les données dans le “cloud” et que finalement le déploiement est particulièrement simple pour un utilisateur lambda.

samedi 8 octobre 2011

Associer un fichier sans extension à une application c’est possible!

Dans la série “Trucs & Astuces” pour Windows, voici le contenu d’un fichier “reg” qui vous permet d’associer un éditeur (et plus largement une application) à un fichier sans extension.

Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\.]
[HKEY_CLASSES_ROOT\.\shell]
[HKEY_CLASSES_ROOT\.\shell\open]
[HKEY_CLASSES_ROOT\.\shell\open\command]@="Notepad.exe %1"

Cela me fait gagner un peu de temps, en particulier, lorsque je dois éditer et modifier un fichier “hosts”. Ainsi lorsque je clique sur mon fichier “hosts” il s’ouvre immédiatement avec mon éditeur préféré. Mais vous aviez déjà tout compris!

Pour tout vous dire, j’ai remplacé “notepad.exe” par "C:\Program Files\PSPad editor\PSPad.exe".

Si on regarde cet astuce sous un angle plus sécuritaire, la modification de la registry permet d'associer l'exécution de n'importe quelle application (donc d'une application malveillante) aux fichiers ayant une extension donnée! Et ainsi de déclencher l'exécution de votre application malveillante par une action de l'utilisateur!

samedi 1 octobre 2011

Les mots de passes c’est bien, la biométrie c’est mieux ?

Je viens de m’offrir un ordinateur portable, un Alienware! Je sais, je suis un heureux homme! Et comme toujours j’ai configuré un mot de passe fort: minuscules, majuscules, caractères spéciaux et chiffres, et d’une longueur d’au moins… Mais c’est beaucoup trop long à saisir malheureusement pour un usage régulier (et la complexité du mot de passe est source d’erreurs de frappe)!

La biométrie apporte la solution en permettant de remplacer une authentification à 1 facteur de forme (le mot de passe) par une autre authentification du même type. Je ne gagne pas en sécurité mais en facilité d’utilisation. C’est le but!

Je ne dispose malheureusement pas de lecteur biométrique intégré alors j’utilise un lecteur d’empreintes digitales USB de la société Precise Biometrics, le modèle 100xs..

Dans ce qui suit je vais vous montrer à quel point la biométrie est facile à configurer sur un Windows 7 64 bits.

On insère le lecteur biométrique dans un des ports USB

100XS

Puis, après avoir ouvert le “Gestionnaire de périphériques” dans “Panneau de configuration / Matériel et audio / Périphériques et imprimantes” on fait un clique droit sur la ligne correspondant à notre capteur biométrique et on choisit “Mettre à jour le pilote

2011-06-30_1947

Dans “Panneau de configuration / Matériel et audio” on trouve alors l’option “Périphériques biométriques

2011-06-30_1950

On choisit l’option “Utiliser les empreintes digitales pour se connecter à Windows” et on suit le guide. On commence par confirmer que le capteur d’empreintes digitales est bien inséré.

2011-06-30_1951

Puis on sélectionne un doigt

2011-06-30_1952

Et on enregistre l’empreinte digitale correspondant à ce doigt, trois fois consécutives

2011-06-30_1952_001

Et c’est fini!

Note: Gemalto propose, avec la carte à puce, d’ajouter un deuxième facteur d’authentification à l’authentification biométrique. Vous devez alors entrer votre carte dans le lecteur de cartes (ce que je possède) et faire glisser votre doigt sur le lecteur biométrique (ce que je suis ) pour accéder à votre ordinateur.

Note: Merci Nico pour le lecteur biométrique

dimanche 4 septembre 2011

Les transformations “XSLT” fournissent toujours de précieux services!

Je me suis retrouvé, il y a quelques mois de cela, avec un fichier “xml” contenant toutes les informations dont j’avais besoin, ou presque, pour pouvoir initialiser ma base de données.

Il ne me restait plus qu’à programmer un petit “wrapper” de XML vers SQL. Et avant de me lancer dans des développements avec mon language préféré C#, je me suis souvenu qu’il existait un language de transformation de XML, appelé XSLT, qui permettait de transformer un fichier “xml” en de nombreuses autres choses dont html, doc, pdf, wml et bien d’autres choses encore.

Alors pourquoi ne pas utiliser XSLT pour transformer mon fichier XML en fichier SQL que je n’aurais alors plus qu’ à importer dans ma base de données préférée.

Pour information, il existe plusieurs languages de requêtage XML dont XQUERY et XPATH.

Pour faciliter nos manipulations de XML nous allons utiliser une version d’évaluation d’un excellent outil appelé Altova XMLSpy qui nous permet de créer et tester nos requêtes avant de les appliquer à notre fichier “xml” source et produire notre fichier “sql” destination.

xmlspyaltova


Description du contexte

En observant le fichier “xml” source on note qu’il contient 2 catégories d’objets qui nous intéressent plus particulièrement: l’objet “Computer” et l’objet “User”. On constate que le champ “computerid” nous manque dans le fichier “xml” source pour permettre la création de l’objet “Computer” dans la table '”Computer” de la base de données. De même un champ “guid” nous manque pour permettre de créer un objet “User” dans la table “User” de la base de données.

Dans le fichier “xml” source, le paramètre “UserID” de l’objet “Computer” correspond au paramètre “UserID” de l’objet “User” auquel il appartient.

Dans la base de données, la valeur du “guid” de l’objet “Computer” doit avoir la valeur du “guid” de l’objet “User” auquel l’objet “Computer” appartient.

Le paramètre “computerid” de la la table “Computer” est initialisé à une valeur unique incrémentée à partir de 200.

Le paramètre “guid” de la la table “User” est initialisé à une valeur unique incrémentée à partir de 100.

Création des fichiers "xsl"


La première étape consiste à créer le(les) fichiers “xsl” décrivant la(les) transformation(s) à effectuer.

Commençons par écrire le fichier “guid_generator.xsl” ci-dessous permettant de créer le champ “guid” pour l’objet “User”:

<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform">

<xsl:variable name="guid" select="100"/>
<xsl:template match="@*node()">
<xsl:copy>
<xsl:apply-templates select="@*node()"/>
</xsl:copy>
</xsl:template>
<xsl:template match="User">
<User>
<xsl:apply-templates select="@* *"/>
<guid>
<xsl:choose>
<xsl:when test="not(preceding-sibling::*)">
<xsl:value-of select="$guid"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$guid + count(preceding-sibling::*)"/>
</xsl:otherwise>
</xsl:choose>
</guid>
</User>
</xsl:template>

Le champ “guid” est initialisé à 100. Puis on copie simplement le contenu du fichier source; et si l’objet XML est “User” alors on ajoute aux champs existants, un champ “guid” auquel on donne une valeur initiale (i.e. 100) à laquelle on ajoute le nombre d’objets “User” que l’on vient de parcourir. Simple et efficace!

Il ne nous reste plus qu’à transformer le fichier généré précédemment en fichier “sql” en créant le fichier “insert_generator.xsl” ci-dessous. On profite cependant de cette transformation pour donner une valeur au champ “computerid” nécessaire à la création de la table “Computer” (cette valeur est initialisée à 200):

<xsl:stylesheet version="1.0" xmlns:xsl="
http://www.w3.org/1999/XSL/Transform">

<xsl:output method="text"/>
<xsl:variable name="computerid" select="200"/>
<xsl:template match="/">
<xsl:apply-templates select="//ComputerList"/>
<xsl:apply-templates select="//UserList"/>
</xsl:template>
<xsl:template match="User">
<xsl:text>INSERT INTO USER"("GUID", …, "MODIFDATE")
VALUES(</xsl:text>
<xsl:value-of select="./guid"/>
<xsl:text>,'</xsl:text>
<!—…-->
<xsl:text>SYSDATE);&#xA;</xsl:text>
</xsl:template>
<xsl:template match="Computer">
<xsl:param name="temp"><xsl:value-of select="./UserID"/></xsl:param>
<xsl:text>INSERT INTO COMPUTER"("COMPUTERID","GUID",…, "MODIFDATE")
VALUES(</xsl:text>
<xsl:choose>
<xsl:when test="not(preceding-sibling::*)">
<xsl:value-of select="$computerid"/>
</xsl:when>
<xsl:otherwise>
<xsl:value-of select="$computerid + count(preceding-sibling::*)"/>
</xsl:otherwise>
</xsl:choose>
<xsl:text>,</xsl:text>
<xsl:value-of select="//UserList/User[UserID=$temp]/guid"/>
<xsl:text>,'</xsl:text>
<!—…-->
<xsl:value-of select="./ExpirationDate"/>
<xsl:text>');&#xA;</xsl:text>
</xsl:template>
</xsl:stylesheet>

Comme dit précédemment, notons qu’un objet “Computer” est associé à un objet “User” dans le fichier source “xml” au travers du paramètre “UserID”. La valeur du paramètre “UserID” de l’objet “Computer” courant est sauvegardée dans un paramètre appelé “temp” afin de permettre la récupération du “guid” correspondant à l’objet “User” ayant un “UserID” correspondant à “temp”, car c’est ce “guid” là qui doit être associé à l’objet “Computer” courant. Est-ce clair! Oui, bon on continue…

Les fichiers “xsl” nécessaires à nos transformations sont enfin écrits. Il ne nous reste plus qu’à installer notre parseur XML préféré, j’ai nommé Xalan installé sous C:\.

La génération du fichier “sql” se passe en 2 étapes:

cd C:\xalan-j_2_7_1
java -classpath "C:\xalan-j_2_7_1\xalan.jar";"C:\xalan-j_2_7_1\xercesImpl.jar";"C:\xalan-j_2_7_1\serializer.jar";"D:\xalan-j_2_7_1\xml-apis.jar" org.apache.xalan.xslt.Process -IN input.xml -XSL guid_generator.xsl -OUT output.xml
pause
java -classpath "C:\xalan-j_2_7_1\xalan.jar";"C:\xalan-j_2_7_1\xercesImpl.jar";"C:\xalan-j_2_7_1\serializer.jar";"D:\xalan-j_2_7_1\xml-apis.jar" org.apache.xalan.xslt.Process -IN output.xml -XSL sql_insert_generator.xsl -OUT output.sql
pause

La première étape permet de prendre le fichier “xml” source appelé “input.xml” et le transformer en un autre fichier “xml” appelé “output.xml” contenant également un champ “guid” incrémenté. Ce champ est nécessaire pour insérer l’objet “User” dans la table “User”. C’est le fichier “guid_generator.xsl” qui permet cette transformation.

La deuxième étape prend en entrée le fichier “output.xml” et le transforme en “output.sql”. C’est le fichier “insert_generator.xsl” qui permet cette transformation. Il permet également de créer un champ “computerid” et de lui donner une valeur unique pour permettre la création de l’objet “Computer”' dans la table “Computer” de la base de données.

Le tour est joué!

Note
: pour des raisons de confidentialité vous ne trouverez pas les fichiers “input.xml”, “output.xml” et “output.sql”. Mais je suis à votre entière disposition pour répondre à toutes questions!

samedi 3 septembre 2011

Etre anonyme sur internet avec Tor!

J’ai longtemps utilisé Sockschain pour mon anonymat sur internet. Mais à cette époque là, mon problème principal était de trouver des proxy actifs et fiables. Tor fait tout ça à votre place.

Vous pouvez télécharger Tor à l’URL suivante: https://www.torproject.org/download/download.html.en#Windows. Personnellement j’utilise la version stable appelée “Stable Vidalia Bundle works with Windows 7, Vista, XP”.

Ce package contient:
  • L’application Tor
  • Vidalia, l’interface graphique pour Tor
  • Torbutton, le “add-on pour votre Firefox
  • Polipo, le proxy web utilisée par Tor

Une fois l’installation terminée (voir l’URL suivante pour une description détaillée de l’installation: https://www.torproject.org/docs/tor-doc-windows.html.en, vous pouvez ouvrir le panneau de contrôle de Vidalia.

2011-06-18_1851

Si vous passez par un service mandataire vous devez, bien entendu, préciser son adresse IP et son port.

2011-06-18_1853

Par défaut la configuration de Tor permet d’aider les personnes (ayant un FAI qui interdit l’utilisation de Tor) à transiter par votre passerelle dont l’adresse est publiée automatiquement. Ces utilisateurs peuvent être chinois par exemple… A vous de voir!

2011-06-18_1853_001

L’activation et la désactivation du Torbutton, le ”add-on” Tor pour Firefox, se font en cliquant sur l’icône représentant un oignon.

2011-06-18_1857

Par défaut le “add-on” Firefox est configuré comme indiqué ci-dessous. On accède à cette configuration par “Firefox / Modules complémentaires / Extensions / Torbutton 1.3.3-alpha / Options

2011-06-18_1856

Lorsque votre configuration est terminée et votre “add-on” actif, vous pouvez vérifier que tout fonctionne convenablement avec le lien: https://check.torproject.org/

Si vous obtenez la page ci-dessous, vous êtes prêts pour l’anonymat. L’adresse IP affichée ici est une adresse américaine (from San Francisco).

2011-06-18_1916

Bien sûr l’anonymat à un prix, la performance!

dimanche 7 août 2011

Quand le Social Engineering vient en aide au marketing…

Préparer une campagne de mails nécessite d’avoir une bonne base d’adresses email. Mais ces bases sont souvent très, voire trop chères.

Alors lorsque l’on ne dispose pas des budgets suffisants on peut utiliser le système “D”.

Dans ce qui suit nous allons présenter 2 approches (il en existe certainement beaucoup d’autres), l’utilisation d’un outil au nom évocateur (en version gratuite) appelé EmailExtractor et le bon vieux “whois”.

EmailExtractor peut être téléchargé à l’URL suivante: http://emailextractorpro.com/download.html. Vous pouvez entre autres choses pour récupérer les adresses email d’un site web particulier ou encore pour récupérer les adresses email liées à un ou plusieurs mot clefs.


Récupérer les adresses email sur un site web

Dans l’onglet “Web site” vous pouvez saisir le nom du site web pour lequel vous souhaitez rechercher les adresses email et vous cliquez sur “Start”. Nous obtenons:

ScreenShot168

Récupérer les adresses email associées à un mot clef

Faisons le test avec le mot iPhone pour créer une base d’adresse des possesseurs d’iPhone (ou tout du moins les personnes intéressées par l’iPhone)

Dans l’onglet “Search engine” vous pouvez saisir le mot clef pour lequel vous souhaitez rechercher les adresses email et vous cliquez sur “Start”. Et nous obtenons:

ScreenShot172

Selon Wikipedia, “Whois” est un service de recherche fourni par les registres Internet, par exemple les Registres Internet régionaux (RIR) ou bien les registres de noms de domaine permettant d'obtenir des informations sur une adresse IP ou un nom de domaine.

Il existe de nombreuses manières d’utiliser la fonctionnalité “Whois”. J’ai personnellement un faible pour le site Geektools à l’URL: http://www.geektools.com/whois.php

Faisons un test sur le site “ergologic.fr” (par ailleurs excellent spécialiste de l’utilisation des outils informatiques et bureautiques)

ScreenShot171

Nous obtenons le résultat ci-dessous contenant:

  • l’adresse de l’organisation
  • l’adresse email de l’administrateur
  • le numéros de téléphone

Les informations que nous obtenons par ce biais sont parfois très surprenantes, et permettent de créer une base d’adresses avec de vrais personnes et non pas des adresses génériques augmentant ainsi le succès de notre campagne marketing.

ScreenShot169

Nous avons un très bonne exemple de ce qu’il aurait fallu faire lors de l’enregistrement DNS pour éviter la récupération de ce type d’informations avec le domaine “agarri.fr” (excellent spécialiste de la sécurité offensive).

On note en particulier le “WARNING” indiquant que le propriétaire du site a choisi l’anonymat. On remarque également le nom du contact: “Ano Nymous”.

ScreenShot170

Bonne campagne !

samedi 6 août 2011

Générer des mots de passe intelligents avec Cupp!

En jouant avec ma “Backtrack 5” j’ai découvert le générateur de mots de passe dont je rêvais.

Pourquoi générer des mots de passe, me direz-vous ? Eh bien pour faire une attaque “brute force” bien sûr. Mais vous allez alors me dire qu’il existe “pléthore” de générateurs de ce type. Oui! Mais Cupp est différent.

Cupp intervient dans le cadre d’une attaque de type SE (Social Engineering”). Imaginons que vous faites l’audit de la sécurité d’une entreprise et que vous souhaitez vérifier la politique de gestion des mots de passe. Vous pouvez alors commencer par récupérer toutes les informations laissées par les employés de l’entreprise sur leurs réseaux sociaux préférés, puis identifier vos cibles (les plus bavards et les moins prudents). Vous allez ensuite donner ces informations à Cupp qui en retour vous génèrera la liste des mots de passe les plus probables pour vos cibles. Et vous êtes alors sur la voie de la réussite de votre démonstration!

Regardons de plus prêt ce fameux Cupp!

Cupp requière les informations suivantes sur votre cible, sa femme, leur enfant et leur animal domestique préféré:

  • nom
  • prénom
  • surnom
  • date de naissance
  • des mots clefs

Sur cette base, Cupp génère des mots de passe, en concaténant ces informations, en ajoutant des nombres, des caractères spéciaux et en inversant les lettres.

Mais la fonctionnalité dont je rêvais est la suivante, le remplacement de certains caractères par des chiffres comme par exemple la lettre “o” par le chiffre “0”.

Pour être plus précis j’aurais souhaité pouvoir remplacer certaines lettres par des caractères spéciaux comme par exemple la lettre “a'” par “@”. Avec un peu de configuration, Cupp le permet également.

Dans ce qui suit nous allons décrire les quelques opérations qui permettent la génération de ce type de mots de passe.

Il est simplement nécessaire de modifier le fichier de configuration “cupp.cfg”. Dans la section “Leet”, on remplace les voyelles par les caractères de notre choix:

[leet]
a=@
i=!
e=e
t=t
o=0
s=s
g=g
z=z

Et on modifie la longueur maximale du mot de passe:

wcto=15

Puis lançons la commande (on remarque au passage que Cupp est écrit en Python):

>./cupp.py –i

Et nous saisissons nos données comme dans l’exemple ci-dessous:

2011-06-18_2022

Note: il est nécessaire de répondre “Yes” à la question concernant le mode “Leet” (c’est ce mode qui permet le remplacement de certaines lettres en fonction de notre configuration). Et nous obtenons la liste de mots de passe souhaités:

2011-06-18_2104

Merci Cupp!

dimanche 3 juillet 2011

Excusez moi! J’ai un appel…

Toujours dans la série “trucs et astuces de l’amateur de Social Engineering”, un autre petit outil, fonctionnant sur votre téléphone, appelé Call Faker, peut vous rendre quelques menus services.

Call Faker sur Android, comme de nombreuses autres applications du même type (par exemple Escape Call sur iPhone), permet de programmer un appel téléphonique que vous allez recevoir à une heure donnée en provenance de la personne de votre choix.

pnjj_u_cs

Là encore, cette application peut vous permettre de:
  • Faire croire à votre cible que venez de recevoir un appel important du bureau

  • Vous absentez de la pièce où vous êtes en négociation en ayant pris soin d’y laisser un micro (bon là c’est un peu jamesbondesque, je sais !) Étoile

  • Vous absentez d’une pièce, alors que tout le monde y est réuni, pour pouvoir faire ce que vous avez à faire ailleurs

  • …et bien d’autres choses encore
Call Faker peut être téléchargé sur l’Android Market.

Sa configuration est très simple: vous précisez l’heure de l’appel, le numéro de téléphone et le nom à afficher et le type de sonnerie. Vous n’avez alors plus qu’à attendre patiemment.

pnjm_u_cs

Attention, l’usage de ce type d’application doit se faire dans un cadre éthique ou de sensibilisation au SE (ou bien, allez soyons fous, pour faire une petite blague…)

Je dois vous laisser, j’ai un appel!

Étoile Pour les apprentis James Bond voilà un site (http://www.spyassociates.com) que même Q nous envierait (paix à son âme!)

Q

samedi 2 juillet 2011

Spoof pouf pouf…!

Dans la panoplie du bon amateur de Social Engineering, il est nécessaire, en plus d’un certain sens du scénario bien ficelé, une certaine capacité à jouer un rôle avec conviction et une bonne connaissance de l’être humain et de ses petits défauts, donc en plus de tout cela, disais-je, il est nécessaire d’utiliser les bons outils!

Parmi ces outils on trouve Spoofcard qui vous permet d’appeler quelqu’un en vous faisant passer pour quelqu’un d’autre. Le nom et le numéro de la personne de votre choix apparaissent sur le téléphone de votre cible.

screen_android1

C’est pratique pour donner du poids à votre scénario de SE. Vous pouvez appeler votre cible, en lui expliquant que:
  • Monsieur X vient de vous prêter son téléphone, c’est donc qu’il a confiance en vous

  • Vous appelez de Bretagne, où vous vous trouvez actuellement, car votre numéro est bien un numéro breton

  • Vous faites partie de la même entreprise que lui, car bien sûr vous avez un numéro de téléphone identique à ceux de son entreprise

  • …et bien d’autres choses encore.

Cet élément peut être déterminant pour la réussite de votre scénario et peut vous permettre d’établir une relation de confiance, base à partir de laquelle les langues se délient.

Pour télécharger l’application allez sur http://www.spoofcard.com/mobile/apps et suivez le guide. En ce qui me concerne j’ai téléchargé l’application en entrant l’URL suivante http://m.spoofapp.com/ dans le browser de mon téléphone.

screen_android2

Cette application fonctionne sous Android, iPhone (j’ai pu tester les deux environnements) et Blackberry.

Quelques unités vous sont offertes pour vous permettre de tester l’application, puis le service devient payant. Dommage!

Spoofcard
propose quelques options comme modifier votre voix ou enregistrer vos conversations.

Bien entendu l’usage de ce type d’application doit être limité à un cadre légal et servir à la sensibilisation contre les risques du Social Engineering uniquement! (ou bien dans les cas extrêmes pour faire une petite blague!)

dimanche 12 juin 2011

Gérer les logs de vos serveurs à moindre coût!

Cela fait plusieurs mois que je songe à faire un article sur la gestion des logs. J’ai mis en place, dans un passé très récent, un petit outil de centralisation des logs de serveurs pour pouvoir générer quelques statistiques sur l’utilisation de services “web” et autres évènements de l’”EventViewer” dans un environnement Windows. Pour cela j’ai utilisé une application gratuite appelé LogParser.

Je pensais que cette problématique de gestion de logs à moindre coût était simplement une préoccupation de “geek”. Et bien non, lors d’une réunion récente avec le TOP 10 des RSSI français (selon mes critères à moi ;-)), j’ai constaté qu’il pouvait finalement être intéressant de partager ce type information.

LogParser est à la base un outil de gestion des logs utilisables en ligne de commande. Mais on trouve aussi LogParserLizard qui permet de faire les mêmes opérations avec une interface graphique qui facilite grandement la vie.

J’ai utilisé la version gratuite de LogParserLizard. Cette version est bien sûr quelque peu limitée. Cependant vous pouvez définir vos requêtes de récupérations de logs sur le serveur local ou sur des serveurs distants, les sauvegarder et les exécuter. Mais vous êtes limité lors de l’exploration des données récupérées pour les intégrer dans vos rapports. Je n’ai personnellement utilisé uniquement que le format “csv”.

Après avoir installé LogParser puis LogParserLizard et lancer LogParserLizard, vous pouvez créer vos premières requêtes (au format SQL).

ScreenShot116

Voici l’exemple d’une requête qui récupère des données dans les fichiers de log d’IIS pour extraire le nombre de connexions par utilisateur d’un site web:

SELECT DISTINCT cs-username, count(cs-username) AS Number
FROM
\\mon_serveur.com\C$\WINDOWS\system32\LogFiles\W3SVC1\ex*.log WHERE cs-username LIKE 'MON_DOMAIN%' AND cs-uri-stem LIKE '/mon_site%' GROUP BY cs-username ORDER BY Number

Les fichiers en entrée de la requête sont de la forme “ex*.log”. Le site “web” qui nous intéresse contient dans son URL le mot clef “mon_site”. Le serveur sur lequel fonctionne IIS se nomme “mon_serveur.com”. Les utilisateurs appartiennent au domaine “MON_DOMAINE”.

Les résultats sont triés par nombre de connexions décroissants.

ScreenShot117blur

Si vous connaissez ne serait-ce qu’un peu SQL, la création de ce type de requêtes ne présente pas de difficulté (les spécialistes pourront par ailleurs améliorer la requête ci-dessus). Il est par contre nécessaire de configurer les informations que vous souhaitez qu’IIS enregistre dans ces fichiers “log” et de connaitre les noms des champs correspondants aux informations qui vous intéressent.

Voici l’exemple d’une autre requête dans l’EventViewer de Windows qui permet de récupérer des informations sur les opérations effectuées sur un service Windows particulier:

SELECT TimeGenerated, Strings FROM Application WHERE EventID=16666 AND SourceName='Mon_Service' ORDER BY Strings

L’EventViewer tourne sur le serveur en local. L’identifiant de l’évènement est 166666. Le nom de l’application est “Mon_Service”. Il est nécessaire de connaitre les noms des champs de l’EventViewer pour paramétrer correctement la requête.

Les résultats sont ordonnés en fonction de la valeur du champ “Strings”.

Remarque: les requêtes peuvent être exporter et importer.

Une fois les requêtes crées, vous pouvez récupérer vos résultats et générer le rapport. Voici une liste d’actions étape par étape qu’il est possible de réaliser:

  1. Sélectionner "IIS Logs"
  2. Sélectionner "Liste des utilisateurs de mon_site sur un serveur distant"
  3. Lancer Query
  4. Sélectionner "Tools/Log Parser Export..."
  5. Exporter au format = “Comma Separated Values"
  6. Sélectionner Path: mon_site_utilisateurs.prn
  7. Sélectionner "Event Logs"
  8. Sélectionner "Liste des utilisateurs du service mon_service"
  9. Lancer Query

ScreenShot119blur

  1. Sélectionner "Tools/Log Parser Export..."
  2. Exporter au format = “Comma Separated Values"
  3. Sélectionner Path: “mon_service_utilisateurs.prn”
  4. Intégrer les fichiers dans un fichier “Excel” (“Resultats.xlsx”)
  5. Générer le rapport

Remarque: si une erreur se produit pendant la génération du fichier “prn” et que ce message est suivi par un message de succès, alors le résultat est bon

Est-il nécessaire de rappeler qu’une bonne gestion des logs fait partie intégrante de la sécurité de vos systèmes?

samedi 11 juin 2011

Protégeons nos chères têtes blondes des dangers d’internet

Si vous souhaitez filtrer les informations auxquelles vos enfants accèdent sur internet, il existe aujourd’hui un nombre grandissant de solutions efficaces (parmi elles on trouve Microsoft Windows Live Family Safety ou les outils du contrôle parental intégré à Windows 7).

L’avantage de la solution décrite ici est de pouvoir être mise en œuvre soit par un particulier souhaitant centraliser le filtrage des contenus auxquels accèdent les membres de sa famille, soit par une entreprise souhaitant faire la même chose pour ses employés, et ce à moindre coût.

Cette solution est basée sur des solutions “opensource” tels que Squid et DansGuardian et est installée sur un serveur Ubuntu 10.10.

Pour information l’éducation nationale semblerait vouloir mettre en œuvre ce type de solution pour gérer leur parc d’ordinateurs accessibles par les élèves des écoles maternelles et primaires (pour plus d’informations vous pouvez lire l’excellent article de Fabrice Flauss et Cédric Foll du numéro 51 de MISC).

Après avoir installé Ubuntu sur un de mes vieux serveurs, il est nécessaire d’installer et de configurer Squid et DansGuardian.


Installer et configurer Squid

On installe Squid:

sudo apt-get install squid

On édite le fichier de configuration de Squid:

sudo nano /etc/squid/squid.conf

On modifie le port de Squid (Squid joue le rôle de serveur mandataire entre les utilisateurs et internet)

http_port 3128

On recharge la configuration de Squid:

sudo /etc/init.d/squid reload


Installer et configurer DansGuardian

On installe DansGuardian:

sudo apt-get install dansguardian

On édite le fichier de configuration de DansGuardian:

sudo nano /etc/dansguardian/dansguardian.conf

Screenshot

On modifie les paramètres ci-dessous:

language = 'french'
filterip = x.x.x.x
filterport = 8080
proxyip = 127.0.0.1
proxyport = 3128
#contentscanner= '/etc/dansguardian/contentscanners/clamdscan.conf’

L’option “language” permet de définir la page d’erreur affichée dans le browser de l’utilisateur lorsque le contenu n’est pas autorisé.

Cette page par défaut peut être adaptée suivant vos besoins via:

sudo nano /etc/dansguardian/languages/french/template.html

Les options "filterip" and "filterport" définissent respectivement, l’adresse IP et le port du serveur proxy. Positionnez “filterip” à la valeur de l’adresse IP de votre machine sur votre LAN, et “filterport” à la valeur du port que vous souhaitez avoir pour votre proxy; une bonne valeur par défaut est 8080.

L’option "proxyip" correspond à l’adresse IP du serveur proxy Squid et "proxyport" est le port d’écoute de Squid.

La ligne "contentscanner" reste en commentaire tant que l’on ne souhaite pas utiliser l’antivirus clamAV pour scanner les requêtes HTTP.

On redémarre DansGuardian:

sudo /etc/init.d/dansguardian restart

Maintenant, si vous souhaitez sécuriser Squid et interdire à vos utilisateurs de contourner DansGuardian vous pouvez utiliser les commandes suivantes:

sudo ufw default DENY # on interdit tout
sudo ufw ALLOW 8080 # on autorise seulement le port 8080
sudo ufw enable # on active le firewall


Remarque: n’utilisez pas les commandes ci-dessus si votre firewall est déjà configuré! Cela pourrait faire des dégâts sur votre configuration courante!

Il est ensuite nécessaire de configurer votre nouveau proxy dans les browsers de vos machines clientes (adresse IP du proxy X.X.X.X et port du proxy 8080). C’est la manière la plus simple de mettre en, œuvre votre filtrage. Il en existe d’autres plus proches d’un déploiement réel utilisant WPAD par exemple mais ce sujet pourra être traité dans un prochain article).

Et voilà! Si vous saisissez un mot clef interdit dans votre moteur de recherche préféré, vous êtes automatiquement redirigé vers la page par défaut de DansGuardian.

Screenshot_New1

Vous pouvez jouer avec les fichiers contenant les informations permettant de filtrer le contenu des pages web. Vous trouverez ces fichiers sous “/etc/dansguardian/lists”.

Screenshot-1

En parcourant ces fichiers vous aurez une idée précise de tout ce qu’il est possible de faire avec DansGuardian: être plus ou moins permissif, ajouter des mots clefs interdits ou des URLs interdites.

Screenshot-2

Il est également possible de configurer votre serveur avec 2 cartes réseaux pour créer 2 sous-réseaux: le premier sur lequel se trouve l’accès à internet et le second sur lequel se trouvent les postes à filtrer.

Dans un prochain article nous verrons comment scanner le contenu HTTP avec l’antivirus ClamAV.

Source: Squid Proxy Server On Ubuntu 9.04 Server With DansGuardian

dimanche 24 avril 2011

Comment restaurer la configuration de votre bureau Windows

Bien qu’il n’y ait pas de lien très directe avec la sécurité (mais en cherchant bien il devrait être possible d’en trouver un!), je ne résiste pas à l’envie de partager avec vous quelques trucs et astuces qui facilitent la vie, en tout cas la mienne!

Vous avez sûrement été victime de la catastrophe suivante. Vous faîtes une présentation à vos collègues de travail en utilisant un vidéo projecteur et là, horreur, malheur, toutes les icônes de votre bureau, pieusement triées par catégories, méticuleusement organisées pour vous permettre de ne pas oublier les actions que vous devez impérativement faire dans la semaine, et bien toutes ces précieuses icônes se retrouvent mélangées, éparpillées, satellisées aux quatre coins de votre écran! Arghhh!

Après m’être arraché les cheveux pendant un certain temps (la décence ne me permet pas de vous dire combien de temps!), j’ai trouvé une petite solution que je prends plaisir à partager avec vous! Car comme vous, certainement, le bureau de mon ordinateur ressemble à mon bureau (le vrai), on y trouve beaucoup de choses plutôt presque toujours utiles et généralement pas mal organisées, sans me vanter!

Cette petite application miraculeuse permet à vos icônes de retrouver leur place après un changement de définition de votre écran, un changement d’écran, l’utilisation de plusieurs écrans ou d’un vidéo projecteur! Pratique non!

Dans un premier temps il est nécessaire de télécharger la librairie à l’adresse suivante et d’extraire le contenu du fichier “zip”. Puis vous devez copier les fichiers “layout.dll” et “layout.reg” sous “C:\WINDOWS\system32”.

Pour finaliser l’installation dans la “registry”, vous devez double-cliquer sur “layout.reg

Maintenant quand vous faîtes un clique-droit sur “MyComputer” généralement sur le bureau, vous découvrez des fonctionnalités supplémentaires permettant de sauvegarder ou de restaurer l’organisation de vos icônes.

Il ne vous reste alors plus qu’à organiser au mieux vos icônes, puis à cliquer sur “Save desktop icon layout

ScreenShot115

Une boîte de dialogue vous confirme que la sauvegarde s’est bien effectuée.

ScreenShot111good

Enfin lorsque le besoin est là, et en ce qui me concerne c’est assez souvent, il ne vous reste plus qu’à cliquer sur “Restore desktop icon layout” pour retrouver l’organisation de vos icônes sauvegardée précédemment.

ScreenShot116

J’espère que cela vous aidera autant que cela m’aide!

dimanche 17 avril 2011

Le coup “Hack” du magazine “Investigations” de Canal+

Je ne résiste pas à l’envie de partager avec vous cette critique de l’émission “Investigations” de Canal+.

Les premières minutes de la vidéo ci-dessous sont édifiantes sur le choix fait par l’émission de ceux qui vont représenter les hackeurs, et sur l’image qu’elle donne de ce groupe.

C’est drôle! Mais l’image de l’émission “Investigations” n’en sort pas grandi!

Savourez!


dimanche 3 avril 2011

Quand Google se met à l’authentification forte…

Vous connaissez certainement tous ce qu’est l’authentification forte. Vous savez, c’est la possibilité de s’authentifier avec soit ce que l’on est (en utilisant la biométrie), soit ce que l’on possède (un token ou un téléphone), et tout cela en plus de ce que l’on sait (généralement un mot de passe statique).


Bref rappel sur l'authentification forte et le One Time Password


L’authentification forte peut être permise par le One Time Password (aussi appelé OTP). Ce mot de passe dynamique généré soit par un token ou une application sur un téléphone mobile, sert à authentifier l’utilisateur. Comment me direz-vous? Et en quoi est-ce une authentification forte?


L’OTP doit être généré (avec ce que l’utilisateur possède i.e. un token ou un téléphone) puis l’OTP doit être saisi par l’utilisateur, soit en complément d’un mot de passe statique (ce que l’on sait), soit en utilisant un mot de passe (souvent appelé PIN) pour autoriser la génération de l’OTP par le token ou le téléphone (ce que l’on sait). Voici par exemple l’image d’un token OTP Gemalto qui peut être utilisé en complément d’un mot de passe statique (ce token là ne dispose pas de clavier permettant de saisir un PIN pour autoriser la génération d’un OTP, mais Gemalto propose toute une gamme de produits complémentaires permettant une authentification forte dont une application Mobile OTP):


easyotpv3



Il existe un standard définissant (entre autres choses) l’algorithme de génération des OTPs. Cette norme s”appelle OATH. Et Google est compatible OATH.


Google et l'authentification forte


Vous faites certainement partie des nombreux utilisateurs des applications Google: Gmail, Picasa, Blogger, Adwords et j’en passe. Jusqu’à ce jour l’authentification permettant d’accéder aux applications Google était basée sur un unique mot de passe statique. Il n’est bien sûr pas nécessaire de rappeler à quel point les mots de passe statiques représentent une faible sécurité. Pour pallier ce problème, Google vient de sortir son Google Authenticator qui permet de transformer l’authentification Google en authentification forte.


Comment configurer Google Authenticator pour sécuriser son compte Google?


La première étape consiste à activer l’authentification forte (aussi appelée authentification 2 facteurs) sur votre compte Google. Pour cela authentifiez-vous comme d’habitude sur votre compte Gmail, séléctionner “Settings”, puis l’onglet “Accounts and import” et cliquer sur “Using 2 steps verification


ScreenShot113



Vous devez ensuite choisir le type de votre téléphone (l’iPhone dans notre exemple).


Puis il est nécessaire de télécharger l’application Google qui correspond à votre téléphone mobile. Sur l’AppStore d’Apple on retrouve facilement l’application.


Une fois l’application installée, il est nécessaire de la configurer. Pour cela il suffit de suivre les instructions très claires fournies par Google (Google vous permet d’utiliser un “code-barres 2D appelé également QR Code” pour vous éviter d’avoir à saisir vos identifiants de compte! Très bien vu!). Vous devez, entre autres choses, récupérer des OTPs qui vous permettront de vous authentifier dans le cas où vous perdez votre téléphone (c’est ballot mais indispensable!), puis fournir un autre numéro de téléphone pour les cas extrêmes (non seulement vous avez perdu votre téléphone mais également vos OTPs de secours; il y a des jours comme cela!).


ScreenShot116



Vous pouvez, bien entendu, configurer plusieurs comptes Google sur votre application mobile Google Authenticator.


Il faut cependant noter que lorsque vous activez l’authentification forte Google (qui ne fonctionne que pour les applications “web”), vous devez définir un nouveau mot de passe statique (généré automatiquement par Google) pour vous permettre de continuer à accéder à, par exemple, votre compte Gmail que vous utilisez dans Outlook, ou bien à votre application Picasa installée sur votre ordinateur personnel.


Et pour finir regardons de plus près la phase d’authentification! C’est très simple, vous entrez vos identifiants habituels (adresse email et mot de passe), puis vous saisissez le code OTP qui apparaît sur votre application mobile. On peut noter que l’OTP est valide pendant une minute seulement (voir le petit cadran sur votre application mobile) et que lorsque l’OTP devient rouge cela signifie qu’il est préférable de ne pas l’utiliser car il est sur le point de changer).


image



Lorsque vous vous authentifiez vous avez la possibilité de dire que vous ne souhaitez pas réutiliser l’authentification forte pendant les 30 prochains jours. Si vous cochez la case correspondante, l’OTP ne vous sera pas demandé pendant 30 jours.


Certains sont critiques par rapport à cette fonctionnalité. Moi je la trouve plutôt intéressante et je m’explique. Soit je suis sur un PC de confiance et je ne vois pas la nécessité (voir contrainte) de réaliser une authentification forte en moyenne 2 fois par jour pour lire mes mails, soit je ne suis pas sur un PC de confiance et il est alors obligatoire d’effectuer une authentification forte.


Bienvenue dans le monde de l’OTP!

Partager avec...