Linux/Intuition

2024-05-09 21:28
文章标签 linux intuition

本文主要是介绍Linux/Intuition,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Intuition

Enumeration

nmap

使用 nmap 扫描系统常见端口,发现对外开放了 22 和 80,然后扫描这两个端口的详细信息

┌──(kali㉿kali)-[~/vegetable/HTB/Intuition]
└─$ nmap -sC -sV -p 22,80 -oA nmap 10.10.11.15 
Starting Nmap 7.93 ( https://nmap.org ) at 2024-04-27 22:31 EDT
Nmap scan report for 10.10.11.15
Host is up (0.66s latency).PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 8.9p1 Ubuntu 3ubuntu0.7 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   256 b3a8f75d60e86616ca92f676bab833c2 (ECDSA)
|_  256 07ef11a6a07d2b4de868791a7ba7a9cd (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://comprezzor.htb/
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernelService detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 41.60 seconds

22 端口是 ssh 服务,80 端口是 http 服务,nginx 版本为 1.18.0,http-title 显示域名为 comprezzor.htb,将其添加至 /etc/hosts 中

┌──(kali㉿kali)-[~/vegetable/HTB/Intuition]
└─$ echo '10.10.11.15 comprezzor.htb' | sudo tee -a /etc/hosts
[sudo] password for kali: 
10.10.11.15 comprezzor.htb

TCP/80

是一个压缩文件的网站,尝试上传一个 txt 文件,点击 Compress File 后,但是却显示 No file part

查看网页源代码,发现了一个子域名 report.comprezzor.htb,将其添加至 /etc/hosts 文件中

访问 report.comprezzor.htb,结果如下,可以提交 Bug

点击 Report a Bug 跳转到 auth.comprezzor.htb,发现子域名还挺多的,用 wfuzz 跑一下,扫描发现了 auth、report 和 dashboard

┌──(kali㉿kali)-[~]
└─$ wfuzz -c -w /usr/share/wordlists/SecLists/Discovery/DNS/subdomains-top1million-20000.txt --hc 301 -H "Host: FUZZ.comprezzor.htb" -u http://comprezzor.htb -t 100/usr/lib/python3/dist-packages/wfuzz/__init__.py:34: UserWarning:Pycurl is not compiled against Openssl. Wfuzz might not work correctly when fuzzing SSL sites. Check Wfuzz's documentation for more information.
********************************************************
* Wfuzz 3.1.0 - The Web Fuzzer                         *
********************************************************Target: http://comprezzor.htb/
Total requests: 19966=====================================================================
ID           Response   Lines    Word       Chars       Payload                                                                                   
=====================================================================000000291:   302        5 L      22 W       199 Ch      "auth"                                                                                    
000000485:   200        108 L    299 W      3166 Ch     "report"                                                                                  
000000516:   302        5 L      22 W       251 Ch      "dashboard"                                                                               Total time: 0
Processed Requests: 2653
Filtered Requests: 2650
Requests/sec.: 0/usr/lib/python3/dist-packages/wfuzz/wfuzz.py:78: UserWarning:Fatal exception: Pycurl error 28: Operation timed out after 90000 milliseconds with 0 bytes received

然后接着上面的继续,跳转至 auth.comprezzor.htb,一个登录页面,简单输了一些用户名口令,显示 Invalid username or password

点击 Register 跳转至注册界面,注册后会显示注册成功可以登录的提示,随后跳转至 /login,但是仍然无法登录

Exploitation

Cross Site Scripting

但是注册成功后重新点击 Report a Bug,就进入了该界面,测试是否存在 xss 漏洞,在 kali 中使用 python 开启一个 http 服务,然后按照如下格式提交(url 为 kali 开启 http 服务地址)

填写完毕后点击 Submit Bug Report,发送成功提示 Bug report submitted successfully! Our team will be checking on this shortly.

稍等片刻,会收到来自 10.10.11.15 的连接,可能存在 xss 漏洞

修改 payload 为下列内容,重新发送请求包

然后收到了 cookie 值,使用该 cookie 可以登录 dashboard.comprezzor.htb

user_data=eyJ1c2VyX2lkIjogMiwgInVzZXJuYW1lIjogImFkYW0iLCAicm9sZSI6ICJ3ZWJkZXYifXw1OGY2ZjcyNTMzOWNlM2Y2OWQ4NTUyYTEwNjk2ZGRlYmI2OGIyYjU3ZDJlNTIzYzA4YmRlODY4ZDNhNzU2ZGI4

为了方便,将 cookie 添加至 EditThisCookie

整成了怎么弄?马上放假不想搞了哇,休息!!!

继续!查了一下 Priority 翻译过来是优先权的意思,0 和 1 是什么意思呢?可以点击 Report ID 进去后可以设置优先级,通过观察得知 1 的优先权要高一些,剩下的两个功能一个是解决一个是删除,不知道该怎么利用,参考了下其他人写的直觉 HTB 写 (taipanbyte.ru),发现需要设置一下这个ID,然后再次利用 xss 获取 admin 的 cookie

首先按照最开始那样提交获取 cookie 的 payload,上传成功后会出现一个新的 ReportID,这个时候点击 ID 号进去修改 Priority 的值,将其设置为 1,更改优先级后会有更高权限的用户来审核,高权限用户审核时触发 xss 漏洞,从而获取到高权限用户的 cookie

经过不断尝试,最终按照上述方法获取到管理员 cookie

使用新获取到的 Cookie 值登录系统,如下所示

CVE-2023-24329

可以填写一个 url,然后生成这个页面的 pdf,输入 kali 地址,并且监听 80 端口

收到如下响应,可以看到系统使用了 Python-urllib,版本为 3.11

搜索该版本的对应组件,发现存在以下漏洞,漏洞详情请参考下方链接

当整个URL以空白字符开头时,urllib.parse会出现解析问题(影响主机名和方案的解析)。可以通过提供以空白字符开头的URL来绕过使用阻止列表实现的任何域或协议过滤方法,成功利用该漏洞可能导致任意文件读取、命令执行或SSRF 等

【漏洞通告】 Python URL解析安全绕过漏洞(CVE-2023-24329)-启明星辰 (venusgroup.com.cn)

urllib.parse space handling CVE-2023-24329 appears unfixed · Issue #102153 · python/cpython (github.com)

在输入框中输入 file:///etc/passwd,存在文件包含漏洞,可以读取任意文件(不要忘记前面的空格)

查看当前进程

查看 app.py 源代码

在 app.py 中导入了其他模块,也分别看一下代码,index.py

但是在 dashboard.py 中发现了一组用户名和密码 ftp_admin/u3jai8y71s2 (倒数第三行),用于 ftp 登录

这里还存在 ssrf 漏洞,利用漏洞来登录 ftp 服务,在输入框中输入

ftp://ftp_admin:u3jai8y71s2@ftp.local

发现有一些文件,查看 private-8297.key 文件

ftp://ftp_admin:u3jai8y71s2@ftp.local/private-8297.key

将其保存至 kali 本地,命名为 id_rsa

接着看一下 welcome_note.txt 文件

ftp://ftp_admin:u3jai8y71s2@ftp.local/welcome_note.txt

其中一段内容翻译过来是这样的,私钥的密码

使用 ssh-keygen 获取密钥的用户名,并修改密码,然后使用私钥登录 ssh

Privilege Escalation

注:这一部分过程不完整,因为有部分地方忘记保存截图等内容,所以有所缺失。但是在这部分结尾有三篇参考文章链接

在 /var/www/app/blueprints/auth 目录下发现了 users.db 文件,查看该文件发现了两组 hash 值,虽然不太好看,但还是可以看出来,将其保存到本地

dev_acc@intuition:/var/www/app/blueprints/auth$ cat users.db
����P++Ytablesqlite_sequencesqlite_sequenceCREATE TABLE sqlite_sequence(name,seq)�3�EtableusersusersCREATE TABLE users (id INTEGER PRIMARY KEY AUTOINCREMENT,username TEXT NOT NULL UNIQUE,password TEXT NOT NULL,role TEXT DEFAULT 'user'
,�,##w��h�=adamsha256$Z7bcBO9P43gvdQWp$a67ea5f8722e69ee99258f208dc56a1d5d631f287106003595087cf42189fc43webdevh�=adminsha256$nypGJ02XBnkIQK71$f0e11dc8ad21242b550cc8a3c27baaf1022b6522afaadbfa92bd612513e9b606admin
������
��am    users

hashs.txt

sha256$Z7bcBO9P43gvdQWp$a67ea5f8722e69ee99258f208dc56a1d5d631f287106003595087cf42189fc43
sha256$nypGJ02XBnkIQK71$f0e11dc8ad21242b550cc8a3c27baaf1022b6522afaadbfa92bd612513e9b606

使用 hashcat 暴力破解得到了一个结果 adam/gray

┌──(kali㉿kali)-[~/vegetable/HTB/Intuition]
└─$ hashcat hashs.txt /usr/share/wordlists/rockyou.txt --show
Hash-mode was not specified with -m. Attempting to auto-detect hash mode.
The following mode was auto-detected as the only one matching your input hash:30120 | Python Werkzeug SHA256 (HMAC-SHA256 (key = $salt)) | FrameworkNOTE: Auto-detect is best effort. The correct hash-mode is NOT guaranteed!
Do NOT report auto-detect issues unless you are certain of the hash type.sha256$Z7bcBO9P43gvdQWp$a67ea5f8722e69ee99258f208dc56a1d5d631f287106003595087cf42189fc43:adam gray

可以看到 adam 是一个用户,但是使用该密码切换用户失败了,尝试 ftp 登录也失败了

dev_acc@intuition:~$ ls /home
adam  dev_acc  lopez
dev_acc@intuition:~$ su adam
Password: 
su: Authentication failure
dev_acc@intuition:~$ su lopez
Password: 
su: Authentication failure
dev_acc@intuition:~$ 
dev_acc@intuition:~$ ftp adam@127.0.0.1
Connected to 127.0.0.1.
220 pyftpdlib 1.5.7 ready.
331 Username ok, send password.
Password: 
530 Authentication failed.
ftp: Login failed

在 /tmp 目录下上传一个 linpeas.sh 文件,赋予执行权限,然后执行来查看系统弱点

dev_acc@intuition:/tmp$ chmod +x linpeas.sh 
dev_acc@intuition:/tmp$ ./linpeas.sh

看到有一个 4444 端口

将 4444 转发到本地

┌──(kali㉿kali)-[~/vegetable/HTB/Intuition]
└─$ ssh -i id_rsa dev_acc@10.10.11.15 -L 4444:127.0.0.1:4444
Enter passphrase for key 'id_rsa': 
Last login: Tue May  7 07:38:10 2024 from 10.10.14.14
dev_acc@intuition:~$ 

访问 http://127.0.0.1:4444/ui/ 可以看到 Selenium Grid,但是加载不出来,先放下看看其他的

还发现了 suricata 日志,suricata 是一个入侵检测类的工具

在日志中发现了 lopez 的密码

dev_acc@intuition:/var/log/suricata$ zgrep -i lopez *.gz | grep "success"
eve.json.8.gz:{"timestamp":"2023-09-28T17:44:48.188361+0000","flow_id":1218304978677234,"in_iface":"ens33","event_type":"ftp","src_ip":"192.168.227.229","src_port":45760,"dest_ip":"192.168.227.13","dest_port":21,"proto":"TCP","tx_id":2,"community_id":"1:hzLyTSoEJFiGcXoVyvk2lbJlaF0=","ftp":{"command":"PASS","command_data":"Lopezz1992%123","completion_code":["230"],"reply":["Login successful."],"reply_received":"yes"}}

可以切换至 lopez 用户,使用 sudo -l 可以查看可以运行 runner2

dev_acc@intuition:/var/log/suricata$ su lopez
Password: 
lopez@intuition:/var/log/suricata$ sudo -l[sudo] password for lopez: 
Matching Defaults entries for lopez on intuition:env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin, use_ptyUser lopez may run the following commands on intuition:(ALL : ALL) /opt/runner2/runner2

这部分做完了,但是把 flag 提交后点了重启虚拟机,结果后面的内容以及之前一些内容都没来得及保存,也不想再做一次了,文章参考了 HTB Intuition (mzph.cn),直觉 HTB 写 (taipanbyte.ru),Hack The Box-Intuition-CSDN博客

就这样吧!累了!

参考链接:

直觉 HTB 写 (taipanbyte.ru)

【漏洞通告】 Python URL解析安全绕过漏洞(CVE-2023-24329)-启明星辰 (venusgroup.com.cn)

urllib.parse space handling CVE-2023-24329 appears unfixed · Issue #102153 · python/cpython (github.com)

HTB Intuition (mzph.cn)

Hack The Box-Intuition-CSDN博客

这篇关于Linux/Intuition的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/974541

相关文章

防止Linux rm命令误操作的多场景防护方案与实践

《防止Linuxrm命令误操作的多场景防护方案与实践》在Linux系统中,rm命令是删除文件和目录的高效工具,但一旦误操作,如执行rm-rf/或rm-rf/*,极易导致系统数据灾难,本文针对不同场景... 目录引言理解 rm 命令及误操作风险rm 命令基础常见误操作案例防护方案使用 rm编程 别名及安全删除

Linux下MySQL数据库定时备份脚本与Crontab配置教学

《Linux下MySQL数据库定时备份脚本与Crontab配置教学》在生产环境中,数据库是核心资产之一,定期备份数据库可以有效防止意外数据丢失,本文将分享一份MySQL定时备份脚本,并讲解如何通过cr... 目录备份脚本详解脚本功能说明授权与可执行权限使用 Crontab 定时执行编辑 Crontab添加定

使用docker搭建嵌入式Linux开发环境

《使用docker搭建嵌入式Linux开发环境》本文主要介绍了使用docker搭建嵌入式Linux开发环境,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面... 目录1、前言2、安装docker3、编写容器管理脚本4、创建容器1、前言在日常开发全志、rk等不同

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux搭建ftp服务器的步骤

《Linux搭建ftp服务器的步骤》本文给大家分享Linux搭建ftp服务器的步骤,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录ftp搭建1:下载vsftpd工具2:下载客户端工具3:进入配置文件目录vsftpd.conf配置文件4:

Linux实现查看某一端口是否开放

《Linux实现查看某一端口是否开放》文章介绍了三种检查端口6379是否开放的方法:通过lsof查看进程占用,用netstat区分TCP/UDP监听状态,以及用telnet测试远程连接可达性... 目录1、使用lsof 命令来查看端口是否开放2、使用netstat 命令来查看端口是否开放3、使用telnet

Linux系统管理与进程任务管理方式

《Linux系统管理与进程任务管理方式》本文系统讲解Linux管理核心技能,涵盖引导流程、服务控制(Systemd与GRUB2)、进程管理(前台/后台运行、工具使用)、计划任务(at/cron)及常用... 目录引言一、linux系统引导过程与服务控制1.1 系统引导的五个关键阶段1.2 GRUB2的进化优

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

linux安装、更新、卸载anaconda实践

《linux安装、更新、卸载anaconda实践》Anaconda是基于conda的科学计算环境,集成1400+包及依赖,安装需下载脚本、接受协议、设置路径、配置环境变量,更新与卸载通过conda命令... 目录随意找一个目录下载安装脚本检查许可证协议,ENTER就可以安装完毕之后激活anaconda安装更

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详