설명을 읽었을 때 Easy Level이라고 간단히 풀어볼 겸 도전해봤지만 전혀 Easy하지 않았다. 꽤나 복잡한 스킬들이 들어가기에 Part를 2개로 나누었다.
nmap으로 scan부터 시작해봅시다
보이는 건 21 ftp, 22 ssh, 80 http를 확인할 수 있다. FTP가 Anonymous 로그인이 가능하니 접속해서 note.txt를 읽어보면 다음과 같은 파일이 보입니다.
영어는 잘 못하지만 내용을 읽어보니 어떤 필터링이 걸려있고 작성자가 "Apaar"인 것 같습니다. 이어서 http에 gobuster를 이용해 접근 가능한 경로를 얻어봅시다.
여러 가지 경로를 얻었는데 그중 secret이라는 경로가 눈에 띕니다. 들어가 봅시다.
입력 폼이 있고 Command Injection이 가능한 것처럼 보여 입력해봤더니 필터링되어 실행이 안 되고 있습니다. 필터링을 우회시켜보기 위해 다음과 같이 입력해봅시다.
명령어 사이에 역 슬래쉬(\)를 입력해 주었더니 성공했습니다. 이후 images, index.php가 나오는 걸 확인할 수 있는데 images는 gobuster를 이용했을 때 접근 가능한 경로였음을 확인했으므로 넘기고 "c\at index.php"를 입력하고 페이지 소스 보기로 index.php를 읽어봅시다.
blacklist에 revershell을 얻을 수 있거나 정보를 얻을 수 있는 명령어는 필터링되어 있는 듯이 보입니다. 이미 Command Injection을 Bypass 할 수 있는 방법을 알고 있으니 bash Reverse Shell을 이용해 Reverse Connection을 맺어 봅시다.
Reverse Shell을 얻기 위해 위와 같은 과정대로 진행해봅시다. shell.sh 파일을 만들어 bash Reverse Shell 내용을 써주고 저장한 뒤 간단한 서버를 만들어서 대기하고 입력 폼에 하단의 curl 명령어를 이용해 대상 서버에 shell.sh를 다운로드하게 하고 이름을 bash로 저장해준 뒤 포트 하나를 열어서 대기해줍시다. 위와 같은 과정을 수행하면 아래와 같이 Connection이 맺어집니다.
하지만 Shell이 불안정해서 작업을 하기 불편하니 Stabillize Shell을 적용해봅시다.
로그인된 User가 www-data이므로 sudo -l을 이용해 user escalation을 시도해봅시다.
apaar의 권한으로 .helpline.sh를 실행할 수 있다 나와있습니다. .helpline.sh의 내용을 읽어봅시다.
내용을 읽어보니 msg로 받은 값을 그대로 실행시켜주는 동작을 하는 것 같습니다. 파일을 실행한 뒤 /bin/bash를 입력해줍시다.
apaar 유저의 권한을 얻었습니다. 이후 apaar의 홈 디렉터리로 가서 첫 번째 플래그를 읽어줍시다.
Root Privilige Escalte는 다음 파트에서 적도록 하겠습니다.
'Pentest > TryHackMe' 카테고리의 다른 글
JPGChat : ServerSide Injection (0) | 2021.03.11 |
---|---|
[Try Hack Me] : Chill Hack ( part.2 Root) (0) | 2020.12.12 |
[TryHackMe] : StartUp (0) | 2020.12.05 |
[TryHackMe] : Anonforce (0) | 2020.11.07 |
[Try Hack ME] : Bolt (0) | 2020.09.30 |