ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > ИНФО > Статьи > Авторские статьи
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Пишем крякер интернета
  #1  
Старый 30.11.2006, 02:58
Аватар для Gh0s7
Gh0s7
Участник форума
Регистрация: 23.11.2006
Сообщений: 226
Провел на форуме:
1045663

Репутация: 864
По умолчанию Пишем крякер интернета

Intro

[Прошу каментить и оценивать]


Почти каждый слышал про сервис domainsdb.net , а многие им пользовались.И им наверно знаком случай когда требуется проверить большое кол-во хостов на предмет наличия всяких потенциально дырявых скриптов (гостевые книги, форума, админки)
nikto здесь использовать не выгодно, т.к. полное сканирование занимает достаточно много времени и проверять им 20 хостов никто не будет.В свое время NSD писал про атаку reverse ip lookup и даже написал небольшой скриптек для проверки хостов на наличие форумов phpbb
Недавно мне пришлось вот так проверить n-ное кол-во хостов на наличие форумов и прочих интересностей.

Inside.

Я решил написать свой скрипт, mini-nikto так сказать.Для удобства решил сделать его полностью автоматизированым.
Вот собственно код:

Код:
#!/usr/bin/perl -w

use IO::Socket;
use threads; 

$ddb_user="Gh0sT___";
$ddb_pass="look";
$dbFiles="files.db";
$_=$ARGV[0];

sub usage() { print "[x] usage: $0 [host]\n"; exit 1;}
sub invalidHost() { print "[x] $ARGV[0] is invalid host\n"; exit 1;}
sub invalidLogin() { print "[x] Login ($ddb_user) or pass is invalid\n"; exit 1;}
sub connectionTimeout { print " Connection to $_[0] timed out\n";}
sub matchAns { return 1 if $_[0]=~m!200|401! ;}
sub noFile { print "[x] No requred files found\n"; exit 1;}

sub check {
open($files,"<$dbFiles") or noFile();
$ip=$_[0];
#Checking files
  while (<$files>) {
	chomp();
	$somesock = new IO::Socket::INET (PeerAddr => "$ip", PeerPort => "80", PeerProto => "tcp", TimeOut => 10) or connectionTimeout($ip) and last;

	$server_check ="GET $_ HTTP/1.1\n";
	$server_check.="Host: $ip\n";
	$server_check.="User-Agent: Smart Bot\n";
	$server_check.="Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\n";
	$server_check.="Accept-Language: en-us,en;q=0.5\n";
	$server_check.="Accept-Encoding: gzip,deflate\n";
	$server_check.="Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\n\n";

	print $somesock $server_check;
	sysread ($somesock, $ans, 20);
	if (matchAns($ans) == 1) { print "[*][Files] Might be interesting: $ip$_\n"}
	close $somesock;
  }

close $files;	
  }

usage() unless $ARGV[0];

print "..:: Simple InetCrack by Gh0s7 ::..\n";

nvalidHost() unless /\d{1,3}\.\d{1,3}.\d{1,3}.\d{1,3}/ or /\w+\.[com|ru|net|biz|org|info]/i;

print "[*] Getting Ip...";
my $h_sock = new IO::Socket::INET (PeerAddr => "domainsdb.net", PeerPort => "80", PeerProto => "tcp");

$len = length("d=$_&x=&y=");
$req = "POST /$_ HTTP/1.1\n";
$req.= "Host: domainsdb.net\n";
$req.= "Cookie: pass=$ddb_pass; user=$ddb_user\n";
$req.= "User-Agent: inetcracker\n";
$req.= "Content-Length: $len\n";
$req.= "\nd=$_&x=&y=";

print $h_sock $req;

while (<$h_sock>) {
  if (/there are <a href\=\"\/.{1,20}/) {
	@res=split (/\"/, $&);
	$_=$res[1];
	s/\///;
	$ip = $_;
	last;
  }
}
print "$ip\n";
print "[*] Starting lookup\n";

close $h_sock;
$h_sock = new IO::Socket::INET (PeerAddr => "domainsdb.net", PeerPort => "80", PeerProto => "tcp");

$req = "GET /$ip HTTP/1.1\n";
$req.= "Host: domainsdb.net\n";
$req.= "Cookie: pass=$ddb_pass; user=$ddb_user\n";
$req.= "User-Agent: inetcracker\n\n";
$i=0;

#<tr><td>1. </td><td><b><a href="http://host.net/"
print $h_sock $req;
while (<$h_sock>) {
  if (m!.{8}[0-9]{1,3}.{16,18} href\=\".{4,25}\"!) {
	@res=split (/\"/, $&);
	next if $res[1]=~m!/whois/!;
	@cut2=split (/\//, $res[1]);
	$host[$i] = $cut2[2];
	$i++;
  }
  invalidLogin() if /Domains list is limited to 3/;
}


print "[*] Lookup finished\n";
print "[*] Found $i hosts\n";

exit unless $i;

foreach (@host) {threads->create(\&check,$_)->detach}

print "[*] Waiting for childs\n";
sleep 200;
print "[*] Finished\n";
Вот файл files.db:

Код:
/postnuke/
/postnuke/html/
/modules/
/phpBB/
/forum/
/forums/
/members/
/porn/
/restricted/
/xxx/
/cgi.cgi/
/webcgi/
/cgi-914/
/cgi-915/
/bin/
/cgi/
/mpcgi/
/cgi-bin/
/ows-bin/
/cgi-sys/
/cgi-local/
/htbin/
/cgibin/
/cgis/
/scripts/
/cgi-win/
/fcgi-bin/
/cgi-exe/
/cgi-home/
/cgi-perl/
/admin/
/clients/
/pass/
/password/
/passwords/
/store/
/users/
/access/
/members/
/private/
/ccbill/
/dmr/
/mastergate/
/dmr/
/epoch/
/netbilling/
/webcash/
/wwwjoin/
/etc/security/
/admins
/clients
/pass
/password
/passwords
/passwd
/passwd.adjunct
/store
/users
/.htpasswd
/.passwd
/robots.txt
/phpmyadmin/
/myphpadmin/
/sqladmin/
Используем так:

perl /path/to/script [host],
Где [host] - собственно хост для проверки.

Outro


Этот мне скрипт реально помог при взломе одного сервера.Надеюсь он поможет о остальным.Отдельное спасибо KSURi за доку по потокам на перле.

Этот код и статья особо не претендуют на какую-то оригинальность или новизну, просто релиз от меня.


Последний раз редактировалось Gh0s7; 30.11.2006 в 04:15..
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
(Статья) Пишем флуд для чата http://chat.scn.ru/ Paranoik Чаты 14 04.07.2006 17:32
Где скачать крякер интернета? tclover Болталка 4 31.03.2006 21:00
Пишем свой BIOS для x86 компьютеров OverClocker Схемы и программы 1 06.03.2005 11:21
Пишем MailBomber на перле foreva Чужие Статьи 3 08.02.2005 07:13
Интернета не будет? FoX's Болталка 17 31.01.2005 10:38



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ