#!/usr/bin/perl #Interfaces with zeustracker.abuse.ch and parses active drop sites #Can be used with cron to generate a daily email use Data::Dumper; use LWP::Simple; use LWP::UserAgent; use MIME::Lite; MIME::Lite->send('smtp','#addyoursmtpserver', Timeout=>60); open (STDOUT, ">> zeus.csv"); use LWP::Simple; use LWP::UserAgent; use HTTP::Request::Common; use Socket; my $ua = new LWP::UserAgent; $ua->agent("Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1"); my $req = new HTTP::Request GET => 'https://zeustracker.abuse.ch/monitor.php?browse=dropzones&filter=online'; my $res = $ua->request($req); my $content = $res->content; if (defined $content) { @data = $content; print "DateAdded, IP, Domain, URL, Status\n"; foreach $line (@data){ while ($content =~ m/\(\d+\-\d+\-\d+)\<\/td\>\\(.*?)\<\/a\>\<\/td\>\(.*?)\<\/td\>/g){ my $date = $1; if ( ! $date) { $date = "-"; } $ipaddr = gethostbyname($2); if($ipaddr){ printf "$date, "."%s\n" , inet_ntoa($ipaddr).", $2, $3, $4" ; } else{ print "$date , $2, Server Down, $3, Offline\n"; } } } } my $msg = MIME::Lite->new( From => '', To => '', Cc => '', Subject => 'Daily Zeus Tracker Update', Type => 'multipart/mixed', Data =>"", ); $msg->attach( Type => 'TEXT', Data => "Caution Attachment Contains Updated Feed of Zeus Drop Zone Sites", ); $msg->attach( Type => 'zip', Path => 'zeus.csv', Filename => 'zeus.csv', Disposition => 'attachment', ); $msg->send; system ("rm -rf zeus.csv");