Jarbas

nmap四扫结果

  • tcp详细扫:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
┌──(root㉿kali)-[/home/…/Desktop/redteamnotes_benchmark_1-20/vulnhub/Jarbas]
└─# nmap -sT -sV -sC -O -p22,80,3306,8080 192.168.59.143 -oA nmapscan/tcpdetails
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-20 04:43 EDT
Nmap scan report for 192.168.59.143
Host is up (0.00046s latency).

PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.4 (protocol 2.0)
| ssh-hostkey:
| 2048 28:bc:49:3c:6c:43:29:57:3c:b8:85:9a:6d:3c:16:3f (RSA)
| 256 a0:1b:90:2c:da:79:eb:8f:3b:14:de:bb:3f:d2:e7:3f (ECDSA)
|_ 256 57:72:08:54:b7:56:ff:c3:e6:16:6f:97:cf:ae:7f:76 (ED25519)
80/tcp open http Apache httpd 2.4.6 ((CentOS) PHP/5.4.16)
|_http-server-header: Apache/2.4.6 (CentOS) PHP/5.4.16
| http-methods:
|_ Potentially risky methods: TRACE
|_http-title: Jarbas - O Seu Mordomo Virtual!
3306/tcp open mysql MariaDB (unauthorized)
8080/tcp open http Jetty 9.4.z-SNAPSHOT
|_http-server-header: Jetty(9.4.z-SNAPSHOT)
|_http-title: Site doesn't have a title (text/html;charset=utf-8).
| http-robots.txt: 1 disallowed entry
|_/
MAC Address: 00:0C:29:F1:63:97 (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop

80和8080的web服务优先考虑,80扫描到php和apache的版本号与操作系统,这很关键,尤其php5.x是存在过很多公开漏洞的,还有潜在危险方法TRACE;8080扫描到cms的banner以及robots文件。最后再尝试mysql,这里表明默认账户未能连接成功

  • udp全端口: 无结果。
  • tcp漏扫:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
┌──(root㉿kali)-[/home/…/Desktop/redteamnotes_benchmark_1-20/vulnhub/Jarbas]                                                                                                        
└─# nmap --script=vuln -p22,80,3306,8080 192.168.59.143 -oA nmapscan/tcpvuln
Starting Nmap 7.94SVN ( https://nmap.org ) at 2024-09-20 04:55 EDT
Nmap scan report for 192.168.59.143
Host is up (0.00095s latency).

PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
|_http-trace: TRACE is enabled
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
| http-sql-injection:
| Possible sqli for queries:
| http://192.168.59.143:80/index_arquivos/?C=D%3BO%3DA%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=M%3BO%3DA%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=N%3BO%3DD%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=S%3BO%3DA%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=M%3BO%3DA%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=S%3BO%3DA%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=D%3BO%3DD%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=N%3BO%3DA%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=D%3BO%3DA%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=S%3BO%3DA%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=M%3BO%3DD%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=N%3BO%3DA%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=D%3BO%3DA%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=M%3BO%3DA%27%20OR%20sqlspider
| http://192.168.59.143:80/index_arquivos/?C=S%3BO%3DA%27%20OR%20sqlspider
|_ http://192.168.59.143:80/index_arquivos/?C=N%3BO%3DA%27%20OR%20sqlspider
| http-csrf:
| Spidering limited to: maxdepth=3; maxpagecount=20; withinhost=192.168.59.143
| Found the following possible CSRF vulnerabilities:
|
| Path: http://192.168.59.143:80/
| Form id: wmtb
| Form action: /web/submit
|
| Path: http://192.168.59.143:80/
| Form id:
| Form action: /web/20020720170457/http://jarbas.com.br:80/user.php
|
| Path: http://192.168.59.143:80/
| Form id:
|_ Form action: /web/20020720170457/http://jarbas.com.br:80/busca/
|_http-dombased-xss: Couldn't find any DOM based XSS.
| http-enum:
|_ /icons/: Potentially interesting folder w/ directory listing
3306/tcp open mysql
8080/tcp open http-proxy
| http-enum:
|_ /robots.txt: Robots file
MAC Address: 00:0C:29:F1:63:97 (VMware)

尤其是80端口扫到了较多可尝试利用的漏洞,还有潜在有价值目录。

web初探

首先验证nmap中扫描到的潜在有价值信息。 查看robots: 2024-09-24-12-37-53 除了提到build链接外,其余无价值。

找到sql注入路径: 2024-09-24-12-46-05 index_arquivos是葡萄牙语,翻译过来就是文件索引。 通过逐个点击最上方的蓝色选项,可推理出这个C参数的作用就是筛选列,N、M、S、D分别是列的查询缩写;另外还有个O参数对应筛选的顺序;手工测试时无法判断是否存在注入。csrf同样无法判断。目录/icons也没有什么有价值的发现。

目录爆破

首先尝试目录爆破,尽可能多地先发现潜在脆弱点,而不是刚开始就直接手工测试网站各个功能点。刚开始可以用gobuster探测,如果没扫描出结果再尝试加额外参数,如指定特定后缀,一般常用的如php,html: 2024-09-30-10-36-23 重点关注新发现的额外文件。尝试访问access.html2024-09-30-10-37-35 暴露出一段有价值的加密凭据信息,看格式是username:hash,显然可以尝试用hashcat或john破解:

hash破解

先用hash-identifier识别出最有可能的算法是md5: 2024-09-30-10-50-29 信息处理: 2024-09-30-11-03-52 破解hash: 2024-09-30-11-12-40 但是破解的结果不尽人意,hashcat也一样,还可以尝试在线破解: 2024-09-30-11-41-34 同理进行信息处理并存储,显然下一步就是尝试这些凭据,访问8080端口,看起来像管理员后台,最后尝试用eder:vipsu登录成功: 2024-09-30-11-47-36 默认页面是搜索功能,搜索值传递给了参数q,继续尝试搜索其他关键词,还出现了陌生参数Jenkins-Crumb,查阅后发现是一种Jenkins的CSRF保护使用token。另外,这个场景类似于sql注入的探测,尝试多个payload后发现并没有起作用,无法判断是否存在注入。

接着看看还有哪些功能点是能够为我们建立攻击路径提供帮助的,首先在系统管理中,发现有很多功能都是我们非常感兴趣的,但由于风险较大,假设是实际环境中如果没有太大的把握暂时不要轻易尝试,但可以自己本地搭建相同版本的cms进行研究。先从基本风险较小的功能入手,比如新建任务2024-09-30-14-25-43 尝试构建自由风格的项目,看起来相对最简单,发现构建项目时可以执行cmd/shell命令,显然这里就是很有价值的攻击路径: 2024-09-30-15-13-21 点击应用后再立即构建,然后定位到该命令输出: 2024-09-30-15-14-21 命令执行成功。

(视频提示)反弹shell获取立足点

进一步尝试过程中,尝试过生成java类型的木马,通过该命令执行构建部分执行wget获取该木马,但由于java路由特性没能找到该木马,无法访问,即使用pwd知道了当前路径,最终无果。但经过视频提示后,发现原来还能够通过bash -i反弹shell,经验还是太少了。另外,发现在红队常用工具tscan中也能快速生成各种类型的反弹shell命令: 2024-09-30-17-25-22 执行: 2024-09-30-17-32-20 2024-09-30-17-32-31 2024-09-30-17-50-13

拿到最终root权限

接着,按照提权前的信息搜集基本流程,当对系统计划任务进行搜集时,发现root用户创建了一个计划任务,并且该计划任务对应执行脚本文件的权限设置问题,按理说不应该给其他用户组这么高的权限,这就导致我们可以尝试用该普通用户追加另一个反弹shell命令,导致最后反弹的shell就是root权限的,因为该任务的所有者是root,因此根据计划任务设定时间,5分钟后会反弹新的shell: 2024-10-02-17-00-22 2024-10-02-17-22-36

复盘总结

这台靶机整体偏容易,用到java中比较经典的cms,没有用公开poc,而是手工尝试从功能点中寻找漏洞,对于该cms,从这台靶机中要积累的是这种攻击路径(构建时可能存在RCE),据红笔师傅的话来说,这种利用方式很多时候都是百试不爽,以后遇到同样的cms,可以优先考虑这点。

学到的

  • 不要一见到cms就盲目寻找公开poc 首先要做的,应该是快速地以手工方式尝试各个功能点,根据经验和各功能可能提供的价值比重,尤其是可能可以命令执行的地方,都需要优先考虑和尝试。
  • bash直接反弹shell 反弹shell不是只有上传这一种方式,思维不要定势了,如果在某个功能点能够执行shell命令,就要优先去考虑是否能够直接通过bash或sh -i的方式直接反弹shell。