본문 바로가기
워게임/hackthebox

hackthebox - machines - Cap

by meanjung 2021. 7. 14.

[https://blog.gauravraj.tech/posts/cap-hackthebox-machine-writeup-and-walkthrough/]

[https://domdom.tistory.com/98]

 

       깨달은 생각의 흐름

       의문점


원래는 이거보다 자세한 결과가 나오게 포트스캔하는게 좋다.

 

ftp - ftp는 익명 로그인이 되지 않는다. -> ID, PASSWORD 인증 시 암호화가 이루어지지 않아 네트워크 스니핑에 취약하다는 걸 의미하는 듯

ssh - ssh는 암호화된 통신을 한다.

http 


10.10.10.245 접속하면 웹 사이트가 뜬다. -> 포트스캔 결과인 gunicorn이 http 서버라고 한다. 이를 통해 웹 서버일 수 있겠구나, 파악할 수 있는 것

몇 개 클릭하다보면, 다운로드 버튼이 뜬다. 일단 다운로드 해본다.

1.pcap 파일이 다운받아질 것이다. 

 

찾아보니까, pcap 파일을 열어 분석하려면 wireshark가 필요하다고 한다.

 

apt-get install wireshark

 

wireshark를 실행해서 1.pcap을 열어본다.

아무것도 안나오는 것을 알 수 있다.

 

그래서 다시 다운 받았다. 2.pcap이 다운받아졌다. 다시 열어도 아무 것도 나오지 않는다.

writeup을 보니까, url에 1, 2 같이 입력하는 부분이 있는데, 여기에 0을 넣으면 0.pcap 파일이 다운받아진다. -> 이렇게 할 생각은 어떻게 하냐..

 

wireshark에서 열어보면 패킷이 뜬다.

그 중 ftp로 필터링해서보면, user과 pass를 볼 수 있다. -> 저 많은 패킷을 볼 생각을 어떻게 하나? 필터링을 굳이 ftp로 할 생각은 어떻게 하나..

 

user : nathan

passwd : Buck3tH4TF0RM3!

 

이걸로 ftp 접속을 한다. -> 패킷 중 ftp로 필터링한 결과에서 나온거니까 ftp로 접속할 생각을 했겠지..

 

ftp 접속

ftp

> open

> 10.10.10.245 입력

> nathan 입력

> Buck3tH4TF0RM3! 입력

>> ls user.txt를 볼 수 있다.

>> cat 이 명령어 안된다. ftp 명령어를 구글링해서 파일을 열 수 있는 방법을 찾아야 한다.

>> get user.txt 하면 로컬에 다운받아진 user.txt를 확인할 수 있다. 

 

 

ssh 접속

ssh nathan@10.10.10.245  -> ftp 접속하고, ssh로 다시 접속할 생각을 어떻게 하나?

> Buck3tH4TF0RM3! ☞ 이제 들어가졌다.

>> ls ☞ ftp 때와 똑같이 user.txt가 보인다. ftp 접속을 따로 할 필요가 없었다.

root 폴더에 접근하려고 했더니, permission denied였다.

 

>> python3 -c 'import os; os.setuid(0); os.system("/bin/sh")' ☞ 쉘이 따졌다.

이제 navigate해서 root.txt를 확인하면 된다.

 

 

 


의문점들..

1. /bin/sh 명령어가 하는 일이 정확히 무엇인가

bin 폴더 안에 있는 bash라는 쉘쉘은 커널을 감싸고 있다고 한다.커널과 유저를 연결시켜주는..

다시 말해, 유저가 원하는것을 커널에게 전달해 계산 결과를 유저에게 돌려주는것.

 

2. os.setuid(0)은 무엇인가

setuid가 설정된 파일을 실행하면 일시적을 파일 소유자의 권한을 얻어 실행할 수 있도록 한다.

https://idchowto.com/?p=42667 

 

터미널에 id 찍으면 uid 확인할 수 있음.0 -> root

 

평소 알던 setuid bit와 여기 setuid는 다른 개념이다.

여기서 말하는 setuid는 리눅스 system call 중 하나.

python에서는 os.setuid()로 쓰고, c에도 setuid 함수가 있다. - 결국은 같은 시스템 콜 함수 호출

 

- 현재 유저 아이디(uid)를 바꿀 수 있다.

- 보통 유저는 1000번대, root는 0번

- os.setuid(0) : 루트 권한을 갖게 되는 것

 

 

3. pcap 파일이 무엇인가(개념)

packet capture의 약자네트워크 트래픽을 캡처하기 위한 api로 구성되어 있다.네트워크 트래픽을 분석하기에 아주 용이한 라이브러리의 모음

 

패킷 캡처할 때 리눅스에선 libpcap, 윈도우에선 winpcap 라이브러리를 사용해 패킷을 수집할 경우,

확장자가 .pcap이라는 파일 포맷으로 처리된다. 

 

4. ftp, ssh 개념

- FTP

포트 21파일을 전송하는 통신 규약

https://it.donga.com/8694/

https://brro.tistory.com/6

- SSH

포트 22원격지 호스트 컴퓨터에 접속하기 위해 사용되는 인터넷 프로토콜(secure shell)

 

기존의 Telnet, FTP 등은 암호화가 이루어지지 않아 계정 정보가 탈취될 위험이 높다. SSH는 여기서 암호화 기능을 추가하여 1995년에 나온 프로토콜.

 

모든 데이터 암호화 보장/ 빠른 전송 효율

 


https://blog.gauravraj.tech/posts/cap-hackthebox-machine-writeup-and-walkthrough/

 

Cap HackTheBox Machine Writeup and Walkthrough

Cap HackTheBox Easy Level Machine

blog.gauravraj.tech

 

댓글