
FAFAF
OpenSSH 7.7까지의 버전은 유효하지 않은 인증 사용자에 대해 패킷이 완전히 파싱될 때까지 탈출(bailout)을 지연시키지 않아서 사용자 열거 취약점에 취약합니다. 이는 auth2-gss.c, auth2-hostbased.c, auth2-pubkey.c와 관련됩니다.
CVE: CVE-2018-15473
출처: https://www.openwall.com/lists/oss-security/2018/08/15/5
패치되지 않은 현재 버전에서, 원격 공격자는 대상 OpenSSH 서버에서 특정 사용자가 존재하는지 여부를 쉽게 테스트(사용자명 열거)할 수 있습니다:
87 static int
88 userauth_pubkey(struct ssh *ssh)
89 {
101 if (!authctxt->valid) {
102 debug2("%s: disabled because of invalid user", __func__);
103 return 0;
104 }
105 if ((r = sshpkt_get_u8(ssh, &have_sig)) != 0 ||
106 (r = sshpkt_get_cstring(ssh, &pkalg, NULL)) != 0 ||
107 (r = sshpkt_get_string(ssh, &pkblob, &blen)) != 0)
108 fatal("%s: parse request failed: %s", __func__, ssh_err(r));
공격자는 잘못된 패킷(예: 잘린 패킷)을 사용하여 사용자를 인증하려고 시도할 수 있으며:
사용법: ssh-check-username.py [-h] [-t HOSTNAME] [-p PORT] [-u USERNAME] [-w WORDLIST]
옵션:
-h, --help 이 도움말 메시지를 표시하고 종료
-t HOSTNAME 단일 대상
-p PORT 연결할 포트: 기본 포트는 22
-u USERNAME 열거할 사용자 이름
-w WORDLIST 여러 사용자 열거
이 스크립트는 책임감 있게, 그리고 접근 권한이 있는 시스템에서만 사용하십시오. 시스템에 대한 무단 접근은 심각한 법적 결과를 초래할 수 있습니다.