
런타임 실행, 구성, 권한, 완화 조치의 존재, OS 등 *실제* 악용 가능성에 영향을 미치는 모든 요소를 고려하여 컴퓨팅 환경이 특정 취약점에 실제로 취약한지 여부를 판단합니다.
저자: 2022 - 현재, Rezilion
설명: 취약점 검증
개발: 2022년 1월 - 현재
문서: 웹사이트 및 README 참조
'Am I Exploitable?'는 특정 취약점에 대해 시스템이 악용 가능한지 검증해야 하는 필요를 충족시키기 위한 Python 오픈 소스 프로젝트입니다. 이 프로젝트는 특정 취약점에 악용 가능한지 여부를 이해하는 데 도움을 주며, 시스템에서 취약한 구성 요소 또는 취약하지 않은 구성 요소가 무엇인지 설명해 줍니다. 이 프로젝트는 수행하는 취약점 검사에 따른 검증 흐름을 보여주는 그래프를 생성할 수 있습니다. MI-X는 기계 판독 가능한 출력을 지원합니다. 결과는 json, csv, text 세 가지 파일 형식으로 내보낼 수 있습니다. 도구를 실행하면 검증 흐름을 볼 수 있습니다. 호스트/컨테이너에서 수행된 검사 항목과 함께 수정 및 완화 권장 사항이 출력됩니다. 우리는 새로운 취약점이나 중요하거나 유명한 취약점에 대한 취약점 검사를 추가할 수 있는 연구자와 프로그래머 커뮤니티를 만들고자 합니다. 새로운 취약점이 나올 때마다 사람들이 악용 가능한지 여부를 검증하는 데 도움이 되는 이 서비스를 제공할 수 있습니다. 또한 지금까지 작성한 취약점 검사는 놓쳤을 수 있는 일부 검사로 확장될 수 있습니다.
CVE-2021-4034(일명 PwnKit)에 대한 예시 흐름 그래프:
누구나 AGPL-3.0 라이선스 조건에 따라 'Am I Exploitable?'을 자유롭게 사용할 수 있습니다 (LICENSE 파일 참조).
am_i_exploitable.py - 사용자 입력 및 CVE 호출을 처리하는 메인 파일.cves - 현재 지원되는 각 취약점에 대한 Python 파일을 포함하는 Python 패키지.modules - 모듈을 포함하는 Python 패키지.
모듈은 다양한 CVE 파일에서 사용되는 코드 구현입니다.이 도구는 다음 Linux 배포판을 지원합니다:
Ubuntu, Debian, Red Hat, Centos, Fedora, SUSE, SLES, Amazon
Alpine 부분 지원
Windows 부분 지원
MI-X를 설치하기 전에 머신에 다음이 있는지 확인하십시오:
openjdk10보다 낮은 경우 필요)요구 사항을 설치하려면:
운영체제 배포판을 확인하세요. 다음 명령을 사용할 수 있습니다:
cat /etc/os-release
운영체제 배포판에서 사용하는 패키지 관리자를 확인하세요:
apt - Ubuntu, Debian
yum - Red Hat, CentOS, Fedora, SUSE, SLES, Amazon
apk - Alpine
운영체제 배포판의 패키지 관리자를 사용하여 관련 패키지를 설치하세요
MI-X를 올바르게 실행하려면 pip를 사용하여 graphviz 및 packaging Python 모듈 요구 사항을 설치해야 합니다:
pip install -r requirements.txt
최신 개발 버전은 git을 통해 얻을 수 있습니다.
git clone https://github.com/Rezilion/mi-x.git
cd mi-x && python3 am_i_exploitable.py
스캔 명령 템플릿
python3 am_i_exploitable.py -v cve_yyyy_xxxx -c True -g True -f json
log4shell에 대해 컨테이너를 실행 중인 머신을 스캔합니다.
python3 am_i_exploitable.py -v log4shell -c True -f json

검사할 취약점을 지정합니다 (기본값: 설정되지 않음).
구문:
인자가 설정되지 않으면 현재 지원되는 취약점을 보여주는 메뉴 메시지가 나타납니다.
호스트에서 실행 중인 모든 컨테이너를 스캔합니다 (기본값: False).
실행 중인 컨테이너 이름을 공백으로 구분하여 입력하여 호스트에서 특정 컨테이너를 스캔합니다 (기본값: 설정되지 않음).
결과를 json, csv, text의 세 가지 가능한 출력 형식 중 하나로 내보냅니다.
취약점 설명을 볼지 여부를 지정합니다 (기본값: True).
검증 흐름도를 볼지 여부를 지정합니다 (기본값: False).
코드를 실행하는 방법을 이해하는 데 도움이 되는 도움말
문제를 발견했거나 좋은 아이디어가 있습니까? 알려주세요:
기여는 환영하며 GitHub를 통해 할 수 있습니다.
제출 방법에 대한 자세한 내용은 CONTRIBUTING.md를 참조하세요.
'Am I Exploitable?'는 Windows 및 대부분의 일반적인 Linux 운영 체제에서 테스트되었습니다. 문서(README)와 디버깅 정보(디버그 매개변수를 'True'로 설정)는 대부분의 질문과 문제를 해결할 수 있습니다.
버그는 GitHub를 통해 또는 위 이메일 주소로 이메일을 보내 신고할 수 있습니다.
오픈 소스 소프트웨어를 사용하고 지원해 주는 커뮤니티에 감사드립니다.
많은 의견, 버그/패치, 질문은 이와 같은 도구를 개발하는 데 성공과 지속적인 동기의 핵심입니다.