Posts tonen met het label hack. Alle posts tonen
Posts tonen met het label hack. Alle posts tonen

donderdag 27 april 2017

Windows-hackingtools van NSA gelekt: is jouw pc besmet?

Het hackerscollectief de Shadowbrokers heeft de voorbije maand verschillende bestanden gelekt die afkomstig zouden zijn van de National Security Agency (NSA) van de Verenigde Staten. In de recentste documenten zitten exploits voor verschillende versies van Windows (Server) die door Hacker Fantastic worden beschreven als een “Microsoft-apocalyps”. Beveiligingsspecialisten zeggen dat de exploits goed geschreven zijn en vermoeden dat cybercriminelen de gelekte tools eveneens gebruiken. Uit onderzoek blijkt dat zo’n honderdduizend pc’s besmet zijn via de exploits.

Doublepulsar

Veel van de exploits die in de gelekte documenten worden beschreven, maken gebruik van dezelfde payload, Doublepulsar genaamd. Deze payload dringt binnen in de kernel van een systeem en wordt gebruikt om willekeurige dll’s te injecteren. Cybercriminelen en de NSA kunnen hierdoor computers besmetten met malware, waarna ze de eigenaar van de besmette pc kunnen bespioneren.
BinaryEdge ontwikkelde een script waarmee het computers detecteert waarop Doublepulsar aanwezig is. Op 23 april telde de beveiligingsspecialist maar liefst 164.715 geïnfecteerde computers, wat zelfs voor de NSA een erg groot aantal is. Hoogstwaarschijnlijk hebben cybercriminelen de gelekte gegevens van de Shadowbrokers gebruikt om zelf met de hackingtools aan de slag te gaan. Gebruikers die hun pc niet van de recentste patches hebben voorzien, lopen hierdoor groot risico om malware op te lopen.
In zijn blogpost deelt BinaryEdge een top tien van landen met de meeste pc’s die getroffen zijn door de hackingtools. De Verenigde Staten prijkt met grote marge op nummer een, met maar liefst 67.052 besmette computers. Ook Nederland vind je terug in de lijst, met 1.479 besmettingen. In België zijn er daarentegen slechts 117 pc’s geïnfecteerd.

Infectie detecteren

Countercept, een andere beveiligingsfirma, deelt een script op GitHub dat je kan gebruiken om na te kijken of je pc geïnfecteerd is. Het script maakt gebruik van python2 en gaat op zoek naar verkeer afkomstig van Doublepulsar. Aangezien Doublepulsar communiceert met een command and control-server kan het script via deze weg de payload op het spoor komen.
Gelukkig is er een erg eenvoudige methode om Doublepulsar weer van je computer te krijgen. Doublepulsar schrijft immers geen bestanden op de computers die het infecteert. Hierdoor verdwijnt de kwaadaardige software van je pc wanneer je je systeem simpelweg heropstart. De malware die cybercriminelen eventueel met behulp van Doublepulsar op je pc installeren, krijg je daarentegen niet zomaar van je computer. Een goede antivirus is in dat geval noodzakelijk.

Patches

Voorkomen is beter dan genezen. Microsoft heeft daarom de nodige patches uitgerold om zijn klanten tegen het gevaar van Doublepulsar te beschermen. Wie zijn computer up-to-date houdt en gebruik maakt van Windows 7 of nieuwer, hoeft daarom niet langer te vrezen voor de gelekte hackingtools.
In een voorgaand artikel legt onze redacteur uit waarom de NSA waarschijnlijk Microsoft zelf van de exploits op de hoogte heeft gebracht. De timing van de patches zijn te perfect om op toeval te berusten. Bovendien staat de NSA er om bekend lekken te delen met bedrijven, wanneer het niet langer de enige is die de exploits kent. Over kwetsbaarheden die enkel gekend zijn bij de instantie zwijgt de NSA daarentegen in alle talen.

maandag 19 december 2016

Zero day exploit in Linux ontdekt: hoe de hack werkt

De bekende hacker Chris Evans heeft een manier gevonden om huidige versies van Ubuntu en Fedora te hacken. Het enige wat een Linux-gebruiker hoeft te doen om in de problemen te komen, is het downloaden van een kwaadaardig muziekbestand in Chrome en deze te starten. Ook wanneer je slechts de map opent waarin het bestand zich bevindt, zal de hack in gang worden gezet.
In een blogpost doet Evans uit de doeken hoe hij het lek op het spoor kwam. In zijn hack maakt de man gebruik van de Linux gstreamer, een media framework dat bij veel Linux-distributies standaard wordt geleverd. Dit framework bevat onder andere de mogelijkheid om Super Nintendo Entertainment System-muziekbestanden te emuleren. Deze emulatie vormt de basis van alle problemen die Evans over Linux-gebruikers kan heen roepen.

Out of bounds register

Evans is twee fouten op het spoor gekomen in de basiscode van de SNES-emulatie. Het eerste probleem doet zich voor in de opcode 0xAF, waarbij een schrijfoperatie naar het X-register wordt uitgevoerd. De waarde die naar het register kan worden geschreven, wordt niet beperkt, waardoor je een out of bound waarde in het register kan opslaan.
Het tweede probleem situeert zich in de instructie om de flags van een register en de instruction pointer naar de stack te restoren. Hierbij wordt gebruik gemaakt van het SP-register, welke normaal gezien een waarde tussen 0x00 en 0xff moet hebben. Bij deze instructie wordt de waarde van het SP-register niet veperkt, waardoor de stack pointer posities van het virtuele geheugenadres te groot kan worden. De stack pointer kan met andere worden een out of bounds waarde krijgen.

Memory leak

Om het nut van de twee fouten in de SNES-emulatiecode de testen, probeerde Evans zijn Linux-systeem te doen crashen met behulp van out of bounds waardes. De hacker genereerde met succes een te grote waarde in het X-register, maar jammer genoeg werd er geen crash veroorzaakt. Na enig onderzoek bleek de waarde van het X-register bij verdere bewerkingen toch beperkt te worden.
Ondanks het feit dat de out of bounds waarden niet onmiddellijk voor een exploit zorgen, kan de grote waarde wel andere bijwerkingen hebben. Bovendien ontdekte Evans een bug in de decoder wrapper van libgme, de software library Game Music Emu, waardoor een memory leak ontstond.

Watervaleffect

Met de verschillende fouten in de emulatiecode in zijn achterhoofd, zocht Evans verder naar een manier om via de bugs een hack uit te voeren. Hij ontdekte dat de y-waarde bij de vermenigvuldiginginstructie eveneens niet werd beperkt, waardoor je erg snel een erg grote waarde kan creëren.
Ook de instructie om waardes te delen, bevat hetzelfde probleem. Na experimenteren, slaagde Evans erin om met een grote waarde in het Y-register, gecreëerd met een vermenigvuldiging, een negatief getal uit te komen na de deelinstructie. Deze negatieve waarde kan gebruikt worden om achterwaarts te indexeren, waardoor de vtable waarde kan worden aangepast. Ook kan Evans op deze manier de pointer naar het host heap memory address van de virtuele RAM aanpassen, waarna de hacker met succes kwaadaardige code kan starten op het systeem van een slachtoffer.

Werkende zero day exploit

Samengevat zorgt Evans er in de eerste plaats voor dat het X-register een grote waarde krijgt. Hierna gebruikt hij de vermenigvuldiging- en deelinstructies om een negatieve waarde in het Y-register te creëren. Hierna zorgt hij ervoor dat de vtable corrupt geraakt en verwijst naar plaats 0x100 in de virtuele RAM. Hierdoor wordt vtable -2370739 opgeroepen, welke een instructie bevat die de pointer op plaats 0x10 laadt in %rdi. %rdi bevat de pointer naar offset 0xc0 in de virtuele RAM. In Evans zijn voorbeeld bevindt zich hier de de string ‘gnome-calculator’.
Hierna wordt de pointer bij offset 0x8 geladen in %rax, waar Evans eerder system() heeft opgeslagen. Deze variabele wordt opgeroepen, waarbij het eerste argument in de x86_64 ABI overeenkomt met %rdi, welke nog steeds naar de gnome-calculator verwijst. In dit geval zal er dus een rekenmachine worden gestart. Door de kwaadaardige code naar andere software te laten wijzen, kan er echter een hoop kattenkwaad worden uitgehaald.