Hoe kan ik mijn user-agent spoofen?
Heb je weleens nagedacht over de sporen die je achterlaat als je een website bezoekt? Zo niet, dan is het hoog tijd om dat te doen. Gegevens die je achterlaat kunnen in sommige gevallen leiden tot afbreukrisico’s en veiligheidsrisico’s. In deze blog staan we stil bij een specifiek gegeven dat via jouw webbrowser aan een website wordt meegezonden: jouw user-agent. We leggen je uit wat een user-agent is, hoe je een user-agent in een onderzoek kunt spoofen en waarom je dat zou willen doen.
Wat is een user-agent?
Als jij met een webbrowser een website bezoekt dat verzendt jouw webbrowser zonder dat jij het weet een user-agent mee. Deze user-agent wordt meegezonden in de aanvraagheader van een HTTP-requests en geeft aan een webserver aan wat voor webbrowser jij gebruikt. Zo weet de webserver bijvoorbeeld of de website die jij bezoekt voor een Google Chrome-browser of voor een Safari-browser getoond moet worden. Of dat de website voor een desktop-omgeving of voor een mobiele omgeving geschikt moet zijn. Een user-agent ziet er uit zoals op de afbeelding hieronder.
Waar kan ik mijn user-agent vinden?
Jouw user-agent kun je terugvinden een de aanvraagheaders van jouw HTTP-requests. Je kunt deze vinden door op de toetsencombinatie Ctrl+Shift+I of op de F12-toets te klikken. In het scherm dat nu opent klik je op het tabblad “Netwerk” (zie 1). Zorg ervoor dat je de pagina ververst zodat alle HTTP-requests in de balk verschijnen.
Klik nu op de eerste HTTP-request die je ziet (zie 2), klik in het rechter scherm op het tabblad “Headers” (zie 3) en scroll naar beneden totdat je het kopje “Aanvraagheaders” te zien krijgt (zie 4). Lees daar af wat jouw user-agent is (zie 5). In het onderstaande voorbeeld is de user-agent: User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:107.0) Gecko/20100101 Firefox/107.0.
Hoe moet ik mijn user-agent lezen?
Nu je jouw user-agent hebt weten te achterhalen, wil je waarschijnlijk weten hoe je deze kunt lezen. Het probleem is dat een user-agent gemaakt is om te lezen door computers, en niet door mensen. Toch kun je als je goed naar de user-agent kijkt wel een aantal zaken afleiden. Zo zie je in de user-agent “User-Agent Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:107.0) Gecko/20100107 Firefox/107.0” onder andere dat wij gebruik maken van een Windows-besturingssysteem, een 64-bit systeem, de webbrowser Mozilla Firefox en het versienummer 107. Wil je zeker weten wat een user-agent betekent? Vul deze dan in op https://developers.whatismybrowser.com en bekijk de resultaten.
Waarom zou ik mijn user-agent willen spoofen?
Nu je weet wat een user-agent is, weet je ook dat een user-agent prijs geeft wat voor soort besturingssysteem en webbrowser jij gebruikt. Daarbij is het natuurlijk zo dat hoe unieker deze user-agent is, des te meer jij als onderzoeker opvalt. En het feit dat je opvalt kan voor afbreukrisico’s zorgen, bijvoorbeeld omdat de “tegenpartij” weet dat er onderzoek verricht wordt. Alhoewel dit risico misschien ver gezocht is, kan dit een reden zijn om een user-agent te willen spoofen. Met spoofen bedoelen we dat je een andere user-agent verzendt waarmee je dus doet alsof je een ander apparaat bent. Je misleidt de tegenpartij daarmee als het ware. Een andere reden kan zijn dat je met een aangepaste user-agent soms data op een andere manier vanuit websites en sociale media kunt halen. In onze module 3 leren wij bijvoorbeeld hoe je met een aangepaste user-agent via de API van Instagram gestructureerde gegevens in JSON-formaat kunt verkrijgen.
Hoe kan ik mijn user-agent spoofen?
Nu je weet wat een user-agent is en waarom je een user-agent zou willen spoofen, is het tijd om hiermee aan de slag te gaan. Hieronder leggen we je uit hoe je jouw user-agent op twee manieren kunt spoofen. In de eerste manier doen we dat via de functionaliteit van de webbrowser zelf, in de twee manier doen we dat via een browser-extensie van een derde partij.
Een user-agent spoofen via de functionaliteit van een webbrowser
Voor dit voorbeeld gebruiken wij de webbrowser Mozilla Firefox maar uiteraard kun je ook een andere webbrowser gebruiken. In Mozilla Firefox open je opnieuw de browser developer-tools met de toetsen Ctrl+Shift+I (zie 1) en klik je op het icoontje van een mobiel/tablet (zie 2). Klik vervolgens op het tandwiel dat bovenin is verschenen en klik de optie “Useragent tonen” aan (zie 3).
Kies nu een user-agent (bijvoorbeeld uit deze lijst) en plak deze in de balk die bovenin is verschenen (zie 4). Wij hebben bijvoorbeeld de user-agent “Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36” gebruikt. Ververs nu de pagina en voila, jouw user-agent is gespoofed. Controleer vervolgens opnieuw op een website als https://developers.whatismybrowser.com of alles naar wens gelukt is.
Een user-agent spoofen via een browser-extensie van een derde partij
De vorige optie is misschien wat omslachtig, maar werkt wel erg goed. Een andere optie om een user-agent te spoofen is door gebruik te maken van een browser-extensie. Een voorbeeld van een browser-extensie waarmee je een uer-agent kunt spoofen is “User-Agent Switcher and Manager“.
Als je deze browser-extensie in je webbrowser geïnstalleerd hebt, kun je deze aanklikken naast je adresbalk (zie 1). Vervolgens kun je een ingebouwde optie kiezen (zie 2) of kun je een eigen user-agent plakken (zie 2). Klik op “Apply” (zie 3) om de user-agent in te stellen en ververs de pagina om alles in werking te laten treden. Wil je jouw user-agent resetten? Klik dan op “Reset” (zie 4) en ververs de pagina opnieuw.
Let op: wees voorzichtig met browser-extensies van derde partijen!
Wij adviseren je om heel voorzichtig om te gaan met browser-extensies van derde partijen. Het kan namelijk zo zijn dat een browser-extensie kwaadaardig is: de extensie kan in dat geval gegevens afvangen of dingen kapot maken. Ben je zelf niet in staat om de browser-extensie van een derde partij te onderzoeken en te beoordelen? Schakel dan hulp in!
Meer weten?
In deze blog hebben wij een korte uitleg gegeven van wat een user-agent is en hoe je kunt controleren wat jouw user-agent is. Ook hebben we je uitgelegd waarom en hoe je een user-agent kunt spoofen. Uiteraard is jouw user-agent niet het enige gegeven dat je mee zendt wanneer je een website bezoekt. Vooral de gegevens gecombineerd kunnen ervoor zorgen dat jij een afbreukrisico loopt. Wil je meer weten over de sporen die je achterlaat als je een website bezoekt? Schrijf je dan in voor onze OSINT-training I (Beginner) waarin we dit onderwerp uitgebreid behandelen. Binnenkort volg er ook een uitgebreide workshop waarin dit thema centraal staat. Voor meer informatie kun je natuurlijk ook contact met ons opnemen.
Ook aan te raden om dit binnen tooling te doen. Bijv Curl en Wget komen met een specifieke UA. Requests van die tools vallen ten eerste op gewoon op, en afhankelijk van de inrichting slaan IPS/IDS/firewall/WAF er op aan. Spoof je de UA met een simpele commandline option en genereer je een onopvallende status “200 OK”, dan kom je er meestal gewoon voorbij en ga je op in de massa.
En zo is er nog wel meer tooling waarbij je dit zou willen doen, maar dan moet je ook rekening houden met het gedrag daarvan. Je kunt wel binnen komen met zogenaamd Firefox/Chrome/Edge, maar wanneer je tooling flink in het rond schreeuwt en dat gedrag niet bij een normale browser past, dan ben je alsnog gezien 😁
Ik gebruik bijv. regelmatig OpenVAS, waarbij ik de UA spoof. In de (W3C) logging zie je dan inderdaad een normale browser binnen komen, maar aan het gedrag kun je wel afleiden dat er een vulnerability scanner bezig is. Dat moet je dus niet gaan doen wanneer je niet wilt dat de andere partij weet dat iemand hem/haar/hen onderzoekt.