20155204 王昊《网络对抗技术》EXP3
一、基础问题回答
1.杀软是如何检测出恶意代码的?
答:
-
基于特征码:一段特征码就是一段或多段数据。(如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码)
杀毒软件有自己专门的特征码库,在检测一个程序是否是恶意代码时就看这个程序中的是否包含有特征码库中的特征码,如果有就进行查杀。但是特征码库并不是总是能第一时间更新,如果出现了特征码库中没有的新特征码,那么就无法通过这种比对的方法进行查杀。 -
启发式恶意软件检测
When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.
就是老师上课让我翻译的这段,意思就是这个程序在做跟恶意代码一样的事情,我们就认为他是恶意代码。 -
基于行为的恶意软件检测
2.免杀是做什么?
答:免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-AntiVirus(简写Virus AV),逐字翻译为“反-反病毒”,翻译为“反杀毒技术”。单从汉语“免杀”的字面意思来理解,可以将其看为一种能使病毒木马避免被杀毒软件查杀的技术。
3.免杀的基本方法有哪些?
答:(1)入口点加1免杀法。(2)变化入口地址免杀法(3)加花指令法免杀法(4)加壳或加伪装壳免杀法。(5)打乱壳的头文件免杀法。(6)修改文件特征码免杀法。
二、实践总结与体会
从网站上的扫描结果来看,很多杀毒软件还是存在问题的,我们的免杀概率虽然没有到百分之百但是也有九成。而从实际软件来看,我的电脑安装的是电脑管家,基本上我做好的程序从虚拟机拖出来就被处理掉了。。。所以我还是选择信任他吧。
三、离实战还缺些什么技术或步骤?
缺乏更加新的加壳或者伪装技术,自身上是缺乏编程能力以及对这些技术工具使用的熟练。
四、实践过程记录
1.使用msf生成的后门程序及其检测
(1)将上次实验生成的后门程序放在virscan.org
上扫描。结果如下。
(2)跟大家一样多编译几次也没有作用,不是重点,不再赘述。
2.使用veil-evasion生成后门程序及其检测
(1)参考了杜可欣同学的博客2017-2018-4 20155203《网络对抗技术》EXP3 免杀原理与实践安装了veil,这篇博客真的很良心,救了我以及我身边不少安装veil不成功的同学。
(2)用veil生成了后门程序,具体的veil操作杜可欣同学博客的末尾也有一篇博客讲到了具体操作(跟msf很像)。
(3)再放到网上扫描下
3.利用shellcode编写后门程序及其检测
(1)利用msf生成c的shellcode。
(2)在Windows下用visualstudio生成了c语言后门程序(这部分参考了老师的实验指导书),编译运行,成功回连。
(3)再去网上扫描。
- 特别说明一下这里,我在linux下交叉编译会后,放在Windows下运行,kali这边一直提示
died
,也没有找到好的解决办法,所以用了visualstudio。
4.通过组合应用各种技术实现恶意代码免杀
- 我采用了
c语言编译的shellcode + 加壳
由于我第三步中vs编译的那个程序报毒较少,所以选择了他,结果加壳后反而被暴露了,想想也是可以理解的,狼的羊皮旧了呗:D