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

30.11.2006, 02:58
|
|
Участник форума
Регистрация: 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..
|
|
|

30.11.2006, 16:26
|
|
Участник форума
Регистрация: 23.11.2006
Сообщений: 226
Провел на форуме: 1045663
Репутация:
864
|
|
Если кому-то интересна эта тулза - прошу отписаться, возможно будут новые версии.
|
|
|

30.11.2006, 17:03
|
|
Постоянный
Регистрация: 06.06.2006
Сообщений: 515
Провел на форуме: 1985206
Репутация:
963
|
|
Код:
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;
Очепятка =/
Идея конечно не нова, но исполенение мне нравится)
Тока надо расширить базу... Распотраши тот-же "никто" например...
Я у тебя кое-что позаимствую наверное, если ты не против)
|
|
|

30.11.2006, 17:20
|
|
Banned
Регистрация: 22.08.2006
Сообщений: 608
Провел на форуме: 6144796
Репутация:
1095
|
|
там ошибка вылазит, если домен >1 уровня..
|
|
|

30.11.2006, 17:22
|
|
Постоянный
Регистрация: 09.07.2006
Сообщений: 443
Провел на форуме: 2382453
Репутация:
354
|
|
Digimortal спасиб....
_Great_ не указывай где мне постить, я просто попросил проветь этот сплоит на этом серваке и все.... я не просил его ломать или что то ещё!
|
|
|

30.11.2006, 17:23
|
|
Познающий
Регистрация: 27.05.2006
Сообщений: 30
Провел на форуме: 1141882
Репутация:
135
|
|
Сообщение от ~Real F@ck!~
Digimortal спасиб....
_Great_ не указывай где мне постить, я просто попросил проветь этот сплоит на этом серваке и все.... я не просил его ломать или что то ещё!
Ето не сплоит! 
|
|
|

30.11.2006, 17:25
|
|
Постоянный
Регистрация: 09.07.2006
Сообщений: 443
Провел на форуме: 2382453
Репутация:
354
|
|
TreniX хз, почему же это не сплоит? Написан на перле и выполняет функцию сплоита! =)
|
|
|

30.11.2006, 17:27
|
|
Познающий
Регистрация: 27.05.2006
Сообщений: 30
Провел на форуме: 1141882
Репутация:
135
|
|
Сообщение от ~Real F@ck!~
TreniX хз, почему же это не сплоит? Написан на перле и выполняет функцию сплоита! =)
Он сканирует хост на наличие директорий!! тех что в втором файле! Перл ето не обезательно сплойты! 
|
|
|

30.11.2006, 17:29
|
|
Постоянный
Регистрация: 09.07.2006
Сообщений: 443
Провел на форуме: 2382453
Репутация:
354
|
|
TreniX я знаю что перл это не обязательно сплоит, но просто сплоиты практически всегда пишут на php или perl.
|
|
|

30.11.2006, 17:32
|
|
Участник форума
Регистрация: 23.11.2006
Сообщений: 226
Провел на форуме: 1045663
Репутация:
864
|
|
KSURi: удивись, база нагло с3.14зжена у никто 
Не вся, конечно, но большИе фрагменты именно оттуда.
На тему заимствования: бери конечно, гпл рулит, только если кусок большой, ориг. автора укажи 
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|