vendredi 23 janvier 2009

You've got mail !

Tout commence par un email qui passe au travers des mailles de l'antispam:


Comme j'ai un petit faible pour impots.gouv.fr et pour UTF-8, je regarde le code source du message pour trouver les liens à cliquer (par ailleurs je lis tout mon mail en texte brut par conviction :).

Et là ... c'est le drame !
(...)
Received: from localhost.localdomain (s216-232-70-72.bc.hsia.telus.net [216.232.70.72])
(...)
X-Mailer: Perl script "mailer.pl"
using Mail::Sender 0.8.16 by Jenda Krynicky, Czechlands
running on mail.latitudestores.com (127.0.0.1)
under account "root"
(...)
[img src="\\207.210.244.20/images/banniere.jpg" alt="Actualités 2009" width="687px" id="banniere"/]
(...)
[img src="\\\\207.210.245.78/images/actualites.jpg" alt="Actualités 2009" width="687px" id="actu"/]
(...)
(J'ai remplacé les chevrons pour protéger les innocents). Il n'y a aucun lien à cliquer ... mais deux images chargées depuis un partage SMB ???

Investigation rapide du serveur source du spam : pas de site Web accessible, une recherche inverse ne donne rien, quelques traces d'émission de spam en octobre 2007 déjà ... Le nom de domaine a été enregistré avec l'identité suivante:
Latitude mens wear
8365 Ontario Street, Unit 100
Vancouver, British Columbia V5X 3E8
Canada
Il y a quelques ports TCP ouverts:
22/tcp "SSH-1.99-OpenSSH_4.3"
23/tcp "SSH-1.99-OpenSSH_4.3"
25/tcp "220 localhost.localdomain ESMTP Sendmail 8.13.8/8.13.8; Fri, 23 Jan 2009 09:25:07 -0800"
110/tcp "+OK Dovecot ready."
3389/tcp
10000/tcp
Cela confirme la localisation de la machine (GMT-8). Mais difficile d'aller plus loin, surtout au vu du reverse DNS ("s216-232-70-72.bc.hsia.telus.net") ... L'adresse IP est-elle dynamique ? S'agit-il d'un bloc alloué à des particuliers ou des professionnels ? La machine a-t-elle été compromise, ou envoit-elle du spam de son plein gré ?

La présence d'un Remote Desktop sur TCP/3389 relié à un Windows 2003 Standard, d'un Webmin en HTTPS sur TCP/10000, et de logiciels typiques du monde Unix (SSH, Sendmail, Dovecot, ...) pourrait laisser croire qu'il y a plusieurs machines derrière cette adresse. Une analyse des IPID avec Scapy pourrait s'avérer utile.

Vu la surface d'exposition, les méthodes de compromission potentielles ne manquent pas (brute-force SSH, faille dans Webmin, ...). L'investigation a une chance sur deux de se terminer en cul-de-sac.

Passons maintenant aux deux adresses IP destination. Les bases WHOIS ne sont pas très verbeuses, a priori un simple hébergeur du côté de Dallas:
Colo4Dallas LP COLO4-BLK4 (NET-207-210-192-0-1)
207.210.192.0 - 207.210.255.255
RimuHosting COLO4-RIMUH-042108-02 (NET-207-210-244-0-1)
207.210.244.0 - 207.210.244.127

# ARIN WHOIS database, last updated 2009-01-22 19:10
# Enter ? for additional hints on searching ARIN's WHOIS database.
Les enregistrements DNS inverse sont plutôt ... curieux. Le premier nom de domaine n'existe pas, et le deuxième a été enregistré du côté de San Francisco.
Nom : out-of-my-hands.com
Address: 207.210.244.20

Nom : africanjudicialnetwork.org
Address: 207.210.245.78
Ces deux sites semblent de toute façon inaccessibles, le premier étant une page Apache par défaut, et le deuxième étant "cassé". Encore des machines compromises ?

Là où ça devient intéressant (si ça ne l'était pas déjà ;), c'est lorsqu'on se rend compte que ces deux machines exposent réellement un service SMB sur Internet !
Interesting ports on out-of-my-hands.com (207.210.244.20):
PORT STATE SERVICE
135/tcp closed msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds

Interesting ports on africanjudicialnetwork.org (207.210.245.78):
PORT STATE SERVICE
135/tcp closed msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
Une tentative de connexion donne le même résultat dans les 2 cas:
$ smbclient -L \\\\207.210.244.20
Password:
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.2.6]

Sharename Type Comment
--------- ---- -------
Domain=[WORKGROUP] OS=[Unix] Server=[Samba 3.2.6]

Server Comment
--------- -------
SMBSHARE

Workgroup Master
--------- -------
WORKGROUP SMBSHARE
Le répertoire /images/ existe réellement sur le serveur, et son contenu laisse présager de nombreuses tentatives de fraude en cours (Impôts, Voyages-Sncf, Expedia et Facebook) ...

Là où ça devient vraiment grave, c'est qu'un client Windows XP SP3 en configuration standard va s'authentifier automatiquement en LM/NTLM sur le serveur avec un tel lien !

A ce stade, il serait réellement intéressant de savoir ce qu'il advient côté serveur. Les authentifications sont-elles capturées et "craquées" ? Une attaque en relais SMB est-elle immédiatement tentée sur le poste client (on peut toutefois espérer que de nombreux FAI français filtrent les ports requis) ? Ou s'agit-il juste pour l'auteur du spam d'afficher correctement ses images ? Le problème étant que j'ai du mal à percevoir l'objectif final du spam (autre que la capture des authentifiants), celui-ci n'ayant aucun lien cliquable ...

PS. La cerise sur le gateau, c'est que Blogger sous Google Chrome a trouvé intelligent d'interpréter les liens "img" lorsque je suis passé en mode "edit HTML", puis de charger les images susdites ... donc je me suis fait avoir en écrivant ce post !

lundi 19 janvier 2009

Comment accéder à un compte Deezer

Les temps changent.


A une époque, quand j'invitais des gens à la maison, ils venaient avec leur tour de CD. Puis leur lecteur MP3 (iPod en tête). Maintenant ils s'installent sur mon PC et utilisent leur compte Deezer pour nous infliger leurs playlists.

Je suis également un peu paranoïaque. Alors je configure mon Firefox pour nettoyer tous les cookies à la fermeture du navigateur. Quelle surprise, donc, que de retrouver la session d'un autre ouverte lorsque je relance le navigateur !

L'explication est simple : Deezer est une application riche, utilisant massivement Flash. Et en particulier l'espace de stockage persistant offert par cette technologie.

Si vous utilisez Firefox, le fichier se trouve dans le répertoire:
%AppData%\Macromedia\Flash Player\#SharedObjects\\www.deezer.com\deezer.sol

Il s'agit d'un format binaire, mais deux chaines de caractères sautent aux yeux: l'adresse mel et un condensat MD5 (en format texte hexadécimal) correspondant au mot de passe.

Bien sûr il est envisageable d'inverser le condensat, mais le plus reste de copier le fichier".sol" directement pour rentrer dans la session de l'utilisateur ... et pouvoir enfin lui faire découvrir de la "bonne" musique :)

Mes conclusions quant à cette affaire:
  1. Comme toujours, la mise en oeuvre des algorithmes cryptographiques est essentielle. Inutile d'utiliser MD5 si c'est pour authentifier l'utilisateur uniquement avec son hash. Cela fait partie des thèmes que j'aborde dans ma soumission au SSTIC :)
  2. Ne jamais utiliser un PC qui n'est pas le sien. Non seulement il est impossible de faire confiance à un PC pris au hasard de nos jours, mais de plus il existe une quantité phénoménale de traces résiduelles, comme le démontrent les développements du forensics offensif (offensics).
  3. A chaque fois qu'une nouvelle option de sécurité et/ou de confidentialité est proposée par le navigateur, les développeurs du Web 2.0 (ou les concepteurs des normes associées) inventent une méthode de contournement pour rendre l'expérience utilisateur plus riche. Ca promet ...

jeudi 15 janvier 2009

The Debian is for pwn!

Joli headshot ce matin à la Gare de Lyon:



Pour résumer, si quelqu'un enregistre ou a enregistré le trafic SSL sur ce hotspot WiFi ces 3 dernières années, les identifiants de tous les clients Neuf sont volés.

Merci à l'extension SSL BlackList !

PS. Si quelqu'un a un contact chez SFR_Neuf_Cegetel, c'est le moment. Parce que là c'est du sérieux.

lundi 12 janvier 2009

La punition

La lecture du Hakin9 de janvier est particulièrement punitive. Malgré quelques articles d'une certaine tenue, on y trouve également le pire ...


Par exemple un article du "fameux" Aditya K. Sood, qui a sévit un moment sur la liste Full Disclosure en publiant des "papiers" de "recherche" avant de se voir décerner le titre de Lame Ass of the Month par Kostya et d'autres, et de disparaitre (provisoirement).

Voici un extrait de l'article. Si vous avez une idée de ce qu'est DEP (en vrai), cela devrait vous faire sourire sur le fond - et sur la forme. Désolé pour la qualité du scan, la police extrêmement fine et totalement illisible utilisée par la nouvelle maquette du journal ne passe pas bien au scan.

On trouve également un article sur Google Chrome, écrit par "un autodidacte et passionné [de sécurité informatique] motivé par l'esprit alternatif de la communauté UnderGround".

Donc si vous voulez des informations sur les choix de conception, les techniques d'isolation des processus de rendu, ou l'implémentation du moteur JavaScript V8, je vous conseille fortement de lire la bande dessinée, les papiers ou le code source.

Si par contre vous voulez halluciner avec un article écrit dans un style ampoulé et emphatique, qui présente une liste des failles publiques (disponible par ailleurs sur Secunia) pour ensuite délirer sur l'exploitation des buffer overflow dans Windows (sans prendre en compte les contre-mesures implémentées dans Chrome), alors procurez vous d'urgence ce numéro.

Voici un extrait de la conclusion pour vous donner une idée:

Il semble que l'auteur soit également modérateur du nouveau forum Hakin9-FR. Ca promet ...

PS. On ne dit pas "à coeur perdu" mais "à corps perdu". Et on ne dit pas "querelle d'églises" mais "querelles de clochers".

lundi 5 janvier 2009

Utiliser OpenVPN 2.1 sous Vista64

Dans la folie des dépenses d'investissement de fin d'année, mes collègues ont sélectionné pour moi un nouveau laptop de daron^H^H^H^H^H senior expert : le Dell E4300.


Passons sur les 2 mois de délai (au lieu des 10 jours annoncés), puisque la bête est arrivée pour Noël, je m'apprête à ressentir le frisson d'un top manager devant son nouveau jouet: 4 Go de RAM, 250 Go de disque, processeur Core 2 Duo, 3G+ et GPS intégrés, et ... Vista 64.

La première prise de contact avec la bête est plutôt ... rugueuse.


Un problème dans le driver de la carte BroadCom intégrée ... il est temps de chercher les mises à jour sur le site de Dell. Et là, c'est le drame:
  • Plusieurs centaines de Mo de mises à jour à télécharger.
  • La palme revient à la "mise à jour du hub de sécurité Broadcom", qui nécessite de booter sous FreeDOS avec le TPM désactivé (note: la machine est livrée sans lecteur de CD-ROM par défaut).
  • Certaines mises à jour "urgentes" étaient carrément identifiées comme "à venir" !
Les plus taquins d'entre vous pensent déjà "tu n'as qu'à passer sous Linux". Que nenni ! Car outre les défauts du logiciel, le matériel pêche également:
  • Pas de port PCMCIA mais seulement un port ExpressCard. Passe encore, c'est l'avenir.
  • J'aurais aimé un écran tactile (TabletPC) qui aurait beaucoup amusé ma fille - mais il parait que c'est beaucoup plus cher.
  • Il faut choisir en usine entre WebCam et 3G+ (WTF ? La cause en serait le positionnement de l'antenne 3G+ autour de l'écran).
  • La machine ne dispose que d'un seul port USB. Pas évident quand on est allergique au Touchpad de brancher une clé USB et une souris externe simultanément. Sauf si vous avez une clé eSata, bien sûr ...
  • Une autonomie de 3h30 max, quel que soit le système d'exploitation. Mon vieux Dell X300 atteint les 6h30 avec une batterie noname, pour un poids quasiment identique !
  • Et surtout, un écran brillant (limite glossy) avec des fuites lumineuses en pagaille (en clair, le noir est loin d'être noir). Et ça, c'est rédhibitoire.
Maintenant, si vous voulez continuer l'aventure sous Vista 64, voici comment faire fonctionner OpenVPN 2.1_rc15 sans avoir à élever le processus à chaque connexion.

En effet, être membre du groupe "Network Operators" ne suffit pas à OpenVPN pour pouvoir mettre à jour les tables de routage. La connexion se passe bien (le driver OpenVPN est signé, ce qui lui permet de fonctionner sous Vista 64), mais il est impossible de joindre les ressources du site distant. La correction la plus simple consiste à lancer le processus en tant qu'administrateur.

Pour éviter d'effectuer cette opération "à la main", la solution officielle consiste à créer un fichier ".manifest" attaché à l'application.

"Dans le temps", il me semblait que créer un fichier "openvpn.exe.manifest" dans le même répertoire qu'OpenVPN était suffisant. Mais dans mon cas cela ne fonctionne pas. Est-ce parce qu'OpenVPN est un processus 32-bits ? Mystère ...

La solution consiste donc à embarquer le fichier ".manifest" dans l'application, à l'aide de l'outil MT.EXE (disponible avec Visual Studio, dont les versions Express - gratuites et illimitées - sont téléchargeables ici). Oui, il existe probablement des solutions plus simples à base d'éditeurs de ressources tiers :)

Le contenu du fichier ".manifest" doit être le suivant:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="requireAdministrator"/>
</requestedPrivileges>
</security>
</trustInfo>
</assembly>


La commande à utiliser est:

C:\Program Files (x86)\OpenVPN\bin> mt -manifest openvpn-gui-1.0.3.exe.manifest -outputresource:openvpn-gui-1.0.3.exe;#1

Et voilà !

Attention également au sous-répertoire "log", qui trouverait mieux sa place dans %AppData% (car propre à chaque utilisateur). Ce répertoire doit être en écriture pour l'utilisateur.

jeudi 1 janvier 2009

Puisqu'on parle de SSL ...

Un beau SSTIC-fail avec Google Chrome ...


Au moins avec une interface pareille, la légendaire Mme Michu devrait comprendre qu'il y a un problème de sécurité sur ce site.

Mais l'epic fail restait à venir - car après avoir passé outre cet avertissement et saisi toutes les informations utiles à ma soumission dans l'interface Web, ma session avait expiré et le POST final a été rejeté.

Aurez-vous la tristesse de ne pas me voir officier sur l'estrade du SSTIC cette année encore ? Non car heureusement en dumpant immédiatement le processus CHROME.EXE (avec memdump), j'ai pu récupérer le contenu de ma soumission dans un buffer.

Voici donc une année 2009 qui commence bien. Bonne année à tous !

PS. Ne vous enflammez pas, le JSESSIONID ci-dessus a expiré :)