Log delle intrusioni su MySQL - parte 2
by admin on Apr.25, 2009, under Hacking, Sicurezza, Società
Se qualcuno si fosse cimentato o si volesse cimentare col target ULOG di iptables allo scopo di effettuare la cattura dei tentativi di intrusione, così come spiegato nel post precedente, si sarà alla fine ritrovato (o si ritroverà) con una tabella popolata di record in cui i dati relativi all’ indirizzo IP sorgente sono memorizzati come numeri interi.
mysql> select Distinct(ip_saddr), tcp_dport from ulog; +------------+-----------+ | ip_saddr | tcp_dport | +------------+-----------+ | 2537620586 | 445 | | 2537620586 | 139 | | 2537649241 | 445 | +------------+-----------+ 3 rows in set (0.00 sec)
Rendendosi necessaria una conversione, di seguito c’è un piccolo script con una funzione che fa proprio questo lavoro, prendendo in ingresso un indirizzo IP codificato come numero intero, e restituendolo nella abituale forma dotted quad.
<?php
function int2ip($dec)
{
// Necessario se dechex(ip sotto forma di intero)
// è più grande di 7fffffff
if($dec > 2147483648)
{
$result = dechex($dec - 2147483648);
$part1 = dechex($dec / 268435456);
$part2 = substr($result,-7);
$hex = $part1.str_pad($part2, 7, "0000000", STR_PAD_LEFT);
}
else
{
$hex =dechex($dec);
}
// Spezza la cifra esadecimale in un quartetto di interi.
$part1 = hexdec( substr($hex, 0, 2) );
$part2 = hexdec( substr($hex, 2, 2) );
$part3 = hexdec( substr($hex, 4, 2) );
$part4 = hexdec( substr($hex, 6, 2) );
//
// Ricombina il quartetto di interi nel formato stringa
// di un indirizzo ip.
$ip = sprintf("%s.%s.%s.%s", $part1, $part2, $part3, $part4);
return($ip);
}
$res_ip=int2ip($argv[1]);
print $res_ip;
?>
# php int2ip.php 2537649241
151.65.116.89

