Крейг Хеффнер (Craig Heffner) из компании Tactical Network Solutions обнаружил легко эксплуатируемый бэкдор в маршрутизаторах компании D-Link.
Если установить user-agent браузера в значение xmlset_roodkcableoj28840ybtide, то кто угодно может получить доступ к административной панели маршрутизатора.
Запись xmlset_roodkcableoj28840ybtide при прочтении в обратном порядке расшифровывается как Edit by 04882 Joel backdoor, что явно указывает на злонамеренное внедрение бэкдора в прошивку.
Уязвимость присутствует в следующих моделях маршрутизаторов D-Link:
- DIR-100
- DI-524
- DI-524UP
- DI-604S
- DI-604UP
- DI-604+
- TM-G5240
Кроме того, уязвимость присутствует в японских маршрутизаторах Planex BRL-04UR и BRL-04CW, которые используют прошивку D-Link.
Крейг Хеффнер нашел уязвимость благодаря реверс-инжинирингу прошивки 1.13 для маршрутизатора DIR-100 revA. Установив ее на виртуальном веб-сервере, исследователь обратил внимание на загадочную функцию alpha_auth_check, которая предоставляет доступ к административной панели. Как выяснилось, эту функцию можно вызвать из разных мест, в том числе из alpha_httpd_parse_request, где проверяется user-agent браузера.
#define AUTH_OK 1
#define AUTH_FAIL -1
int alpha_auth_check(struct http_request_t *request)
{
if(strstr(request->url, "graphic/") ||
strstr(request->url, "public/") ||
strcmp(request->user_agent, "xmlset_roodkcableoj28840ybtide") == 0)
{
return AUTH_OK;
}
else
{
// These arguments are probably user/pass or session info
if(check_login(request->0xC, request->0xE0) != 0)
{
return AUTH_OK;
}
}
return AUTH_FAIL;
}
Вероятно, компания D-Link внедрила бэкдор для возможности удаленного изменения настроек маршрутизатора. Кстати, информация об этой строке проскакивала на российских форумах еще в январе 2010 года, но тогда ей не нашли применения.