일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- MFT
- 파이썬
- logstash
- Docker
- beebox
- SQL Injection
- vulnhub
- CTF-d
- igoat
- otter
- diva
- frida
- ESXi
- elasticsearch
- Suninatas
- Strings
- 2018
- 인시큐어뱅크
- Openstack
- InsecureBank
- foremost
- kibana
- ctf
- Volatility
- XSS
- NTFS
- 안드로이드
- base64
- lord of sql injection
- Reflected XSS
- Today
- Total
Information Security
Ghostcat : Tomcat-AJP (CVE-2020-1938) 본문
SSL 통신을 위해 apt-transport-https와 ca-certificates를 설치한다. apt-transport-https는 apt 명령어를 실행할 때 https로 변환해주는 패키지이고, ca-certificates는 인증 기관(CA) 인증서이다.

다음으로 dirmngr을 설치한다. dirmngr은 'X.509 인증서의 폐기 목록(CRLs)'이나 인증서를 다운로드하기 위한 서버이다.

apt에서 인증키를 관리하는 도구인 apt-key 명령어로 key 서버에서 key를 받는다.

Docker를 다운로드받기 위해 Docker 저장소를 칼리 리눅스에 추가한다.

칼리 리눅스 apt-get update 업데이트를 했다.

저장소를 업데이트하고, docker-engine을 설치한다.

docker를 이용해 취약한 Tomcat 버전 9.0.29를 설치했다.

Tomcat 설치를 확인하기위해 http://127.0.0.1:8080 페이지를 접속해 Tocmat default 페이지를 확인했다.

server.xml 파이를 에서 AJP 프로토컬 관련된 부분을 확인했다.

8009 포트가 열려있는 것을 확인했다.

http://127.0.0.1/WEB-INF/web.xml 페이지를 접속했는데 아래와 같이 404 에러를 확인할 수 있다.

https://github.com/00theway/Ghostcat-CNVD-2020-10487 POC코드를 다운받았다.

공격코드를 이용해 공격 시 web.xml 파일을 읽을 수 있는 것을 확인할 수 있다.

webshell을 서버에 강제로 업로하는 코드를 만들었다.

webapps/ROOT 폴더에 webshell.txt 파일을 복사했다.

업로드된 webshell.txt 파일을 읽어지는 것을 확인했다.

eval 함수를 이용해 webshell.txt 파일을 실행시켰다.

http://127.0.0.1:8080/cmd.jsp webshell 업로드가 성공한 것을 알 수 있다.

리눅스 명령어 id를 입력하면 root라는 것을 확인할 수 있다.

cat 명령어를 통해 /etc/passwd를 확인할 수 있다.

'CVE 취약점' 카테고리의 다른 글
Linux SUDO Baron Samedit 취약점 (CVE-2021-3156) (0) | 2021.02.01 |
---|---|
Windows Netlogon 권한상승 취약점 (CVE-2020-1472) (0) | 2020.12.26 |
GhostSMBv3 (CVE-2020-0796) (0) | 2020.05.12 |
WordPress Plugin Quizlord 2.0 - Cross-Site Scripting (0) | 2019.06.29 |
WordPress Plugin WP with Spritz 1.0 - Remote File Inclusion (0) | 2019.06.02 |