CVE-2019-6111 и другие уязвимости в scp

в 12:45, , рубрики: exploit, openssh, POC, scp, информационная безопасность

TL;DR;

Совсем недавно ( примерно с 1983 года ) оказалось, что OpenSSH, как наследник rsh, для команды scp ( ex. rcp ) позволяет серверу выбрать, какой файл и с какими параметрами вам передать. А уязвимости вывода позволяют скрыть, какой именно файл вам передали.
То есть просите вы file.txt, а получаете — exploit.bin
И фиксов пока нет, вот такие дела. Используйте sftp или rsync.

Подробности

CVE-2019-6109

Клиент scp не проверяет наличие лишних символов в имени файла, что позволяет скрывать реальное имя передаваемого файла ( например ASCII-кодами )

CVE-2019-6110

Клиент scp позволяет писать в stderr и переписывать данные в терминале, что позволяет скрывать реальное имя передаваемого файла ( например ASCII-кодами ).

CVE-2019-6111

Клиент scp не проверяет, какой именно файл ему отправляют и не сравнивает с тем, что он запрашивал. Злонамеренный сервер может залить на клиент все, что ему хочется, причем с любым mode.

Пример работы

$ rm -rf *
$ ls -la
итого 36
drwxr-xr-x 2 user user 4096 янв 25 15:11 .
drwx------ 99 user user 28672 янв 25 14:23 ..
$ scp test@localhost:x.txt .
x.txt 100% 32 0.3KB/s 00:00
$ ./exploit.sh # откуда он взялся?!
You're hacked. Sorry for that
Please upgrade your OpenSSH client
$

В данном примере ( немного модифицированный эксплоит со ссылки выше ) вместе с x.txt подгружается файл exploit.sh с правами 755, а при помощи мусора в stderr затирается сам факт передачи.

Уязвимые клиенты

Если кратко, то все. OpenSSH включая 7.9p1, putty, winscp < 5.13.
Фиксы есть только у WinSCP ( 5.14+ )
Используйте sftp/rsync при работе с недоверенными серверами.

Автор: annmuor

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js