Šiuo straipsniu pradedame publikacijų apie sunkiai suvokiamą kenkėjišką programą seriją. Be failų įsilaužimo programos, taip pat žinomos kaip įsilaužimo be failų programos, paprastai naudoja PowerShell Windows sistemose, kad tyliai paleistų komandas, skirtas ieškoti ir išgauti vertingą turinį. Aptikti įsilaužėlių veiklą be kenkėjiškų failų yra sudėtinga užduotis, nes... antivirusinės ir daugelis kitų aptikimo sistemų veikia remiantis parašo analize. Tačiau gera žinia ta, kad tokia programinė įranga egzistuoja. Pavyzdžiui,
Kai pirmą kartą pradėjau tyrinėti blogų įsilaužėlių temą,
Puikus ir galingas PowerShell
Apie kai kurias iš šių idėjų jau rašiau anksčiau
Be pačių pavyzdžių, svetainėje galite pamatyti, ką daro šios programos. Hibridinė analizė paleidžia kenkėjiškas programas savo smėlio dėžėje ir stebi sistemos skambučius, vykdomus procesus ir tinklo veiklą bei ištraukia įtartinas teksto eilutes. Dvejetainiams ir kitiems vykdomiesiems failams, t.y. Jei net negalite pažvelgti į tikro aukšto lygio kodą, hibridinė analizė nustato, ar programinė įranga yra kenkėjiška, ar tiesiog įtartina, atsižvelgiant į jos vykdymo laiką. O po to imtis jau vertinama.
„PowerShell“ ir kitų pavyzdinių scenarijų („Visual Basic“, „JavaScript“ ir kt.) atveju galėjau pamatyti patį kodą. Pavyzdžiui, aš susidūriau su šiuo „PowerShell“ pavyzdžiu:
Taip pat galite paleisti „PowerShell“ „base64“ koduotę, kad išvengtumėte aptikimo. Atkreipkite dėmesį į neinteraktyvių ir paslėptų parametrų naudojimą.
Jei skaitėte mano pranešimus apie užmaskavimą, žinote, kad parinktis -e nurodo, kad turinys yra užkoduotas base64. Beje, tam padeda ir hibridinė analizė, viską dekoduojanti atgal. Jei norite patys pabandyti dekoduoti base64 PowerShell (toliau – PS), turite paleisti šią komandą:
[System.Text.Encoding]::Unicode.GetString([System.Convert]::FromBase64String($EncodedText))
Eik gilyn
Šiuo metodu iššifravau mūsų PS scenarijų, žemiau yra programos tekstas, nors ir šiek tiek pakeistas:
Atminkite, kad scenarijus buvo susietas su 4 m. rugsėjo 2017 d. data ir perdavė seanso slapukus.
Apie tokį puolimo stilių rašiau
Ką jis daro?
Saugos programinei įrangai, kuri nuskaito „Windows“ įvykių žurnalus arba ugniasienes, „base64“ kodavimas neleidžia aptikti eilutės „WebClient“ pagal paprasto teksto šabloną, kad būtų apsaugota nuo tokios žiniatinklio užklausos. Kadangi visas kenkėjiškos programos „blogis“ atsisiunčiamas ir perduodamas į mūsų „PowerShell“, šis metodas leidžia visiškai išvengti aptikimo. Tiksliau, iš pradžių taip ir maniau.
Pasirodo, įjungę Windows PowerShell Advanced Logging (žr. mano straipsnį), įvykių žurnale galėsite matyti įkeltą eilutę. Aš esu kaip
Pridėkime papildomų scenarijų
Piratai sumaniai slepia PowerShell atakas Microsoft Office makrokomandose, parašytose Visual Basic ir kitomis scenarijų kalbomis. Idėja tokia, kad auka gauna pranešimą, pavyzdžiui, iš siuntų tarnybos, su pridedama ataskaita .doc formatu. Atidarote šį dokumentą, kuriame yra makrokomandos, ir jis paleidžia pačią kenkėjišką „PowerShell“.
Dažnai pats Visual Basic scenarijus yra užtemdytas, kad jis laisvai išvengtų antivirusinių ir kitų kenkėjiškų programų skaitytuvų. Atsižvelgdamas į tai, kas išdėstyta pirmiau, nusprendžiau užkoduoti aukščiau pateiktą PowerShell JavaScript kaip pratimą. Žemiau pateikiami mano darbo rezultatai:
Užtemdytas „JavaScript“, slepiantis mūsų „PowerShell“. Tikri įsilaužėliai tai daro vieną ar du kartus.
Tai dar viena technika, kurią mačiau internete: Wscript.Shell naudojimas užkoduotai PowerShell paleisti. Beje, pats JavaScript yra
Mūsų atveju kenkėjiškas JS scenarijus yra įdėtas kaip failas su plėtiniu .doc.js. „Windows“ paprastai rodys tik pirmąją priesagą, todėl aukai ji pasirodys kaip „Word“ dokumentas.
JS piktograma rodoma tik slinkimo piktogramoje. Nenuostabu, kad daugelis žmonių atidarys šį priedą manydami, kad tai Word dokumentas.
Savo pavyzdyje pakeičiau aukščiau esantį „PowerShell“, kad atsisiųsčiau scenarijų iš savo svetainės. Nuotolinis PS scenarijus tiesiog išspausdina „Evil Malware“. Kaip matote, jis visai neblogas. Žinoma, tikri įsilaužėliai yra suinteresuoti gauti prieigą prie nešiojamojo kompiuterio ar serverio, tarkime, per komandų apvalkalą. Kitame straipsnyje parodysiu, kaip tai padaryti naudojant „PowerShell Empire“.
Tikiuosi, kad pirmajame įžanginiame straipsnyje mes per daug nesigilinome į temą. Dabar leisiu jums atsikvėpti, o kitą kartą pradėsime žiūrėti į tikrus atakų, naudojant kenkėjiškas programas be failų, pavyzdžius be jokių nereikalingų įžanginių žodžių ar pasiruošimo.
Šaltinis: www.habr.com