黑客网站入侵 编程 搭建 渗透 破解
3.61K subscribers
419 photos
13 links
Download Telegram
确保文件无损写入。

❯ md5 /tmp/mstlsapi.dll
MD5 (/tmp/mstlsapi.dll) = 99cbcb346f7d2473bde579fbbe979981
PS C:\Users\Public\Downloads> Get-FileHash .\mstlsapi.dll -Algorithm MD5

Algorithm Hash
--------- ----
MD5 99CBCB346F7D2473BDE579FBBE979981
因为 redis 是 Administrator 启动的,所以我们可以写入劫持文件到 C:\Windows
寻找Fastjson 1.2.68 AutoCloseable利用链

我在Java漏洞方向没有长期积累,水平有限,细究这个洞后找不到rt.jar中的利用链。我没有那些大框架、大中间件的测试环境,所以也没有触及潜在的高危链。后来我想开了,咱也装不了Java大拿,就在第三方库中找软柿子捏,于是就有了文字。

不作漏洞分析,[87]把该讲的都讲清楚了,没啥好分析的。论文给出一个现实世界的极小众PoC,利用第三方库向指定文件写入指定内容。严格标准讲,也不算现实世界的PoC,因为所用的两个第三方库可能并不会同时出现,但至少比自己写一个纯原理性的PoC劝告力一些。另外,本文写了我是怎么找到利用链的,简单点说,写程序在maven的本地仓库中愣找,先得到一个大致范围,再手动过滤。

☆ 1.2.68漏洞复现尝试

1) 清空指定文件

1.1)AutoCloseable_TruncateFile.json
FindSomeClass3.java

纯手工找这三类不太可能,曾经在rt.jar中手工过,学艺不精,未能得逞。退而求其次,在maven的本地仓库中寻找潜在可用的第三方库,这需要写程序完成

FindSomeClass3.java是个示例性框架,根据需要写自己的过滤逻辑即可。有些代码没必要,懒得删减,领会精神

今天跟金超前吐槽,为啥我这么执着找一条这个洞的利用链,主要是看不惯除原发现者外面的一群2B藏着掖着的德性。原发现者不给PoC我理解,后面还有一些吹NB的一通神吹装个B完事,这种特看不惯。他们应该是找到了一些链,但我觉得这没必要藏着掖着,尤其不是自带库的情况下。如果找到了,不吹这个牛,自己留着用,这也无可厚非
一些细节的坑点就不展开说了,总之就是各种反射各种 try/catch,我尽了最大的努力来提高其对各种 Tomcat 环境的兼容性,文章最后会将这个成果分享给大家。有了这个比较好用的回显 payload,搭配 K1/K2 来触发反序列化流程,就打造成了 xray 高级版/商业版中 Shiro 反序列化回显检测的核心逻辑,回显效果如下

使用 xray 扫到过 xss 的同学应该都有所体会,xray 扫到的 xss 漏洞不一定可以直接弹框,但相关参数一定存在可控的代码注入,经常会遇到网站存在 waf 但 xray 依然可以识别出 xss 的情况。纵观整个 Shiro 反序列化的流程,步步都是在针尖上跳舞,一步出错便前功尽弃。倘若目标站点部署了 RASP 等主机防护手段,很有可能导致反序列化中断而与 RCE 擦肩而过,有没有什么办法能够像 xss 一样大幅的提高其检测能力的下限呢?和 l1nk3r 师傅交流了一下,他提到一种检测 Shiro Key 的方法很不错,据说原理来自 shiro_tool.jar ,详情可以参考这篇文章一种另类的 shiro 检测方式 ,我这里简单复述一下结论
案例研究
让我们看看将这种方法应用于真实网站时会发生什么。在本节中,我将探讨一系列缓存密钥处理漏洞,这些漏洞来源于有漏洞赏金计划的网站,并分享一些可以与之结合的小工具。

无键查询检测
最常见的缓存键转换是从键中排除整个查询字符串。我确信有些人在我之前就已经认识到并利用了这种行为,但它肯定没有得到充分重视。与直觉相反,它也很难被发现,因为它将动态页面伪装成静态页面。您可以通过更改参数的值并观察响应中的某种差异来轻松识别大多数动态页面
WebLogic coherence UniversalExtractor 反序列化 (CVE-2020-14645) 漏洞分析

该漏洞是针对于CVE-2020-2883的补丁绕过,CVE-2020-2883补丁将MvelExtractor和ReflectionExtractor列入黑名单,因此需要另外寻找一个存在extract且方法内存在恶意操作的类,这里用到的类为com.tangosol.util.extractor.UniversalExtractor,存在于Coherence组件。

其本质上,都是通过ReflectionExtractor调用任意方法,从而实现调用Runtime对象的exec方法执行任意命令,但补丁现在已经将ReflectionExtractor列入黑名单,那么只能使用UniversalExtractor重新构造一条利用链,这里使用poc2的入口即CommonsCollections4链的入口进行构造。
是在PriorityQueue的构造函数中被赋值的,并且这里可以看到,queue对象数组也是在这里被初始化的。那么结合上述所分析的点,我们需要构造一个长度为2的queue对象数组,才能触发排序,进入siftDown()方法。同时还要选择一个comparator,这里选用ExtractorComparator。继续跟进ExtractorComparator.compare()方法
网络渗透测试的六个关键阶段:

-网络扫描
-后期利用框架
-旋转和横向运动
-Active Directory 评估
-欺骗和窃听
-凭证窃取

网络渗透是对组织内部基础设施和防御的安全入侵。网络渗透将从假定的漏洞开始,渗透获得对内部网络的初始访问权限。渗透可以花更多时间测试组织的内部防御和安全控制,而不是尝试获得初始访问权限。
各种 Linux 权限提升技术,例如内核和服务漏洞、理解 SUID、管理计划任务和导航密码发现。
这些技术和工具,从利用错误配置的 sudo 权限到利用易受攻击的服务,都是渗透测试人员工具包的重要组成部分。您已经学会了如何通过手动方法和自动化工具进行枚举。

一个以明文形式存储的用户名“root”和密码“john@123”。让我们看看是否可以使用找到的密码切换到 sickos 用户。有时密码会在多个服务中重复使用。

将 www-data 用户提升为 sickos 用户。与往常一样,让我们​​使用该sudo -l 命令检查我们是否有任何 sudo 权限。

以 root 用户身份运行所有命令,因此我们运行sudo su。现在有一个 root shell。
查找密码
Linux 特权升级,成为 root 用户的最简单方法之一就是找到密码。这可以提供获得系统访问权限的直接途径。攻击者可能会使用多种方法来查找系统上的密码。

Linux 用户可能会以纯文本形式存储他们的密码;如果这些文件没有得到妥善保护,会访问用户的帐户。

一旦找到密码,就可以使用它来登录到更高权限的帐户或使用它与 sudo 一起以提升的权限运行命令,从而提升权限。

使用VulnHub 的SickOS VM来看一下它是如何工作的 。一旦我们在机器上拥有 shell,就可以搜索密码。可以做的第一件事是查看并使用该 cat /etc/passwd命令查看系统上的其他用户。

另一个名为 sickos 的用户。下一步是搜索以纯文本形式存储的密码。我们可以使用以下命令搜索包含字符串“pass”的 PHP 文件。

find / -maxdepth 4 -name *.php -type f 2>/dev/null | xargs grep -C 3 -i pass
使用以下命令运行 pspy:

./pspy64

让 pspy 运行几分钟后,看到一个名为 ftpclient.py 的进程定期运行

查一下这个文件,看看是否可以以某种方式在其上附加一些代码来生成反向 root shell。

没有 ftpclient.py 文件的写入权限,但我们注意到该文件正在导入“ftplib”。也许我们可以将其写入该文件
SUID
SUID,即设置所有者用户 ID。SUID 允许用户以与文件所有者相同的权限运行可执行文件。

SUID 权限可以使用带有四个前缀的 chmod 命令来设置,并且可以在长列表 ( ls -l) 中用 s 代替用户执行 (x) 权限来标识.

获得反向 shell,开始枚举并查看是否有启用了 SUID 位的文件。手动或通过自动化工具执行此操作。

检查 SUID,终端类型中输入:find / -type f -perm -04000 -ls 2>/dev/null
Sudo 权限
Linux 系统中,sudo 代表“超级用户执行”。该命令允许普通用户以超级用户 (root) 的安全权限运行某些命令。sudo 的主要目的是将 root 权限限制在真正需要时。

可以利用 sudo 规则,该规则允许提升的权限运行某些命令,例如 cat、find 或 python,然后我们可以操纵这些命令来运行任意命令。

使用VulnHub 中的Raven VM进行 shell 转义来利用 sudo 权限 。
通过 SSH 获得 shell 后,可以进行一些枚举来查看拥有哪些权限。
用sudo -l 命令检查我们的 sudo 权限。
从上面的截图中可以看到,用 sudo 权限运行 Python,而无需提供密码。利用这一点来获取 root shell

GTFOBins 是一份精选的 Unix 二进制文件列表,我们可以使用它来绕过本地安全限制。我们可以查看此资源,以了解可以使用 Python 运行哪些命令来成为 root。