Freesco, NND, CDN, EOS
http://forum.freesco.pl/

Zmagania z wirusami, trojanami itp.
http://forum.freesco.pl/viewtopic.php?f=24&t=12241
Strona 1 z 1

Autor:  Koriolan [ sobota, 29 kwietnia 2006, 13:20 ]
Tytuł:  Zmagania z wirusami, trojanami itp.

Ogólnie mój router nie schodził w load average poniżej 0.35.

Nastąpiła u moich userów fala wirusów, trjanów itp. Poczytałem forum, www.mks.com.pl, i inne rzeczy i doszedłem do wniosku, że nie da się tego zwalczyć za pomocą blokowania portów. Wpadłem na pomysł by logowac na interfejsie WEWNĘTRZNYM pakiety które nie idą do internetu albo mają adres SPOZA sieci wew.

Na firewallu Zciecha zrobiłem coś takiego :
: [/] [] ()
====================================================================
#  B L O K A D Y   A N T Y W I R U S O W E
#====================================================================
#
# Blokada DOCELOWEGO adresu 192.xxx.0.0/16 na eth1 ..
$i -A FORWARD -i eth1 -p tcp -d 192.xxx.0.0/16 -j LOG  -m limit --limit 10/minute --log-prefix "bad_addr_dst "
$i -A FORWARD -i eth1 -p tcp -d 192.xxx.0.0/16 -j DROP

# Nie wpuszczaj na int.wew. nikogo bez 192.xxx..
$i -t nat -A PREROUTING -i eth1  -s ! 192.xxx.0.0/16 -j LOG  -m limit --limit 10/minute --log-prefix "bad_addr_des
$i -t nat -A PREROUTING -i eth1  -s ! 192.xxx.0.0/16 -j DROP
Ogólnie chodzi o wychwycenie pakietów DO i Z adresów PODOBNYCH do sieciowych. Np. mamy sieć 192.10.10.1-255, jeśli ktoś będzie się chciał połaczyć z 192.10.0.100 to oznacza, że jest to WIRUS skanujący sieć (może być user skanujący sieć ale jego też traktuję jak wirusa :-))

Potem już tylko drobne skrypciki wychwytujące z logów delikwentów:
: [/] [] ()
!/bin/bash
# skrypt sprawdzajcy syslog pod katem sieci localnej i zlych adresow docelowych
echo '#'
echo '# WIRUSY !!!'
echo '#'
cat /var/log/syslog | grep bad_addr_dst | grep "Apr 29" > t_bad_dst.txt

cat t_bad_dst.txt | awk '{ print $9" \t"$10" \t"$0  }'| sort  > t_bad_dst_S.txt
cat t_bad_dst.txt | awk '{ print $9" \t"$10 }'| sort -u > t_bad_dst_Su.txt
cat t_bad_dst_S.txt | awk '{ print $1  }'| sort -u  > t_bad_dst_uA.txt
Generuje on kilka plików ułatwiających poszukiwania userów z wirusami/trojanami itp. Kto ciekawy ten sam zgadnie jakią ktory pliczek ma zawartość :-) W przykładzie wycinany jest JEDEN DZIEŃ i u siebie trzeba to wyrzucić.
Drugi skrypcik to taki :
: [/] [] ()
#!/bin/bash
# skrypt sprawdzajcy syslog pod katem sieci localnej i złych adresow zrodlowych
echo '#'
echo '# bad_addr_src'
echo '#'
cat /var/log/syslog | grep bad_addr_src  > t_bad_addr_src.txt
cat t_bad_addr_src.txt | awk '{print $9 }' | sort -u > t_bad_addr_src_uM.txt
cat t_bad_addr_src.txt | awk '{mac=substr($9,23,17); mac = toupper(mac); gsub(/[0-9A-F]+/,"0&", mac); gsub(/0[

exec 3<t_bad_addr_src_uS.txt

echo "" > t_bad_addr_src_uSS.txt

while read -u 3 src dst mac_1 MAC reszta ;do
   # echo "$MAC"
   IP="brak w /etc/ethers"
   grep "$MAC" < "/etc/ethers" | while read IP mac ;do
      echo -e "$src \t $dst \t $mac_1 \t $MAC \t $reszta \t $IP" >> t_bad_addr_src_uSS.txt
   done
done
Jest on troszkę bardziej skomplikowany, gdyż poszukuje prawdziwych IP komputerów ze złymi adresami IP wew. w/g MAC w pliku '/etc/ethers' (mam 'założony' arp :-)) Te adresy
: [/] [] ()
...
Apr 23 22:49:03 s_nnd2 kernel: bad_addr_src IN=eth1 OUT= MAC=00:02:44:a5:73:f9:00:0e:a6:a1:5b:a2:08:00 SRC=195.168.0.5
Apr 23 22:49:04 s_nnd2 kernel: bad_addr_src IN=eth1 OUT= MAC=00:02:44:a5:73:f9:00:0e:a6:a1:5b:a2:08:00 SRC=195.168.0.2
Apr 23 22:49:05 s_nnd2 kernel: bad_addr_src IN=eth1 OUT= MAC=00:02:44:a5:73:f9:00:0e:a6:a1:5b:a2:08:00 SRC=195.168.0.2
...
okazały się mało groźne. Było ich niewiele i generowała je ... kaza czy inny eMule. Nie więcej jak kilka na sekundę.

Po długotrwałej walce z userami:
load average spadł ...ponizej 0.17 a często widzę na nim 0.05, 0.04 itp.

Miłego kombinowania :-)
P.S.
Lektura www.mks.com.pl nasunęła mi jeszcze jeden pomysł znajdowania śmieci. Skanowanie komputerów userów na porcie 80 - jeden z wirusów otwierał ten właśnie port. Spróbowałem nawet ręcznie to zrobić ale do jakiegoś automatyzmu jeszcze nie doszedłem.
P.S.2
Skuteczność tego rozwiązania określiłbym na 95%. Problemem było ...znaleźć antrywirusa, który wykrywałby znalezione przeze mnie śmieci (wirusy-trojany-itp.). Z doświadczeń userów wynika, że nieźle robi to skaner ze strony www.mks.com.pl i Kasperski. Zdarzało się, że user mówi: 'Mam avasta i nie mam wirusów", ale po naszej wizycie zmieniał zdanie :-). Często były to trojany a nie wirusy i trzeba antyspyware itp. to brać.
P.S.3
Troche problemu jak zawsze jest z p2p. Po pierwsze generuje pakiety DO SIEBIE :roll:
Czyli 192.10.10.25 -> 192.10.10.25 oraz jak ciągną userzy od siebie wzajemnie to powstają pakiety 'bezpośrednie' 192.168.10.10.25->192.10.10.26. Ale jak już o ty sie wie to nie jest problem.
P.S.3
Wspomogłem się przełacznikami FSD-1600 Planeta, które KIERUJĄ ruch TYLKO do SERWERA. Kosztują około 200zł i blokują ruch między userami zwłaszcza W SIECI WI-FI. Kombinuję by robić przełaczniki programowane komputerowe, ale mam za mało czasu 8) a pomocników brak.

Autor:  aphex [ wtorek, 5 września 2006, 15:58 ]
Tytuł: 

Mi jakos nie chce to chodzic przy restarcie iptables wyskakuje mi komunikat
: [/] [] ()
 iptables: No chain/target/match by that name
iptables: No chain/target/match by that name

a jesli chodzi o reszte skryptow sprawa wyglada tak

: [/] [] ()
[root@ADsL ~]# /etc/rc.d/skan
#
# WIRUSY !!!
#
cat: /var/log/syslog: Nie ma takiego pliku ani katalogu
[root@ADsL ~]# /etc/rc.d/skan1
#
# bad_addr_src
#
cat: /var/log/syslog: Nie ma takiego pliku ani katalogu
/etc/rc.d/skan1: line 8: unexpected EOF while looking for matching `''
/etc/rc.d/skan1: line 21: syntax error: unexpected end of file

przyznam sie i pewnie to widac ze nie znam sie na programowniu ale z mila checia chcialbym ruszyc ten pomysl u siebie w sieci . Mam wifi ktore czesto kuleje z powodu virusow i trojanow glowne porty sa blokowane ale trojanow pewnie nie zlikfiduje.

Wpis w firewall takze mistrza zciecha
: [/] [] ()
#====================================================================
#  B L O K A D Y   A N T Y W I R U S O W E
#====================================================================
#
# Blokada DOCELOWEGO adresu 192.xxx.0.0/16 na eth1 ..
$i -A FORWARD -i eth1 -p tcp -d 192.168.0.0/255.255.255.0 -j LOG  -m limit --limit 10/minute --log-prefix "bad_addr_dst"
$i -A FORWARD -i eth1 -p tcp -d 192.168.0.0/255.255.255.0 -j DROP

# Nie wpuszczaj na int.wew. nikogo bez 192.xxx..
$i -t nat -A PREROUTING -i eth1 -s ! 192.168.0.0/255.255.255.0 -j LOG  -m limit --limit 10/minute --log-prefix "bad_addr_des"
$i -t nat -A PREROUTING -i eth1 -s ! 192.168.0.0/255.255.255.0 -j DROP


oraz skrypt pierwszy pod nazwa skan

: [/] [] ()
#!/bin/bash
# skrypt sprawdzajcy syslog pod katem sieci localnej i zlych adresow docelowych
echo '#'
echo '# WIRUSY !!!'
echo '#'
cat /var/log/syslog | grep bad_addr_dst | grep "Apr 29" > t_bad_dst.txt

cat t_bad_dst.txt | awk '{ print $9" \t"$10" \t"$0  }'| sort  > t_bad_dst_S.txt
cat t_bad_dst.txt | awk '{ print $9" \t"$10 }'| sort -u > t_bad_dst_Su.txt
cat t_bad_dst_S.txt | awk '{ print $1  }'| sort -u  > t_bad_dst_uA.txt

i ostatni skrypt o nazwie skan1
: [/] [] ()
#!/bin/bash
# skrypt sprawdzajcy syslog pod katem sieci localnej i złych adresow zrodlowych
echo '#'
echo '# bad_addr_src'
echo '#'
cat /var/log/syslog | grep bad_addr_src  > t_bad_addr_src.txt
cat t_bad_addr_src.txt | awk '{print $9 }' | sort -u > t_bad_addr_src_uM.txt
cat t_bad_addr_src.txt | awk '{mac=substr($9,23,17); mac = toupper(mac); gsub(/[0-9A-F]+/,"0&", mac); gsub(/0[

exec 3<t_bad_addr_src_uS.txt

echo "" > t_bad_addr_src_uSS.txt

while read -u 3 src dst mac_1 MAC reszta ;do
   # echo "$MAC"
   IP="brak w /etc/ethers"
   grep "$MAC" < "/etc/ethers" | while read IP mac ;do
      echo -e "$src \t $dst \t $mac_1 \t $MAC \t $reszta \t $IP" >> t_bad_addr_src_uSS.txt
   done
done

w tym ostatnim pewnie trzeba zakonczyc procedure ale nie bardzo wiem gdzie wstawic ' :D no i dlaczego nie mam pliku syslog :D ??

Za pomoc z gory dziekuje :D !!!

Autor:  Koriolan [ piątek, 8 września 2006, 13:52 ]
Tytuł: 

Najważniejsze to uruchomić regułki na iptables !
One powodują logowanie (zapis błędnych danych do /var/log/syslog).
Nie może być błędów zgłaszanych przez iptables !

popróbuj uruchomić regułki tak :

1) Wpisz wszystko z palca moze jest jakiś 'głupi' znak,
2) Pomiń : --log-prefix "bad_addr_dst "
To daje odpowiedni nagłówek w /var/log/syslog
W ostatecznej formie być MUSI ale podczas uruchamiania mozna pominąć.
3) Pomiń : -m limit --limit 10/minute
To ogranicza ilość alarmów w syslog i tak jak wyżej w fazie uruchamiania możesz
pominąć ale w ostatecznej formie MUSI być bo zaleje Ci sysloga !
(jedna linia w syslogu na JEDEN pakiet błędny :!: )

A co do sysloga ....
Hmmm ... MUSISZ gto mieć co najwyżej nie jesteś root'em i nie masz do niego uprawnień...

------------
Jak sie z tym uporasz to daj znać. Dorobiłem do tego skrypt wysyłający mailem raport :-)

Autor:  Koriolan [ piątek, 15 grudnia 2006, 18:06 ]
Tytuł: 

Teraz walczę zBOOTAMI MAILOWYMI.
Zostałem naczelnym spamerem :-(

Zainstalowałem smtp-gated i właściwie jestem gotowy do spaczkowania dla NN 9stare NND).
Po jego uruchomieniu zobaczyłem STRASZNE rzeczy; moi userzy wykonywali
120 TYSIĘCY połaczeń na 1 h :evil:
Ale smtp-gated ich trochę powstrzymuje :-)

Sprawdźcie i u siebie ...

Autor:  czosnekltd [ środa, 14 lutego 2007, 14:29 ]
Tytuł: 

Witam
czy masz juz spaczkowane to smtp-gated? bo były jakies posty o gotowej paczce ale linki są martwe :(

Autor:  Koriolan [ czwartek, 15 lutego 2007, 17:52 ]
Tytuł: 

Na super gotowo to nie.
Ale jak masz troszke wiedzy to już mozna uruchomic.

Autor:  viater [ czwartek, 15 lutego 2007, 21:20 ]
Tytuł: 

Koriolan pisze:
Teraz walczę zBOOTAMI MAILOWYMI.
Zostałem naczelnym spamerem :-(

Zainstalowałem smtp-gated i właściwie jestem gotowy do spaczkowania dla NN 9stare NND).
Po jego uruchomieniu zobaczyłem STRASZNE rzeczy; moi userzy wykonywali
120 TYSIĘCY połaczeń na 1 h :evil:
Ale smtp-gated ich trochę powstrzymuje :-)

Sprawdźcie i u siebie ...

Tu nie ma co trochę powstrzymywać, tylko blokować port 25 userowi, który ma mailery.
http://forum.freesco.pl/viewtopic.php?t=13373&highlight=check25
polecam - check25 naprawdę się u mnie sprawdza.

Autor:  -MW- [ piątek, 16 lutego 2007, 02:18 ]
Tytuł: 

super :)

http://83.18.79.186:85/testy/rc.blok-25

Autor:  siudo [ sobota, 16 lutego 2008, 05:42 ]
Tytuł: 

Cytuj:
# Nie wpuszczaj na int.wew. nikogo bez 192.xxx..
$i -t nat -A PREROUTING -i eth1 -s ! 192.168.0.0/255.255.255.0 -j LOG -m limit --limit 10/minute --log-prefix "bad_addr_des"
$i -t nat -A PREROUTING -i eth1 -s ! 192.168.0.0/255.255.255.0 -j DROP


tutaj zamiast "bad_addr_des " powinno być chyba "bad_addr_src ", czy może się mylę?

Autor:  siudo [ sobota, 16 lutego 2008, 06:06 ]
Tytuł: 

kurcze chyba źle się wkleiło ;/
Cytuj:
cat t_bad_addr_src.txt | awk '{mac=substr($9,23,17); mac = toupper(mac); gsub(/[0-9A-F]+/,"0&", mac); gsub(/0[

???? Wie ktoś jak powinna wyglądać końcówka???

Strona 1 z 1 Strefa czasowa UTC+2godz.
Powered by phpBB® Forum Software © phpBB Group
https://www.phpbb.com/