Как просканировать RDP сервисы (Remote Desktop Protocol)

6309

Как просканировать RDP сервисы (Remote Desktop Protocol)

RDP — это Remote Desktop Protocol, специальный протокол для удалённого доступа, который поддерживают все современные ОС семейства Windows. Это один из основных протоколов для удалённого доступа в корпоративных сетях, и потому он всегда был интересной целью для атак.

При этом, более ранние версии протокола имели уязвимости, и можно было провести MitM атаку. Сейчас с настройками по умолчанию такой проблемы нет, но из-за того, что в корпоративных сетях обычно используется целый зоопарк операционных систем (и старых, и новых), каждая из которых поддерживает разные версии протокола RDP — их частичная несовместимость между собой рождает нужду менять настройки, ослабляя защиту.

Как просканировать RDP сервисы
Как просканировать RDP сервисы

При наличии в конфигурации определённых ошибок мы можем провести MitM-атаку на RDP современных версий. Как выявить такую уязвимость?
Одного только знания версии ОС не хватит. Нам здесь поможет скрипт, разработанный в Portcullis Labs.

Пример сканирования старого Windows 2000 RDP service

$ rdp-sec-check.pl 10.0.0.94


Starting rdp-sec-check v0.8-beta ( https://labs.portcullis.co.uk/application/rdp-sec-check/ ) at Mon Jul  9 13:34:38 2012

 


Target:    10.0.0.94


IP:        10.0.0.94


Port:      3389

 


[+] Checking supported protocols

 


[-] Checking if RDP Security (PROTOCOL_RDP) is supported...Negotiation ignored - old Windows 2000/XP/2003 system?


[-] Checking if TLS Security (PROTOCOL_SSL) is supported...Negotiation ignored - old Windows 2000/XP/2003 system?


[-] Checking if CredSSP Security (PROTOCOL_HYBRID) is supported [uses NLA]...Negotiation ignored - old Windows 2000/XP/2003 system??

 


[+] Checking RDP Security Layer

 


[-] Checking RDP Security Layer with encryption ENCRYPTION_METHOD_NONE...Not supported


[-] Checking RDP Security Layer with encryption ENCRYPTION_METHOD_40BIT...Supported.  Server encryption level: ENCRYPTION_LEVEL_CLIENT_COMPATIBLE


[-] Checking RDP Security Layer with encryption ENCRYPTION_METHOD_128BIT...Not supported


[-] Checking RDP Security Layer with encryption ENCRYPTION_METHOD_56BIT...Supported.  Server encryption level: ENCRYPTION_LEVEL_CLIENT_COMPATIBLE


[-] Checking RDP Security Layer with encryption ENCRYPTION_METHOD_FIPS...Not supported

 


[+] Summary of protocol support

 


[-] 10.0.0.94:3389 supports PROTOCOL_RDP   : TRUE


[-] 10.0.0.94:3389 supports PROTOCOL_HYBRID: FALSE


[-] 10.0.0.94:3389 supports PROTOCOL_SSL   : FALSE

 


[+] Summary of RDP encryption support

 


[-] 10.0.0.94:3389 has encryption level: ENCRYPTION_LEVEL_CLIENT_COMPATIBLE


[-] 10.0.0.94:3389 supports ENCRYPTION_METHOD_NONE   : FALSE


[-] 10.0.0.94:3389 supports ENCRYPTION_METHOD_40BIT  : TRUE


[-] 10.0.0.94:3389 supports ENCRYPTION_METHOD_128BIT : FALSE


[-] 10.0.0.94:3389 supports ENCRYPTION_METHOD_56BIT  : TRUE


[-] 10.0.0.94:3389 supports ENCRYPTION_METHOD_FIPS   : FALSE

 


[+] Summary of security issues

 


[-] 10.0.0.94:3389 has issue NLA_NOT_SUPPORTED_DOS


[-] 10.0.0.94:3389 has issue ONLY_RDP_SUPPORTED_MITM


[-] 10.0.0.94:3389 has issue WEAK_RDP_ENCRYPTION_SUPPORTED

 


rdp-sec-check v0.8-beta completed at Mon Jul  9 13:34:39 2012

Скрипт на Perl подключается по очереди к серверам (порт 3389) и запрашивает поддерживаемые настройки подключения, на основании чего и выводит предположение об уязвимости   RDP-сервиса к той или иной атаке. Аутентификация не требуется. То, что нужно для пентестов!

Типичный Windows 2003 RDP service.

$ rdp-sec-check.pl 10.0.0.111


Starting rdp-sec-check v0.8-beta ( https://labs.portcullis.co.uk/application/rdp-sec-check/ ) at Mon Jul  9 13:36:56 2012

 


Target:    10.0.0.111


IP:        10.0.0.111


Port:      3389

 


[+] Checking supported protocols

 


[-] Checking if RDP Security (PROTOCOL_RDP) is supported...Supported


[-] Checking if TLS Security (PROTOCOL_SSL) is supported...Not supported - SSL_NOT_ALLOWED_BY_SERVER


[-] Checking if CredSSP Security (PROTOCOL_HYBRID) is supported [uses NLA]...Not supported - SSL_NOT_ALLOWED_BY_SERVER

 


[+] Checking RDP Security Layer

 


[-] Checking RDP Security Layer with encryption ENCRYPTION_METHOD_NONE...Not supported


[-] Checking RDP Security Layer with encryption ENCRYPTION_METHOD_40BIT...Supported.  Server encryption level: ENCRYPTION_LEVEL_CLIENT_COMPATIBLE


[-] Checking RDP Security Layer with encryption ENCRYPTION_METHOD_128BIT...Supported.  Server encryption level: ENCRYPTION_LEVEL_CLIENT_COMPATIBLE


[-] Checking RDP Security Layer with encryption ENCRYPTION_METHOD_56BIT...Supported.  Server encryption level: ENCRYPTION_LEVEL_CLIENT_COMPATIBLE


[-] Checking RDP Security Layer with encryption ENCRYPTION_METHOD_FIPS...Supported.  Server encryption level: ENCRYPTION_LEVEL_CLIENT_COMPATIBLE

 


[+] Summary of protocol support

 


[-] 10.0.0.111:3389 supports PROTOCOL_RDP   : TRUE


[-] 10.0.0.111:3389 supports PROTOCOL_HYBRID: FALSE


[-] 10.0.0.111:3389 supports PROTOCOL_SSL   : FALSE

 


[+] Summary of RDP encryption support

 


[-] 10.0.0.111:3389 has encryption level: ENCRYPTION_LEVEL_CLIENT_COMPATIBLE


[-] 10.0.0.111:3389 supports ENCRYPTION_METHOD_NONE   : FALSE


[-] 10.0.0.111:3389 supports ENCRYPTION_METHOD_40BIT  : TRUE


[-] 10.0.0.111:3389 supports ENCRYPTION_METHOD_128BIT : TRUE


[-] 10.0.0.111:3389 supports ENCRYPTION_METHOD_56BIT  : TRUE


[-] 10.0.0.111:3389 supports ENCRYPTION_METHOD_FIPS   : TRUE

 


[+] Summary of security issues

 


[-] 10.0.0.111:3389 has issue NLA_NOT_SUPPORTED_DOS


[-] 10.0.0.111:3389 has issue FIPS_SUPPORTED_BUT_NOT_MANDATED


[-] 10.0.0.111:3389 has issue ONLY_RDP_SUPPORTED_MITM


[-] 10.0.0.111:3389 has issue WEAK_RDP_ENCRYPTION_SUPPORTED

 


rdp-sec-check v0.8-beta completed at Mon Jul  9 13:36:56 2012

источник