Draudu datu bāze Sakņu komplekti LinkPro Linux sakņu komplekts

LinkPro Linux sakņu komplekts

Nesenā Amazon Web Services (AWS) vides kompromitācijā tika atklāts iepriekš nedokumentēts GNU/Linux sakņu komplekts, kas izsekots kā LinkPro. Šīs aizmugurējās durvis ir ievērojamas ar eBPF moduļu divējādu izmantošanu: viens komplekts artefaktu slēpšanai un otrs, kas darbojas kā slepens aktivizētājs — “klauvējums”, kas aktivizē attālo komandu funkcionalitāti tikai pēc tam, kad tiek pamanīts speciāli izveidots TCP pakete. Uzbrukuma ķēde un sakņu komplekta mehānismi ilustrē izsmalcinātu operatoru, kurš apvieno konteineru ļaunprātīgu izmantošanu, kodola līmeņa slēpšanu un elastīgu tīkla aktivizēšanu, lai kavētu atklāšanu un forensisko korelāciju.

Infekcijas vektors un sākotnējā izvietošana

Ielaušanās sākās, izmantojot atklātu Jenkins instanci, kas bija ievainojama pret CVE‑2024‑23897 (CVSS 9.8). No šīs pozīcijas uzbrucēji ievietoja ļaunprātīgu Docker attēlu (kvlnt/vv, kas kopš tā laika ir noņemts no Docker Hub) vairākos Kubernetes klasteros. Attēlā tika izmantota Kali Linux bāze, un tajā bija neliela lietojumprogrammu mape, kas paredzēta, lai nodrošinātu pastāvīgu piekļuvi, attālinātu piekļuvi un pakāpenisku lejupielādi aizmugurējās durvis veidā.

Ļaunprātīgā Docker attēla iekšpusē

Attēla lietotnes mapē bija trīs galvenie faili ar atšķirīgām lomām:

start.sh — čaulas skripts, kas palaiž SSH pakalpojumu un izpilda pārējos divus komponentus.

saite — atvērtā pirmkoda programma (vnt), kas kompilēta/iesaiņota, lai darbotos kā VPN/starpniekservera klients, izveidojot izejošo savienojumu ar vnt.wherewego[.]top:29872. Tas ļauj uzbrucējam sasniegt apdraudēto resursdatoru no jebkuras vietas un caur to pārslēgties uz citiem mērķiem.

lietotne — uz Rust balstīts lejupielādētājs (saukts par vGet), kas no S3 konteinera ielādē šifrētu vShell vērtumu un pēc tam izveido WebSocket saiti ar savu komandu un vadības (C2) serveri vietnē 56.155.98[.]37.

Papildu lietderīgās slodzes, kas piegādātas Kubernetes mezgliem

Līdztekus ļaunprātīgajam attēlam operatori mezglos ievietoja arī divus citus komponentus: droperi, kas instalē vēl vienu vShell aizmugurējo durvju sistēmu, un LinkPro — Golang rakstītu sakņu komplektu. LinkPro ir paredzēts darboties vienā no diviem režīmiem — pasīvā (apgrieztā) vai aktīvā (uz priekšu) — atkarībā no tā konfigurācijas. Pasīvajā režīmā tas gaida, kad to aktivizē īpaša tīkla pakete; aktīvajā režīmā tas iniciē saziņu ar pašu C2. Uz priekšu vērstais režīms atbalsta piecus transporta protokolus (HTTP, WebSocket, UDP, TCP, DNS), savukārt apgrieztais režīms ierobežo saziņu ar HTTP.

Kā LinkPro darbojas

Ļaunprogrammatūras kopējā izpilde un noturība notiek pēc skaidras secības:

  • Instalējiet moduli “Paslēpt eBPF”. Šajā modulī ir iekļautas Tracepoint un Kretprobe eBPF programmas, ko izmanto, lai slēptu LinkPro procesus un tīkla aktivitātes.
  • Ja moduļa “Hide eBPF” instalēšana neizdodas vai ja tas ir atspējots, instalējiet koplietojamu bibliotēku vietnē /etc/libld.so un pievienojiet šo ceļu failam /etc/ld.so.preload kā rezerves slēpšanas mehānismu.
  • Reversai (pasīvai) darbībai instalējiet Knock eBPF moduli. Knock satur XDP programmu un TC programmu, tāpēc C2 kanāls kļūst aktīvs tikai pēc konkrētas "maģiskās paketes" saņemšanas.
  • Nodrošiniet noturību, izveidojot systemd pakalpojumu.
  • Izpildīt no C2 saņemtās komandas.
  • Izslēgšanas laikā vai signāla (SIGHUP, SIGINT, SIGTERM) gadījumā atinstalējiet eBPF moduļus un noņemiet/atjaunojiet /etc/libld.so iepriekš ielādēto modifikāciju, lai sistēma atgrieztos iepriekšējā stāvoklī.

Burvju pakete un klauvēšanas aktivizācijas mehānisms

LinkPro pasīvā aktivizācija ir atkarīga no precīzas TCP paketes: jebkura TCP pakete, kuras loga izmērs ir vienāds ar 54321, tiek uzskatīta par "maģisko paketi". Kad Knock atrod šo paketi, tā saglabā avota IP adresi un atzīmē to ar vienas stundas derīguma termiņu. Turpmākās TCP paketes no šī avota tiek uzraudzītas un, ja nepieciešams, Knock pārraksta galvenes, lai operatora datplūsma tiktu novirzīta uz LinkPro klausīšanās portu (2333). Izejošās paketes tiek pielāgotas, lai tīklam parādītu sākotnējo portu (avota ports tiek pārrakstīts uz 2233). Mērķis ir vienkāršs, bet efektīvs: ļaut uzbrucējam sasniegt LinkPro caur jebkuru portu, ko atļauj priekšējās malas ugunsmūris, vienlaikus apgrūtinot ārējo ugunsmūra žurnālu korelāciju ar resursdatora iekšējās tīkla aktivitātēm.

Kā LinkPro sevi slēpj

LinkPro izmanto divpakāpju slēpšanas stratēģiju:

Kodola/eBPF slēpšana : Modulis “Paslēpt eBPF” instalē Tracepoint un Kretprobe programmas, kas pārtver sistēmas izsaukumus, piemēram, getdents (lai paslēptu failus/direktorijus) un sys_bpf (lai paslēptu savas BPF programmas). Šai pieejai ir nepieciešams kodols, kas veidots ar iespējotu CONFIG_BPF_KPROBE_OVERRIDE.

Lietotāja telpas LD_PRELOAD rezerves variants : ja kodola iespējas nav, LinkPro ieraksta koplietojamu bibliotēku (libld.so) un ievieto tās ceļu failā /etc/ld.so.preload. Tā kā /etc/ld.so.preload izraisa norādītās bibliotēkas ielādi katrā dinamiski saistītajā procesā (tajos, kas izmanto /lib/ld-linux.so un glibc), implantētais libld.so pieslēdz libc funkcijas agri (pirms glibc paša uzvedības) un maina libc izsaukumu atgriešanas vērtības, lai paslēptu artefaktus, kas citādi atklātu tā klātbūtni.

Sakņkopu iespējas un komandu kopa

LinkPro atbalsta gan interaktīvas, gan automatizētas attālinātas darbības. Tā ieviestās funkcijas ietver:

  • /bin/bash pseidotermināļa palaišana un interaktīvu čaulas sesiju palaišana.
  • Patvaļīgu čaulas komandu izpilde.
  • Failu un direktoriju uzskaitīšana un failu operāciju veikšana.
  • Failu lejupielāde un ierakstīšana diskā.
  • SOCKS5 starpniekservera tuneļa izveide pagriešanās un dzīvošanas ārpus sauszemes starpniekservera vajadzībām.

Tīkla protokolu atbalsts un C2 darbība

Aktīvajā (uz priekšu) režīmā LinkPro ir elastīgs: tas var sazināties, izmantojot HTTP, WebSocket, UDP, TCP vai DNS transportu. Pasīvajā (apgrieztajā) režīmā tā saziņa ir ierobežota ar HTTP, bet tai ir priekšrocības no slepenības, jo tā klausās tikai pēc tam, kad Knock maģiskais pakete ir atvērusi pagaidu vienas stundas komandu logu.

Tīrīšanas un atinstalēšanas darbība

Ja process saņem pārtraukšanas signālus, LinkPro mērķis ir noņemt pēdas: tas atinstalē instalētos eBPF moduļus un izdzēš vai atjauno /etc/libld failu, grupējot to iepriekšējā stāvoklī, lai sistēma izskatītos nemainīga. Šī apzinātā tīrīšanas rutīna norāda uz operatoru, kas ir noraizējies par apiešanu un ilgtermiņa forenzikas pēdu samazināšanu.

Darbības konteksts un attiecinājums

Kampaņā tika izmantota ļoti bīstama Jenkins aizsardzība, ļaunprātīgi konteineru attēli, vairākas aizmugures durvju varianti un kodola līmeņa slepenība — kombinācija, kas norāda uz motivētu un spējīgu operatoru. Nav publiskota precīza saistība ar vainīgo; tomēr rīku komplekts un acīmredzamā kompromisa izmantošana starpniekservera izmantošanai un pastāvīgai attālinātai piekļuvei spēcīgi liecina par finansiāli motivētu darbību (pivoting, starpniekservera izmantošana papildu ielaušanās gadījumos vai piekļuves tālākpārdošana).

Kodola atkarība un rezerves uzvedība

Tā kā LinkPro slepenai kodola pārtveršanai izmanto BPF kprobe ignorēšanas funkcijas, tas kodola līmeņa slēpšanas tehniku piemēro tikai tad, kad resursdatora kodols atklāj CONFIG_BPF_KPROBE_OVERRIDE. Ja šīs kodola iespējas trūkst, LinkPro apzināti atgriežas pie LD_PRELOAD koplietojamās bibliotēkas metodes, lai paslēptu sevi lietotāja telpā, nodrošinot slēpšanu plašā vidē.

Noslēguma piezīme

LinkPro demonstrē, kā mūsdienu ielaušanās var apvienot konteineru kompromitēšanu, pakāpeniskus ielādētājus, kodola instrumentāciju (eBPF) un gudrus tīkla trikus (maģisko pakešu aktivizēšanu un portu pārrakstīšanu), lai saglabātu slepenību un elastību. Atklāšanai un novēršanai nepieciešama rūpīga pārbaude, lai atrastu neatļautas eBPF programmas, negaidītus ierakstus failā /etc/ld.so.preload, neparastus systemd pakalpojumus un tīkla savienojumus ar norādīto infrastruktūru (forenzikas indikatori ietver IP 56.155.98[.]37, portus 29872, 2333, 2233 un noņemto Docker attēla nosaukumu kvlnt/vv).

Tendences

Visvairāk skatīts

Notiek ielāde...