Onlangs een gezin van kwetsbaarheden gerelateerd aan een Bash BUG, de meest voorkomende tolk op GNU / Linux, MAC OS en sommige Unix, en is S . genoemdhellshock of Bashdoor (CVE-2014-6271). De belangrijkste en meest alarmerende kwestie in dit verband heeft te maken met het feit dat genoemde BUG al 20 jaar aanwezig is in Bash, dus de ernst van de zaak is naar schatting zelfs groter dan Heartbleed.
De Bash BUG of ShellShock Het is zelf geen kwaadaardige code (zoals computervirussen, spyware, malware, enz.), dus het kan niet worden gedetecteerd en geblokkeerd door antivirus- of vergelijkbare systemen, maar moet worden gecorrigeerd in de software-implementatie zelf die er "last" van heeft.
Het wordt aanbevolen om deze tutorial toe te passen in gecontroleerde omgevingen, voor doeleinden die verband houden met computerwetenschappelijk onderzoek en studie, zoals hier uitgelegd.
Wat is de Bash BUG ShellShock?
In wezen ligt het probleem in de mogelijkheid dat Bash de definitie van scriptfuncties in omgevingsvariabelen moet opslaan, meer bepaald in hoe deze functies door Bash worden geladen.
De BUG manifesteert zich wanneer in een omgevingsvariabele, na de functiedefinitie, extra code wordt toegevoegd die Bash zal blijven ontleden en uitvoeren na het laden van de functie.
Met het volgende commando werd een lege functiedefinitie, willekeurige code, in de variabele "x" geladen en vervolgens werd Bash aangeroepen.
Wat er gebeurt, is dat voordat Bash wordt aangeroepen, de omgevingsvariabele is geladen en de geïnjecteerde code is uitgevoerd die eenvoudig de tekenreeks "kwetsbaar" op de console laat zien (het had natuurlijk erger kunnen zijn!). Vervolgens is Bash uitgevoerd en is het echo-commando als voorbeeld aangeroepen. Een eenvoudigere variant van het commando om de test uit te voeren:
$ env x = '() {:;}; echo kwetsbaar 'bash'Dit laatste commando zal de string "kwetsbaar" op het scherm tonen als de Bash-versie de BUG heeft of het zal niets tonen als het een gepatchte versie is.
Zoals aangegeven in de inleiding, definieert deze BUG een reeks kwetsbaarheden die door een aanvaller kunnen worden gebruikt om computers op afstand te besturen. Binnen deze varianten zijn er sommige wat complexer, andere heel eenvoudig en sommige meer of minder complex. Er zijn varianten die verband houden met Apache- en CGI-modules, andere voor de DHCP-client en sommige wat uitgebreider dan andere.
Een van de eenvoudigste gevallen zal worden gebruikt voor deze gids, shellShock-aanval op GNU / Linux DHCP-client.
Betrokken systemenSlachtoffer gastheer:
GNU/Linux met Bash 4.3
DHCP-client isc-dhclient-4.2.4
IP 192.168.1.88 (via DHCP)
Aanvallende gastheer:
Windows XP
DHCP-server "tftp32" door Ph. Jounin
IP-adres: 192.168.1.100
VERGROTEN
Voor de proof of concept gaan we uit van een LAN waarin zowel het slachtoffer als de aanvaller zijn aangesloten.
Aangezien de DHCP-clientsoftware wordt uitgevoerd met beheerdersrechten, zal de aanvaller proberen om kwaadaardige code op te nemen in een of andere DHCP-optieparameter in de DHCP-configuratie die aan het slachtoffer is toegewezen.
Proces
1) De aanvaller voert de DHCP-servicesoftware uit {(ftp32 ”by Ph. Jounin) werd gebruikt voor deze handleiding}
1.1) Selecteer de netwerkinterface die u wilt gebruiken en druk op de knop "Instellingen"
1.2) Configureer de opties om alleen de DHCP-service uit te voeren.
1.3) Ga naar het tabblad "DHCP" en configureer als volgt:
1.4) Opmerking in het veld "Extra optie" is optie 114 (gebruikt in VOIP) gespecificeerd en de definitie van de Bash-functie en de kwaadaardige code zijn ingevoerd in het optiedetailveld:
() {genegeerd;}; echo 'CODE GENJECTEERD'; / bin / kat / etc / passwd1.5) Druk op "OK", de DHCP-service is klaar.
2) Voer in de systeemterminal van het slachtoffer de volgende opdracht uit om de syslog van het systeem bloot te leggen voor wanneer we het DHCP-verzoek uitvoeren:
# staart -f / var / log / syslog &3) Ervan uitgaande dat eth1 de netwerkinterface van het slachtoffer is, voer je de DHCP-client uit:
# dhclient eth14) De opdracht maakt het DHCP-verzoek en de aanvaller de bijbehorende toewijzing:
5) In de terminal van het slachtoffer, dankzij het staartcommando dat op de achtergrond het systeemsyslog liet zien, wordt de uitvoering van de geïnjecteerde code weergegeven, in dit geval wordt de tekenreeks "INJECTED CODE" weergegeven en vervolgens de inhoud van het bestand / etc / wachtwoord van het slachtoffer (had veel erger kunnen zijn…):
Dit laatste deel is te danken aan het commando "/ bin / kat / etc / passwd”Dit maakt deel uit van de string die is opgegeven als optie 114.
De aanvaller kan andere commando's hebben uitgevoerd en elke actie hebben uitgevoerd, aangezien hij "root"-rechten heeft, aangezien de DHCP-client van het slachtoffer met die rechten draait.
OverwegingenVoor deze handleiding is gemeenschappelijke software gebruikt, zonder variaties op het slachtoffersysteem. Dit beveiligingslek is aanwezig in andere toepassingen die Bash gebruiken om parameters of scripts op het systeem uit te voeren.
is noodzakelijk pas de bijbehorende updates toe op het systeem om dit type aanval te voorkomen.
Het is de moeite waard om te verduidelijken dat de hier gepresenteerde inhoud zowel nuttig is om de mechanismen van de aanval te begrijpen als om het bewustzijn over dit laatste punt te vergroten. Houd er rekening mee dat deze uitspraak al minstens 20 jaar bestaat, dus het kan zijn dat deze lang is toegepast voordat deze werd vrijgegeven.
Vond je deze Tutorial leuk en heb je eraan geholpen?Je kunt de auteur belonen door op deze knop te drukken om hem een positief punt te geven