一.基础问题回答
1.杀软是如何检测出恶意代码的?
(1)特征码:类似于人的生物特征,恶意代码可能会包含一段或多端数据能代表其特征。杀软一般会对文件内容进行静态扫描,将文件内容与特征库进行匹配,来检测已知的网络攻击。
优点:检测效率高、能精确检测恶意软件类型和具体名称、能在恶意软件首次写入计算机时检测而非运行后。
缺点:不能检测未知和变形的恶意软件、需频繁更新特征库、特征库会越来越臃肿。
(2)启发式:就是以特定方式实现的反编译器和动态高度器,通过对有关指令序列的反编译逐步理解和确定恶意软件的动机。比如一段程序突然要调用格式化盘操作的BIOS指令功能,这就很可疑,然后又发现它没有参数选项,没有让我交互式输入执行指令,启发我觉得它就是短恶意代码。
优点:可以检测0-day恶意软件、具有一定通用性。
缺点:实时监控系统行为,开销稍多、容易滥杀无辜。
(3)基于行为:基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。
优点:可发现未知病毒、可相当准确地预报未知的多数病毒。
缺点:可能误报、不能识别病毒名称、实现时有一定难度。
2.免杀是做什么?
您有没有过心爱的盗版被杀毒软件斩首的经历?您有没有过辛辛苦苦整理出来的工具包被杀毒软件团灭而“义愤填膺”的时候;您有没有过好不容易拿到权限,上传的后门还没来得及落地就被搞死的痛心时刻?免杀,它能做的就是避免这些事情的发生!使杀毒软件成为摆设!当然,除此之外免杀技术带给我们更多的,将是思想的飞跃与技术的成长。
3.免杀的基本方法有哪些?
(1)改变特征码:
想要空手套白狼:加壳
shellcode在手:encode编码、payload重新编译
有源代码:翻译成其他语言
(2)改变行为:
就是收敛一下,不要那么明目张胆,反弹连接、使用隧道、加密通讯数据、在内存偷鸡摸狗、不对系统动手、混入忠良的代码混乱视听。
二.实验总结与体会
告别了手动信任,veil-evarion和msf结合很好用,再加壳的话报毒率会大幅下降;单独给裸奔后门加壳的话,我用hyperion会报毒,但是upx反而没事;shellcode很强大,经处理的shellcode更强大,而且shellcode操作性很好,可以随意定制,c语言调用shellcode方式更多.我觉得混合使用这些方法可以搞出一个套娃后门,绝对可以隐藏的很深。
杀毒软件并不万能,特征码隐藏会让其杀毒准确大幅下降,正如我前面黄色阴影部分写到的一样,特征码杀软的一大缺点:不能检测未知和变形的恶意软件是个很好地切入点,隐藏行为很难,但是变形相对容易。
侵入一台自以为防护到位的电脑真的很容易,怪不得机要领域设备都要严加看守,光杀软真的不够,安全防护要多方面配合,调用防火墙、ids的力量,或者配备专门的维护员。诡异的现象大概都是切入点吧。
visual studio 安装速度慢死了......
三.离实战还缺些什么技术或步骤?
胆子和脑子
怎么自己生成定制的shellcode,可以进行各种变形加密,c调用方式也很多样,难的是根据什么样的漏洞写什么样的后门。
当你有了一个精彩的后门要怎么神不知鬼不觉送给对方?
怎么让这个后门真正变透明,藏在什么位置?(和正常软件捆绑?)怎么隐藏后门和母星之间的通信?(隧道技术?)对方不会某天找文件突然撞见.....
隐藏痕迹?就算对方撞见了也不知道是谁干的[smile]
四.实践过程记录
1.如何评价免杀效果?
其实很客观的就是能躲过多少杀软的追踪,使用集成杀软网站:http://www.virscan.org/
最差标准:上周msf做的那个后门,什么都不做上传看看结果。
刚从虚拟机放出来就死了,手动信任后上传:
结果感人,39款中21款杀软都报毒了,那就看看接下来的操作能不能减少报毒率。
2.Msfvenom使用编码器
先编码个10遍:
再试一下:
没有变化[微笑],而且依旧被360弄死,这个方法早已被各类AV厂商识破。
3.使用Veil-Evasion
Veil-Evasion是一个与Metasploit有点类似的免杀平台,用其他语言如c,c#,phython,ruby,go,powershell等重写了meterperter,然后再通过不同方式编译成exe。
用python重写一个:
测试一下v1版的后门的伪装性:
拖拽到虚拟机外Desktop,360杀毒软件不报毒了,再专门扫描一下桌面文件夹。
没报毒~~~扫描也只剩下了9个
回连测试一下:
新生成的rc文件被保存在了veil-output下的handlers目录下!既然有了rc文件,那么我们就可以方便的使用MSF进行调用了。
msfconsole -r 20144306_v1_python1.exe
在另一台windows主机上运行新生成的免杀后门软件:
在kali上选择sessions -i -1:
获取shell
成功~嚯嚯嚯
4.C语言调用Shellcode
使用msf来生成一个c语言格式的Shellcode数组:
vs安装速度感人.....
去洗个头.......
在vs中用c语言调用shellcode生成新后门20144306.exe,杀软来问候一下:
报毒了......
再来,对shellcode进行异或及末端加1加密,重新生成20144306_encode.exe:
专门扫描一下:
只有一款报毒!!!!!
回连没问题:
4306_v4这个版本我很满意~~
5.加壳
(1)压缩壳UPX
我把自己之前用veil-evasion生成的20144306_v1_python1.exe加了个壳生成了v1++版本:
杀软杀不出来:
扫描也成功下降到5个,欣慰:
回连没毛病:
(2)加密壳Hyperion
把我的v1版本升级成v2试试:
查杀一下:
word妈,反而报毒了,v2炮灰......说好的加密加壳呢?桑心,不回连了。
又试了一个不编码的后门基本版软件,还是报毒,我严重怀疑这是个脱壳软件.......
最后总结下:
一共6个版本的伪装后门:
v0版本:编码器版本----炮灰
v1版本:python重写(http协议)------360杀不出来,报毒率9/39
v1++版本:python重写(http协议)+upx加壳--------360杀不出来,报毒率5/39
v2版本:python重写(http协议)+hyperion加壳--------炮灰,360直接弄死
v3版本:c调用shellcode-------360能杀出来,报毒率12/39
v4版本:c调用shellocode异或末端加1加密-------godlike,360杀不出来,报毒率1/39
为了增加隐蔽性,我又给报毒率最低的v4版本换了个图标改了名字~~
点它吧。