로컬 네트워크를 스캔하여 공격할 대상의 IP 주소를 얻습니다.
얻은 IP 주소의 포트를 스캔합니다.
ssh와 웹 서비스, Samba smbd가 동작 중입니다.
먼저 웹 브라우저로 웹 사이트를 살펴봅니다.
접속하면 로그인 페이지가 보입니다. SQLi를 시도합니다.
아무 아이디를 입력하고 비밀번호에 ' or 1 # 를 입력하면 다음과 같은 화면이 출력됩니다. 인증 우회에 성공했지만 존재하지 않는 사용자인 것 같습니다.
ID만 얻으면 SQLi를 통해 인증을 우회할 수 있다는 정보를 얻었습니다.
DirBuster를 사용해 웹 디렉토리를 스캔해봅니다.
왠지 사용자 이름 같아 보이는 john 디렉토리와 robert 디렉토리를 발견했습니다.
로그인 페이지로 돌아가 john으로 로그인을 시도합니다.
로그인에 성공하고 비밀번호를 얻었습니다.
robert로 로그인을 시도합니다.
base64로 인코딩 된 것처럼 보이는 비밀번호를 얻었습니다.
ssh가 동작 중이니 john으로 접속을 시도합니다.
접속에 성공했습니다.
제한된 쉘인 것 같습니다. 금지된 명령을 2번 입력하면 연결이 끊어집니다.
다시 접속한 뒤 여러 명령을 사용해보던 중 도움이 될만한 단서를 찾았습니다.
오류 메시지에 lshell이라는 단어가 보입니다. 검색을 통해 https://www.aldeid.com/wiki/Lshell 문서에서 우회 방법을 찾았습니다.
lshell을 탈출합니다.
덜 제한된 훨씬 유용한 bash 쉘을 얻었습니다..
웹 서버에 있는 checklogin.php를 읽습니다.
MySQL 사용자 root의 비밀번호가 설정되어있지 않다는 정보를 획득했습니다.
MySQL 서버에 로그인하고 john을 관리 그룹에 추가합니다.
이제 john 계정에서 root로 전환할 수 있습니다.
/root 디렉토리에서 플래그를 얻었습니다.