av Bhabesh Raj Rai, Security Research Department

Den 25 januari 2 022 avslöjade Qualys  detaljerna om en sårbarhet för minnesförstörelse (CVE-2021-4034), med titeln PwnKit, i polkitets pkexec utility som standard installerad på varje stor Linux-distribution. PwnKit är en lokal privilegieeskaleringssårbarhet (LPE) som gör det möjligt för obehöriga användare att få rotprivilegier på ett berört system även i dess standardkonfiguration.

pkexec är en SUID-binär som låter användaren utföra kommandon som en annan användare. När användarnamn inte anges körs programmet som root user i en liten och säker miljö. Detta förhindrar att koden injiceras via LD_LIBRARY_PATH eller liknande mekanismer.

Administratörer kan använda pkexec som ett alternativ till sudo men med mer finkorniga kontroller genom att definiera en policy för varje program. Du kan se likheter i ett fall som påverkade sudo. Redan i början av 2 021 befanns en LPE-sårbarhet mot minnesförstörelse (CVE-2021-3156) ha plaggat sudo i nästan ett decennium.

Trots att Qualys inte offentliggjorde utnyttjandet tillhandahöll de tillräckligt med tekniska detaljer i sitt avslöjande för att snabbt skapa utnyttjanden. Flera PoC:er som [1] och [2] svävar redan på internet för alla att använda.

Krav på loggkälla

  • Linux
  • Granskad
  • Sysmon för Linux

Upptäcka exploatering med hjälp av LogPoint

Om du inte har konfigurerats för att vidarebefordra Linux-loggar till LogPoint kan du upptäcka exploatering genom att söka efter PwnKit-artefakter i /var/log/auth.log. Listan LINUX_SERVERS innehåller IP-adresserna för alla Linux-system som vidarebefordrar loggar till LogPoint.

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

Administratörer måste dock komma ihåg att PwnKit kan användas utan att lämna spår i /var/log/auth.log.

För att rensa döda vinkeln kan administratörer använda granskad, förutsatt att den har konfigurerats för att granska pkexec-anrop. Först måste du leta efter händelser som har värdet ”(null)” angivet som proctitle.

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

Därefter måste du kontrollera om det finns pkexec-anrop. Defender kräver dessa indikatorer för att ytterligare inspektera systemet och avgöra om det har utsatts för fara med hjälp av PwnKit.

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

I oktober 2 021 tillkännagav Azure CTO Mark Russinovich  lanseringen av Sysmon för Linux. Administratörer kan använda guider som [1] och [2] för att testa och driftsätta Sysmon för Linux i sin verksamhet. LogPoint släppte Unix v5.2.0 som stöder Sysmon för Linux. Administratörer måste notera att Sysmon för Linux har samma taxonomi som Windows.

Den generiska LPE-detektionsmetoden används för att detektera PwnKit. Administratörer måste leta efter lek med den privilegierade processen av en icke-privilegierad process med det uppenbara undantaget sudo. PoC:er tillåts efter exploatering antingen köra kommandon direkt som ett kommandoradsargument eller i en interaktiv skalsession. Skärmbilden nedan visar båda dessa 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öker efter generisk lokal privilegieeskalering

Vissa PoC-apparaterkan köras som en singelliner via ett enkelt lockkommando. Du kan övervaka misstänkta nedladdningar från GitHub med hjälp av processkapande händelser.

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

Utredning efter kompromiss

De nödvändiga stegen för att undersöka aktiviteter efter kompromisser inkluderar inspektion av:

  • Skapandet av nya användare för varaktighet.
  • Misstänkt exekvering av curl, wget etc. för att ladda ner nyttolaster.
  • Installation av cronjobb för uthållighet.
  • Installation av en SSH-baklucka för uthållighet.
  • Installation av myntarbetare.

LogPoint SOAR Playbook for PwnKit Investigation

LogPoint SOAR Playbook för PwnKit-undersökning

Efter exekvering av motsvarande playbook i LogPoint SOAR kan vi se de fall som skapats av playbookens komponenter i utredningens tidslinje för att få en detaljrik översikt över undersökningens resultat.

LogPoint SOAR investigation timeline gathers the results of the investigation

LogPoint SOAR-undersökningens tidslinje samlar in resultaten av utredningen

Korrigering

Slutligen vill vi påminna administratörerna om att patcha sina Linux-system på grund av bristens allvarlighetsgrad och den offentliga publiceringen av flera sårbarhets-POC:er. Administratörer kan ta bort SUID-biten från pkexec som tillfällig begränsning om patchar inte har släppts för deras Linux-distribution. Företag kan förvänta sig att hotaktörer använder PwnKit efter att ha fått fotfäste på ett system.

Kontakta Logpoint

Kontakta oss och få information om varför branschledande företag väljer Logpoint:

Kontakta Logpoint

Learn more about Logpoint

Book a demo
Customer cases
Customer reviews