David Robert's -castlebbs- Blog

To content | To menu | To search

Saturday 24 February 2007

Fiabilité de Software inspector

Dans le billet précédent, j'ai parlé de Secunia Software Inspector. Après une première impression assez positive, j'ai constaté que bon... c'est mieux que rien, mais c'est pas super super fiable comme logiciel :

  • Pour obtenir le niveau de mise à jour de Windows, l'application se base sur Windows Update. Or si pour une raison quelconque les serveurs ne sont pas joignables, Software Inspector vous informera que votre Windows et à jour et que toutes les mises à jour de sécurité sont installées. Même si ce n'est pas le cas. J'ai contacté Secunia pour les prévenir de ce bug plus que génant.
  • J'ai fait un test avec un PC sous XP sur lequel est installé firefox 2.0.0.1. Software Inspector me dit que c'est Ok que j'ai la version la plus à jour. Or la version 2.0.0.2 est sortie qui corrige des problèmes de sécurité.

Pour le deuxième point, il faut modérer, la version 2.0.0.2 vient de sortir (il y a quelques heures), il faut voir en combien de temps secunia prendra en compte cette version.

Pour le deuxième point c'est beaucoup plus génant. D'autant plus qu'il y a de nombreuses raisons pour que votre système ne puisse pas se connecter à Windows Update : Problèmes réseau, règles de pare-feu. Mais également et surtout les anti-virus ou pare-feu personnels (Sophos, Mac Afee Virus Scan etc.) bloquent par défaut le processus svchost.exe. C'est ce processus générique qui va pourtant se connecter aux serveurs de Windows Update.

Qu'il y a t'il de pire que d'avoir un système vulnérable ? : Avoir un système vulnérable et croire qu'il ne l'est pas.

Edit du 27/02/07

  • Pour le premier point, un Bugtraq ID a été créé : Secunia Software Inspector Security Update Verification Weakness http://www.securityfocus.com/bid/22736
  • Pour le deuxième point, j'ai eu une réponse de secunia qui m'informe avoir ajouté la version 2.0.0.2 dans la base de signatures de Sofware Inspector

Wednesday 21 February 2007

Secunia Software Inspector

Outil en ligne qui teste les versions des logiciels installés et informe sur les vulnérabilités connues.

Pour les utilisateurs de Windows qui ne savent pas trop où ils en sont des vulnérabilités de leurs applications installée (ansi que de le niveau de mise à jour de Windows).

Ca reconnait un nombre limité de logiciels, mais c'est pas mal, gratuit et il n'y a rien à installer sur le poste à analyser. Le rapport fourni même les indications à suivre pour mettre à jour le logiciel vulnérable ainsi qu'un lien vers la description de la vulnérabilité sur le site secunia.


secunia2.png


Est-ce sécurisé d'utiliser ce service en ligne ?

Vous exécutez une applet signée par secunia qui peut potentiellement faire beaucoup de choses sur votre système. La question à se poser est Avez-vous confiance en secunia ?. Mon opinion est que si vous vous posez la question, vous n'avez pas besoin d'utiliser ce service :-) : vous êtes sensibilisé aux problèmes de la sécurité et donc vous savez mettre à niveau vos logiciels.

Wednesday 14 February 2007

CVE-2007-0882 : faille solaris telnetd

Analyse d'un 0day sur Solaris 10 si simple qu'on pourrait croire à une backdoor :

Il suffit de se connecter par telnet avec la commande suivante pour se connecter root et sans mot de passe :

$ telnet -l"-froot" vuln_host

Enorme non ? Mais ce problème avait été signalé sur d'autres système Unix il y a plus de 12 ans (plus précisément sur rlogin). Pourquoi apparait il maintenant sur une version récente de Solaris ?

Bon une petite explication s'impose : En général lorsque l'on utilise telnet (hélas telnet est encore beaucoup utilisé) on saisit seulement une option : le nom d'hôte

 $ telnet monjoliserveurlinux

Par la suite on saisi le nom de login puis le mot de passe.

Donc là tout le monde a suivit et a compris que l'exploit c'est d'utiliser l'option -l"-froot". J'ai pas de solaris sous la main mais j'imagine que ça doit marcher également avec -l-froot ou -l -froot...

La question est de comprendre ce qu'est ce -l et -f et comment on arrive root sans mot de passe (!).

L'option -l de telnet permet de spécifier au niveau de la ligne de commande le nom d'utilisateur avec lequel on veut s'identifier sur le site distant. Le protocole telnet permet au client telnet de transmettre des variables d'environnement au serveur. En particulier, le nom de l'utilisateur est transmis au serveur via la variable d'environnement USER.

Si vous voulez en savoir plus sur la négociation et l'échange de variable d'environnement dans le protocole telnet, consultez la RFC 1572 et analysez la capture d'une session telnet avec wireshark.

Donc si vous avez suivi, on transmet au serveur telnet la variable USER=-froot

Le serveur telnetd lance la commande login qui vous permettra de vous authentifier et de vous offrir un shell : telnetd -> login -> sh

Voici comment telnetd lance la commande login via l'appel système execl :

3191 		(void) execl(LOGIN_PROGRAM, "login",
3192			    "-p",
3193			    "-d", slavename,
3194			    "-h", host,
3195			    "-s", pam_svc_name,
3196			    (AuthenticatingUser != NULL ? AuthenticatingUser :
3197			    getenv("USER")),
3198			    0);

Le contenu de la variable USER est mis en paramètre de la commande login sans aucun nettoyage ou autre contrôle (on se croirait dans une application web :-) L'élément le plus important dans cet exploit vient de là. Le contenu de user est -froot donc c'est en réalité une option supplémentaire qui est passée au programme login et non le nom de l'utilisateur.

Maintenant, à quoi sert -f pour le programme login ? Ben tout simplement à s'affranchir de l'authentification.

Voici les modifications apportées à telnetd pour corriger le problème.

3201		    "-p", "-h", host, "-d", slavename, "--",
3202		    getenv("USER"), 0);

le -- permet au programme login (via getopts) de considérer que ce qui suit n'est plus à parser comme des options. Ceci corrige donc le problème. Donc patchez votre système !

La façon dont le problème est traité sous GNU/Linux (netkit-telnet-0.17) :

            if (getenv("USER")) {
                addarg(&avs, getenv("USER"));
                if (*getenv("USER") == '-') {
                    write(1,"I don't hear you!
",19);
                    syslog(LOG_ERR,"Attempt to login with an option!");
                    exit(1);
                }

Alors, backdoor ou pas ?

Pour plus de précision sur l'arrivée de cette faille dans Solaris 10, je vous conseille de lire la discussion sur ce sujet sur bugtraq. Déjà pourquoi ce bug apparait t'il maintenant et pour la première fois sur Solaris ? Un élément de réponse est que la prise en compte par login de l'option -f vient d'apparaitre pour le support de kerberos (ktelnetd). Ceci permet d'exploiter le bug de telnetd qui ne protège pas des injections de paramètres via la variable d'environnement USER. Donc backdoor ou pas ? A vous de juger, certains pensent que oui d'autres qu'il est évident que non. Mais bon, ce qui est sur c'est qu'il faut patcher votre système.

d1cac3 Gaal l3p3t1t

Google Agenda et inconscience


Je viens de découvir un truc très amusant sur Google Agenda : La fonction de recherche dans les agendas publics. Ainsi il est possible de faire des recherches par mots clef parmis les milliers d'utilisateurs de Google insoucieux (et on peut même dire irresponsables lorsqu'il s'agit d'un agenda professionnel) qui ont laissé leur agenda en accès public.

C'est tout simplement énorme. En effets, essayez des mots clefs comme "mot de passe", password, firewall password, entretien ou des noms de grandes entreprises.

On tombe sur des trucs très étonnants en partant par la liste des contacts et rendez-vous d'un ingénieur d'affaire d'une grosse entreprise, l'agenda d'une journaliste, d'un responsable sécurité d'une entreprise dans lequel on peut lire les différents mots de passe et numéro de téléphone pour joindre des meeting téléphonique où on va parler de l'évolution des architectures sécurité etc.

Bref, voici un très bon exemple des problèmes de sécurité liés au facteur humain Je laisse aux plus imaginatifs les idées d'actes d'ingénierie sociale qui peuvent être réalisés à partir d'informations lues dans les agendas.

Tuesday 13 February 2007

CP8 smartcard reader: explore the carte bleue (credit card)

Photo lecteur

J'ai acheté un lecteur de cartes à puce d'occasion pour 1 euro dans un magasin Toulousain. Ce lecteur assez vieux fonctionne parfaitement sous Linux, j'ai décidé d'écrire cette page pour décrire le travail que j'ai fait autour de ce lecteur.

Accéder à des photos du lecteur

L'auteur ne pourra en aucun cas être tenu responsable des préjudices ou dommages de quelque nature que ce soit pouvant résulter de l'utilisation de ses explications ou programmes.

Continue reading...

Friday 13 May 2005

Oracle security internet resources

Oracle SQL injection articles

Lectures and public speeches

Thursday 18 November 2004

vdrpylib patch

My patch for vdrpylib 0.2. So you can use vdrpylib with the latests vdr versions. What's new :

  • Use socket interface instead of telnetlib.Telnet
  • changes because of the new EPG format

Thursday 13 May 2004

Linux on Dell Servers

I don't have time to make a translation, so it's a robot translation :-)

Continue reading...

Friday 7 May 2004

French linux training slides

I have conducted several trainings. Here you'll find a list of all the courses I've made publicly available. All these courses are in french language.

Friday 10 May 2002

CastleBBS

Castle BBS modem first answerd in 1994 summer. It has stopped  and was replaced by elfix a community linux server I'll talk about later

  • povray made by Jean-Christophe ARNU : castle.jpg

From http://www.fdn.fr/~musical/bbsf.txt :

------------------------------------------------------------------------------
CASTLE BBS David Robert
61.73.46.52 [ 1200 a 14400] V32B V42B
Toulouse, SudOuest, 31
Remote Access 2.02
FrontDoor 2.12
00:00-24:00
IEMSI
850 Mo
Gratuit
@Direct Link 400:431/2
@FidoNet 2:324/109
@GlobalNet 52:3306/0
@GlobalNet 52:3306/1
@LifNet 102:330/11
XYZ/HsL
------------------------------------------------------------------------------


BBS softwares I wrote (in Pascal language)

Here are some programs I wrote when I was running Castle BBS

page 3 of 3 -