Contents

Пълен курс по етично хакерство от нула до експерт
Хаквайте като хакери от типа „черна шапка“. Тестване за пробив, Kali Linux, WiFi и уеб хакерство, както и хакерският начин на мислене зад тях.
Вашият Windows компютър добиваше Monero върху 40 процента от нишките ви. Сканирането на диска не откри нищо за изтриване. Кодът се намираше в системния регистър. Останалата част пристигна в DNS записи, PNG изображение и четири WAV файла.
Машината не спираше да се оплаква от PowerShell. Почистете го и на следващия ден предупрежденията се връщаха. Папката за автоматично стартиране беше празна. Нямаше файл за изтегляне, към който да се посочи, а вентилаторите продължаваха да работят въпреки това.
И ето защо почистването не помогна. Това, което създаваше шума, беше верига от пет етапа, като всеки етап предаваше кода си на следващия, без никога да го запазва като файл. K7 Security Labs я разглобиха и анализираха.
Започва с един команден ред:
PowerShell обикновено чете малък ваш стартов файл при отваряне, а -NoProfile го прескача, така че нищо от конфигурираното от вас не се изпълнява, включително и това, което сте го настроили да записва в логовете. Другият превключвател отменя правилото, което гласи, че скриптове отвън нямат право да се изпълняват.
След това редът изключва записването. Set-PSReadLineOption -HistorySaveStyle SaveNothing казва на PowerShell да не пази история на това, което се въвежда, и това се случва преди да бъде изтеглен дори един байт.
А последната част от реда върши същинската работа: тя прочита стойност от системния регистър и изпълнява каквото излезе от нея. K7 не описват какво се съдържа в този .ps1 файл, така че аз няма да го измислям вместо вас. Останалата част от реда е точно там, наяве.
Windows поддържа дълъг списък с настройки за себе си и за вашите програми. Къде е инсталирано нещо, коя програма кой файл отваря, лицензионни ключове, позиции на прозорци. Този списък е системният регистър (registry) и той е създаден за текст и числа.
Вторият етап беше паркиран там, в HKLM:\Software\uf42a9660377\vstdfehzr. Зареждащата програма (loader) прочете тази стойност, преобразува я обратно в код в паметта и го изпълни. Нищо не беше записано на диска.
Антивирусната програма, която сканира файлове, нямаше какво да отвори.
След това кодът поиска указания от DNS. Едно домейн име може да носи ред със свободен текст – каквото собственикът поиска да постави в него. Вашият имейл доставчик го използва, за да каже кои сървъри могат да изпращат поща от ваше име, а компания за сертификати ви моли да поставите такъв там, за да докажете, че домейнът е ваш. Нарича се TXT запись. Тези проверки се случват цял ден в една нормална мрежа.
Скриптът поиска от sslvalidcert[.]com неговия TXT запись, а по-късно и от txtcdn[.]net. Това, което се върна, беше ред от числа със запетаи между тях. Превърнете всяко число в байт, поставете байтовете един до друг и получавате уеб адрес.
Този адрес беше frames-1zm[.]pages.dev/frames.png. Файлът се изтегля и отваря като всяка друга снимка, защото е точно това.
Пикселът е три числа: колко червено, колко зелено, колко синьо. Променете леко червените числа и окото ви вижда същото изображение, докато тези числа вече изписват нещо друго. Скриптът прочете обратно стойностите на червеното и изгради следващия етап от тях.
След това пристигна ZIP файл в Public\Music, като скриптът първо изпразни тази папка, изтривайки каквото имахте там. Вътре в архива бяха Atsg.wav и Tmav.wav. Още два дойдоха отделно от publicwavlib[.]pages.dev: mav.wav и файл, наречен hdaudio.wav, който беше записан на диска под името Realtek HD Audio.wav, което е името на често срещан звуков драйвер за Windows. В музикална папка това изглежда нормално.
WAV файлът започва с 44 байта, които казват на вашия плеър каква е честотата на дискретизация и колко канала има. Зареждащата програма прескочи тези 44 байта и се зае с останалата част. Тя взе долната половина на всеки байт (полубайта / нибъла) и съедини обратно нибълите на съседните байтове.
Резултатът беше програма, заредена директно в паметта с [Reflection.Assembly]::Load(). Тя никога не стана файл, а за поставяне под карантина е необходим файл.
С нейното стартиране скриптът започна да разчиства пътя. Той добави широки изключения в Defender, което е начинът да кажете на скенера да прескача цели папки. Той зададе политиката за изпълнение на Bypass. Той изтри историята на PowerShell – файла, който пази това, което сте въвели, така че командите изчезнаха.
След това се увери, че ще се върне отново. Скритите планирани задачи (scheduled tasks) се задействат при влизане в системата и отново по таймер.
Вторият начин за връщане е по-дискретен. Windows има услуга, която следи сама себе си и съобщава какво се случва: стартиране на програма, промяна на ключ, запълване на диск. Нарича се WMI и можете да я помолите да следи нещо и да изпълни команда, когато това нещо се случи. Тази заявка живее в собствената база данни на WMI, а не в папка и не в ключ за автоматично стартиране, така че почистване, което гледа само файлове, я подминава директно. Тази конкретна услуга следеше условие в системния регистър.
Изтрийте стойността в системния регистър и WMI възстановява веригата.
За своите нареждания зловредният код (payload) използваше DNS over HTTPS през резорвъра на Google, искайки TXT записите на httptls[.]org. Обикновената DNS заявка пътува незащитена и всеки, който се намира в мрежата, може да прочете кое име сте поискали. DNS over HTTPS опакова тази заявка в обикновена уеб заявка, така че мониторингът показва връзка към Google и нищо друго.
След това той се докладва на адреса, който получи обратно. В заглавката (header) на тази заявка се намира X-HWID, а това, което влиза там, е 20-знаков идентификатор, който зловредният код е създал при първото си стартиране и е съхранил в системния регистър. Така операторите разграничават една инфектирана машина от друга. Съобщенията се наричат Info и pingo. Командите се връщат като ps1 и се изпълняват в PowerShell. Сървърът в доклада е 104[.]21[.]2[.]193 на порт 8443.
В края на веригата stoi XMRig, софтуерът с отворен код за добив на Monero:
rx/0 е RandomX. Monero го използва нарочно, защото работи добре на процесора, който вече имате, и зле на специализирания хардуер, който големите ферми за добив купуват. Флагът --tls криптира връзката към пула (pool), адрес на Nanopool на порт 10343, а останалите настройки идват от config-rg7[.]pages.dev/config.txt и softtestcopapool[.]pages.dev/rxconfig.txt.
Числото, на което трябва да обърнете внимание, е 40, и то е процент. Собственото ръководство на XMRig нарича --cpu-max-threads-hint максималния брой процесорни нишки в проценти. На машина със шестнадесет нишки това са около шест от тях, работещи денонощно. Останалите остават свободни, машината продължава да работи по очаквания начин, а вие търсите друга причина защо изглежда бавна.
Вътре във вашия процесор се намира набор от превключватели, които определят как той управлява паметта и кеширането. Windows не позволява на обикновена програма да се доближи до тях. Нуждаете се от код, работещ в ядрото (kernel) – най-вътрешната част на системата, а това означава драйвер. RandomX копае по-бързо, когато тези превключватели са настроени по определен начин, затова XMRig носи собствен: WinRing0.sys, подписан преди години и доставян с обичайните инструменти за мониторинг на хардуер като HWiNFO и MSI Afterburner.
Когато даден драйвер се зареди, той отваря врата, през която програмите могат да комуникират, а тази врата идва със списък с кой има право да я използва. Този драйвер има празен списък. Не само за администратори. Празен. Потребител без администраторски права може да премине и да използва драйвера за четене и писане в паметта навсякъде по машината, включително паметта на ядрото.
Това е CVE-2020-14979, публична от 2020 г. Defender я разпознава като VulnerableDriver:WinNT/Winring0 и тя се намира в списъка за блокиране на Microsoft за драйвери, които не трябва да се зареждат.
И точно за това служат тези изключения. През март 2025 г. Defender започна да маркира WinRing0 и блокира Fan Control, OpenRGB и Libre Hardware Monitor за хората, които ги използват за следене скоростта на вентилаторите си. Това е алармата, която тази верига изключва, преди да пусне същия драйвер на вашата машина.
Файловете в тази верига идват от Cloudflare Pages, общо пет .pages.dev поддомейна и шест URL адреса. Безплатни, с HTTPS по подразбиране, на хост имена, които се разрешават до същата edge мрежа като голяма част от мрежата.
И така прави и командният център (command and control). Този адрес в разбора, 104[.]21[.]2[.]193, попада в 104.16.0.0/13, един от техните собствени диапазони, а 8443 е един от шестте порта, на които те проксират HTTPS, наред с 443, 2053, 2083, 2087 и 2096.
Така че адресът, който бихте подали на защитна стена, се намира на ръба на тази мрежа. Къде точно се намира машината на атакуващия, не е посочено в разбора.
Код, който се крие в системния регистър без нищо на диска, е Poweliks, описан от G Data през юли 2014 г., и Kovter, който направи същото от май 2015 г.
XMRig вътре във WAV файлове е от октомври 2019 г., когато изследователи от Cylance откриха аудио файлове, съдържащи копачи (miners) и обратни обвивки (reverse shells) в същата мрежа. Някои от тези файлове възпроизвеждаха музика, други – статичен шум, а техните зареждащи модули (loaders) четяха скритите данни директно от самите аудио проби.
Тази верига не се занимава с това. Тя прескача хедъра и чете полубайтове (nibbles), което означава, че файлът никога не трябва да звучи като каквото и да било.
Два стари трика, един от 2014 г. и един от 2019 г., заварени заедно с DNS записи, изображение и подписан драйвер за ядрото.
Още едно нещо, и това е частта, която има значение, ако това някога се озове на вашата машина. C2 каналът от по-ранните етапи продължава да работи самостоятелно, отделно от копаенето. K7 го казва ясно: дори след като копачът бъде открит, хостът може да остане под контрола на киберпрестъпника чрез този канал. Намерете копача, прекратете процеса му, а пътят обратно вътре все още остава отворен.
Какво можете да проверите на собствената си Windows машина:
- → Ключа в регистъра:
reg query "HKLM\Software\uf42a9660377"(грешка, че не може да бъде намерен, е отговорът, който търсите) - → Изключенията във вашия антивирус:
Get-MpPreference | Select-Object -ExpandProperty ExclusionPath - → Планирани задачи, които не сте създавали:
Get-ScheduledTask | Where-Object {$_.State -ne "Disabled"} - → Перманентни WMI абонаменти:
Get-CimInstance -Namespace root\Subscription -ClassName __EventFilter - → Аудио файлове в папка, в която никога не сте слагали аудио:
Get-ChildItem C:\Users\Public\Music - → Включете списъка за блокиране на уязвими драйвери на Microsoft: Windows Security, Device security, Core isolation
Файловете в анализа, по MD5:
- →
Realtek HD Audio.wav|ED276B2312F641B00F87FA18E85C48EB - →
mav.wav|BE860A15B7E5D44B0B3D67F598238FAD - →
tmav.wav|C024189E1E7FA0AE6D24353367E8B98D - →
atsg.wav|94B50ACE73CC03790678C73B867BE129 - →
fp.dll|F94DE28BD66AFC4679F546500DB184D4 - →
upgrade.exe|F1D2FDB7F3B699DA69A050C5352A33C2
Домейните: sslvalidcert[.]com, txtcdn[.]net, httptls[.]org, frames-1zm[.]pages.dev, publicwavlib[.]pages.dev, wavmain[.]pages.dev, config-rg7[.]pages.dev, softtestcopapool[.]pages.dev
А ето какво изследването не казва, защото няма да попълвам това вместо вас.
Как машината се е заразила първоначално, липсва там. Анализът започва от система, която постоянно е генерирала предупреждения за PowerShell. Броят на заразените машини липсва, както и добитото количество, държавата и датата, на която това е видяно. Планираните задачи не са именувани и командите за изключения не са отпечатани, така че няма да измислям нито едно от двете. K7 публикува анализа на 18 септември 2026 г.
Едно нещо, за което трябва да се уточни точно, защото това е първият въпрос, който възниква при този тип зловреден софтуер: скриптът за зареждане в System32 и WAV файловете в Public\Music са файлове и се намират на вашия диск. Това, което никога не се озовава там като програма, е копачът. Тази част съществува единствено в паметта.
На собствената си машина можете да скриете файл в изображение, да го извлечете обратно и да видите как преминават DNS заявките.
Моят пълен курс по етично хакерство от нулата до експерт ви води там стъпка по стъпка: разузнаване, сканиране, експлоатация и анализ на трафика, практически, от първия ви ден без опит с Linux или хакване.
→ Присъединете се към моя пълен курс по етично хакерство
Хакването не е хоби, а начин на живот.
K7 Security Labs | XMRig | Microsoft