Penetration Testing Execution Standard (PTES)는 총 7단계로 구성되어 있으며, 이번에는 그 중 포스트 익스플로잇(Post Exploitation) 단계를 수행해볼 것이다. DreamCommunity에서 식별한 여러 취약점 중 **권한 상승(Privilege Escalation)**과 **측면 이동(Lateral Movement)**에 활용 가능한 취약점을 선별하고, 각 단계를 어떤 방식으로 수행할 수 있는지 살펴볼 것이다.
포스트 익스플로잇을 수행하는 과정에서 권한 상승을 이뤄내는 작업은 가장 중요한 목표 중 하나이다. 임의 명령어를 실행하거나 셸이 연결 됐더라도, 보통 웹 애플리케이션의 권한으로는 할 수 있는 작업이 제한적이다. 예를 들어 다른 이용자의 데이터에 접근하여 파일을 수정하는 작업은 권한이 부족해 실행되지 않을 수 있다. 따라서 권한 상승을 이뤄낼 수 있는 부분을 찾아서 더 높은 권한을 얻어야 한다.
DreamCommunity에서 발견한 취약점은 아래와 같다.
위 취약점들 중 내 정보 페이지에서 발생하는 IDOR을 이용해 획득한 모든 이용자의 이름과 핸드폰 번호를 수집할 수 있었다. 이 정보를 활용해 아이디 찾기 기능을 통해 해시된 비밀번호를 얻었고, 이를 크랙하여 일부 계정을 탈취하는 데 성공했다. 이후, 탈취된 계정 중 관리자 권한을 가진 계정으로 로그인하여 테스트 기능에서 Command Injection을 발견할 수 있었다.
Command Injection으로 임의 시스템 명령어를 실행할 순 있지만 아래와 같이 id 명령어를 주입하는 curl 명령어를 실행시켜보면 일반 권한을 가진 tomcat 계정 권한으로 동작하는 것을 확인할 수 있다.
curl -X POST -i "<http://host8.dreamhack.games:9234/test1234?host=1;id>" \
--cookie "JSESSIONID=E9E487F14F0F5621C41F3B78EF9A9CF6" && echo