11/01/2012

Script kiddie ed errore HTTP 404: tiriamo le somme

Non è certamente un caso che abbia configurato swatch in modo da tenere d'occhio anche gli errori HTTP 404 (Not Found). In questo modo ho potuto "registrare" in un file apposito tutti i tentativi di cracking perpetrati contro i miei server Web, individuando quali sono le URL cercate dai lamer di turno.

Ecco le 2 entry più significative:

211.191.168.214 - - [26/Dec/2011:21:01:57 +0100] "GET /admin/Y-ivrrecording.php?php=info&ip=uname HTTP/1.1" 404 2050 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9) Gecko/2008052906 Firefox/3.0"

173.243.121.58 - - [06/Jan/2012:19:54:16 +0100] "GET /admin/config.php HTTP/1.1" 404 2041 "-" "Python-urllib/2.4"

Nel primo caso hanno verificato la presenza di FreePBX sulla mia macchina (ovviamente con interfaccia di management in forwarding e dunque accessibile dall'esterno).

Nel secondo caso, invece, hanno controllato se sul mio server fosse presente l'interfaccia di gestione relativa a trixbox. Ho optato per trixbox (anzichè PHPMyAdmin), in quanto, dopo aver lanciano un nmap avente come target l'IP sorgente loggato, la porta TCP 443 (HTTPS) risultava in ascolto e proprio grazie ad essa era raggiungibile l'interfaccia Web di trixbox. Si trattava quindi di una testa di ponte.

Inoltre, dallo User Agent (Python-urllib/2.4) si può avere la certezza che si tratta di uno script (editato in Python), il cui compito è quello di scansionare range di IP alla ricerca di macchine vulnerabili.

Tra qualche mese vedrò di stilare un nuovo report.

A presto.

Swatch: configurazione per il monitoraggio dei server FTP (vsftpd)

Ecco la configurazione di swatch che sto utilizzando sui miei server per tenere d'occhio il demone vsftpd:

ignore /127.0.0.1/

#FTP File Status OK
watchfor  /150/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP File Status OK

#FTP Command Not Implemented
watchfor  /202/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP Command Not Implemented

#FTP User Logged Out
watchfor  /221/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP User Logged Out

#FTP Directory Send OK
watchfor  /226/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP Directory Send OK

#FTP User Logged In
watchfor  /230/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP User Logged In

#FTP Requested File Action Ok
watchfor  /250/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP Requested File Action Ok

#FTP Service Not Avaliable
watchfor  /421/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP Service Not Available

#FTP Can't Open Data Connection
watchfor  /425/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP Can't Open Data Connection

#FTP Transfer Aborted
watchfor  /426/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP Transfer Aborted

#FTP File Unvailable
watchfor  /450/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP File Unvailable

#FTP Command Unrecognized
watchfor  /500/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP Command Unrecognized

#FTP Syntax Error
watchfor  /501/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP Syntax Error

#FTP Command Not Implemented
watchfor  /502/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP Command Not Implemented

#FTP Bad Sequence Of Commands
watchfor  /503/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP Bad Sequence Of Commands

#FTP User Not Logged In
watchfor  /530/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP User Not Logged In

#FTP Illegal File Name
watchfor  /553/
     echo
     mail addresses=vostro.indirizzo@email.it,subject=SWATCH HOME: FTP Illegal File Name

 

ftp,vsftpd,simple watchdog,status code,logging,swatch,rc.local

Come potete notare, le espressioni regolari verificano che all'interno del file /var/log/vsftpd.log siano presenti gli status code tipici del protocollo FTP.

Occorre precisare, però, che per default vsftpd non prevede il logging degli status code. Per abilitare tale funzione occorre modificare il file /etc/vsftpd.conf nel modo seguente:

xferlog_enable=YES

log_ftp_protocol=YES

xferlog_std_format=NO

A modifica completata riavviamo il demone in questione:

nightfly@nightbox:~$ sudo service vsftpd restart

ed infine inseriamo una entry nel file /etc/rc.local in modo da rendere automatica l'esecuzione di swatch per il monitoraggio di vsftpd ad ogni avvio del sistema:

swatch -c /etc/swatchftp.conf -t /var/log/vsftpd.log

Ora anche vsftpd può definirsi "sotto controllo".

Alla prossima.

PS: per una lista (semi)completa degli status code relativi al protocollo FTP, potete consultare questo link.

05/01/2012

PSAD: individuare i port scan diretti ai nostri server

PSAD (Port Scan Attack Detector), è un software utile ed abbastanza robusto, in grado di individuare l'indirizzo IP sorgente di un eventuale attacco port scan lanciato verso i nostri server. Nella fattispecie, in questo post illustrerò come installarlo e configurarlo.

 

psad,nmap,portscan attack,iptables,logging


Procediamo dunque con l'installazione del pacchetto citato in precedenza, digitando:

nightfly@nightbox:~$ sudo apt-get install psad

Poichè tale software si basa sui log generati da iptables, è necessario che sul nostro server siano attive le seguenti regole di firewalling:

iptables -A INPUT -j LOG
iptables -A FORWARD -j LOG

Personalmente ho deciso di abilitare tali regole direttamente all'avvio del server, in modo da rendere psad subito operativo. Modifichiamo dunque il file /etc/rc.local:

nightfly@nightbox:~$ sudo nano /etc/rc.local

aggiungendo le entry:

#psad

iptables -A INPUT -j LOG
iptables -A FORWARD -j LOG

Ovviamente, dopo aver installato psad è necessario configurarlo. Per fare ciò dobbiamo aprire in scrittura il file psad.conf, presente nella directory /etc/psad:

nightfly@nightbox:~$ sudo nano /etc/psad/psad.conf

Inseriamo l'indirizzo email a cui verranno inviati gli alert generati da psad:

EMAIL_ADDRESSES             vostro.indirizzo@email.it;

impostiamo correttamente la soglia che fa scattare gli alert (ovvero il numero minimo di porte vittima del port scan):

PORT_RANGE_SCAN_THRESHOLD   3;

e successivamente facciamo in modo che vengano ignorati alcuni indirizzi IP inoffensivi. Per fare ciò occorre modificare il file /etc/psad/auto_dl, inserendo ad esempio queste direttive:

127.0.0.1       0;
193.204.114.232 0;
193.204.114.233 0;
10.0.3.0/24        0;
224.0.0.251     0;

Lo 0 indica il grado più basso di pericolosità associato all'IP, dove per pericolosità si intende un valore intero compreso nell'intervallo [0; 5].

Infine, riavviamo psad:

nightfly@nightbox:~$ sudo service psad restart

ed abbiamo finito.

Da notare che la configurazione trattata in questo post è piuttosto minimale e di tipo passivo, ovvero si limita ad individuare gli attacchi senza bloccarli. Potete però fare in modo che, appena psad riconosce un eventuale attacco, proceda automaticamente con la creazione di una regola iptables per bloccarlo (in questo caso parliamo di configurazione attiva).

A presto.

10:00 Scritto da: nazarenolatella in Sicurezza | Link permanente | Commenti (0) | Segnala | Tag: psad, nmap, portscan attack, iptables, logging | OKNOtizie |  Facebook