
OpenSSH 사용자 이름 열거 - CVE-2016-6210
CVE-2016-6210에 대한 "무기화된" 익스플로잇의 첫 번째 버전입니다.Eddie Harari가 Full Disclosure에 게시함 http://seclists.org/fulldisclosure/2016/Jul/51
큰 비밀번호를 전송함으로써 원격 사용자가 SSHD가 실행 중인 시스템의 사용자를 열거할 수 있습니다. 이 문제는 대부분의 최신 구성에서 존재하는데, SHA256/SHA512 해시를 계산하는 데 BLOWFISH 해시보다 훨씬 오래 걸리기 때문입니다.
SSHD가 존재하지 않는 사용자를 인증하려고 시도하면, SSHD 소스 코드에 하드코딩된 가짜 비밀번호 구조를 선택합니다. 이 하드코딩된 비밀번호 구조에서 비밀번호 해시는 BLOWFISH($2) 알고리즘을 기반으로 합니다. 실제 사용자의 비밀번호가 SHA256/SHA512를 사용하여 해시된 경우, 큰 비밀번호(10KB)를 보내면 존재하지 않는 사용자에 대해 서버의 응답 시간이 더 짧아집니다.
참고: Harari 씨는 opensshd-7.2p2에서 테스트했으며, 저의 테스트는 OpenSSH_6.9p1에서 수행되었습니다.
스크립트는 현재 유효한 사용자 이름과 유효하지 않은 사용자 이름의 타이밍 편차 범위를 10-30%로 기준으로 합니다. 현재 20% 초과만 유효한 사용자 이름으로 인정되어 출력 목록에 추가됩니다(스크립트 내에서 자유롭게 조정 가능). 이는 저에게 효과적이었습니다.
이 프로젝트를 Bitbucket에서 Github로 이전 중입니다.