Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz

24.03.2007, 01:18
|
|
Познавший АНТИЧАТ
Регистрация: 09.06.2006
Сообщений: 1,359
Провел на форуме: 5301021
Репутация:
1879
|
|
PHP код:
<?
/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ xxx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ /* /* Forum Dump Parser v0.2 (FDPv0.2) /* by Re@ctor /* http://truenet.net.ru/security/ /* /* /* Скрипт предназначен для частного использования и позволяет /* привести имеющиеся дампы баз данных в единый удобный формат для /* дальнейшего анализа в программе Passwords Pro, либо просто /* в списки для других программ. /* /* Скрипт запрещается использовать в корыстных целях и автор не /* несёт ответственности за возможный ущерб, причинённый от исполь- /* зования данного скрипта. /* /* Скрипт запрещается использовать в противозаконных целях, либо /* целях, ведущих к умышленному или неумышленному нарушению законода- /* тельства Российской Федерации. /* /* Хорошего дня и доброго насроения! ;-) /* Помните про существование TrueNET! =) /* /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~[ xxx ]~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/
###### 1. выходной формат файлов ###### # для брута, формат Passwords Pro #$sort = array('username','password','salt'); # пользователи #$sort = array('email','password','salt'); # мыльники $sort = array('icq','password','salt'); # аськи # помните, что формат PPro - имя:хэш:сальт:расшифр.пароль:комментарий # поэтому надо писать от 2 до 3 значений, т.к. меньше или больше # будет воспринято неверно программой.
# просто базы #$sort = array('email'); # e-mail #$sort = array('icq'); # icq
###### 2. формирование строк ###### $delim = "¤"; # разделитель между значениями $br = "\n"; # чем заканчивать строку (\n - перенос строки)
###### 3. промежуточный вывод ###### $makefiles = 1; # делать ли отдельные файлы для каждого дампа $ext = "txt"; # расширение выходного файла этих файлов
###### 4. параметры сбора информации ###### $site = 1; # если $makefiles = 0;, то получать сведения о сайте # из титла и мета-тегов (необоходимо подключение к сети) и записывать в начало файла # ( удобно при составлении тематических спам-баз ) # формат файла должен быть префиксАДРЕС_САЙТАрасширение, где префикс и расширение любые $site_prefix = ''; # если $site=1, указать префикс файлов $site_ext = '.sql'; # если $site=1, указать расширение файлов $convert = 0; # конвертировать полученный текст в win-1251, если оно не в нём (отключить при багах)
###### 5. общий файл с данными ###### $hashmake = 1; # делать ли единый файл со всеми хэшами $hash_filename = '!PasswordsPro.Hashes'; # имя файла с хэшами
###### 6. выборка из дампов админов в отдельный файл ###### $admins = 1; # сделать файл с хэшами админов дампов $admin_pass = 'password'; # имя ячейки с хэшем пароля $admin_salt = 'salt'; # имя ячейки с салом пароля $admin_comment = array('username','email','icq'); # то что будет в комментарии в полях пассворс-про $admin_filename = '!admin.PasswordsPro.Hashes';
###### 7. (WARNING!) имя первой ячейки в таблице ###### $firstintable = 'userid'; # название первой ячейки в таблице (важно!)
ini_set("max_execution_time","86400"); set_time_limit(0);
function make($value) { return preg_replace("'\'(.*?)\''i",'\\1',$value); } function checksalt($salt) { if(strlen($salt)>3) return str_replace(array("\\\\",'\"',"\'"),array("\\",'"',"'"),$salt); else return $salt; } function koi($txt) { return convert_cyr_string($txt,'k','w'); } function iso($txt) { return convert_cyr_string($txt,'i','w'); } function myau() { echo "\n\nDone! ;-D\n\nNice day. Visit http://truenet.net.ru/ !\n\n"; }
$d=opendir('.'); while(($e=readdir($d))!=false) { if($e=='.'||$e=='..'||$e==$admin_filename||$e==$hash_filename||$e==$argv[0]) continue; if(is_file($e)) { if($makefiles==1)$f = fopen("$e.$ext","w+"); echo "[+] $e (".filesize($e)." bytes)\n"; $file = file($e); foreach($file as $a) { $tmp = explode(' ',$a); $tablesuf=$tmp[1]; if(!$vars) { if($tablesuf==$firstintable) { $vars[]=array('name'=>$firstintable,'num'=>0); } continue; } foreach(array_unique(array_merge($sort,$admin_comment)) as $s) { if($tablesuf==$s) { $vars[]=array('name'=>$s,'num'=>count($vars)); $y=1; } } if(!$y) $vars[]='b'; else unset($y); if(strstr($a,'PRIMARY KEY')) break; } foreach($file as $a) { if(strstr($a,"INSERT INTO")) { $tmp = preg_replace("'INSERT INTO (.*?) VALUES\((.*?)\);'i",'\\2',$a); $values = explode(',',$tmp); foreach($values as $v) { $m[] = str_replace(array("\r","\n"),'',$v); } foreach($sort as $s) { if(!$vars) { echo "[!] Can't get table values from $e =[\n"; break; } else foreach($vars as $v) { if($admins==1&&$hashmake==0&&$makefiles==0) { if(!$tr) $tr[]=$e; if($v['name']==$admin_pass) $tr[]=make($m[$v['num']]); elseif($v['name']==$admin_salt) $tr[]=checksalt(make($m[$v['num']])); foreach($admin_comment as $comm) if($comm==$v['name']) $comment[] = make($m[$v['num']]); $admok=1; } else { if($s==$v['name']) { if($s=='salt') $tm[] = checksalt(make($m[$v['num']])); else $tm[] = make($m[$v['num']]); } if($admins==1&&!$admok) { if(!$tr) $tr[]=$e; if($v['name']==$admin_pass) $tr[]=make($m[$v['num']]); elseif($v['name']==$admin_salt) $tr[]=checksalt(make($m[$v['num']])); foreach($admin_comment as $comm) if($comm==$v['name']) $comment[] = make($m[$v['num']]); } } } if($admok==1) break; $admok=2; } if($tm[0])$globhash[]=$towrite[]=@implode($tm,$delim); if($admins==1)if($tr[0])$odmen[]=@implode($tr,$delim).$delim.$delim.@implode($comment,', '); unset($tr); unset($m); unset($tm); unset($comment); if($admok==1) break; } } if($makefiles==1) { if($site==1) { $host = preg_replace("'$site_prefix(.*?)$site_ext'i",'\\1',$e); echo "[:] connecting to $host..\n"; $fp = fsockopen($host,80,&$errno,&$errstr,5); if(!$fp) echo "[:] Error connecting $host ($errno - $errstr)\n"; fputs($fp,"GET / HTTP/1.0\r\nUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en)\r\nHost: $host\r\nAccept-Language: ru\r\nAccept-Charset: windows-1251, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1\r\n\r\n"); while(!feof($fp)) { $tmp=fgets($fp,1000); if(preg_match("'charset='i",$tmp)||!$schar) { $ch=preg_replace("'(.*?)charset=(.*?)\r\n'i",'\\2',$tmp); if(preg_match("'koi8-r'i",$ch)) $koi=1; elseif(preg_match("'iso8859-5'i",$ch)) $iso=1; $schar=1; } elseif(preg_match("'<title>(.*?)</title>'i",$tmp)) { $title=preg_replace("'(.*?)<title>(.*?)</title>(.*?)'i",'\\2',$tmp); echo "[:] TITLE ok..\n"; } elseif(preg_match("'<meta (.*?)keywords(.*?)>'i",$tmp)) { $kiwords=preg_replace("'(.*?)<meta (.*?)content=(\"|\')(.*?)(\"|\')(.*?)>(.*?)'i",'\\4',$tmp); echo "[:] KEYWORDS ok..\n"; } elseif(preg_match("'<meta (.*?)description(.*?)>'i",$tmp)) { $descr=preg_replace("'(.*?)<meta (.*?)content=(\"|\')(.*?)(\"|\')(.*?)>(.*?)'i",'\\4',$tmp); echo "[:] DESCRIPTION ok..\n"; } elseif(preg_match("'</head>'i",$tmp)||preg_match("'<body'i",$tmp)) break; } fclose($fp); if($koi||$convert==1) { $title=koi($title); $kiwords=koi($kiwords); $descr=koi($descr); } if($iso||$convert==1) { $title=iso($title); $kiwords=iso($kiwords); $descr=iso($descr); } $info="Site: $host\nTitle: $title\nDescription: $descr\nKeywords: $kiwords\n\n"; $title=$host=$descr=$kiwords=''; } echo "[~] sorting and writing hashes in $e.$ext..\n"; @asort($towrite); fwrite($f,$info.@implode($towrite,$br)); fclose($f); unset($info); } unset($vars); unset($file); unset($towrite); unset($admok); } } if($hashmake==1) { echo "[*] sorting & writing all hashes..\n"; @asort($globhash); $f = fopen($hash_filename,"w+");fwrite($f,@implode($globhash,$br));fclose($f);} if($admins==1) { echo "[*] sorting & writing admin hashes..\n"; @asort($odmen); $f = fopen($admin_filename,"w+"); fwrite($f,@implode($odmen,$br)); fclose($f);}
myau(); ?>
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|