目录
步骤七:测试payload.exe、payload02.exe和payload03.exe能不能正常连接到主控端
步骤四:PowerSploit功能一:检测被控端的特征码(使用AntivirusBypass)
步骤五:PowerSploit功能二:实现将DLL注入进程(使用CodeExecution)
一、远程控制被控端与杀毒软件的博弈
1、杀毒软件主要使用以下3种技术:
1)基于文件扫描的反病毒技术
2)基本内存扫描的反病毒技术
3)基于行为监控的反病毒技术
2、黑客主要使用的免杀手段:
1)修改特征码
2)添加花指令
3)程序加密(加壳)
二、使用msfvenom提供的免杀方法
步骤一:生成一个普通的payload
步骤二 :到安装了火绒杀毒软件的虚拟机下载攻击载荷
步骤三:生成一个免杀的payload
1、查看msfvenom中可用的编码方式
2、使用评级为low的编码方式/x86/nonalpha生成一个免杀的payload
3、使用评级为excellent的编码方式生成一个免杀的payload
(1)执行第1次(采用默认的1次编码):
(2)执行第2次(采用默认的1次编码):
(3)执行第3次(使用多次编码、多重编码):
步骤四:到安装了火绒杀毒软件的虚拟机下载攻击载荷
1、下载攻击载荷
步骤五:对上述生成的免杀payload加壳
1、对payload02.exe加壳
2、将payload02.exe复制为payload03exe
步骤六:到安装了火绒杀毒软件的虚拟机下载攻击载荷
1、下载攻击负荷
步骤七:测试payload.exe、payload02.exe和payload03.exe能不能正常连接到主控端
1、启动metasploit,进入metasploit(msf)的控制台。
2、使用handler模块,然后配置参数,发起攻击。
(1)使用handler模块
(2)设置攻击载荷为windows/meterpreter/reverse_tcp
(3)设置lhost为kali的IP
(4)设置lpost为5000
(5)发起攻击
(6)目标靶机分别运行payload02.exe和payload03.exe后,kali是否建立会话?
三、使用PowerSploit提供的免杀方法
步骤一:在kali中启动PowerSploit
方法一:菜单
方法二:命令行
步骤二:将PowerSploit目录当作一个网站发布
步骤三:在靶机(或其它虚拟机)中访问PowerSploit
在地址栏输入kali的IP
是否能打开由python启动的http服务?
步骤四:PowerSploit功能一:检测被控端的特征码(使用AntivirusBypass)
方法:将程序拆分成n个部分,分别使用杀毒软件对这n个文件进行检查;找出报毒部分反复执行拆分操作,直到发现特征码所在位置。
1、启动PowerSploit的方法:开始/搜索程序和文件(输入:PowerShell,选择Windows PowerShell)
2、下载脚本文件Find-AVSignature.psl:
3、使用脚本文件Find-AVSignature.psl查找攻击载荷的特征码
(1)使用脚本文件Find-AVSignature.psl将测试文件(位于桌面的payload.exe)分解成多个小文件,保存到桌面的tmp文件夹中:
注:先退出火绒!
结果:生成几个小文件。
(2)选中所有文件,使用火绒进行杀毒,找到报毒的文件是哪些?
(3)对报毒的文件重复上述分解、查毒过程,直到找到特征码所在的位置。
注:每深入一次分解,分解小文件的大小要逐级降低,如改为:-interval 1000、-interval 100。
步骤五:PowerSploit功能二:实现将DLL注入进程(使用CodeExecution)
提供了4个脚本:
Invoke-DllInjection.psl:用于将DLL文件注入到一个进程。
Invoke-ReflectivePEInjection.psl
Invoke-Shellcode.psl
Invoke-WmiCommand.psl。
例:生成一个DLL类型的反向被控端,注入进程。
1、生成一个DLL类型的反向被控端
(1)查看可用于windows系统的dll类型的反向控制攻击载荷
由于目标靶机是64位系统,所以需要使用64位的攻击载荷来生成dll。
(2)生成dll文件payload01.dll
2、生成对应的主控端
(1)启动metasploit,进入metasploit(msf)的控制台。
(2)使用handler模块,然后配置参数。
I:使用handler模块
II:设置攻击载荷为windows/x64/meterpreter/reverse_tcp
III:设置lhost为kali的IP
IV:设置lpost为5000
V:发起攻击(等待目标靶机64位win7上线)
3、在64位win7系统中下载payload01.dll
(1)在64位win7中下载脚本Invoke-DllInjection.ps1
(2)下载payload01.dll到桌面。
注:先退出火绒,再下载。否则会被火绒清除。
下载是否成功?
4、将payload01.dll注入到进程中
(1)调出进程编号选项
(上述输入命令或操作过程、结果截图并进行必要说明)
(2)注入到“记事本”进程中
I:启动记事本,看到记事本进程及其PID是多少?
II:注入进程:
完成注入!
5、实现远程控制
(1)kali中是否建立会话?
(上述输入命令或操作过程、结果截图并进行必要说明)
(2)执行一些命令:查看当前进程号、用户id、当前目录、列现当前目录下所有文件等。
注意:程序被注入后,可能会出现工作异常的情况,所以不要注入到系统进程里,否则会引起程序崩溃。记事本是否已经崩溃?会话还在吗?
(3)靶机中查看到这个kali建立的会话进程
6、在靶机中结束kali建立的会话进程,kali打开的会话是否关闭?
(1)在靶机中结束kali建立的会话进程
(2)Kali中打开的会话是否关闭?
8、注入到资源管理器。
(1)查看资源管理器的进程PID号
(2)执行注入命令
查看到kali是否建立会话?
(3)查看到64位win7系统的资源管理器是否崩溃?
四、总结
破解靶机是一个复杂而有趣的过程,它不仅可以提供宝贵的实践经验,还可以帮助你了解安全漏洞和防御策略。然而,在进行此类活动时,必须遵守法律和道德准则,确保所有行为都是合法和授权的。通过实践和学习,你可以不断提升自己的网络安全技能,为网络安全事业做出贡献。