af Bhabesh Raj Rai, Security Research Department

Den 25. januar 2022 afslørede Qualys  detaljerne om en hukommelsessårbarhed mod korruption (CVE-2021-4034), med titlen PwnKit, i polkits pkexec-funktion, der som standard er installeret på alle større Linux-distributioner. PwnKit er en sårbarhed i forbindelse med lokalt rettighedseskalering (LPE), der gør det muligt for ikke-privilegerede brugere at få rodrettigheder på et berørt system, selv i dets standardkonfiguration.

pkexec er en SUID binær, der giver brugeren mulighed for at udføre kommandoer som en anden bruger. Når et brugernavn ikke er angivet, udføres programmet som rodbruger i et lille og sikkert miljø. Herved undgås at injicere koden gennem LD_LIBRARY_PATH eller lignende mekanismer.

Administratorer kan bruge pkexec som et alternativ til sudo, men med mere finkornede kontroller ved at definere en politik for hvert program. Du kan bemærke ligheder i et tilfælde, der påvirkede sudoen. Tilbage i begyndelsen af 2021 blev det konstateret, at en LPE-sårbarhed (CVE-2021-3156) med hukommelseskorruption havde plaget sudo i næsten et årti.

Selvom Qualys ikke offentliggjorde udnyttelsen, gav de nok tekniske detaljer i deres offentliggørelse til hurtigt at skabe udnyttelse. Flere PoC’er som [1] og [2] flyder allerede på internettet, så alle kan bruge dem.

Krav til logkilde

  • Linux
  • Revideret
  • Sysmon til Linux

Registrering af udnyttelsen ved hjælp af LogPoint

Hvis du ikke har auditeret konfigureret til at videresende Linux-logfiler til LogPoint, kan du registrere udnyttelse ved at søge efter PwnKit-artefakter i /var/log/auth.log. Listen LINUX_SERVERS indeholder IP-adresserne på alle Linux-systemer, der videresender logs til LogPoint.

device_ip IN LINUX_SERVERS
| search ("The value for the SHELL variable was not found the /etc/shells file" OR "contains suspicious content")

Administratorer skal dog huske, at PwnKit kan udnyttes uden at efterlade spor i /var/log/auth.log.

For at rydde den blinde vinkel kan administratorer bruge auditeret, forudsat at den er konfigureret til at auditere pkexec-kald. Først skal du søge efter reviderede hændelser, der har værdien “(null)” angivet som deres proctitle.

device_ip IN LINUX_SERVERS | search 'proctitle="(null)"'

Dernæst skal du tjekke for aktivering af pkexec. Defenders kræver disse indikatorer for yderligere at inspicere systemet og afgøre, om det blev kompromitteret ved hjælp af PwnKit.

norm_id=Unix "process"=audit command="pkexec"
| chart count() by log_ts, host, key, path, command

Tilbage i oktober 2021 annoncerede Azure CTO Mark Russinovich  udgivelsen af Sysmon for Linux. Administratorer kan bruge vejledninger såsom [1] og [2] til at teste og installere Sysmon til Linux i deres virksomhed. LogPoint udgav Unix v5.2.0, der understøtter Sysmon til Linux. Administratorer skal være opmærksomme på, at Sysmon for Linux har samme taksonomi som deres Windows-modpart.

Den generiske LPE-detektionsmetode fungerer til detektering af PwnKit. Administratorer skal jage efter den privilegerede proces af en ikke-privilegeret med den åbenlyse undtagelse af sudo. PoC’er kan efter udnyttelse enten køre kommandoer direkte som et kommandolinjeargument eller i en interaktiv shell-session. Nedenstående skærmbillede viser begge disse scenarier.

[norm_id=UnixSysmon label="Process" label=Create -user=root -image="/usr/bin/sudo"]
as s1 followed by
[norm_id=UnixSysmon label="Process" label=Create user=root]
as s2 within 3 second on s1.host = s2.host and s1.process_guid=s2.parent_process_guid
| rename s1.host as host, s1.user as user, s2.user as target_user, s1.path as path, s1.image as image,
s1.command as command, s2.image as target_image, s2.command as target_command
| chart count() by host, user, target_user, path, image, command, target_image, target_command

Searching for generic local privilege escalation

Søger efter generisk lokal rettighedseskalering

Nogle PoC’erkan køre som en enkelt eyeliner via en enkel krøllekommando. Du kan overvåge mistænkelige downloads fra GitHub ved hjælp af procesoprettelseshændelser.

norm_id=UnixSysmon label="Process" label=Create
image IN ["/usr/bin/curl", "/usr/bin/wget"] command="*raw.githubusercontent.com*"

Post-kompromis undersøgelse

De nødvendige skridt til at undersøge aktiviteter efter kompromiser omfatter inspektion af:

  • Oprettelsen af nye brugere til persistens.
  • Mistænkelig udførelse af krøller, wget osv. for at downloade nyttelaster.
  • Installation af kringullejobs for persistens.
  • Montering af en SSH-bagdør for at holde længe.
  • Installation af møntgravere.

LogPoint SOAR Playbook for PwnKit Investigation

LogPoint SOAR-playbook for undersøgelse af PwnKit

Efter udførelse af playbook’en i LogPoint SOAR kan vi i de sager, der er oprettet af playbook’ens komponenter i undersøgelsestidslinjen, danne os et overblik på højt niveau over undersøgelsens resultater.

LogPoint SOAR investigation timeline gathers the results of the investigation

LogPoint SOAR-undersøgelsestidslinjen samler resultaterne af undersøgelsen

Afhjælpning

Endelig lægger vi vægt på at minde administratorer om at patche deres Linux-systemer på grund af fejlens alvor og den offentlige frigivelse af flere sårbarheder, POC’er. Administratorer kan fjerne SUID-bitten fra pkexec som midlertidig dæmpning, hvis der ikke er frigivet patches til deres Linux-distribution. Virksomheders forsvarere kan forvente, at trusselsaktører bruger PwnKit efter at have fået fodfæste i et system.

Kontakt Logpoint

Kontakt os og hør, hvorfor brancheførende virksomheder vælger Logpoint:

Kontakt Logpoint

Learn more about Logpoint

Book a demo
Customer cases
Customer reviews