회사의 허락을 받고 포트폴리오로 사용해도 된다고 하셔서 작성해 봅니다.
회사에서 저 포함 4명이서 진행했던 모의 침투 업무를 여기서 정리해보고자 합니다.
전체적인 흐름은 다음과 같습니다.
- 정보수집
- 취약한 엔드 포인트 식별
- 취약점 공격 및 서버침투
- 주요 정보 자산 접근
모의침투 업무에서 저희가 제공받은 것은 2가지입니다.
- 대상 IP 주소
- 회사 IP주소 IPS 접근 제한 해제
1. 정보수집
먼저 받은 IP주소를 nmap으로 스캐닝해서 80,443 등 대략 10개 정도의 포트가 열려있는 것을 확인했습니다.
그리고 shodan에 접속해서 IP주소로 현재 사용하고 있는 도메인 정보를 수집했습니다.
그리고 다른 서브 도메인들이 있는지 확인하기 위해 Subdomain Finder에 접속하여 수집한 도메인 정보를 입력하여 6개의 서브 도메인들을 식별했습니다.
서브 도메인들을 접속해 본 결과 접근불가라고 뜨는 페이지를 식별했습니다.

다른 서브도메인들과는 다르게 접근불가 페이지이다 보니 관리자 페이지에 준하는 중요한 사이트라고 판단했습니다.
그래서 ffuf를 통해서 접근 가능한 경로가 있음을 확인하였습니다.

접속해본 결과 관리자 페이지였고 추가적으로 접근 가능한 페이지의 정보들을 확인할 수 있었습니다.


파일관리 페이지가 접속이 가능하다는 것을 알아내서 내비게이션 바를 통해서 접속해 본 결과 로그인 없이도 접속할 수 있음을 확인하였습니다.

2. 취약한 엔드 포인트 식별
파일관리 페이지에 접속해서 파일 업로드를 해봤는데 가능한 것을 확인했습니다.
그래서 .php 파일 업로드를 시도해 봤지만 업로드가 실패했습니다.
하지만 .php파일을 .jpg로 변경해서 업로드를 해봤을 때 업로드가 성공하는 것을 확인했습니다.
이후 파일의 이름 변경이 가능해서 시도해 봤는데 확장자까지 변경할 수 있는 것을 확인했습니다.
이러한 이유로 파일 업로드 및 이름 변경 기능이 있는 엔드 포인트가 취약하다 판단했습니다.
3. 취약점 공격 및 서버침투
업로드된 .jpg파일의(내용이php코드인 jpg파일) 확장자를 .php로 변경이 되지 않는 것을 확인했습니다.
그래서 .Php, .PHP, php2, php8 등 다양한 시도를 해봤을 때 다 실패하고 유일하게 .phar 확장자로 변경이 되었습니다.
그래서 해당 파일을 URL로 직접 참조를 해서 실행 여부를 확인했을 때 코드가 실행되는 것을 확인했습니다.

그때 당시 작성했던 테스트 php 코드는 아래와 같습니다.
<?php echo "<script>alert('js running!');</script>" ?>
그래서 리버스 쉘 php 코드를 동일한 과정으로 업로드하였고 netcat을 사용해서 서버에 침투했습니다.

4. 주요 정보 자산 접근
서버에 침투하여 id, passwd, cat /etc/os-release 등 시스템 정보들을 확인했습니다.
추가적으로 다른 서브 도메인 주소에서 heapdump파일을 다운로드할 수 있었습니다.
이를 분석해서 DB의 아이디 정보 및 비밀번호로 추정되는 값을 식별했습니다.
알아낸 값으로 DB 로그인 시도를 해봤는데 로그인을 성공해서 DB 정보도 확인할 수 있었습니다.