ANTICHAT.RU VIDEO.ANTICHAT.RU НОВЫЕ СООБЩЕНИЯ ФОРУМ >> Абузоустойчивые Сервера, VDS/VPS, Хостинг и Домены! Лучший сервис! << Есть вопросы по взломам/уязвимостям/защите/шифрованию/криптографии? Вернуться Форум АНТИЧАТ > КОДИНГ > PHP, PERL, MySQL, JavaScript. Перезагрузить страницу SOCKS4/5 Sorter + checker Поиск на форуме Расширенный поиск Ответ Опции темы Поиск в этой теме Опции просмотра [PERL] SOCKS4/5 Sorter + checker #1 Старый 14.02.2008, 12:36 Аватара для biophreak biophreak Reservists Of Antichat - Level 6 Регистрация: 03.08.2007 Адрес: #!/usr/bin/perl Сообщения: 335 Провел на форуме: 1 неделю 2 дня Репутация: Специалист (6/320) ± По умолчанию [PERL] SOCKS4/5 Sorter + checker Для упрощения себе жизни сделал сортировщик и чекер листов соксов: 1. Определяет тип прокси (SOCKS4/SOCKS5) 2. Пытается проломится на него в гугл, принтит, если прокси валидный( читайте публичный), при остальных "ошибках"(таких как запрос авторизации, идента, GSSAPI авторизация итд) не принтит прокси. Юзать: ./socks.pl list.txt (можно еще некоторые параметры указать, для списка - просто запустите скрипт без параметров), где list.txt - файл с соксами в формате ип:порт. UPDATE: Таки выдалось немного времени - прикрутил треды и еще немножко удобностей Знаю что немного пизд*цкое распределение проксей между потоками, но что сделаешь - мозгов пока что хватило только на это Сделал нормальные таймауты... Скрипт не требует никаких дополнительных модулей ) ЗЫЖ Адекватные отзывы и предложения приветствуются PHP код: #!perl -s # SOCKS4/4a/5 Checker v1.1 # (C) by biophreak # Thnx: KSURi, nekd0 for help. # Yeah, i know about ugly proxy distribution between threads :) use warnings 'all'; use strict; use diagnostics; use Socket; use Fcntl; use Errno; use threads; $| = 1; my %SOCKS4_CONNECT_RESPONSES = ( 90 => "request granted", 91 => "request rejected or failed", 92 => "request rejected, ident required", 93 => "request rejected, ident mismatch" ); my %SOCKS5_METHODS = ( 0 => "no authentication required", 1 => "GSSAPI", 2 => "username/password", 255 => "no acceptable methods" ); my %SOCKS5_CONNECT_RESPONSES = ( 0 => "succeeded", 1 => "general SOCKS server failure", 2 => "connection not allowed by ruleset", 3 => "Network unreachable", 4 => "Host unreachable", 5 => "Connection refused", 6 => "TTL expired", 7 => "Command not supported", 8 => "Address type not supported", 90 => "Protocol mismatch", 112 => "Protocol mismatch" ); my $sockslist = shift || exit print "[ERROR] Specify sockslist!\n$0 [threads num](default: 50) [connection timeout](default: 10) [socks4 sorted list](default: socks4.txt) [socks5 sorted list](default: socks5.txt)\n"; my $threads = shift || 50; my $timeout = shift || 10; my $s4l = shift || 'socks4.txt'; my $s5l = shift || 'socks5.txt'; open my $S, '<', $sockslist or die "Cannot open file $sockslist ($!)\n"; my @socks = <$S> and close $S; open my $S4,'>>', $s4l or die "Cant open/create SOCKS4 file ($!)\n"; open my $S5,'>>', $s5l or die "Cant open/create SOCKS4 file ($!)\n"; my($answer,@thr,%spl_socks); my $proxyperthr = (scalar(@socks) / $threads); (print "Threads are more then proxys =)\nSetting threads to ".scalar@socks."\n" and $threads = scalar@socks) if($threads > scalar@socks); for(my $i = 1;$i <= $threads;$i++) { last if scalar @socks <= 0; push(@{$spl_socks{"sock".$i}},shift @socks) for(1..$proxyperthr); push(@{$spl_socks{"sock".$i}},shift @socks) if(scalar @socks > 0 and scalar @socks > 2*$proxyperthr); push(@{$spl_socks{"sock".$i}}, @socks) if($i == $threads and scalar @socks > 0); } foreach my $sck(%spl_socks) { threads->create(&ch,@{$spl_socks{$sck}}) if exists $spl_socks{$sck}; } $_->join foreach(threads->list); close $S5; close $S4; undef %spl_socks; sub ch { my @soc = @_; CHECK: for(0..$#soc) { if($soc[$_]) { my ($server, $port) = split ':', shift @soc; $server =~ s/r+|n+|s+//go; $port =~ s/r+|n+|s+//go; checkSocks($server,$port); } } } sub checkSocks { my($server,$port) = @_; socket(SOCK, AF_INET, SOCK_STREAM, 6) or ret("[ERROR] Cannot open socket ($!)\n"); fcntl(SOCK, F_SETFL, O_NONBLOCK) or ret("[ERROR]:[FCNTL] ($!)\n"); unless (connect(SOCK, sockaddr_in($port, inet_aton($server)))) { Errno::EINPROGRESS == $! or Errno::EWOULDBLOCK or ret("[ERROR] Cannot connect to $server:$port ($!)\n"); vec(my $win = '', fileno(SOCK), 1) = 1; ret("[ERROR] $server:$port : timed out\n") unless (select(undef, $win, undef, $timeout)); if (defined (my $ret = getsockopt(SOCK, SOL_SOCKET, SO_ERROR))) { ret("[ERROR] Connection to $server:$port failed ($!)\n") if $! = unpack('i', $ret); } elsif (!getpeername(SOCK)) { (goto CHECK and close SOCK); ret("[ERROR] Connection to $server:$port failed ($!)\n"); } } fcntl(SOCK, F_SETFL, 0); select((select(SOCK), local $| = 1)[0]); print SOCK pack("CCC",5,1,0); sysread(SOCK,$answer,32) or (ret("[ERROR] Cannot read from socket ($server:$port) ($!)\n")); close SOCK; if(unpack('C',$answer) eq 5 or $answer eq pack('C',5) or $answer eq pack('C',05)) { checkSocks5($server,$port) } elsif(unpack('C', $answer) eq 0 or $answer eq pack('C',0) or $answer eq pack('C',00)) { checkSocks4($server,$port) } else {ret("[WARN] $server:$port is not a SOCKS4/SOCKS4a/SOCKS5\n") } } sub checkSocks5 { my($server,$port) = @_; my($mssg, $repcode); socket(SOCK, AF_INET, SOCK_STREAM, 6) or ret("[ERROR] Cannot open socket ($!)\n"); connect(SOCK, sockaddr_in($port, inet_aton($server))) or ret("[ERROR] Cannot connect to $server:$port ($!)\n"); select((select(SOCK), local $| = 1)[0]); print SOCK pack("CCC", 5, 1, 0) or ret("[ERROR] Cannot send to socket ($server:$port) ($!)\n"); sysread(SOCK,$mssg,32) or ret("[ERROR] Cannot read from socket ($server:$port) ($!)\n"); $repcode = (unpack("C*", $mssg))[1]; ret("[WARN] $server:$port is SOCKS5 proxy,but is not usable ($repcode - $SOCKS5_METHODS{$repcode})\n") unless($repcode == 0); print SOCK pack("CCCCa4n", 5, 1, 0, 1, inet_aton('64.233.167.99'), 80) or ret("[ERROR] Cannot send to socket ($server:$port) ($!)\n"); sysread(SOCK,$mssg,32) or ret("[ERROR] Cannot read from socket ($server:$port) ($!)\n"); $repcode = (unpack("C*", $mssg))[1]; ret("[WARN] $server:$port is SOCKS5 proxy,but is not usable ($repcode - $SOCKS5_CONNECT_RESPONSES{$repcode})\n") unless($repcode == 0); print "[+] $server:$port is good SOCKS5 proxy\n"; print $S5 $server.':'.$port."\n"; close SOCK; } sub checkSocks4 { my($server,$port) = @_; my($mssg, $repcode); socket(SOCK, AF_INET, SOCK_STREAM, 6) or ret("[ERROR] Cannot open socket ($!)\n"); connect(SOCK, sockaddr_in($port, inet_aton($server))) or ret("[ERROR] Cannot connect to $server:$port ($!)\n"); select((select(SOCK), local $| = 1)[0]); print SOCK pack("CCnA4x", 4, 1, 80, inet_aton('64.233.167.99')); sysread(SOCK,$mssg,32) or ret("[ERROR] Cannot send to socket ($server:$port) ($!)\n"); $repcode = (unpack("C*", $mssg))[1]; ret("[WARN] $server:$port is SOCKS4/4a proxy,but is not usable ($repcode - $SOCKS4_CONNECT_RESPONSES{$repcode})\n") unless ($repcode == 90); print "[+] $server:$port is good SOCKS4/SOCKS4a proxy\n"; print $S4 $server.':'.$port."\n"; close SOCK; } sub ret { print @_; close SOCK; goto CHECK; } Скачать Последний раз редактировалось biophreak, 21.07.2008 в 13:14. Ответить с цитированием biophreak Посмотреть профиль Репутация Отправить персональное сообщение для biophreak Посетить домашнюю страницу biophreak Найти все сообщения от biophreak Добавить biophreak в список друзей #2 Старый 14.02.2008, 14:36 Аватара для Digimortal Digimortal Banned Регистрация: 22.08.2006 Сообщения: 528 Провел на форуме: 2 месяца 1 неделю 4 дня Репутация: Гуру (45/1095) ± По умолчанию >> # Todo: print results to text files, use threads ну так сразу б уже и сделал, там делов на 10 минут.. ) заместо Код: ... for (my $i=0; $i < scalar @socks; $i++) { my ($server, $port) = split(/:/, $socks[$i]); ... лучше использовать нечто вроде Код: ... while (scalar @socks) { my ($server, $port) = split(/:/, shift @socks); ... особенно если треды заюзаешь.. Ответить с цитированием Digimortal Посмотреть профиль Репутация Отправить персональное сообщение для Digimortal Найти все сообщения от Digimortal Добавить Digimortal в список друзей #3 Старый 21.07.2008, 13:18 Аватара для biophreak biophreak Reservists Of Antichat - Level 6 Регистрация: 03.08.2007 Адрес: #!/usr/bin/perl Сообщения: 335 Провел на форуме: 1 неделю 2 дня Репутация: Специалист (6/320) ± По умолчанию Обновил чекер, что именно - в первом посте, тред ап! Ответить с цитированием biophreak Посмотреть профиль Репутация Отправить персональное сообщение для biophreak Посетить домашнюю страницу biophreak Найти все сообщения от biophreak Добавить biophreak в список друзей #4 Старый 21.07.2008, 13:46 Аватара для mff mff Постоянный Регистрация: 12.03.2008 Адрес: ۞ Сообщения: 824 Провел на форуме: 1 месяц 2 недели 1 день Репутация: Гуру (0/1166) ± Отправить сообщение для mff с помощью ICQ По умолчанию Замечательно! Ответить с цитированием mff Посмотреть профиль Репутация Отправить персональное сообщение для mff Отправить E-mail для mff Найти все сообщения от mff Добавить mff в список друзей #5 Старый 05.01.2009, 15:12 Аватара для Dragon_X Dragon_X Новичок Регистрация: 12.11.2007 Сообщения: 8 Провел на форуме: 18 часов 19 минут 49 секунд Репутация: Новичок (0/5) ± По умолчанию молодец) Ответить с цитированием Dragon_X Посмотреть профиль Репутация Отправить персональное сообщение для Dragon_X Отправить E-mail для Dragon_X Найти все сообщения от Dragon_X Добавить Dragon_X в список друзей Ответ « Предыдущая тема | Следующая тема » Опции темы Версия для печати Версия для печати Отправить на E-mail Отправить на E-mail Опции просмотра Линейный вид Линейный вид Комбинированный вид Комбинированный вид Древовидный вид Древовидный вид Поиск в этой теме Расширенный поиск Оценка этой теме Вы уже оценили эту тему Ваши права в разделе Вы не можете создавать темы Вы не можете отвечать на сообщения Вы не можете прикреплять файлы Вы не можете редактировать сообщения BB-коды Вкл. Смайлики Вкл. [IMG] код Вкл. HTML код Выкл. Показывать контекстные ссылки Быстрый переход ВыберитеПанель управленияПерсональные сообщенияПодпискиКто в ОнлайнеПоиск на форумеГлавная страница форума-------------------- ИНФО МИРОВЫЕ НОВОСТИ Избранное Статьи Наши Статьи Чужие Статьи Forum for discussion of ANTICHAT БЕЗОПАСНОСТЬ И УЯЗВИМОСТИ УЯЗВИМОСТИ Движки CMS и блоги Форумы - Расшифровка хешей Чаты ICQ Форумы E-Mail БЕЗОПАСНОСТЬ *NIX Анонимность Soft - *nix Windows Soft - Windows АнтиАдмин Защита ОС: вирусы, антивирусы, файрволы. ЭЛЕКТРОНИКА и ФРИКИНГ Ссылки Новости мира "железа" Сотовый фрикинг Железо Схемы и программы Телефония и связь Безопасность беcпроводных сетей (Wi-Fi, Bluetooth) ДЛЯ АДМИНИСТРАТОРА WINDOWS Сервера *NIX Сервера ПРОВЕРКА НА УЯЗВИМОСТИ. КОДИНГ PHP, PERL, MySQL, JavaScript. ПО для Web разработчика С/С++, C#, Delphi, .NET, Asm Реверсинг SЕО SЕО - тонкости, методы раскрутки. Партнерки Черные методы раскрутки Белые методы раскрутки Обсуждение Ваших сайтов Статьи Социальные сети Покупка, продажа, услуги в Соц. Сетях ОФФТОП Болталка Покупка, Продажа, Обмен, Раздача ICQ - покупка, продажа. Просьбы о взломах О Работе Покупка, продажа, услуги в Соц. Сетях КВЕСТЫ Antichat's Quest О ФОРУМЕ И САЙТЕ НОВОСТИ ФОРУМА ЖАЛОБЫ И ПРЕДЛОЖЕНИЯ Обсуждение действий модераторов Запросы на исправление рейтингов Video.antichat.ru Комментарии к видео ПРАВИЛА ФОРУМА Похожие темы Тема Автор Раздел Ответов Последнее сообщение Antichat FTP Checker razzzar Soft - Windows 30 20.04.2009 15:01 Ходим в php через socks4/5 h0d PHP, PERL, MySQL, JavaScript. 0 31.12.2007 19:09 Rambler Checker Xszz PHP, PERL, MySQL, JavaScript. 5 21.12.2007 15:09 PayPal Mail Checker 549iK Покупка, Продажа, Обмен, Раздача 4 25.09.2005 10:15 Powered by: vBulletin Version 3.0.x Copyright ©2000 - 2009, Jelsoft Enterprises Ltd. (Ñ) ANTICHAT.RU службы мониторинга серверов