ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

socks checker
  #1  
Старый 27.02.2008, 19:01
Mescalin
Познающий
Регистрация: 04.07.2007
Сообщений: 49
Провел на форуме:
981994

Репутация: 75
По умолчанию socks checker

сабж ищу,может кто поможет желательно на php =)
 
Ответить с цитированием

  #2  
Старый 27.02.2008, 19:43
Flame of Soul
Участник форума
Регистрация: 25.05.2007
Сообщений: 290
Провел на форуме:
1740746

Репутация: 435
Отправить сообщение для Flame of Soul с помощью MSN
По умолчанию

прости не совсем понимаю вопрос(( тебе надо проверить запущен socks в системе, или тебе нужен скрипт управления socks-ом?

если первое то вот скрипт для проверки статуса демонов, работающих на Linux сервере.
PHP код:
<?php 
function checkd($daemon,$name) { 
  
$ps ="ps ax | grep $daemon | wc -l"
  
$origps exec($ps); 
  
$minone $origps-2
  if (
$minone<1) { 
      
$dataps "only [ $minone ] daemon for [ $daemon ] <br>[ $name ] TOTALY DOWN<br><hr>"
      } 
  if (
$minone==1) { 
      
$dataps "<font color=blue>up</font> only with [ $minone ] [ $daemon ] daemon<br><hr>"
      } 
  if (
$minone>1) { 
      
$dataps "<font color=blue>up</font> with [ $minone ] [ $daemon ] daemons<br>"
      } 
      return 
$dataps
}
echo 
checkd("socks","socks daemon"); 
echo 
checkd("mysqld","mysql daemon"); 
echo 
checkd("httpd","httpd daemon"); 
?>
 
Ответить с цитированием

  #3  
Старый 27.02.2008, 19:54
lsass.exe
Участник форума
Регистрация: 05.08.2007
Сообщений: 236
Провел на форуме:
4625160

Репутация: 457
По умолчанию

Цитата:
Сообщение от Flame of Soul  
прости не совсем понимаю вопрос(( тебе надо проверить запущен socks в системе, или тебе нужен скрипт управления socks-ом?

если первое то вот скрипт для проверки статуса демонов, работающих на Linux сервере.
PHP код:
<?php 
function checkd($daemon,$name) { 
  
$ps ="ps ax | grep $daemon | wc -l"
  
$origps exec($ps); 
  
$minone $origps-2
  if (
$minone<1) { 
      
$dataps "only [ $minone ] daemon for [ $daemon ] <br>[ $name ] TOTALY DOWN<br><hr>"
      } 
  if (
$minone==1) { 
      
$dataps "<font color=blue>up</font> only with [ $minone ] [ $daemon ] daemon<br><hr>"
      } 
  if (
$minone>1) { 
      
$dataps "<font color=blue>up</font> with [ $minone ] [ $daemon ] daemons<br>"
      } 
      return 
$dataps
}
echo 
checkd("socks","socks daemon"); 
echo 
checkd("mysqld","mysql daemon"); 
echo 
checkd("httpd","httpd daemon"); 
?>
ему нужен скрипт, которому скармливаешь список соксов и который проверит их на валид.

По сабжу, тему поднималась не раз, юзай поиск.
 
Ответить с цитированием

  #4  
Старый 27.02.2008, 19:57
a1ex
Banned
Регистрация: 11.10.2006
Сообщений: 682
Провел на форуме:
3750406

Репутация: 271


Отправить сообщение для a1ex с помощью ICQ Отправить сообщение для a1ex с помощью AIM Отправить сообщение для a1ex с помощью MSN Отправить сообщение для a1ex с помощью Yahoo
По умолчанию

1. Определяет тип прокси (SOCKS4/SOCKS5)
2. Пытается проломится на него в гугл, принтит, если прокси валидный( читайте публичный), при остальных "ошибках"(таких как запрос авторизации, идента, GSSAPI авторизация итд) не принтит прокси.
Юзать: ./socks.pl list.txt , где list.txt - файл с соксамив формате ип:порт

Код:
#!perl 
# Simple SOCKS(4/5) sorter and checker 
# Author: biophreak (s-teals.org) 
# Todo: print results to text files, use threads 
use warnings; 
use strict; 
use Socket; 
use IO::Handle; 
my $DEBUG = 0; 
my $sockslist = shift || die '[ERROR] Specify sockslist!'; 
(open S, $sockslist and my @socks = <S> and close S) 
or die "Cannot open file $sockslist: $!\n"; 
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", 
); 
my $answer; 
for (my $i=0; $i < scalar @socks; $i++) 
{ 
my ($server, $port) = split(/:/, $socks[$i]); 
chomp($server, $port); 
socket(SOCK, AF_INET, SOCK_STREAM, getprotobyname('tcp')) 
or (print "Cannot open socket: $!\n" and exit); 
connect(SOCK, sockaddr_in($port, inet_aton($server))) 
or (print "Cannot connect to $server $port: $!\n" and exit); 
SOCK->autoflush(1); 
print SOCK pack("CCC",5,1,0); 
sysread(SOCK,$answer,1) 
or die "Cannot read from socket: $!\n"; 
close SOCK; 
if ($answer eq pack('C',0)) 
{ 
print "$server:$port is SOCKS4/SOCKS4a proxy.\nChecking...\n"if $DEBUG == 1; 
checkSocks4($server,$port); 
} elsif ($answer eq pack('C',5)) 
{ 
print "$server:$port is SOCKS5 proxy.\nChecking...\n"if $DEBUG == 1; 
checkSocks5($server,$port); 
} else { 
print "$server:$port is not SOCKS4/SOCKS5 proxy\n"; 
} 
} 
sub checkSocks5 
{ 
my($server,$port) = @_; 
my($mssg, $repcode, $repmssg); 
socket(SOCK, AF_INET, SOCK_STREAM, getprotobyname('tcp')) 
or (print "Cannot open socket: $!\n" and return 0); 
connect(SOCK, sockaddr_in($port, inet_aton($server))) 
or (print "Cannot connect to $server $port: $!\n" and return 0); 
SOCK->autoflush(1); 
print SOCK pack("CCC", 5, 1, 0) 
or (print "Cannot send to socket: $!\n" and return 0);; 
sysread(SOCK,$mssg,2) 
or (print "Cannot read from socket: $!\n" and return 0); 
$repcode = (unpack("C*", $mssg))[1]; 
$repmssg = $SOCKS5_METHODS{$repcode} 
|| "unknown or reserved reply code"; 
print "$server:$port reply code = $repcode ($repmssg)\n" 
if $DEBUG == 1; 
# print "[ERROR] $server:$port is alive,but isn't usable: $repcode ($repmssg)\n" 
# if $repcode != 0; 
(return 0 and close SOCK) unless($repcode == 0); 
print SOCK pack("CCCCa4n", 5, 1, 0, 1, inet_aton('www.ya.ru'), 80) 
or (warn "Cannot send to socket: $!\n" and return 0);; 
sysread(SOCK,$mssg,10) 
or (warn "Cannot read from socket: $!\n" and return 0); 
$repcode = (unpack("C*", $mssg))[1]; 
$repmssg = $SOCKS5_CONNECT_RESPONSES{$repcode} 
|| "unknown or reserved reply code"; 
print "$server:$port reply code = $repcode ($repmssg)\n" 
if $DEBUG == 1; 
# print "[ERROR] $server:$port is alive,but isn't usable: $repcode ($repmssg)\n" 
# if $repcode != 0; 
(return 0 and close SOCK) unless($repcode == 0); 
print "$server:$port is good SOCKS5 proxy\n"; # Print to file... 
close SOCK; 
return 1; 
} 

sub checkSocks4 
{ 
my($server,$port) = @_; 
my($mssg, $repcode, $repmssg); 
socket(SOCK, AF_INET, SOCK_STREAM, getprotobyname('tcp')) 
or (print "Cannot open socket: $!\n" and return 0); 
connect(SOCK, sockaddr_in($port, inet_aton($server))) 
or (print "Cannot connect to $server $port: $!\n" and return 0); 
SOCK->autoflush(1); 
print SOCK pack("CCnA4x", 4, 1, 80, inet_aton('www.google.com')); 
sysread(SOCK,$mssg,8) 
or (print "Cannot read from socket: $!\n" and return 0); 
$repcode = (unpack("C*", $mssg))[1]; 
$repmssg = $SOCKS4_CONNECT_RESPONSES{$repcode} 
|| "unknown reply code"; 
print "$server:$port reply code = $repcode ($repmssg)\n" 
if $DEBUG == 1; 
# print "[ERROR] $server:$port is alive,but isn't usable: $repcode ($repmssg)\n" 
# if $repcode != 90; 
(return 0 and close SOCK) unless ($repcode == 90); 
print "$server:$port is good SOCKS4/SOCKS4a proxy\n"; # Print to file... 
close SOCK; 
return 1; 
}
 
Ответить с цитированием

  #5  
Старый 27.02.2008, 20:29
Mescalin
Познающий
Регистрация: 04.07.2007
Сообщений: 49
Провел на форуме:
981994

Репутация: 75
По умолчанию

lsass.exe, юзал поиск по сабжу ничего ненашел,только проки чекеры

a1ex, спасиб за копипаст =) это я уже видел хотелось бы на php
 
Ответить с цитированием

  #6  
Старый 27.02.2008, 20:31
a1ex
Banned
Регистрация: 11.10.2006
Сообщений: 682
Провел на форуме:
3750406

Репутация: 271


Отправить сообщение для a1ex с помощью ICQ Отправить сообщение для a1ex с помощью AIM Отправить сообщение для a1ex с помощью MSN Отправить сообщение для a1ex с помощью Yahoo
По умолчанию

Mescalin, а чё на perl не заюзаешь?
 
Ответить с цитированием

  #7  
Старый 28.02.2008, 02:39
t0tal
Новичок
Регистрация: 30.11.2007
Сообщений: 18
Провел на форуме:
326882

Репутация: 22
По умолчанию

Попробуй вотэтот скрипт, незнаю работает ли он вапще.
PHP код:
<?
/**************************************************    **************
*                      *
*                                                               *
* This will perform a basic connectivity and anonymity test     *
*                                                               *
* Simply upload to a php enabled webserver and change the       *
* configurable parameters below if you so desire                *
*                                                               *
* 2005-11-11   v0.1 - Compatible with Charon v0.5.3.5           *
**************************************************    **************/
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head><title>Online proxy tester</title></head>
<body bgcolor="black" text="white">

<?php

// Ensure that the timeouts from fsockopen don't get reported as errors (possible, depends on the php server config)
   
error_reporting(0);
// Limit the amount of proxies that can be tested at any one time
   
$maximum_proxies_to_test 5;
// Enter a password (if required) to protect the page
   
$password '';

// Actual proxyjudge part of the page
   
function return_env_variables()
   {
      echo 
'<pre>'."\n";
      foreach (
$_SERVER as $header => $value )
      {
        if ((
strpos($header 'REMOTE')!== false || strpos($header 'HTTP')!== false || strpos($header 'REQUEST')!== false) && ( strpos($header 'HTTP_HOST') !== 0))
        {
        echo 
$header.' = '.$value."\n";
        }
      }
      echo 
'</pre>';
   }

// Function to go away and get the page (calls through the proxy back to itself)
   
function get_judge_page($proxy)
   {
   
// Depending on the server environment, this timeout setting may not be available.
      
$timeout 15;
      
$proxy_cont '';
      list(
$proxy_host$proxy_port) = explode(":"$proxy);
      
$proxy_fp fsockopen($proxy_host$proxy_port$errornumber$errorstring$timeout);
      if (
$proxy_fp)
      {
         
stream_set_timeout($proxy_fp$timeout);
         
fputs($proxy_fp"GET " $_SERVER['SCRIPT_NAME'] . "?test HTTP/1.0\r\nHost: " $_SERVER['SERVER_NAME'] . "\r\n\r\n");
         while(!
feof($proxy_fp))
         {
               
$proxy_cont .= fread($proxy_fp,4096);
         }
         
fclose($proxy_fp);
         
$proxy_cont substr($proxy_contstrpos($proxy_cont,"\r\n\r\n")+4);
      }
      return 
$proxy_cont;
   }

// Check for the control string to see if it's a valid fetch of the judge
   
function check_valid_judge_response($page)
   {
      if(
strlen($page) < 5)
         return 
false;
      return 
strpos($page'REMOTE_ADDR') !== false;
   }

// Check for the IP addresses
   
function check_anonymity($page)
   {
      if(
strpos($page$_SERVER['LOCAL_ADDR']) !== false)
         return 
false;
      return 
true;
   }

// Takes and tests a proxy
// 0 - Bad proxy
// 1 - Good (non anon) proxy
// 2 - Good (anonymous) proxy
   
function test_proxy($proxy)
   {
      
$page get_judge_page($proxy);
      if(!
check_valid_judge_response($page))
         return 
0;
      if(!
check_anonymity($page))
         return 
1;
      return 
2;
   }

////////// Main Page ////////////

// If this is a judge request, just return the environmental variables
   
if(getenv('QUERY_STRING') == "test")
   {
      
return_env_variables();
   }
// Else check whether we have been passed a list of proxies to test or not
// Should really use $_POST but it's been left as $HTTP_POST_VARS for older versions of php (3.x)
   
elseif( (isset($HTTP_POST_VARS['action']) && $HTTP_POST_VARS['action'] === 'fred') &&
           (isset(
$HTTP_POST_VARS['proxies']) && $HTTP_POST_VARS['proxies'] != '') &&
           ( (
strlen($password) == 0) || (isset($HTTP_POST_VARS['password']) && $HTTP_POST_VARS['password'] === $password) ))
   {
      
$proxies explode("\n"str_replace("\r"""$HTTP_POST_VARS['proxies']), $maximum_proxies_to_test 1);

   
// Set the overall time limit for the page execution to 10 mins
      
set_time_limit(600);

   
// Set up some arrays to hold the results
      
$anon_proxies = array();
      
$nonanon_proxies = array();
      
$bad_proxies = array();

   
// Loop through and test the proxies
      
for($thisproxy 0$thisproxy < ($maximum_proxies_to_test count($proxies) ? count($proxies) : $maximum_proxies_to_test); $thisproxy += 1)
      {
         echo 
'Testing ' $proxies[$thisproxy] . ' .....';
         
flush();
         switch(
test_proxy($proxies[$thisproxy]))
         {
            case 
2:
              echo 
'.. Anon<br>' "\n";
               
$anon_proxies[count($anon_proxies)] = $proxies[$thisproxy];
               break;
            case 
1:
              echo 
'.. Non anon<br>' "\n";
               
$nonanon_proxies[count($nonanon_proxies)] = $proxies[$thisproxy];
               break;
            case 
0:
              echo 
'.. Dead<br>' "\n";
               
$bad_proxies[count($bad_proxies)] = $proxies[$thisproxy];
               break;
         }
      }

      echo 
'<pre>';
      echo 
'<br><b>Anonymous proxies</b>' "\n";
      for(
$thisproxy 0$thisproxy count($anon_proxies); $thisproxy += 1)
         echo 
$anon_proxies[$thisproxy] . "\n";
      echo 
'<br><b>Non-anonymous proxies</b>' "\n";
      for(
$thisproxy 0$thisproxy count($nonanon_proxies); $thisproxy += 1)
         echo 
$nonanon_proxies[$thisproxy] . "\n";
      echo 
'<br><b>Dead proxies</b>' "\n";
      for(
$thisproxy 0$thisproxy count($bad_proxies); $thisproxy += 1)
         echo 
$bad_proxies[$thisproxy] . "\n";
      echo 
'</pre>';
   }
// Just a blank call of the page - show the form for the user to fill in
   
else
   {
      echo 
'<h2>Online Proxy checker</h2>' "\n";
      echo 
'<h4>(http://' $_SERVER['SERVER_NAME'] . $_SERVER['SCRIPT_NAME'] . ')</h4>' "\n";
      echo 
'Enter up to a maximum of ' $maximum_proxies_to_test ' prox' . ($maximum_proxies_to_test == 'y' 'ies') . ' to test' "\n";
      echo 
'<form method="POST" action="' $_SERVER['SCRIPT_NAME'] . '">' "\n";
      echo 
'<input type="hidden" name="action" value="fred">' "\n";
      echo 
'<textarea name="proxies" cols=35 rows=' $maximum_proxies_to_test '></textarea><br>' "\n";
      if(
strlen($password) > 0)
         echo 
'Password: <input type="password" name="password" size="15"><br>' "\n";
      echo 
'<input type="submit" value="Check proxies">' "\n";
      echo 
'</form>' "\n";
   }
?>
</body>
</html>
 
Ответить с цитированием

  #8  
Старый 28.02.2008, 03:38
Mescalin
Познающий
Регистрация: 04.07.2007
Сообщений: 49
Провел на форуме:
981994

Репутация: 75
По умолчанию

t0tal, это прокси чекер,а мне нужен сокс чекер
 
Ответить с цитированием

  #9  
Старый 28.02.2008, 07:00
Sharky
Познавший АНТИЧАТ
Регистрация: 01.05.2006
Сообщений: 1,021
Провел на форуме:
3424739

Репутация: 921


Отправить сообщение для Sharky с помощью ICQ
По умолчанию

Цитата:
Сообщение от Mescalin  
t0tal, это прокси чекер,а мне нужен сокс чекер
А разница? Работает то всё равно через сокеты
 
Ответить с цитированием

  #10  
Старый 28.02.2008, 09:59
biophreak
Постоянный
Регистрация: 03.08.2007
Сообщений: 367
Провел на форуме:
876216

Репутация: 209
По умолчанию

Разнца большая, как минимум в том что протоколы разные
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
SOCKS4/5 Sorter + checker biophreak PHP, PERL, MySQL, JavaScript 4 05.01.2009 17:12
Antichat FTP Checker razzzar Soft - Windows 26 12.08.2008 10:32
Socks сервис. Продажа соксов оптом и поштучно. petzl VPN, Proxy, Socks - Покупка, продажа 2 07.03.2008 19:05
Socks mexcrack Болталка 3 31.07.2004 07:21
Java-чат и socks сервера Болталка 0 14.04.2004 20:10



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


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




ANTICHAT.XYZ