
랩 & PoC
이 저장소는 통제된 랩 환경에서 SharePoint 스타일 역직렬화 및 도구 창(ToolPane) 처리 문제를 검증하기 위한 개념 증명(PoC) 연구 프로젝트입니다. Python 드라이버, 모의 취약 애플리케이션, 격리된 테스트를 위한 컨테이너 자산이 포함되어 있습니다.
[!WARNING] 이 프로젝트는 반드시 귀하가 소유했거나 명시적으로 테스트 권한을 부여받은 시스템, 컨테이너 또는 네트워크에서만 사용해야 합니다. 서면 허가 없이 공용 인프라, 타사 서비스, 프로덕션 환경 또는 기타 대상을 대상으로 이 코드를 실행하지 마십시오. 승인되지 않은 보안 테스트는 법률, 계약, 정책 또는 허용 가능한 사용 약관을 위반할 수 있습니다.
이 저장소의 내용은 민감한 보안 연구 자료로 취급해야 합니다. 평가 작업에 이 프로젝트를 사용하는 경우 실행을 격리하고, 모든 활동을 기록하며, 테스트 전에 시스템 소유자와 협의하십시오.
이 저장소에는 현재 다음이 포함되어 있습니다:
sploit.py: ToolPane 엔드포인트에 제작된 요청을 전송하는 비동기 Python 드라이버.lab/mock_vulnerable_app.cs: 검증 마커를 반사하고 현재 형태로는 랩 컨테이너 내부에서 제공된 명령을 실행할 수 있는 모의 ASP.NET 애플리케이션.lab/docker-compose.yml: 모의 대상과 공격자 터미널을 분리하는 로컬 2-컨테이너 랩.lab/Dockerfile: 모의 취약 애플리케이션을 더 작은 ASP.NET 런타임 이미지로 게시하고 비루트 사용자로 실행하는 다단계 .NET 빌드.lab/attacker.Dockerfile: 랩 터미널에 필요한 스크립트 종속성 세트를 사전 설치하는 Python 공격자 컨테이너 정의.lab/vulnerable.csproj: 모의 취약 애플리케이션을 위한 .NET 6 웹 프로젝트 파일.lab/genGadget.py: 랩 전용 역직렬화 테스트를 위한 압축 Base64 페이로드를 생성하는 도우미 스크립트.이 워크플로는 로컬 랩에서만 사용하도록 설계되었습니다.
사전 요구 사항:
lab/ 디렉터리에서 랩을 시작합니다:
cd lab
docker-compose up --build -d
Docker 설정에 상승된 권한이 필요한 경우 동일한 명령을 sudo로 실행하십시오.
두 컨테이너가 모두 실행 중인지 확인합니다:
docker-compose ps
문제 발생 또는 익스플로잇 검증 시 로깅:
docker logs sp_attacker
docker logs sp_vulnerable_lab
랩은 의도적으로 격리되어 있습니다:
lab_net 네트워크에서 실행됩니다.공격자 컨테이너에서 셸을 엽니다:
docker exec -it sp_attacker bash
공격자 컨테이너 내부에서 대상에 연결할 수 있는지 확인하고 모의 대상을 상대로 검증 모드에서 스크립트를 테스트하는 등 랩에 안전한 점검을 수행할 수 있습니다:
python3 sploit.py http://sp_vulnerable_lab/
# If service-name DNS resolution fails in your environment, use the lab IP:
# python3 sploit.py http://10.10.10.5
# If you wish to go past base validation you can include wanted commands.
python3 sploit.py http://sp_vulnerable_lab whoami
로컬 모의 환경에서 예상되는 동작:
http://sharepoint-target으로 연결 가능해야 합니다.운영 참고 사항:
랩 컨테이너와 네트워크를 중지하고 제거합니다:
cd lab
docker-compose down
빌드된 이미지도 함께 제거하려면:
docker-compose down --rmi local
랩 작업 공간 산출물을 완전히 초기화하려면 종료 후 생성된 결과 파일을 제거하십시오:
rm -f vuln.lst
각 실습 후 권장되는 정리 절차:
docker-compose down으로 랩을 종료합니다.이 프로젝트는 로컬 연구 랩으로서 구조적으로 유효하지만, 현재 형태로는 프로덕션에 안전한 검증 도구로 취급해서는 안 됩니다.
작동하는 항목:
주의가 필요한 항목:
vuln.lst에 기록되어 불필요한 잔여 민감 데이터가 생성될 수 있습니다.이 프로젝트는 운영적 익스플로잇이 아닌 탐지 및 노출에 대한 통제된 검증에만 사용하십시오.
권장 방법론:
실제 환경 평가 작업의 경우 익스플로잇 방식 검증을 다음 중 하나 이상으로 대체하는 것이 더 안전한 표준입니다:
대상이 권한 있는 애플리케이션 구성 요소의 역직렬화 결함에 실제로 취약한 경우 잠재적 영향은 심각할 수 있습니다:
랩에서도 명령 실행 시맨틱은 엄격히 통제되고 승인된 조사에만 사용되어야 하는 워크플로를 일상화하므로 위험을 크게 높입니다.
적절한 완화 경로는 방어적이고 다층적입니다.
즉시 조치:
강화 조치:
/_layouts/15/ToolPane.aspx 및 인접 관리 경로에 대한 의심스러운 요청에 대해 중앙 집중식 로깅 및 알림을 활성화합니다.연구 랩 특정 완화 조치:
이 README는 실제 운영 중인 시스템을 익스플로잇하기 위한 지침을 제공하지 않습니다. 이 문서는 저장소를 통제된 연구 산출물로 설명하고 더 안전한 검증 및 완화 관행을 개괄합니다.