网络安全实战之靶场渗透技术
信息收集
端口扫描
nmap找到三个开放的 TCP 端口,FTP (21)、SSH (22) 和 Python 托管的 HTTP (5000):
发现存在ftp匿名登录,使用ftp进行登录。
Flask App
访问5000端口,发现开启了web服务。
在登录框测试了一些常规漏洞,SQL注入和弱口令都没有用。
【一一帮助安全学习,所有资源获取处一一】
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
网站上没有什么有趣的东西,我们去注册看看:
登录之后,重定向到/dashboard这个目录下。
“添加注释”按钮指向/add_note,它有一个表格。尝试提交一个note进行测试。
它显示在我的仪表板上。
尝试各种 XSS 有效负载,但一切似乎都正确地转义了。“Notes” ( /notes) 现在显示我的笔记:
单击它会导致/note/3并显示注释:
我将尝试通过检查其他注释 ID(/note/1)。例如,点击“升级到VIP”的链接显示该选项当前不可用
漏洞发现
JWT解密
尝试解密cookie。
Flask cookie 看起来很像 JWT。我将尝试flask-unsign
,一个用于解码、暴力破解和制作 Flask cookie
的工具,它可以工作:
目录爆破
没有发现啥可以利用的地方,就继续看cookie。
Flask Unsign解密
使用flask-unsign解密
flask-unsign --decode--cookie'.eJwlx0EKgCAQBdCrDH_torU3iZCQHC0wBUcpEO-e0OrxOnYfrZws0FsH1QmkHQeLQGHNjWxhSvmhmENgR1eCGUbh7z6ra2ms0IRLsjdDY3mdx_gAqEYfRw.YkOi3g.uAoRysM25q2FzuEUmYMaCRMQ4aA'{'_flashes': [('success', 'You are now logged in')], 'logged_in': True, 'username': '0xdf'}cookie:eyJsb2dnZWRfaW4iOnRydWUsInVzZXJuYW1lIjoiYWRtaW4ifQ.Yxvarg.S9d5IqA4nL7CBjzYp4CfnG8IoLk
命令:
flask-unsign --decode --cookie 'eyJsb2dnZWRfaW4iOnRydWUsInVzZXJuYW1lIjoiYWRtaW4ifQ.Yxvarg.S9d5IqA4nL7CBjzYp4CfnG8IoLk'
使用flask-unsign. Flask cookie 使用秘密签名,因此在不知道该密码的情况下无法修改它们。可以进行暴力破解来测试弱密码,并通过flask-unsign来提供该功能。–unsign-w,运行它会rockyou.txt返回错误:
它似乎将文件中的“123456”通过添加–no-lteral-eval. 我将添加它,它可以很快找到秘密:
以管理员身份访问测试
生成一个管理员的cookie,然后替换到浏览器当中去。
eyJsb2dnZWRfaW4iOnRydWUsInVzZXJuYW1lIjoiYWRtaW4ifQ.YxvdIw.PpnxZ3h8WkIo_5JMIfhCDD7hXo8
带有 Cookie 的暴力用户名
使用time将可能的用户名生成一个cookie 列表。
代码分析
这将获取一个名称列表并生成我需要的所有 cookie。这实际上很慢,运行时间超过 8 分钟。这是因为每项工作都必须启动,其中包括导入所有 Flask。
我可以深入研究一下flask-unsign源代码,并跟踪我用–sign.
@lru_cache()
def get_serializer(secret: str, legacy: bool, salt: str) -> URLSafeTimedSerializer:"""Get a (cached) serializer instance:param secret: Secret key:param salt: Salt:param legacy: Should the legacy timestamp generator be used?:return: Flask session serializer"""if legacy:signer = LegacyTimestampSignerelse:signer = TimestampSignerreturn URLSafeTimedSerializer(secret_key=secret,salt=salt,serializer=TaggedJSONSerializer(),signer=signer,signer_kwargs={'key_derivation': 'hmac','digest_method': hashlib.sha1})
向后追溯,我可以发现默认的 salt 是“cookie-session”
。我知道或只是在文件顶部导入的其他内容。我可以使用它来生成我自己的脚本:
#!/usr/bin/env python3import hashlib
import sys
from flask.json.tag import TaggedJSONSerializer
from itsdangerous import TimestampSigner, URLSafeTimedSerializerif len(sys.argv) < 2:print(f"{sys.argv[0]} [wordlist]")sys.exit()with open(sys.argv[1], 'r') as f:names = f.readlines()for name in names:cookie = URLSafeTimedSerializer(secret_key='secret123',salt='cookie-session',serializer=TaggedJSONSerializer(),signer=TimestampSigner,signer_kwargs={'key_derivation': 'hmac','digest_method': hashlib.sha1})print(cookie.dumps({"logged_in": True, "username": name.strip()}))
使用wfuzz检查每个 cookie,隐藏 302 响应(重定向回/login
枚举到一个,解码为blue,发现一个blue用户。
使用登录 Oracle 的暴力用户名
使用wfuzz对所有用户发送登录请求,并注意任何不响应“无效凭据”的用户。有一个文件: names.txt
它返回了一个有效的用户名,blue(就像我通过制作 cookie 找到的一样)。我将flask-unsign用来制作 cookie:
站点访问/枚举
无论我以哪种方式获得blue的cookie,替换 Firefox 开发工具中的当前 cookie,然后重新加载/dashboard显示我现在以blue登录:
还有“导入笔记”和“导出笔记”按钮。我稍后会回到这些。
发现FTP登录的用户和密码。
FTP登录
发现一个 是关于密码安全的PDF,下载下来,然后进行分析。
发现了默认的用户名格式。
以 ftp_admin 身份访问 FTP
ftp_admin@Noter!
有一个目录files和一个PDF。目录为空:
发现2个zip文件,将它们都下载到本地。
md 到 pdf 中的 RCE
使用unzip -l
查看压缩包文件内容。
使用diff命令比较2个压缩包的区别。
我app.py
将从每个中提取,并将它们重命名为app-1.pyand app-2.py
:
继续使用diff进行比较。运行diff app-1.py app-2.py显示第一个对数据库有不同的信任:
来源分析
该代码很有趣,export_note_local在andexport_node_remote
函数中有一个有趣的东西。每个人都会得到一个注释,要么在本地读取它,要么从给定的 URL 读取它,然后用来针对它subprocess
运行一个nodeJavaScript
程序。例如,来自export_node_local:
rand_int = random.randint(1,10000)
command = f"node misc/md-to-pdf.js /pre>{note['body']}' {rand_int}"
subprocess.run(command, shell=True, executable="/bin/bash")return send_file(attachment_dir + str(rand_int) +'.pdf', as_attachment=True)
CVE-2021-23639
漏洞描述:
影响 md-to-pdf包,版本 <5.0.0
md-to-pdf是一个用于将 Markdown 文件转换为 PDF 的 CLI 工具。此软件包的受影响版本容易受到远程代码执行 (RCE) 的影响,因为它利用库灰质来解析前端内容,而不禁用 JS 引擎。
该package-lock.json
文件将给出所需 JavaScript 包的版本。我将从档案中提取它并通过以下方式找到它grep:
google搜索这个包和漏洞利用会返回一个页面:
攻击者可以将有效载荷放入传入的降价中,这将导致 RCE。
获取权限
反向壳
创建一个md文件,写入反弹shell的语句来利用它。
本地先启动一个80端口,然后使用nc进行监听,接着使用网站的Export功能。
反弹Shell
获得user.txt
获得第一个user.txt文件,使用cat命令进行查看。
MySQL
我们在其中一个脚本中发现了 mysql 凭据。由于这是一个 CTF,这样的事情总是会引起怀疑。
我们检查mysql是否在本地运行:
我们在默认端口 3306 上看到它。我们还可以检查服务,看看它是否以 root 身份运行
在 MySQL 中利用 UDF
这是。所以我们知道 mysql 以 root 身份运行,并且我们有 root 凭据来登录它。使用 Exploit-DB 上的漏洞利用我们可以将源代码复制到盒子中,编译它,然后使用它在 mysql 中创建的共享库以 root 身份执行代码。
让我们使用 searchsploit
获取代码:
本地开启一个web服务,将文件下载到目标机器上。
接着使用gcc进行编译。
然后下载到目标机器上。
MYsql登录
在之前获取到了机器的用户和密码,然后进行登录。
权限提升
Raptor
漏洞利用:
有很多关于如何使用称为 Raptor 的代码来利用以 root 身份运行的 MySQL,我的想法是,我将编写一个共享库,将 SQL 中的命令运行到插件目录中,然后添加一个命令来访问它并以 root 身份执行。
我需要获取漏洞利用文件的副本并使用注释中的说明进行编译:
将脚本文件上传上去。
漏洞利用过程
1.创建一个foo表并将二进制文件读入其中:
2.查看插件目录
3.将二进制文件写入上面的插件目录,并将其作为用户定义的函数加载:
4.测试文件权限。
5.运行。
mysql复制bash并将其更改为 SUID:
需要找一个文件运行的地方不是/dev/shm,因为它已经安装nosuid:
而/tmp会正常工作。因为bash删除 privs,运行它会返回一个非 root的 shell:
获得root.txt
读取root.txt
【一一帮助安全学习,所有资源获取处一一】
①网络安全学习路线
②20份渗透测试电子书
③安全攻防357页笔记
④50份安全攻防面试指南
⑤安全红队渗透工具包
⑥网络安全必备书籍
⑦100个漏洞实战案例
⑧安全大厂内部视频资源
⑨历年CTF夺旗赛题解析
总结:
靶机主要是从信息收集开始,发现是flask搭建的,然后使用flask unsign进行解密,暴力破解。接着使用枚举出的用户进行FTP登录,FTP登录之后,下载pdf文件,发现管理员账号和密码规则,然后登录FTP管理员,接着下载压缩包,进行文件分析,发现可以使用CVE-2021-23639历史漏洞可以获取权限,在文件中发现存在mysql服务,接着进行权限提升,获取到了root文件。
网络安全实战之靶场渗透技术相关推荐
- 【网络安全】2022年第一次靶场渗透实战学习
一.介绍 渗透测试是通过模拟黑客或者骇客攻击,以评估计算机系统或者网络环境安全性的技术:主要的目的是进行安全性的评估,而不是摧毁或者破坏目标系统. 渗透测试所需要的基础技能必须有网络基础.编程基础.数 ...
- 内网渗透之Msf-Socks代理实战(CFS三层靶场渗透过程及思路)
前言 作者简介:不知名白帽,网络安全学习者. 博客主页:https://blog.csdn.net/m0_63127854?type=blog 内网渗透专栏:https://blog.csdn.net ...
- 网络安全渗透技术(入门视频课程)-李云鹏-专题视频课程
网络安全渗透技术(入门视频课程)-67人已学习 课程介绍 本课程是网络安全技术入门课程,针对以下类型学员: 1)想要学习网络安全: 2)具备一定对技术的好奇心: 3)需要对Web编程. ...
- Web渗透技术及实战案例解析 PDF 分享
链接:https://pan.baidu.com/s/1XsI2AemiPZH0UqFRfQZIjw 提取码:b9p1 相关推荐 WEB之困-现代WEB应用安全指南 黑客攻防技术宝 ...
- 安全之路:Web渗透技术及实战案例解析(第2版)
安全之路:Web渗透技术及实战案例解析(第2版) 转载于:https://www.cnblogs.com/ITniu/p/6472437.html
- 视频教程-Kali Linux渗透测试基础入门到进阶实战全程课-渗透测试
Kali Linux渗透测试基础入门到进阶实战全程课 本人有多年的服务器高级运维与开发经验,擅长计算机与服务器攻防及网络攻防技术!对网络安全领域有持续的关注和研究! 林晓炜 ¥499.00 立即订阅 ...
- 网络安全实战攻防演练丨防守方案经验分享
2016年<网络安全法>颁布,出台网络安全演练相关规定:关键信息基础设施的运营者应"制定网络安全事件应急预案,并定期进行演练".网络安全实战化攻防演练作为国家层面促进各 ...
- planet_Earth靶场渗透记录
planet_Earth 靶场渗透记录 一.线索资料 1.拿到靶机IP 还从一个逗比那里学了一招,windows中cmd arp -a //也可以拿到靶机IP,前提是两者有交互 A B Kali ? ...
- 【渗透实战】web渗透实战,相对高安全级别下,详细分析整个渗透过程以及介绍社工的巧妙性,拿一站得数十站,(漏洞已交)
''' 版权tanee 转发交流请备注 漏洞已经提交管理员 关键过程的截图和脚本代码已经略去.希望大家学习技术和思路就好,切勿进行违法犯罪的活动.本实战案例仅作为技术分享,切勿在未经许可的任何公网站点 ...
- html iframe 不限制大小_渗透技术再升级:如何利用HTML注入泄漏用户数据
概述 本文主要详细分析了我如何重新发现一种漏洞利用技术,成功绕过现有的缓解措施,对目标产生了相当有限的影响,并获得了5位数的奖金. 启发:一个奇怪的HTML注入案例 André Baptista和Ca ...
最新文章
- 习题4-3 求分数序列前N项和 (15 分)
- 解决计算机改名无法连接TFS的问题
- python编写一个软件-python写一个随机点名软件的实例
- 全球及中国消费电子环境光传感器 (ALS)行业运行现状与十四五应用建设报告2022版
- 获取SQL SERVER某个数据库中所有存储过程的参数
- 【转载】IPPROTO_RAW IPPROTO_IP
- 计算机二级是报office还是vb,请问一下计算机二级中,高阶office好考,还是VB好考?...
- VS2017 启动调试出现 无法启动程序“http://localhost:15613” 操作在当前状态中是非法的。 同时附加进程也是错误的解决方法
- .Net MVC中SelectList绑定默认值失效的解决办法
- 编译Windows版本ffmpeg:cygwin方式通过
- 树莓派docker 搭建owncloud个人云盘
- python 调用海康sdk_Qt调用海康SDK实现摄像头视频播放
- Win10系统Qt安装及配置
- ERP实施项目的计划阶段要点分析
- iPhone 13 投屏到 Windows 10 的办法
- 人工智能-八数码问题-启发式搜索
- 密码学的安全性浅析3
- 在 WPF 中使用 Prism DryIOC 加载应用程序时导航到默认视图
- 何恺明 matlab,[论文复现]何恺明博士CVPR2009去雾算法(1)
- PDF拆分与合并工具(DOS版)
热门文章
- qss之QRadioButton
- java中resultset的previous_在 Java中,已获得默认类型的ResultSet对象rs,要获得结果集中的数据,必须执行的语句是( )。_学小易找答案...
- mencoder_有用的Mplayer / Mencoder命令
- android自定义软键盘-中文与英文大小切换
- windows桌面股票价格软件
- Java不能做游戏?快来看看这个Java版超级玛丽吧。
- 仿链家地图找房_iOS地图找房、周边(仿链家、安居客等地图找房)-高德地图-OC...
- 魔兽争霸显示无法登录服务器,魔兽登陆不上去_网络一切正常,但是魔兽世界就是登不上去...
- 检测VC++Redistributable运行库 vcredist_x86.exe
- VR沙盘 日夜场景的制作(Unity2018)