hack in the box 핵인더박스는 오펜시브 시큐리티에 특화되어있는 보안 교육 실습용 사이트입니다.
Oopsie라는 머신은 초보자단계에서 클리어할 수 있는데 어느정도의 수준이 있기에 골라 보았습니다.

저는 Kali 리눅스에서 실습을 하였고 먼저 스타팅포인트 전용 VPN을 실행하여 동일한 네트워크 환경에 접속을 합니다.

ovpn을 사용하며, 접속이 성공적으로 이루어 지면 Initialization Sequece Completed라는 구문을 확인할 수 있습니다.

핵인더박스에 가입해주고 바로 고를수는 없고 초보단계에서 조금 클리어한 후에 고를 수 있는게 Oopsie 입니다.
very easy라고 난이도가 나와있지만 이걸 어떻게 한번에 따라할 수있는지요 허허

가장 먼저 할것은 포트스캐닝 입니다. 보는 바와 같이 22번 SSH 원격접속 포트와 80번 HTTP, 주로 웹페이지에 사용하는 포트가 사용 되고 있는 것을 확인 할 수 있습니다.

리눅스에서 /etc/hosts 에 에디터 모드로 들어간후에 해당 사이트의 IP와 DNS를 적어 주어 접근이 가능하도록 설정해줍니다.

웹페이지에는 별다른 특징이 안보여 버프수트 Burp Suite라는 웹페이지 해킹시 가장 많이 사용하는 프로그램으로 확인을 해줍니다. 이 프로그램을 사용하기 위해서는 파이어폭스 웹브라우저 기준으로 세팅에서 HTTP proxy사용으로 설정해 주어야 인터셉트가 가능하게 됩니다.

인터셉트 온을 눌러주어 웹페이지 방문시에 동작할 수 있도록 눌러줍니다 해당 탭은 프록시-인터셉트-인터셉트온으로 눌러줍니다.

웹페이지를 새로고침하면 버프수트에서 잡아주고 해당 페이지의 타겟- 사이트맵을 보시면 /cdn-cgi/login 이라는 페이지가 있다는 것을
확인 할 수 있습니다. 로그인을 할 수 있는 페이지라고 생각이 드네요. 다시 파이어폭스 설정에서 원래대로 프록시를 되돌려줍니다.

해당 URL로 들어가보니 로그인 페이지가 맞았고 아이디와 비밀번호가 없이도 게스트 유저로 로그인이 가능하여 들어가봅니다.

클라이언트 탭 URL을 보면 account&id=2로 돼있는 것을 확인할 수 있습니다 단순하게 이것을 1로 바꾸어 다시 엔터를 쳐 페이지에 들어가 보면 access ID가 34322이고 Name이 admin으로 바뀌어 있는 것을 볼 수 있습니다.

바뀌기 전에는 2233 게스트로만 표시가 되어 있었습니다.

어드민 계정으로 동작이 되게 하려면 웹개발자 페이지로 들어가서 스토리지- 쿠키에서 유저의 값을 34322로 변경해 줍니다. 웹 개발자 페이지를 들어가는 것은 누구나 한 번쯤 해봤을 거겠죠?

이제 admin 권한으로 웹페이지 동작이 가능해져서 업로드 탭에 접근이 가능해집니다. 우리의 목표는 이 시스템을 탈취하는 것이기 때문에 php로 이루어진 쉘파일을 업로드할 것입니다. 깃허브에 reverse.php로 검색하여 리눅스에 다운을 해줍니다. 위에 파일을 그대로 쓰면 안 되고 자신의 IP와 nc(넷켓)이 동작할 포트를 수정하여 저장합니다.

nc로 4444번 포트를 리스닝상태로 만든 후 php 웹쉘을 동작시키면 시스템 탈취가 이루어지게 됩니다. 먼저 대기상태로 만들어줍니다.

하위 디렉터리를 확인하기 위해 gobuster를 이용하여 php파일을 검색해 봅니다.

우리가 업로드한 파일은 /uploads 에 위치해 있는 것으로 파악됩니다.

업로드 url과 웹쉘 이름을 모두 입력하여 웹쉘페이지로 동작이 되게 하면 통신이 이루어지는 것을 확인합니다.
여기까지 잘 따라오셨나요? 보기보다 이 과정이 굉장히 복잡하고 또 복잡하니까 신기한 것 같습니다.

URL은 이것으로 하여 엔터를 친 후에 동작이 되었습니다.

해당 시스템의 안정화를 위해 파이썬 명령어를 사용하여 줍니다.

해당 시스템의 /var/www/html/cdn-cgi/login폴더로 가면 php파일이 있는 것을 확인할 수 있습니다.

그중에서 db.php의 내용을 보면 로버트, 패스워드 등을 확인할 수 있어요

su robert로 사용자를 바꿔주고 비밀번호를 복사해 줍니다. 리눅스에서 복사하는 게 좀 어렵죠? 컨트롤 쉬프트 C를 눌러주고 컨트롤 쉬프트 V를 눌러주어야 합니다.

로버트로 로그인이 되었고 user.txt. 를 확인할 수 있습니다. 권한상승 (어드민으로 되기)을 위해 sudo -l을 입력했을 때 뜨는 게 없네요.
로버트의 정보를 보기 위해 id를 입력해 줍니다 bugtracker란 그룹에 있네요

bugtracker에 대한 파일을 찾기 위해 파인드 명령어로 찾아줍니다.

해당 파일을 확인해 보니 set uid로 돼있는 것을 알 수 있습니다. set uid는 해당프로그램을 정상적으로 사용하면 일시적으로 루트권한을 획득할 수 있어요.

루트를 획득하는 과정을 프리빌리지 에스컬레이션이라고 하는데 이 머신은 bugtracker을 사용한다고 해서 바로 권한을 획득하지는 않습니다.

/tmp파일에 'cat'이라는 파일을 만들어준 후 cat파일에 '/bin/sh'를 입력해 넣어줍니다. vi로 입력했을 때 깨지는 현상이 있어서 리눅스 명령어에는 'cat > cat <<'EOF' '로 내용을 넣어주었어요
그 후에 chmod +x cat 으로 사용이 가능하게 한 후 환경변수를 export PATH=/tmp:$PATH로 변경해 줍니다
echo $PATH를 했을 때 /tmp가 제일 처음 오는 것을 확인할 수 있어요

cat이라는 파일에 내용이 잘 안 들어가져 있어 지우고 다시 만드는 과정입니다.

방법을 바꾸어 내용을 입력하여 제대로 들어간 것을 확인할 수 있습니다. official writeup내용이 조금 옛날 거라 지금은 잘 안 통하는 게 몇 개 있습니다. 그럴 때는 챗지피티를 이용해서 물어보면 다른 방법을 제시해 주어 해결할 수 있습니다.

버그트래커를 실행해 주고 2번을 입력하면 루트로 변하는 것을 확인할 수 있습니다.
root.txt 플래그는 /root 폴더에 들어있습니다. 어디서 찾아야 되는지 막막하면 find / -name 'root.txt' 2>/dev/null 명령어를 사용해 보세요.
'war game' 카테고리의 다른 글
| hack the box - Responder CTF 핵더박스 리스폰더 캡쳐더플래그 과정 (0) | 2025.12.28 |
|---|---|
| 해킹 연습하기 핵인더박스 백신머신 hack the box vaccine writeup (0) | 2025.10.23 |
| 23.12.18 responder (0) | 2023.12.18 |
| 입문6 (0) | 2023.12.13 |
| 입문5 (0) | 2023.12.13 |