Post

ვლუთავ რუსულ APT-ებს

ვლუთავ რუსულ APT-ებს

რა არის APT??

ზოგადად, როდესაც APT-ზე ვსაუბრობ ყოველთვის ფიქრობენ, რომ Debian-ის Package Management სისტემას განვიხილავ, მაგრამ არა. ამ შემთხვევაში საქმე Advanced Persistent Threat-ებს ეხება. ეს არის დაჯგუფება ან ადამიანი, რომელიც ონლაინ სივრცეში განსაკუთრებულ საფრთხეს წარმოადგენს. მაგალითად, არსებობს რუსული ჰაკერული დაჯგუფებები, რომლებიც გარკვეული C2 სერვერების გამოყენებით აკონტროლებენ ბოტნეტებს და ამ ბოტებით სხვა მოწყობილობების ინფიცირებასაც ცდილობენ.

უნივერსიტეტი

ხო, უნივერსიტეტში მიწევს სწავლა, რადგან საქართველოში დიპლომის გარეშე არაფერს წარმოადგენ. სამწუხარო რეალობაა, მაგრამ რას ვიზამთ. იმას ვამბობ, რომ სულ რომ ილია ჭავჭავაძე ააყენო და დიპლომი დაუხიო ხალხი პატივს აღარ სცემს, რადგან მას ტექნიკურად დიპლომი აღარ აქვს. ასე, რომ მთელი ქვეყანა ამ ერთი უაზრო ქაღალდის გარშემო ტრიალებს და მეც იძულებული ვარ ეს ქაღალდი ავიღო. პრობლემა აქ ისაა, რომ ფულს ვიხდი(50% გრანტით BTU-ში რომ ვარ მაგის ბრალია) და თან მთელი შაბათი დღე დაკავებული მაქვს. დილის 9-დან საღამოს 9-მდე BTU-ში ვარ და ეს ძალიან მიჭირს. ასე, რომ დროის მოსაკლავად ჩემი ძმის ლეპტოპის ტარება დავიწყე უნივერსიტეტში, რომელზეც Arch Linux ჩავწერე, რადგან სკოლაში მისცეს და დიდად არ ვარგა. საქმე ისაა, რომ არ მინდა ვინმემ ამ ლეპტოპებს ხაზი გადაუსვას, რადგან მე სწორედ ასეთი კომპიუტერით მივაღწიე წარმატებას. არ მქონია ნორმალური ინფრასტრუქტურა და ჩემი RTX 3060-იც, წლების შემდეგ, მეორე ხელფასით ვიყიდე.

კარგი, თემას ვუხვევ ძალიან. ახლა საინტერესო რა არის. უნივერსიტეტში ყოფნისას მომინდა პატარა Threat hunting-ის წამოწყება ჩემს სერვერზე, ხოდა დავესესეიჩდი შიგნით. როდესაც სისტემაში შევედი გადავედი /var/log/nginx/ დირექტორიაში, რათა .gz ფორმატში შენახული ლოგ ჩანაწერების ანალიზი დამეწყო zcat ბრძანების გამოყენებით. ასე გამოიყურება კონტენტი:

1.png

დრო მოვიდა ეს ფაილები გავხსნა. Virtual Console მქონდა გახსნილი(ანუ გრაფიკული ინტერფეისის გარეშე ვმუშაობდი), ასე, რომ სქროლვის შესაძლებლობა არ გამაჩნდა. ამის გამო მომიწია | less-ის დამატება ბრძანების ბოლოში, რათა ყველაფერი დამენახა. გავხსენი და აღმოვაჩინე, რომ ლოგ ჩანაწერებში დაფიქსირებული იყო საკმაოდ უცნაური ე.წ. მოთხოვნები.

📰 საინტერესო ფაქტი:

log ჩანაწერებს ყველა აპლიკაცია აკეთებს. სულ, რომ Hello, World! აპლიკაცია იყოს, ოპერაციული სისტემა მის შესახებ ლოგებს მაინც აკეთებს. რა თქმა უნდა, Nginx ვებ-სერვერს საკუთარი ლოგირების სისტემა აქვს ჩაშენებული და ის ინახავს ამ ფაილებში ყველაფერს. ზოგადად, ლოგირება მოისაზრებს მოქმედებების აღრიცხვას, ვებ-სერვერის შემთხვევაში კი იმას თუ საიდან და როდის შემოვიდა მოთხოვნა, რამხელა იყო პასუხი ბაიტებში(ზომაში) და რა ე.წ. პასუხის კოდი დაბრუნდა კლიენტთან. გასათვალისწინებელია ის ფაქტიც, რომ ლოგებში(ანუ, ლოგ ჩანაწერებში) მხოლოდ ე.წ. ჰედერების ნაწილი ჩანს და არა Body.

მოკლედ, საკმაოდ უცნაური მოთხოვნები დაფიქსირდა ერთ-ერთი IP მისამართიდან. მეც ავდექი და დავასკანირე ეს IP მისამართი Nmap-ის საშუალებით. აღმოჩნდა, რომ სერვისზე იყო FTP, SSH, HTTP, HTTP-Proxy სერვისები გაშვებული. პრობლემა კი იმაში იყო, რომ როდესაც სკანირება მორჩა, FTP პორტიდან საკმაოდ საინტერესო ინფორმაცია ამოვიღე. მიღებული ინფორმაციით, ეს სერვისი ჩემს სერვერთან იყო დაკავშირებული და აქტიურად ხდებოდა მათ შორის ინფორმაციის მიმოცვლა. მიგდებული მქონდა ეს სერვერი და ალბათ დაიჰაკა. იანვრის ბოლოს მაინც გასდის სერვერს ვადა და არ ვაქცევდი ყურადღებას. მაგრამ მომინდა შური მეძია.

ოპერაციის დასაწყისი

სანამ მოქმედებას დავიწყებდი, მინდოდა გამეგო ზუსტად რა ხდებოდა და ჩემს მეგობრებს დავურეკე, რომლებსაც ასევე აქვთ წვდომა ჩემს სერვერზე. ვიფიქრე, შესაძლოა სწორედ ისინი იყვნენ, მაგრამ შევცდი. არც ერთმა იცოდა რა ხდებოდა. ამის გამო, მომიწია VirusTotal-ზე მენახა ეს აიპი და აღმოჩნდა, რომ საქმე გაცილებით ცუდად იყო:

2.png

დრო იყო მოქმედებაზე გადასასვლელად. პირველად რაც შევამჩნიე სერვერზე უცნაური, ეს იყო ახალი მომხმარებელი, clp, რომელიც რამდენიმე პროცესს აჯდა და მისი წაშლა არ შემეძლო. ამის გამო root მომხმარებელზე მომიწია გადასვლა და საბედნიეროდ გამოვიდა(პრივილეგიის ესკალაცია არც კი უცდია). მის FTP სერვერზე Anonymous login ჩართული იყო, მაგრამ არაფრის უფლება მქონდა, ფაილებსაც კი ვერ ვხედავდი(იმიტომ, რომ პრივილეგიის ესკალაცია მეც დამეზარა). ამის გამო, გადავწყვიტე ჩემს სერვერზე მენახა სიტუაცია. აღმოჩნდა, რომ /home/clp/ დირექტორიაში საკმაოდ საინტერესო კონტენტი იყო და .sq3 ტიპის მონაცემთა ბაზაც კი ჩამივარდა ხელში(Sqlite3 მონაცემთა ბაზა). კარგია ეს, რადგან შესაძლოა საკმაოდ საინტერესო ინფორმაციას წავაწყდე(ჰეშირებული პაროლი უკვე ვიპოვე და შესაძლოა ჩემი RTX 3060 12 GB ავამუშავო მის წინააღმდეგ…თუმცა არ ვიცი რა დროს წაიღებს…).

აქ აღმოჩენილი ფაილები სასწრაფოდ გადმოვწერე SSH-ის გამოყენებით და ლეპტოპში შევინახე. უნივერსიტეტის ჯართი ინტერნეტის გამო ამ ყველაფერმა 20 წუთი წაიღო. მაგრამ, საბოლოო ჯამში, შედეგი დაიდო. ჰაკერის მიერ ატვირთული ფაილები ხელში ჩამივარდა.

როდესაც ფაილების მოპარვა დავასრულე, გადავწყვიტე ყველა პროცესი მომეკლა, რომელიც ჰაკერს ჰქონდა გაშვებული. ცოტაოდენი ბრძოლის შედეგად ეს ყველაფერი შევძელი, მაგრამ ის პროცესები მაინც ცოცხალი დარჩა, რომლებიც clp მომხმარებლის ქვეშ იყვნენ გაშვებულნი. შესაძლოა User Space პროცესებია, მაგრამ ნამდვილად არ მსურს ჩემს სერვერზე ასეთმა პროცესებმა ითარეშონ. ამის გამო, ყველაფერი წავშალე clp მომხმარებლის მთავარი დირექტორიიდან(/home/clp) და გამოვიყენე ბრძანება, რომელიც ჰაკერს ყველანაირ უფლებას წაართმევს ფაილებთან მუშაობისას: chmod 000 /home/clp.

ეს ბრძანება ჰაკერს ყველაფრის უფლებას ართმევს(ფაილების შექმნის, წაკითხვის და მათი გაშვების).

კიდევ ერთი IP

რა თქმა უნდა, კიდევ ერთ პრობლემას წავაწყდი. იყო კიდევ ერთი IP მისამართი, რომელიც თვალში ცუდად მომხმვდა. ეს IP მისამართიც ცდილობდა ბოტნეტის გაფართოებას. ავდექი და ვირუსტოტალზე ვნახე:

3.png

უცნაურია, არაფერი იციან. აქაც იყო გახსნილი HTTP და Proxy პორტები, ასე, რომ ვებ-სერვერს მივადექი. საკმაოდ უცნაური სახის კონტენტი იყო. დამხვდა ე.წ. CodeClan-ის ლოგო, რომელიც წესით დაჯგუფება უნდა იყოს. ასევე დამხვდა უცნაური .zip ფაილი, რომლის ანალიზიც ჯერ არ გამიკეთებია, მაგრამ ყველაზე უცნაური იყო ვიდეო, რომელიც საკმაოდ უხამსი ტიპის კონტენტს შეიცავდა. CodeClan-ზე დიდად ვერ მოვახერხე ინფორმაციის მოძიება, მაგრამ ვიცი, რომ ჰქონდათ ტელეგრამის არხი და ვებსაიტი(codeclan.cc). არცერთი მუშაობს ახლა.

ამჯერად რომ ვცდილობ 79.43.191.19 მისამართზე შესვლას, ბრაუზერი მეუბნება, რომ სერვისი ვერ იპოვა და შესაძლოა ჰაკერებმა ჩემი შეტევის კვალი იპოვეს და სერვისები დახურეს.

დასკვნა

ზოგადად ასეთი ხელჩართული ბრძოლები უფრო მიყვარს(აქტიური “ინციდენტ რესპონსი”), ვიდრე ორი კვირის შემდეგ მიღებული ლოგების ანალიზი და ქსელური ფორენსიკი. რა თქმა უნდა, ორივე კარგი პრაქტიკაა, მაგრამ ასეთ აქტიურ შეტაკებას არაფერი სჯობს.

საქმეც რაც შეეხება, ის ბევრად რთულადაა. ბოტნეტებს ძალიან მარტივად ზრდიან და სიმართლე რომ ვთქვა ვერ ვხედავ ისეთს ვერავის, ვისაც ეს ამბავი შეაწუხებდა. მგონი ამჟამად მხოლოდ მე ვდგავარ რუსული APT-ების წინააღმდეგ…

საერთო ჯამში, ასეთია ბრძოლის სტრუქტურა:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
                                                                         185.157.247.125
                                                                          ┌───────────┐ 
                                                                          │           │ 
                                                                          │ Enemy #01 │ 
                                               Unprotected Vsftpd Service │           │ 
                               ┌─────────────────────────────────────────►│           │ 
                         ┌─────┼──────────────────────────────────────────┤           │ 
Infected "/home/clp"     │     │                                          │           │ 
AND User-Space Processes │     │                                          │           │ 
                         │     │                                          │           │ 
                         │     │                                          │ ───────── │ 
                         │     │                                          │ ───────── │ 
                         │     │                                          │ ───────── │ 
                         │     │                                          └───────────┘ 
                         ▼     │                                                        
                         ┌─────┴─────┐                                                  
                         │           │                                                  
                         │ My Server │                                                  
                         │           │                                                  
        ┌──┐    SSH      │           │                                                  
        │Me├────────────►│           │                                                  
        └──┘             │           │                                                  
                         │           │                                                  
                         │           │                                                  
                         │ ───────── │                                                  
                         │ ───────── │                                                  
                         │ ───────── │                                                  
                         └─────┬─────┘                                                  
                         ▲     │                                                        
        Trying to upload │     │                                          79.43.191.19  
        infections       │     │                                          ┌───────────┐ 
                         │     │                                          │           │ 
                         │     │                                          │ Enemy #02 │ 
                         │     │                                          │           │ 
                         │     │                                          │           │ 
                         │     │                                          │           │ 
                         │     │                                          │           │ 
                         └─────┼──────────────────────────────────────────┤           │ 
                               └─────────────────────────────────────────►│           │ 
                      Unprotected HTTP directories AND critical info leak │ ───────── │ 
                                                                          │ ───────── │ 
                                                                          │ ───────── │ 
                                                                          └───────────┘ 
                                                                                        
This post is licensed under CC BY 4.0 by the author.