Dold lösenordshackning med Smbexec

Dold lösenordshackning med Smbexec

Vi skriver regelbundet om hur hackare ofta förlitar sig på att utnyttja hackningsmetoder utan skadlig kodför att undvika upptäckt. De bokstavligen "överleva på bete", med vanliga Windows-verktyg, och kringgår därmed antivirus och andra verktyg för att upptäcka skadlig aktivitet. Vi som försvarare är nu tvungna att ta itu med de olyckliga konsekvenserna av sådana smarta hackningstekniker: en välplacerad anställd kan använda samma tillvägagångssätt för att i hemlighet stjäla data (företagets immateriella rättigheter, kreditkortsnummer). Och om han inte rusar, utan arbetar långsamt och tyst, kommer det att vara extremt svårt - men fortfarande möjligt om han använder rätt tillvägagångssätt och lämpligt Verktyg, — för att identifiera sådan verksamhet.

Å andra sidan skulle jag inte vilja demonisera anställda eftersom ingen vill arbeta i en affärsmiljö direkt från Orwells 1984. Lyckligtvis finns det ett antal praktiska steg och life hacks som kan göra livet mycket svårare för insiders. Vi ska överväga hemliga attackmetoder, som används av hackare av anställda med viss teknisk bakgrund. Och lite längre kommer vi att diskutera alternativ för att minska sådana risker - vi kommer att studera både tekniska och organisatoriska alternativ.

Vad är det för fel på PsExec?

Edward Snowden, med rätta eller orätt, har blivit synonymt med insiderdatastöld. Glöm förresten inte att ta en titt på denna anteckning om andra insiders som också förtjänar lite berömmelsestatus. En viktig punkt som är värd att betona om metoderna Snowden använde är att han, så vitt vi vet, han installerade inte ingen extern skadlig programvara!

Istället använde Snowden lite social ingenjörskonst och använde sin position som systemadministratör för att samla in lösenord och skapa referenser. Inget komplicerat - inget mimikatz, attacker mannen i mitten eller metasploit.

Organisationsanställda är inte alltid i Snowdens unika position, men det finns ett antal lärdomar att dra av begreppet "survival by grazing" att vara medveten om - att inte engagera sig i någon illvillig aktivitet som kan upptäckas, och att vara särskilt försiktig med användningen av referenser. Kom ihåg denna tanke.

Psexec och hans kusin crackmapexec har imponerat på otaliga pentestare, hackare och cybersäkerhetsbloggare. Och i kombination med mimikatz tillåter psexec angripare att röra sig inom ett nätverk utan att behöva känna till klartextlösenordet.

Mimikatz fångar upp NTLM-hash från LSASS-processen och skickar sedan token eller referenser - den så kallade. "passera hash"-attacken – i psexec, vilket tillåter en angripare att logga in på en annan server som annan användare. Och med varje efterföljande flytt till en ny server, samlar angriparen in ytterligare referenser, vilket utökar utbudet av dess möjligheter att söka efter tillgängligt innehåll.

När jag först började arbeta med psexec verkade det magiskt för mig - tack Mark Russinovich, den briljanta utvecklaren av psexec - men jag vet också om hans högljudd komponenter. Han är aldrig hemlighetsfull!

Det första intressanta faktumet om psexec är att den använder extremt komplex SMB nätverksfilprotokoll från Microsoft. Med SMB blir psexec-överföringar små binär filer till målsystemet och placera dem i mappen C:Windows.

Därefter skapar psexec en Windows-tjänst med den kopierade binära filen och kör den under det extremt "oväntade" namnet PSEXECSVC. Samtidigt kan du faktiskt se allt detta, som jag gjorde, genom att titta på en fjärrmaskin (se nedan).

Dold lösenordshackning med Smbexec

Psexecs telefonkort: "PSEXECSVC"-tjänst. Den kör en binär fil som placerades via SMB i mappen C:Windows.

Som ett sista steg öppnas den kopierade binära filen RPC-anslutning till målservern och accepterar sedan kontrollkommandon (via Windows cmd-skal som standard), startar dem och omdirigerar indata och utdata till angriparens hemdator. I det här fallet ser angriparen den grundläggande kommandoraden - samma som om han var ansluten direkt.

Många komponenter och en mycket bullrig process!

De komplexa interna funktionerna i psexec förklarar meddelandet som förbryllade mig under mina första tester för flera år sedan: "Startar PSEXECSVC..." följt av en paus innan kommandotolken visas.

Dold lösenordshackning med Smbexec

Impackets Psexec visar faktiskt vad som händer under huven.

Inte förvånande: psexec gjorde en enorm mängd arbete under huven. Om du är intresserad av en mer detaljerad förklaring, kolla in här av detta underbar beskrivning.

Uppenbarligen, när det används som ett systemadministrationsverktyg, vilket var ursprungliga syftet psexec, det är inget fel med "surrandet" av alla dessa Windows-mekanismer. För en angripare skulle dock psexec skapa komplikationer, och för en försiktig och listig insider som Snowden skulle psexec eller ett liknande verktyg vara för stor risk.

Och så kommer Smbexec

SMB är ett smart och hemligt sätt att överföra filer mellan servrar, och hackare har infiltrerat SMB direkt i århundraden. Jag tror att alla redan vet att det inte är värt det öppet SMB-portarna 445 och 139 till Internet, eller hur?

På Defcon 2013, Eric Millman (brav0hax) presenteras smbexec, så att pentestare kan prova stealth SMB-hacking. Jag kan inte hela historien, men sedan förfinade Impacket smbexec ytterligare. Faktum är att för min testning laddade jag ner skripten från Impacket i Python från Github.

Till skillnad från psexec, smbexec undviker överföra en potentiellt upptäckt binär fil till målmaskinen. Istället lever nyttan helt från bete till lansering lokal Windows kommandorad.

Så här gör den: den skickar ett kommando från den attackerande maskinen via SMB till en speciell indatafil och skapar och kör sedan en komplex kommandorad (som en Windows-tjänst) som kommer att verka bekant för Linux-användare. Kort sagt: den startar ett inbyggt Windows cmd-skal, omdirigerar utdata till en annan fil och skickar det sedan via SMB tillbaka till angriparens dator.

Det bästa sättet att förstå detta är att titta på kommandoraden, som jag kunde få tag på från händelseloggen (se nedan).

Dold lösenordshackning med Smbexec

Är inte detta det bästa sättet att omdirigera I/O? Förresten, skapande av tjänster har händelse-ID 7045.

Precis som psexec skapar den också en tjänst som gör allt arbete, men tjänsten efter det raderade – den används bara en gång för att köra kommandot och försvinner sedan! En informationssäkerhetsansvarig som övervakar ett offers maskin kommer inte att kunna upptäcka uppenbar Indikatorer för attack: Det finns ingen skadlig fil som startas, ingen beständig tjänst installeras och det finns inga bevis för att RPC används eftersom SMB är det enda sättet för dataöverföring. Lysande!

Från angriparens sida är ett "pseudo-skal" tillgängligt med fördröjningar mellan att skicka kommandot och ta emot svaret. Men detta räcker för att en angripare – antingen en insider eller en extern hacker som redan har fotfäste – ska börja leta efter intressant innehåll.

Dold lösenordshackning med Smbexec

För att mata tillbaka data från målmaskinen till angriparens dator används den smbclient. Ja, det är samma Samba användbarhet, men endast konverterat till ett Python-skript av Impacket. Faktum är att smbclient låter dig i hemlighet vara värd för FTP-överföringar över SMB.

Låt oss ta ett steg tillbaka och fundera på vad detta kan göra för medarbetaren. I mitt fiktiva scenario, låt oss säga att en bloggare, finansanalytiker eller högbetald säkerhetskonsult får använda en personlig bärbar dator för jobbet. Som ett resultat av en magisk process tar hon illa vid sig av företaget och "går helt illa." Beroende på operativsystemet för den bärbara datorn använder den antingen Python-versionen från Impact eller Windows-versionen av smbexec eller smbclient som en .exe-fil.

Liksom Snowden tar hon reda på en annan användares lösenord antingen genom att titta över axeln, eller så har hon tur och snubblar över en textfil med lösenordet. Och med hjälp av dessa referenser börjar hon gräva runt i systemet på en ny nivå av privilegier.

Hacka DCC: Vi behöver ingen "dum" Mimikatz

I mina tidigare inlägg om pentesting använde jag mimikatz väldigt ofta. Det här är ett utmärkt verktyg för att fånga upp autentiseringsuppgifter - NTLM-hashar och till och med klartextlösenord gömda inuti bärbara datorer som bara väntar på att användas.
Tiderna har förändrats. Övervakningsverktyg har blivit bättre på att upptäcka och blockera mimikatz. Informationssäkerhetsadministratörer har nu också fler alternativ för att minska riskerna förknippade med pass the hash (PtH)-attacker.
Så vad ska en smart anställd göra för att samla in ytterligare referenser utan att använda mimikatz?

Impackets kit innehåller ett verktyg som heter hemlighetsdump, som hämtar referenser från Domain Credential Cache, eller DCC för kort. Min uppfattning är att om en domänanvändare loggar in på servern men domänkontrollanten inte är tillgänglig, tillåter DCC servern att autentisera användaren. Hur som helst, secretsdump låter dig dumpa alla dessa hash om de är tillgängliga.

DCC-haschar är inte NTML-hashar och deras kan inte användas för PtH-attack.

Tja, du kan försöka hacka dem för att få det ursprungliga lösenordet. Microsoft har dock blivit smartare med DCC och DCC-haschar har blivit extremt svåra att knäcka. Ja det har jag haschcat, "världens snabbaste lösenordsgissare", men det kräver en GPU för att fungera effektivt.

Låt oss istället försöka tänka som Snowden. En anställd kan bedriva social ingenjörskonst ansikte mot ansikte och eventuellt ta reda på lite information om den person vars lösenord hon vill knäcka. Ta till exempel reda på om personens onlinekonto någonsin har blivit hackat och undersök deras klartextlösenord för ledtrådar.

Och detta är scenariot som jag bestämde mig för att gå med. Låt oss anta att en insider fick reda på att hans chef, Cruella, hade blivit hackad flera gånger på olika webbresurser. Efter att ha analyserat flera av dessa lösenord inser han att Cruella föredrar att använda formatet för basebolllagsnamnet "Yankees" följt av det aktuella året - "Yankees2015".

Om du nu försöker återskapa detta hemma kan du ladda ner ett litet "C" код, som implementerar DCC-hash-algoritmen och kompilerar den. John Ripper, förresten, lagt till stöd för DCC, så det kan också användas. Låt oss anta att en insider inte vill bry sig om att lära sig John the Ripper och gillar att köra "gcc" på äldre C-kod.

Jag låtsades rollen som en insider och provade flera olika kombinationer och kunde så småningom upptäcka att Cruellas lösenord var "Yankees2019" (se nedan). Uppdrag slutfört!

Dold lösenordshackning med Smbexec

Lite social ingenjörskonst, en klick spådom och en nypa Maltego och du är på god väg att knäcka DCC-hash.

Jag föreslår att vi slutar här. Vi återkommer till detta ämne i andra inlägg och tittar på ännu mer långsamma och smygande attackmetoder, och fortsätter att bygga vidare på Impackets utmärkta uppsättning verktyg.

Källa: will.com

Lägg en kommentar