存档

‘恶意代码’ 分类的存档

在签名的程序中隐藏和执行恶意软件?

2016年10月16日 3 条评论

在Blackhat USA 2016上,来自Deep Instinct的安全研究人员呈现了一个名为《Certificate Bypass: Hiding and Executing Malware from a Digitally Signed Executable》的演讲,咋一看还觉得挺惊奇的,听过演讲之后才发现原理十分简单,而且大部分内容都集中在内存加载PE文件上,于是忍不住又是一阵惊奇:这也可以?在仔细读完作者的Paper之后,发现和传统技术点还是有区别的,不过也有很大的限制。
早期的恶意[......]

继续阅读

也来谈谈沙箱逃逸技术

2015年6月22日 2 条评论

今天在微博上看到有大神发表了关于沙箱逃逸技术的文章针对沙箱检测的逃逸技术小讨论,让我想起来我也还有几个有意思的小技巧,所以也来凑个热闹。需要声明的一点是,本文将要讨论的问题是我很久之前所做的总结,当前是否有效我没有去验证,所以,如果你实际测试的时候发现方法失效了,也请保持冷静!
0×01. 进程检测技巧
许多文章都会提到通过检测进程名字的方式来判断当前环境是否是虚拟机,那么自然要去比较进程名字了,而获取当前进程列表也无外乎几个固定的套路。我发现在检测特定进程名字的时候,是会触发火眼的监[......]

继续阅读

[HDUSEC CTF]逆向分析Final

2013年11月12日 16 条评论

这是杭州电子科技大学信息安全竞赛(HDUSEC CTF)一个比较坑爹的题目,运行程序之后电脑就自动关了,如果直接在真机测试,那丢点数据也在所难免了,呵呵~ (注:本文是在比赛结束后发的
这个时候,你很可能拿起你的OD准备动手了,可是当你刚载入OD的那一瞬间,屏幕又黑了,看了看主机箱,擦,灯灭了,电脑有关了,这尼玛不是坑爹么!
别哭,开机继续搞!把程序载入PEiD,看,有TLS呢!当然啦,大概就猜TLS里面有坑爹的代码。这个TLS可以看也可以不看的,但是出于好奇心,我还是忍不住看了下。那还是用I[......]

继续阅读

[XDCTF]Shellcode DIY

2013年10月7日 4 条评论

国庆参加了XDCTF,被虐的相当惨,不过时间安排确实不怎么好,时间安排在前六天,先提交且通过的得分高,越往后交分数越低,偏偏还要搞在1号0:00开始,相当的操蛋的安排。另外就是这是组队赛,大家很难把假期全部贡献在比赛上,以至于很多题目都没时间做了。不过玩玩就好,参加一下总是涨了点知识,写点笔记。(这次比赛许多大牛都出来厮杀了,场面相当激烈)
溢出部分有一个编写Shellcode的题目,要求ShellCode运行后能够监听4444端口,并且能够执行从控制端传输过来的其他ShellCode。现成的当[......]

继续阅读

[译]各种IE版本下的堆喷射技术

2012年11月30日 3 条评论

最近我在学习为一些古老的漏洞编写exploit,以使得它们能够在Windows 7 + IE9下正常运行。之前在利用漏洞的时候我的PoC都一直是在Windows XP + IE6下测试的,仅仅是为了确定它们确实可以正常工作,而不用担心在以后的版本中的问题。在这篇文章中我仅仅是分享一些基本信息,这对第一次编写/理解exploit的人来说应该非常有帮助,同时尽可能使得这些信息简单易懂并且不考虑性能和精确性。在之前的exploit中,当在IE6下测试的时候我使用了如下的Heap Spray(堆喷射)代[......]

继续阅读

[译]追踪PlugX Rat作者

2012年9月21日 9 条评论

若干天前,趋势科技发布了一些关于PlugX的信息(RAT的一种新版本)。最近几个月以来我们一直在追踪一群人,他们使用PlugX RAT来攻击不同的目标,尤其是日本、台湾、韩国以及西藏的组织和个人。

本文将着重讲解我们从攻击样本中提取出来的情报信息以及我们如何利用这些信息来追踪RAT的作者,该作者很有可能也参与了这些攻击事件。

在过去的几个月中我们看到了一些使用微软Office溢出攻击(CVE-2012-0158)针对西藏目标发起的钓鱼活动,其中用到的Office恶意文档使用了这样的技巧:恶意样本下载下来的是一个NVIDIA正常文件(NvSmart.exe)、一个DLL(NvSmartMax.dll)以及一个二进制文件(boot.ldr),赛门铁克公司有解释过这种技术。[......]

Conficker/Kido ShellCode

2012年9月14日 8 条评论

考虑到这个学期有门课有个缓冲区溢出的大实验,所以还是决定认认真真的翻一翻《0Day安全 软件漏洞分析技术》上面的相关章节,快速阅读前三章,基本是讲解基本栈溢出的利用以及ShellCode的编写,因为以前也简单的玩过,所以也没什么问题。结合前段时间从Conficker.B中提取出来的ShellCode,简单做点笔记。
Conficker.B内的ShellCode的基本特点是:
1. 代码混淆:开头的两条指令共用了一个字节,干扰反汇编指令
2. 代码重定位:call/pop获取当前某个字节的虚拟地址[......]

继续阅读

[译]我们能相信自己的眼睛吗?

2012年9月11日 8 条评论

几天前一个客户向我们提交了一个样本(SHA1值为fbe71968d4c5399c2906b56d9feadf19a35beb97,检测结果为TrojanDropper:Win32/Vundo.L)。这个木马使用了一种特殊的方式劫持了vk.com以及vkontakte.ru这两个域名(都是俄罗斯的社交网站),并将他们重定向到92.38.209.252的IP地址。

通常劫持一个网站并将其重定向到攻击者的IP地址的方法是修改位于%SystemRoot%\system32\drivers\etc目录下的hosts文件,然而,当我们在被感染的机器上打开hosts文件的时候,里面并没有发现与vk.com和vkontakte.ru相关的重定向规则。

但是当设置显示隐藏文件的时候,我们发现了另一个hosts文件,该文件是隐藏的。
竟然在etc目录下存在两个名字同为hosts的文件,这到底是怎么回事呢?[......]

傀儡进程内存Dump

2012年8月11日 1 条评论

傀儡进程(参见《动态加载并执行Win32可执行程序》),简单的说是指通过给CreateProcess传递一个CREATE_SUSPENDED参数可以使得被创建的子进程处于挂起状态,此时EXE的映像会被加载到进程空间中,但是并不会立即被执行,除非调用ResumeThread。在ResumeThread之前,通过GetThreadContext获取主线程的上下文以取得PEB等,调用ZwUnmapViewOfSection/NtUnmapViewOfSection卸载子进程原有区块,通过VirtualAllocEx在子进程指定的基址分配空间,调用ReadProcessMemory和WriteProcessMemory这样的API来读写子进程空间的内容,调用 VirtualProtectEx修改内存的属性为可读可写可执行,最后调用SetThreadContext/ResumeThread即可让子进程执行恶意代码。

《动态加载并执行Win32可执行程序》提到的是把已知的EXE注入到其他正常的EXE之中,要获取到恶意代码直接拿到恶意的EXE就行了。而如果恶意代码是加密了的呢?[......]

[转]虚拟机检测技术剖析

2012年7月21日 没有评论

前言

在当今信息安全领域,特别是恶意软件分析中,经常需要利用到虚拟机技术,以提高病毒分析过程的安全性以及硬件资源的节约性,因此它在恶意软件领域中是应用越来越来广泛。这里我们所谓的虚拟机(Virtual Machine)是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。通过虚拟机软件(比如VMware,Virtual PC ,VirtualBox),你可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机那样进行工作,例如你可以安装操作系统、安装应用程序、访问网络资源等等。攻击者为了提高恶意程序的隐蔽性以及破坏真实主机的成功率,他们都在恶意程序中加入检测虚拟机的代码,以判断程序所处的运行环境。当发现程序处于虚拟机(特别是蜜罐系统)中时,它就会改变操作行为或者中断执行,以此提高反病毒人员分析恶意软件行为的难度。本文主要针对基于Intel CPU的虚拟环境VMware中的Windows XP SP3系统进行检测分析,并列举出当前常见的几种虚拟机检测方法。
[......]