渗透测试学习—HTB靶机之Included

这是HTB的Starting Point实验室中第六台靶机,主要根据官方提供的writeup来练习,中间穿插一些自己的理解和工具使用扩展。

一、环境配置

  1. 工具准备
    kali linux 2020.1 vmware虚拟机,配置为hostonly模式,共享宿主机网卡上网;
    firefox浏览器(kali linux自带);
    Included 靶机IP地址:10.10.10.55;(VIP可用)

  2. 网络连接,按照说明连接到Starting Point实验室。

二、开始渗透
1. 信息收集
使用nmap进行tcp扫描,发现靶机仅开启了80端口(http)。
渗透测试学习—HTB靶机之Included
使用nmap进行udp扫描发现靶机开启了69端口(tftp)。

TFTP(专用文件传输协议)与FTP相似,但简单得多。 它仅提供用于从服务器上载或下载文件的功能。
可以尝试看是否可以连接到靶机的tftp并上传文件。
渗透测试学习—HTB靶机之Included
能够连接成功,并且可以上传文件。现在有了向靶机上传文件的能力。
接下来,使用浏览器访问靶机的80端口,出现如下页面。页面上查看一番没有有用信息,都是假页面。
渗透测试学习—HTB靶机之Included
注意到网站的url有些不寻常。它以ip地址后的file参数指定要调用的文件并显示。这很有可能存在本地文件包含漏洞。渗透测试学习—HTB靶机之Included
可以通过不断改变上面URL中的file参数值来枚举靶机中的文件,比如passwd文件,此文件一般位于/etc/passwd,通过使用相对路径切换到根目录进而尝试访问到该文件。假如当前网站根目录位于apache默认网站文件夹/var/www/html中,那么相对于网站根目录passwd文件的路径为…/…/…/etc/passwd,若不是则继续切换目录。
渗透测试学习—HTB靶机之Included
最终,当url为http://10.10.10.55/?file=…/…/…/…/etc/passwd时页面中出现了
passwd文件的内容。

  1. 获取webshell
    思路:使用tftp上传一个php反向连接文件,利用本地文件包含漏洞在浏览器中访问该文件,获得反向连接。
    渗透测试学习—HTB靶机之Included
    渗透测试学习—HTB靶机之Included
    使用kali linux中预置的php反向连接脚本php-reverse-shell.php,重命名文件名(防止被杀),修改脚本中的IP为kali linux的IP。
    渗透测试学习—HTB靶机之Included
    成功上传脚本文件。渗透测试学习—HTB靶机之Included
    kali linux中启动netcat监听在1234端口(如果脚本中改动了对应修改监听端口)。
    渗透测试学习—HTB靶机之Included
    在浏览器中访问上传的脚本。linux中tftp的默认根目录是/var/lib/tftpboot,上传的文件就位于该目录。
    渗透测试学习—HTB靶机之Included
    kali linux中得到了反向连接。

  2. 权限提升
    现在得到的shell是www-data用户身份的,该用户是apache程序用户不是操作系统可登录用户。 渗透测试学习—HTB靶机之Included
    可以看到用户权限不足查看user.txt文件,需要获得mike用户权限才可以获得user.txt中的flag。在上一台靶机中发现的密码Sheffield19可以用来登录mike用户。 渗透测试学习—HTB靶机之Included
    尝试su到mike用户,提示需要在终端中执行。需要设置tty以保证能够在netcat提供的shell上与终端能够完全交互,以便能够使用所有命令。
    su到mike后获取到了user用户的flag。
    要获得root用户的flag需要继续进行权限提升。 渗透测试学习—HTB靶机之Included
    通过id命令发现,mike用户具有一个特殊的用户组lxd,lxd用户组通常具有高权限,并可以提权到root。
    LXD是一种基于LXC(Linux container)的虚拟技术,而LXC 也是Docker的基础,但不同于Docker的是,Docker是对应用的虚拟化,而LXD则是在操作系统层面虚拟化靠齐。 渗透测试学习—HTB靶机之Included
    下载并编译漏洞利用程序。渗透测试学习—HTB靶机之Included
    编译完成后会生成.tar.gz后缀的文件,利用python搭建简易http服务器,以使靶机能够下载该文件。 渗透测试学习—HTB靶机之Included
    切换到/tmp目录下载该文件。 渗透测试学习—HTB靶机之Included
    将构建的tar名称替换为靶机中使用的名称。 接着,初始化并导入新的image。 渗透测试学习—HTB靶机之Included
    挂载靶机的文件系统到/mnt/root目录的容器中,这时就可以通过容易访问整个文件系统。渗透测试学习—HTB靶机之Included
    启动容器并执行提权命令,获得root用户的shell,得到root.txt中的flag。
    渗透测试学习—HTB靶机之Included
    在login.sql中有一组身份认证信息,可用于下一个靶机的渗透测试过程。

关于利用LXD实现权限提升,可以参考这篇文章