Verborgen wachtwoordhacken met Smbexec

Verborgen wachtwoordhacken met Smbexec

We schrijven regelmatig over hoe hackers vaak afhankelijk zijn van misbruik hackmethoden zonder kwaadaardige codeom detectie te voorkomen. Ze letterlijk "overleven op de weide", met behulp van standaard Windows-tools, waardoor antivirusprogramma's en andere hulpprogramma's voor het detecteren van kwaadaardige activiteiten worden omzeild. Wij, als verdedigers, worden nu gedwongen om te gaan met de ongelukkige gevolgen van zulke slimme hacktechnieken: een goedgeplaatste werknemer kan dezelfde aanpak gebruiken om heimelijk gegevens te stelen (intellectueel eigendom van het bedrijf, creditcardnummers). En als hij zich niet haast, maar langzaam en rustig werkt, zal het buitengewoon moeilijk zijn – maar nog steeds mogelijk als hij de juiste aanpak en de juiste aanpak hanteert. Gereedschap, — om dergelijke activiteiten te identificeren.

Aan de andere kant zou ik werknemers niet willen demoniseren, omdat niemand rechtstreeks uit Orwells 1984 in een zakelijke omgeving wil werken. Gelukkig zijn er een aantal praktische stappen en lifehacks die het leven voor insiders een stuk lastiger kunnen maken. We zullen het overwegen geheime aanvalsmethoden, gebruikt door hackers door medewerkers met enige technische achtergrond. En iets verderop zullen we opties bespreken om dergelijke risico's te verminderen - we zullen zowel technische als organisatorische opties bestuderen.

Wat is er mis met PsExec?

Edward Snowden is, terecht of ten onrechte, synoniem geworden met diefstal van voorkennis. Vergeet trouwens niet een kijkje te nemen deze notitie over andere insiders die ook enige roemstatus verdienen. Een belangrijk punt dat de moeite waard is om te benadrukken over de methoden die Snowden gebruikte, is dat hij, voor zover wij weten,... niet geïnstalleerd geen externe kwaadaardige software!

In plaats daarvan gebruikte Snowden een beetje social engineering en gebruikte hij zijn positie als systeembeheerder om wachtwoorden te verzamelen en inloggegevens te creëren. Niets ingewikkelds - geen mimikatz, aanvallen man in het midden of Metasploit.

Organisatiemedewerkers bevinden zich niet altijd in de unieke positie van Snowden, maar er zijn een aantal lessen te trekken uit het concept van ‘overleven door te grazen’ waar ze zich bewust van moeten zijn – en zich niet moeten inlaten met enige kwaadwillige activiteit die kan worden gedetecteerd, en waar ze vooral op moeten letten. Wees voorzichtig met het gebruik van inloggegevens. Onthoud deze gedachte.

Psexec en zijn neef crackmapexec hebben indruk gemaakt op talloze pentesters, hackers en cybersecuritybloggers. En in combinatie met mimikatz zorgt psexec ervoor dat aanvallers zich binnen een netwerk kunnen verplaatsen zonder dat ze het leesbare wachtwoord hoeven te kennen.

Mimikatz onderschept de NTLM-hash van het LSASS-proces en geeft vervolgens het token of de inloggegevens door, de zogenaamde. "pass the hash"-aanval – in psexec, waardoor een aanvaller kan inloggen op een andere server als een ander gebruiker. En bij elke volgende verplaatsing naar een nieuwe server verzamelt de aanvaller extra inloggegevens, waardoor zijn mogelijkheden bij het zoeken naar beschikbare inhoud worden uitgebreid.

Toen ik voor het eerst met psexec begon te werken, leek het mij magisch - dank je Mark Russinovitsj, de briljante ontwikkelaar van psexec - maar ik ken ook de zijne luidruchtig componenten. Hij doet nooit geheimzinnig!

Het eerste interessante feit over psexec is dat het extreem complex gebruikt SMB-netwerkbestandsprotocol van Microsoft. Met behulp van SMB wordt psexec klein overgedragen binair bestanden naar het doelsysteem en plaats ze in de map C:Windows.

Vervolgens maakt psexec een Windows-service met behulp van het gekopieerde binaire bestand en voert deze uit onder de extreem “onverwachte” naam PSEXECSVC. Tegelijkertijd kun je dit allemaal zien, zoals ik deed, door naar een machine op afstand te kijken (zie hieronder).

Verborgen wachtwoordhacken met Smbexec

Het visitekaartje van Psexec: "PSEXECSVC" -service. Het voert een binair bestand uit dat via SMB in de map C:Windows is geplaatst.

Als laatste stap wordt het gekopieerde binaire bestand geopend RPC-verbinding naar de doelserver en accepteert vervolgens besturingsopdrachten (standaard via de Windows cmd-shell), start deze en stuurt invoer en uitvoer om naar de thuiscomputer van de aanvaller. In dit geval ziet de aanvaller de basisopdrachtregel - hetzelfde alsof hij rechtstreeks verbonden is.

Veel componenten en een zeer luidruchtig proces!

De complexe interne werking van psexec verklaart de boodschap die mij tijdens mijn eerste tests enkele jaren geleden in verwarring bracht: "PSEXECSVC starten...", gevolgd door een pauze voordat de opdrachtprompt verschijnt.

Verborgen wachtwoordhacken met Smbexec

Impacket's Psexec laat zien wat er onder de motorkap gebeurt.

Niet verrassend: psexec deed enorm veel werk onder de motorkap. Als je geïnteresseerd bent in een meer gedetailleerde uitleg, kijk dan hier hierdoor prachtige beschrijving.

Bij gebruik als systeembeheertool was dat uiteraard het geval oorspronkelijke doel psexec, er is niets mis met het “zoemen” van al deze Windows-mechanismen. Voor een aanvaller zou psexec echter voor complicaties zorgen, en voor een voorzichtige en sluwe insider als Snowden zou psexec of een soortgelijk hulpprogramma een te groot risico vormen.

En dan komt Smbexec

SMB is een slimme en geheime manier om bestanden tussen servers over te dragen, en hackers infiltreren SMB al eeuwenlang rechtstreeks. Ik denk dat iedereen al weet dat het het niet waard is Open SMB-poorten 445 en 139 naar internet, toch?

Op Defcon 2013 zei Eric Millman (brav0hax) gepresenteerd smbexec, zodat pentesters stealth SMB-hacking kunnen uitproberen. Ik ken het hele verhaal niet, maar Impacket heeft smbexec verder verfijnd. Voor mijn tests heb ik de scripts van Impacket in Python gedownload GitHub.

In tegenstelling tot psexec is smbexec vermijdt het overbrengen van een potentieel gedetecteerd binair bestand naar de doelmachine. In plaats daarvan leeft het nutsbedrijf volledig van weiland tot lancering lokaal Windows-opdrachtregel.

Dit is wat het doet: het geeft een commando van de aanvallende machine via SMB door aan een speciaal invoerbestand, en creëert en voert vervolgens een complexe opdrachtregel uit (zoals een Windows-service) die Linux-gebruikers bekend zal voorkomen. Kortom: het lanceert een native Windows cmd-shell, stuurt de uitvoer om naar een ander bestand en stuurt deze vervolgens via SMB terug naar de machine van de aanvaller.

De beste manier om dit te begrijpen is door naar de opdrachtregel te kijken, die ik uit het gebeurtenislogboek heb kunnen halen (zie hieronder).

Verborgen wachtwoordhacken met Smbexec

Is dit niet de beste manier om I/O om te leiden? Het maken van een service heeft trouwens gebeurtenis-ID 7045.

Net als psexec creëert het ook een service die al het werk doet, maar de service daarna verwijderd – het wordt slechts één keer gebruikt om de opdracht uit te voeren en verdwijnt dan! Een informatiebeveiligingsfunctionaris die de machine van een slachtoffer in de gaten houdt, zal dit niet kunnen detecteren overduidelijk Indicatoren van een aanval: Er wordt geen kwaadaardig bestand gelanceerd, er wordt geen persistente service geïnstalleerd en er is geen bewijs dat RPC wordt gebruikt, aangezien SMB het enige middel voor gegevensoverdracht is. Briljant!

Van de kant van de aanvaller is er een “pseudo-shell” beschikbaar met vertragingen tussen het verzenden van het commando en het ontvangen van het antwoord. Maar dit is voldoende voor een aanvaller - een insider of een externe hacker die al voet aan de grond heeft - om op zoek te gaan naar interessante inhoud.

Verborgen wachtwoordhacken met Smbexec

Om gegevens terug te voeren van de doelmachine naar de machine van de aanvaller, wordt het gebruikt smbclient. Ja, het is dezelfde Samba nut, maar alleen door Impacket omgezet naar een Python-script. In feite kunt u met smbclient heimelijk FTP-overdrachten via SMB hosten.

Laten we even een stapje terug doen en nadenken over wat dit voor de medewerker kan betekenen. Laten we zeggen dat in mijn fictieve scenario een blogger, financieel analist of goedbetaalde beveiligingsconsulent een persoonlijke laptop voor zijn werk mag gebruiken. Als resultaat van een of ander magisch proces neemt ze aanstoot aan het bedrijf en ‘gaat het helemaal mis’. Afhankelijk van het besturingssysteem van de laptop wordt de Python-versie van Impact gebruikt, of de Windows-versie van smbexec of smbclient als .exe-bestand.

Net als Snowden ontdekt ze het wachtwoord van een andere gebruiker door over haar schouder te kijken, of ze heeft geluk en stuit op een tekstbestand met het wachtwoord. En met behulp van deze inloggegevens begint ze het systeem te verkennen op een nieuw niveau van privileges.

DCC hacken: We hebben geen "domme" Mimikatz nodig

In mijn vorige berichten over pentesten heb ik heel vaak mimikatz gebruikt. Dit is een geweldig hulpmiddel voor het onderscheppen van inloggegevens: NTLM-hashes en zelfs leesbare wachtwoorden die verborgen zijn in laptops en wachten om gebruikt te worden.
Tijden zijn veranderd. Monitoringtools zijn beter geworden in het detecteren en blokkeren van mimikatz. Beheerders van informatiebeveiliging hebben nu ook meer mogelijkheden om de risico's die gepaard gaan met pass the hash-aanvallen (PtH) te verminderen.
Dus wat moet een slimme werknemer doen om extra inloggegevens te verzamelen zonder mimikatz te gebruiken?

De kit van Impacket bevat een hulpprogramma genaamd geheimendump, waarmee inloggegevens worden opgehaald uit de Domain Credential Cache, kortweg DCC. Ik heb begrepen dat als een domeingebruiker zich aanmeldt bij de server maar de domeincontroller niet beschikbaar is, DCC de server toestaat de gebruiker te authenticeren. Hoe dan ook, met secretdump kun je al deze hashes dumpen als ze beschikbaar zijn.

DCC-hashes zijn dat wel geen NTML-hashes en hun kan niet worden gebruikt voor PtH-aanvallen.

Nou, je kunt proberen ze te hacken om het originele wachtwoord te krijgen. Microsoft is echter slimmer geworden met DCC en DCC-hashes zijn uiterst moeilijk te kraken geworden. Ja ik heb hasjkat, "de snelste wachtwoordgikker ter wereld", maar er is een GPU voor nodig om effectief te kunnen werken.

Laten we in plaats daarvan proberen te denken als Snowden. Een medewerker kan face-to-face social engineering uitvoeren en mogelijk informatie achterhalen over de persoon wiens wachtwoord ze wil kraken. Zoek bijvoorbeeld uit of het online account van de persoon ooit is gehackt en controleer het leesbare wachtwoord op aanwijzingen.

En dit is het scenario waarvoor ik besloot te gaan. Laten we aannemen dat een insider erachter kwam dat zijn baas, Cruella, verschillende keren was gehackt op verschillende internetbronnen. Na het analyseren van verschillende van deze wachtwoorden, realiseert hij zich dat Cruella er de voorkeur aan geeft de notatie van de naam van het honkbalteam "Yankees" te gebruiken, gevolgd door het lopende jaar - "Yankees2015".

Als u dit nu thuis probeert te reproduceren, kunt u een kleine "C" downloaden code, dat het DCC-hashing-algoritme implementeert en compileert. John the Ripper. heeft overigens ondersteuning voor DCC toegevoegd, zodat deze ook gebruikt kan worden. Laten we aannemen dat een insider geen moeite wil doen om John the Ripper te leren kennen en graag "gcc" draait op oudere C-code.

Ik veinsde de rol van een insider, probeerde verschillende combinaties en kon uiteindelijk ontdekken dat Cruella's wachtwoord "Yankees2019" was (zie hieronder). Missie geslaagd!

Verborgen wachtwoordhacken met Smbexec

Een beetje social engineering, een vleugje waarzeggerij en een snufje Maltego en je bent goed op weg om de DCC-hash te kraken.

Ik stel voor dat we hier eindigen. We komen in andere berichten op dit onderwerp terug en kijken naar nog tragere en sluipende aanvalsmethoden, waarbij we voortbouwen op de uitstekende reeks hulpprogramma's van Impacket.

Bron: www.habr.com

Voeg een reactie