
libSSH 인증 우회(CVE-2018-10933)를 위한 익스플로잇 도구로, Python 스크립트와 선택적 가짜 SSH 키를 사용하여 자격 증명 없이 원격 셸 접근을 가능하게 합니다.
자격 증명 없이 CVE-2018-10933을 이용해 셸을 실행합니다.
libSSH의 CVE-2018-10933 관련 정보 : https://www.libssh.org/security/advisories/CVE-2018-10933.txt
libSSH의 버그 수정 릴리스 : https://www.libssh.org/2018/10/16/libssh-0-8-4-and-0-7-6-security-and-bugfix-release/
https://gist.github.com/0x4D31/35ddb0322530414bbb4c3288292749cc
https://help.github.com/articles/generating-a-new-ssh-key-and-adding-it-to-the-ssh-agent/
중요 : "libssh 버그를 재현하려는 사람들을 위한 설명: 샘플 코드(samplesshd-cb)에는 명시적인 인증 핸들러가 있으므로 취약하지 않습니다. 채널을 열 수는 있지만 아무 일도 일어나지 않습니다."
보시다시피 이 섹션은 단지 채널을 여는 용도입니다. "samplesshd-cb"로 실행된 서버에서는 셸을 획득할 수 없습니다.
채널을 여는 용도일 뿐입니다. 제가 작성한 PoC들은 원격 호스트 전용입니다.
취약한 libSSH 버전을 다운로드하고 압축을 풀고 빌드하세요 : https://www.libssh.org/files/0.7/libssh-0.7.4.tar.xz
그런 다음 ssh를 사용하여 자신의 서버에서 libSSH를 컴파일하고 실행하세요.
PWD: /libssh-0.7.4/build/examples/samplesshd-cb
./samplesshd-cb --dsakey==yourdsakey 127.0.0.1 --port=2222
가짜 SSH 키가 있다면 두 번째 bypasswithfakekey.py를 사용하세요
pip install -r requirements.txt
If paramiko==2.0.8 doesn't works try : pip install paramiko==2.4.2
python libsshauthbypass.py --help
python bypasswithfakekey.py --help
