DEFCON Conference 17.嘲笑您的病毒! 第二部分

DEFCON Conference 17.嘲笑您的病毒! 第一部分

然后,您可以将其加载到IDA中,并看到导入地址表中的所有内容看起来都很好,我们可以按照交叉链接将指针设置为所需文件。 因此,我们可以找到相关加密代码的确切位置。



因此,仅需几个转储内存的命令,我们就找到了Coreflood隐藏的地方。 我们甚至在没有PE头的情况下就对其进行了分解,检索和插入,并在不到20秒的时间内获得了完全还原的地址表。

下一个故事叫做“亲爱的,很抱歉再次打扰您-我被互联网st住了!” 这个故事告诉我们,有缺陷的IP生成器Conficker.B仅扫描Internet的一部分。 在这里,我们再次返回到rand函数。 该功能的重要部分是我用绿色箭头标记的最后一条指令-它执行EAX中任何最终值为7FFF的值。 如果您不熟悉汇编原理并且不知道该指令可以做什么,那么这里有一个有关此的小演示。



我们将EAX可以包含的最大值移动到此注册表中,并执行最终指令。 您可以看到它“截断了”该值的上半部分,然后减去7FFF,该值在十进制系统中转换为32767。 。 它会“截断”该值,以使该值不超过7FFF,以便7F的一个字节永远不会大于此7F的值,也就是说,它永远不会等于80或类似的值。

在幻灯片的左侧,我称之为“恶性方法”,您将看到Conficker.B代码。 这显示了一个对rand的调用,该调用启动了IP地址的第一个八位位组,该IP地址从rand返回后将被扫描。 接下来的rand系统调用将启动IP地址的第三个和第四个八位位组,但是由于上述原因,这些八位位组中的两个永远不会大于7F。 因此,由于Conficker.B使用此算法,因此将无法扫描大多数Internet。

幻灯片的右侧是显示汇编器的源代码部分。 在屏幕上很难阅读,但是此示例是公开的,如果您感兴趣,可以在线阅读。



下一张幻灯片的底部有此工具的链接,标题为“模拟恶意方法”。 您还可以看到该IP地址是使用PRNG生成的,但未扫描。



我要对布兰登·恩赖特(Brandon Enright)表示感谢,他在下一张幻灯片中做了时间表。 该图称为“希尔伯特曲线”,现在我将放大图像,以便在屏幕上看到更好的图像。 图中的蓝色表示Conficker.B使用此恶意算法无法扫描的IP地址范围。 深红色表示可以扫描的内容。 您会看到图表的大多数部分不是深红色,而是紫色,并且您将看不到为什么会发生这种情况,除非您增加相应的矩形。



即使在这个放大的矩形中,在每个块/ 16中,您也会看到许多蓝色的片段,这些片段将深红色变成紫色。 这些是Conficker.B无法扫描的地址的一部分。



这很有趣,因为许多人确信Conficker.B创造了“伟大的思想”。 也许是这样,但是这些人并没有意识到Windows rand()中存在的限制。

马修·理查德(Matthew Richard):回到我刚才说过不能很好地控制病毒的家伙,因此在网络犯罪中,这类似于谚语“人对人的狼”,因此这些人在他们的圈子中没有受到尊重。

让我们讨论一下黑客工具Neosploit,它“吸引”了所有人。 可以说,其开发者的座右铭是“感谢您的现金,现在该运行了。” Neosploit是用于组织Web攻击的工具包,因此来自网络犯罪的人将购买它并针对服务器上的人对其进行配置,破解服务器,下载代码等。



Neosploit的创建者通过出售其工具进行了很好的投资,但不允许对其进行更改,修改或在零件中使用。 该工具箱的第三版于2008年4月发布,大多数独特的漏洞利用C编写,因此它不是PHP或某种废话Web应用程序。 客户收到了带有一组CGI漏洞的二进制发行版。

Neosploit具有防止客户分割或削减漏洞的功能。 为此,所有漏洞利用都以二进制格式呈现,并使用XOR加密。 创造者做到了这一点,因此没有人可以根据Neosploit进行剪切,粘贴和创建自己的一系列攻击。 有40-50-60种不同类型的Web攻击,这些攻击基于被窃取和复制的代码插入自己的漏洞利用程序中,因此,Neosploit家伙通过从内部加密漏洞利用程序变得更加聪明。 在屏幕截图中,您可以看到他们有一个带有密钥neosploit.key的文件,因此这是完全许可的软件。



我毫不怀疑他们有很多非常好的客户,他们从中赚了很多钱。 他们最著名的客户是Torpig。 我想您已经听说过Mebroot rootkit,他们利用Rootkit破坏了系统以创建僵尸网络。 但是Neosploit的创建者还有许多其他客户。 在2008年5月,他们发布了全新的改进-工具包的第3版。 客户被要求以1000美元的价格预付漏洞利用包以及所有后续更新的费用。 稍后,我将更详细地讨论这一点,现在,我会注意到他们真的很担心海盗,并试图尽可能地保护他们的产品免受海盗侵害,因此这绝对是一件很有趣的事情。



甚至媒体都写道,这些漏洞无处不在。 因此,当然,我们将尝试反汇编代码并展示Neosploit的工作方式。

他们在4月至7月大力推广了这一系列漏洞之后,做的第一件有趣的事是从2008年7月20日开始对他们的支持。他们简单地在网站上发布的解释如下:进一步的产品支持不可行。 对于给您带来的不便,我们深表歉意,但企业就是企业,花在项目上的时间并不能证明其合理性。 在最近几个月中,我们尽力满足客户的要求,但是总有一天应该停止支持。 我们已经和您在一起了一年半,我们希望这不是您业务最糟糕的时间。 现在我们不会离您很近,但是,我们希望您的业务在很长一段时间内蓬勃发展。” 一般来说,我们收到了您的款项,您已为订阅付款,所以请保持健康!

但是,他们只是开玩笑,并在2008年8月退回并发布了一个全新的版本3.1,并将其提供给主要客户,这表明所有其他客户在付款后都将收到更新。 此更新包括Adobe PDF,Shockwave Flash和Firefox Quicktime的一些新漏洞。

然后,他们再次决定认真对待,并宣布实际上停止发布更新,因此每个进行预付费订阅的人都搞砸了。

因此,让我们继续学习Neosploit,这是用于组织Web攻击的非常酷的工具包。 因为它的开发人员与海盗作战并偷走了可以复制并粘贴到其他人的工具包中的漏洞利用程序,所以他们将每个漏洞利用程序放入CGI文件中,并进行编码,以至于很难从那里获得。 C exploit二进制文件与PHP脚本略有不同。



在Neosploit博客上,Dancho Danchev发表了这样的短语:“任何人都可以创建新的利用”,但这很难。 我决定找出困难之处,并开始拆卸其中一项漏洞。

每个漏洞利用3字节XOR密钥以加密形式存储。 对于每个传入的请求,该利用都会被解密并提供给用户进行工作,并且这样的循环会不断重复。



因此,即使您可以遍历内存并删除内存转储仍然非常困难,并且要获得所有漏洞利用,所有这些漏洞,每次都会被清除。

幸运的是,如果您可以将这些漏洞利用复制并粘贴到所需的程序中,则可以找到答案。 为此,使用了非常强大的解密工具-IDA脚本。 有了它,您可以注释或转储特定的内存区域,更新漏洞利用程序,对于使用使用由xor,base64等复杂字符串组成的恶意软件,它可能非常有用。 我写了一个IDE脚本,试图用它来分解捕获的加密漏洞内存转储。



它遍历所有加密对象,搜索对解密函数的所有调用,捕获加密对象,使用XOR对其解密,然后删除转储。 这是一种方法,但是我认为您可以编写自己的脚本,一个执行相同功能的应用程序。 如果您知道如何向Neosploit添加新漏洞,则可以朝这个方向做一些事情,当然,一旦删除转储,您将识别出所有明文,可以将其“撕下”并重新出售。 开发漏洞的新手只是放弃了,因为有人赚了很多钱却没有照顾他们的客户。

如果有人听过Notorius BIG伟大的嘻哈哲学家Biggie Smalls的话,那么他就知道他的歌叫做《十诫》,《十诫》,其中蕴含着深厚的智慧。 如果您是毒贩,请遵循以下4条诫命:“切勿坐在自己推着的浓液上。” 大概我叫Peeper的那个人,他分发了自己的恶意代码,却从未听到过这首歌,因为他亲自测试了自己的产品。

他的攻击如下。 他发送了电子邮件,伪装成各种政府机构,并用以下名字给人打招呼:“亲爱的某某人,有人向联邦贸易委员会投诉了您的公司,因此请单击此处下载详细说明实质内容的文件” 。



然后,用户跟随该链接并尝试下载此文档,它实际上是.doc格式的Word文档。 但是,有一个非常棘手的功能。 您有机会简单地从Word文档中拖放可执行文件,然后重命名它们,但是当您尝试下载文件时,出现消息“ Microsoft Word检测到问题,无法下载该文档。 请双击文档图标以继续。” 很棒的主意!



人们自然会单击,然后单击6次以接收此感染消息,因此此人有很多受害者。 我喜欢这样的消息:“他们试图欺骗我,等等等等。”

跟踪此人时,我们发现的下一个内容是投递目录的打开目录,他在其中转储了收到的信息。



也许他没有自己的工具来管理它们,或者他认为打开目录是一件好事,但是如果您存储了许多来自不同人的信息,那么打开目录就不好了。 他为其“登陆”站点配置的任何服务器都有一个打开的目录,您可以进入该目录并查看其所有受害者的列表,以及每个列表。

在某种程度上,他是一名优秀的开发人员,因为他编写了高质量的代码。 但是它的缺点是,当将他的代码寻址到实时服务器时,他使用了他的真实IP地址,因此使用这些东西将持续很长时间。



因此,实际上,他有一个与乌克兰联系的标准DSL调制解调器,他测试了他的所有代码和恶意软件,该恶意软件具有一个很好的功能,称为“跟随我”或“跟随他”。 这个家伙忙于窃取银行信息,但有时他只是想看着受害者查看他们在做什么,所以我们称他为“偷窥者”或“观察者”。 他对软件的简单功能不满意,因此开始进行自我监控。 看起来很奇怪,好像您在自己的计算机上打开了VNC远程访问窗口并将它们循环播放一样,得到的图像越来越小。 实际上,他在许多“登陆”服务器上这样做了很多次,的确,这确实非常非常奇怪。 因此,通过这些“着陆”服务器,人们可能会说:“哦,瞧,这是他观察自己,观察自己,观察自己的照片。”



“我的灯,镜子告诉我,世界上谁最甜蜜”?

最重要的是,我喜欢他为自己所做的。 他在代码开发过程中使用了“关注我”功能。 实际上,他是观察自己编写的代码,然后将所有这些发送回命令和控制服务器。 因此,他使警察有可能闯入后门,将他的脸放在地板上并没收他的计算机。 简而言之,就像附加到IP地址的源树的图像一样,没有什么能摆脱您的。



我们将要研究的最后一个恶意软件一定会引起熟悉Internet Explorer 7的人们的兴趣。但是不要担心,Microsoft表示一切都在控制之中,请相信他们!



因此,Microsoft在Internet Explorer 6上遇到了一个大问题,因为从此浏览器中窃取保存的密码非常容易。 通常,您会访问该站点,他们会询问您是否要保存密码,会弹出一个特殊表格,您回答“是”,然后将其保存在注册表中。 IE 6的问题在于,如果您以用户身份登录,则只需要进行一个CryptUnprotectData()系统调用即可解密这些实际上没有保护的密码。

因此,以用户特权运行的恶意软件可以自由读取这些密码,并将其发送给攻击者。 因此,他们在IE 7中安装了出色的“补丁”-使用128位密钥对密码进行加密。 真的不是一个破解的解决方案!
如果您更深入地看,您可以在该站点上看到可用的哈希,稍后将对此进行解释,其中有一个包含用户名和密码的二进制文件。 我想引用电影《剑鱼》中另一位伟大的哲学家约翰·特拉沃尔塔(John Travolta)的话。 我最喜欢的一段话是他坐在那儿的时候,他解释说:“这段代码是如此的好,甚至我都无法破解。” 我认为他考虑过512位加密,他是世界上最好的加密器,为什么被录用,他说即使他也做不到。

这就是微软所做的。 他们对密码进行加密,然后将基于为其保存该密码的站点的MD5哈希生成一个128位密钥。 这似乎很合理,因此,如果您访问www.bank.com/login.sp ,他们将采用这一行,将所有字母都转换为小写,然后将其编码为大字符并使用MD5算法,将该行转换为将用于加密注册表中用户名的密码。

然后,当您访问该网站的密码已保存时,他们将采取相反的操作:IE将URL标准化,对字符串进行转码,然后在注册表中查找是否有为您存储的值。 详细地说,它是这样的:

  • 读取index.dat中每个URL的寄存器的哈希值;
  • URL转换为小写;
  • GET参数减少;
  • URL转换为大字符;
  • 如果URL值的哈希值等于寄存器中的任何值,则使用该URL解密数据。

这似乎很合理,但是如果您考虑一下,那将是一个小问题。 实际上,熵太少了,黑客可以轻松应对。 这并不比IE 6中的密码加密复杂得多。

破解它非常简单。 要保存密码,用户必须访问该站点,然后可以在index.dat或“ TypedURLS”注册表项部分中轻松找到该站点。 如果仅考虑美国,那么大约有15,000个银行和信用合作社站点,您可以轻松找到它们。 , , , . , .

, , , , , : Facebook, Myspace Twitter , . Alexa, , . , - « » Rainbow Table .

, IE 7 : , .

? , . . , Mozilla Firefox, , . , , , «Remember My password». . Firefox IE 7 , , , , .

, , , .

Laqma. , , . - , , , command and control.



, . , , PHP -, PHP , – .

.

: , , , . , . Laqma, . , , Laqma , . , SSDT, IDA - .
, Volatility, . , Laqma, SSDT , , . SSDT, , SSDT, SSDT.



TOS, win32k, , . SSDT , , TOS win32k.

, , , , drv, .sys, . , . , SSDT . .



使用SSDT插件可以稍微自动化该过程。您会看到BSOD如何在屏幕上闪烁,它可以运行IDA命令行程序。作为自动处理的结果,创建了一个IDB,这自动化了一些,因此标记了与“挂钩” SSDT功能相对应的IDB功能。

因此,通过一小步,我们了解了哪些SSDT函数与拥有已创建的IDB模块的转储相关联,并且可以命名它们以确切地知道在我开始进行逆向工程时在IDB中查找的位置。
希望你玩得开心!


感谢您与我们在一起。 你喜欢我们的文章吗? 想看更多有趣的资料吗? 通过下订单或将其推荐给您的朋友来支持我们, 为我们为您发明的入门级服务器的独特模拟,为Habr用户提供30%的折扣: 关于VPS(KVM)E5-2650 v4(6核)的全部真相10GB DDR4 240GB SSD 1Gbps从$ 20还是如何划分服务器? (RAID1和RAID10提供选件,最多24个内核和最大40GB DDR4)。

VPS(KVM)E5-2650 v4(6核)10GB DDR4 240GB SSD 1Gbps至12月免费,在六个月内付款时,您可以在此处订购。

戴尔R730xd便宜2倍?在荷兰和美国,我们有2台Intel Dodeca-Core Xeon E5-2650v4 128GB DDR4 6x480GB SSD 1Gbps 100电视(249美元起) 阅读有关如何构建基础架构大厦的信息。 使用价格为9000欧元的Dell R730xd E5-2650 v4服务器的上等课程?

Source: https://habr.com/ru/post/zh-CN428860/


All Articles