PsExec en de vervelende dingen die het kan doen

0 Comments

De meeste tools die we gebruiken om netwerken te beheren hebben de neiging om een tweesnijdend zwaard te zijn. Deze tools bieden veel flexibiliteit en zorgen voor een soepel beheer van apparaten, diensten en software. In de juiste handen hebben we niets om ons zorgen over te maken, maar in de verkeerde handen worden onze Remote administration tools krachtige wapens die door aanvallers kunnen worden gebruikt om een breed scala aan kwaadaardige activiteiten uit te voeren., In dit artikel ga ik het hebben over een tool die aan deze beschrijving voldoet. Deze tool is de Microsoft Sysinternals PsExec tool. In dit artikel ga ik een overzicht geven van wat PsExec is en wat zijn mogelijkheden zijn vanuit administratief oogpunt. Na dit, Ik ga de rol van een tegenstander te nemen en een aantal van de vervelende dingen die het kan worden gebruikt voor op een netwerk te demonstreren.

Dit artikel is bedoeld om twee doelgroepen te dienen., De eerste doelgroep bestaat uit de systeembeheerders die verantwoordelijk is voor het beschermen van hun netwerken van het gebruik van tools zoals PsExec voor kwaadaardige doeleinden. De andere beoogde doelgroep bestaat uit ethische hackers en professionele penetratie testers die kunnen profiteren van een beetje meer te weten over een aantal van de dingen die PsExec kan worden gebruikt voor., Ongeacht welk publiek Je valt in zijn belangrijk dat ik de disclaimer dat sommige van de commando ‘ s en technieken die ik hier bespreek kan heel illegaal zijn, afhankelijk van de omstandigheid waarin ze worden gebruikt, dus ik dring aan om te gaan met voorzichtigheid als eventuele acties die u neemt twijfelachtig kan zijn.

Wat is PsExec?

Het PsExec hulpprogramma is ontworpen als onderdeel van de PsTools suite, oorspronkelijk ontwikkeld door Mark Russinovich van Sysinternals, nu eigendom van Microsoft., De tool is bedacht als een command line gebaseerde remote administration tool en maakt het mogelijk voor de externe uitvoering van processen op andere systemen. Het is zeer flexibel in die zin dat het zal toestaan voor het gebruik van alternatieve authenticatie referenties in plaats van die van de gebruiker die het uitvoert, wat betekent dat u apparaten gescheiden door domein en site grenzen te beheren. Niet alleen kan PsExec programma ‘ s uitvoeren op een systeem op afstand, maar het kan ook console-invoer en-uitvoer tussen systemen omleiden, zodat u interactieve tools op afstand kunt gebruiken.,

In tegenstelling tot de meeste Microsoft geassocieerde software, zijn de innerlijke werking van PsExec geen geheim en zijn vrij eenvoudig. PsExec maakt omleidingen van de input en output van een op afstand gestart uitvoerbaar door het gebruik van SMB en de verborgen $ADMIN share op het externe systeem. Met deze share gebruikt PsExec de API van Windows Service control Manager om de PsExecsvc-service op het externe systeem te starten, waarmee een benoemde pijp wordt gemaakt waarmee PsExec communiceert. Deze named pipe is wat zorgt voor input/output redirection terug naar het systeem dat PsExec gelanceerd.,

aardig spelen met PsExec

volgens het oorspronkelijke ontwerp kan PsExec worden gebruikt om een aantal zeer nuttige dingen te doen die systeembeheerders kunnen helpen. Een dergelijk scenario dat ik mezelf heb gevonden in een aantal keren is een waarin ik ” ve bekend de DNS-naam van een computer, maar niet de exacte IP-configuratie-instellingen (DNS-server, standaard gateway, enz.). Onder normale omstandigheden zou ik ipconfig op het lokale systeem gebruiken om deze informatie te bepalen., In de overgrote meerderheid van de gevallen kan dit echter betekenen dat ik naar een andere locatie moet rijden of de computer van een gebruiker moet lenen, waardoor hun productiviteit voor de dag inherent wordt verminderd. Omdat ipconfig geen mogelijkheden heeft om tegen een niet-lokale machine te draaien, kan ik PsExec gebruiken om het succesvol te starten, zoals getoond in Figuur 1.

figuur 1: Gebruik van PsExec om ipconfig op een systeem op afstand te starten

nadat PsExec is aangeroepen, wordt de externe computer aangeduid na de dubbele schuine streep (\\), gevolgd door het commando ipconfig., Als je PsExec uitvoert, staat het standaard op de map% SYSTEM % op het externe systeem waarop je het commando probeert uit te voeren, daarom hoefde ik hier geen volledig pad op te geven. Tot slot wordt de / all schakelaar voor ipconfig opgegeven om alle beschikbare ipconfig informatie uit te voeren.

een andere veelgebruikte implementatie van PsExec is om het te gebruiken voor de implementatie van updates, patches en hotfixes. Hoewel de typische voorkeursmethode om dit te doen door middel van Groepsbeleid is, kunnen er gevallen zijn waarin die methode te traag is., Ik ben in veel situaties geweest waar ik een beveiligingspatch met hoge prioriteit moest implementeren die de duur van de standaard vernieuwingstijd voor Groepsbeleid niet kan wachten, dus heb ik me tot PsExec gewend om het bestand sneller te implementeren. Een voorbeeld hiervan is te zien in Figuur 2.

Figuur 2: Een uitvoerbare patch op afstand opstarten

De opdrachtafbeelding hierboven gebruikt enkele extra functies. Merk eerst op dat er twee computernamen zijn gescheiden door komma ‘ s na de dubbele schuine streep (\\)., Met PsExec kunt u hier meerdere doelapparaten opgeven, of een bestand met een lijst met apparaatnamen of-adressen. Het commando bevat ook de / c switch, die wordt gebruikt wanneer u een bestand op het lokale systeem wilt opgeven dat op het externe systeem moet worden uitgevoerd. In dit geval heb ik de file patch opgegeven.executable. Het bestand bevindt zich op mijn lokale systeem aan de root van de C-schijf, dus ik moest het volledige bestandspad opgeven. De / c schakelaar kijkt standaard in de map %SYSTEM% op het lokale systeem., Zoals je kunt zien, het bestand is met succes uitgevoerd en de uitvoer wordt omgeleid terug naar de lokale console we draaien PsExec van.

een laatste vriendelijk gebruik van PsExec I”ve bleek erg handig is het gebruiken van het op afstand te beheren systemen met een hoger privilege niveau terwijl het gebruik van een systeem onder een lager privilege account. Ik kan “t tellen het aantal keren dat ik” ve geweest op de site werken op een computer van gebruikers en ik”ve kreeg een oproep die vereist dat ik een administratieve functie uit te voeren, zoals een wachtwoord wijzigen., Natuurlijk, in een Active Directory-omgeving kon ik gewoon RDP in een domeincontroller en het uitvoeren van deze wijziging, maar ik”ve had verschillende clients die niet gebruik maken van active directory of RDP om verschillende redenen. Als dat het geval is zijn vrij gemakkelijk om pop in een USB flash drive en toegang tot de kopie van PsExec ik heb geïnstalleerd op het. In het geval van Figuur 3, heb ik “ve gebruikt PsExec om een gebruikerswachtwoord op een systeem te resetten door het verhogen van de privileges” van de net tool zoals uitgevoerd door PsExec.,

Figuur 3: het wachtwoord van een gebruiker wijzigen door PsExec-privileges op te heffen

vervelende dingen doen met PsExec

loop aan de duistere kant en kijk naar sommige dingen die gedaan kunnen worden met PsExec door mensen met potentieel kwade bedoelingen. Ten eerste, laten we ’s overwegen een scenario waarin een aanvaller referenties heeft verkregen voor een systeem, maar’ t hebben geen directe toegang tot het., In dit geval, de aanvaller is gericht op GUI of command line controle van het systeem te krijgen, maar de wegen beschikbaar voor het gebruik van deze referenties kunnen worden beperkt. Een methode die nuttig kan zijn in deze situatie is om PsExec gebruiken om een backdoor uitvoerbare draaien op het systeem, zoals wat wordt weergegeven in Figuur 4.

Figuur 4: een kwaadaardig uitvoerbaar bestand wordt op afstand gestart

In het geval van deze schermafbeelding gebruikt een externe aanvaller de PsExec met de /c-schakelaar om het lokale bestand nc uit te voeren.exe op het externe systeem., Samen met deze, de-u en-p switches worden gebruikt om de gecompromitteerde gebruikersnaam en wachtwoord opgeven, zodat het bestand kan worden uitgevoerd met root-niveau privileges. Buiten medeweten van het slachtoffer, het bestand dat in stilte wordt uitgevoerd in feite een achterdeur die de aanvaller zal toestaan om verbinding te maken met het systeem en een administratieve opdrachtprompt ontvangen.

een interessant ding over de aanval die we net bekeken is dat je eigenlijk niet eens het wachtwoord van een gebruiker nodig hebt om het uit te voeren. In alle realiteit, alles wat je nodig hebt is de gebruikersnaam en wachtwoord hash van de gebruiker., In Windows worden wiskundige berekeningen toegepast op door de gebruiker aangeleverde wachtwoorden om van die wachtwoorden een versleutelde string met vaste lengte te maken, een zogenaamde hash. Deze hashes zijn een beveiligingsfunctie ontworpen om te voorkomen dat duidelijke tekst wachtwoorden worden verzonden over een netwerk. Wanneer authenticatie plaatsvindt, worden deze wachtwoordhashes van de ene host naar de andere verzonden. Met behulp van PsExec dit kan worden benut door simpelweg het verstrekken van de wachtwoord hash in plaats van het wachtwoord, weergegeven in Figuur 5.,

Figuur 5: een wachtwoordhash gebruiken om een bestand op afstand uit te voeren

dit voorbeeld is hetzelfde als in Figuur 4, Het enige verschil is dat een wachtwoordhash wordt gebruikt in de plaats van het wachtwoord. Het ontvangende systeem heeft geen probleem met het accepteren van deze hash voor authenticatie doeleinden. Er zijn verschillende methoden voor het verkrijgen van wachtwoord hashes die een beetje buiten het bereik van dit artikel. Ik heb nog een artikel over dit onderwerp geschreven dat hier bekeken kan worden.,

een andere leuke truc die PsExec mogelijk maakt is de mogelijkheid om toegang te krijgen tot bestanden en processen met het ingebouwde systeemaccount. Het systeemaccount op een Windows-machine is de meest krachtige account en zorgt voor toegang tot vrijwel alles, met inbegrip van een aantal items die zijn”t toegankelijk door de beheerder account en door de gebruiker gemaakte accounts.. Figuur 6 geeft een voorbeeld voor het benaderen van de regedit applicatie.,

Figuur 6: toegang tot het register van het slachtoffer

het bovenstaande commando wordt direct op een lokaal systeem uitgevoerd, maar specificeert de-s-schakelaar om het lokale systeemaccount te gebruiken. Dit wordt gecombineerd met de-I (interactive) optie die regedit in interactieve modus draait. Het uitvoeren van dit commando zal regedit starten met systeemtoegang die extra toegang biedt tot een aantal interessante bestanden. Een voorbeeld hiervan is het SAM-bestand dat gebruikerswachtwoord hashes bevat., Gegeven de juiste motivatie, een aanvaller met toegang tot een systeem en PsExec kan gemakkelijk halen alle van de wachtwoord hashes uit het systeem met behulp van deze techniek, mogelijk hem te voorzien van informatie die het mogelijk maken voor het compromis van andere systemen of accounts.

een paar kanttekeningen

referenties in de clear – Als u zich zorgen maakt over wie mogelijk meeluistert op uw netwerkactiviteit dan is PsExec waarschijnlijk niet de beste tool om te gebruiken., PsExec stuurt alle gebruikersgegevens geleverd om het in de clear, wat betekent dat als u een gebruikersnaam en wachtwoord om toegang te krijgen tot een systeem op afstand, iedereen met een kopie van Wireshark of Tcpdump uitgevoerd kan onderscheppen van de referenties.

Antivirus detectie-dit was vroeger niet zo ‘ n groot probleem, maar nu de meeste virusscanningtoepassingen een bepaald niveau van systeem-en geheugenmonitoring uitvoeren, zullen de meeste ervan PsExec zien die gebruikt wordt op het systeem dat ze bewaken., Als u het doen van een penetratietest op een Windows-systeem en PsExec isn”t werken zoals het zou moeten zijn dan is de kans groot dat je steeds geblokkeerd door antivirus, en erger nog, je kan laten de eindgebruiker weten dat je speelt met hun systeem.

PsExec en Metasploit-indien mogelijk gebruik ik nooit meer PsExec zelf. Een gewijzigde versie van PsExec is nu opgenomen in het Metasploit Framework. Metasploit is een penetratie testen kader dat heel wat functionaliteit biedt., Als u wilt PsExec gebruiken voor een vorm van security assessment dan overwegen te kijken naar de toegevoegde functionaliteit Metasploit biedt met het. Ik heb eigenlijk gebruikt deze versie van PsExec in een artikel dat ik eerder schreef over het passeren van de Hash technieken.

conclusie

Het PsExec-gereedschap heeft veel toepassingen voor een verscheidenheid aan intenties van de gebruiker. Hopelijk, dit artikel heeft geholpen om u te informeren over een aantal van de functies en hoe ze kunnen worden gebruikt voor het verkeerde doen. PsExec is het soort tool waarmee een aanvaller om creatief te zijn., Hoewel ik hier slechts een paar unieke toepassingen van de tool heb behandeld, durf ik te zeggen dat tientallen of zelfs honderden interessante aanvalsvectoren beschikbaar zijn met behulp van de feature set. Op een gegeven moment zal ik van plan op het schrijven van een follow-up artikel met meer interessante en geavanceerde toepassingen voor PsExec. In de tussentijd, als je een interessante PsExec trucs dan voel je vrij om me direct te schrijven voor opname in het volgende artikel.


Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *