黑客网站入侵 编程 搭建 渗透 破解
3.56K subscribers
419 photos
13 links
Download Telegram
TeamQueue类的call方法中会根据传入的参数实例化一个Request对象,并添加进队列,之后TeamQueue Writer线程从队列获取请求对象,使用socket进行发送

以上就是Cobalt Strike客户端发包和接收响应的大致逻辑。在创建TeamQueue实例后开始调用call方法来发送不同阶段的请求
扫描结果分析
网络空间测绘始于扫描,不止于扫描。在找到该特征后,我们开始在互联网中进行挖掘。

使用搜索语句:response:"\x00\x00\xca\xfe" AND port: "50050",可以找到存在弱口令的Cobalt Strike,我们只对部分主机进行了受控IP的提取,这步骤稍微敏感,随机登录一台

通过搜索语法 response:"\x00\x00\x00\x00" AND port: "50050" AND service: "http/ssl"

可以找到没有爆破出密码的Cobalt Strike,可以看到共有5173条扫描记录,1049个IP。

网络空间测绘,始于资产,但不止于资产。

我们认为,主动测绘数据将会与终端行为样本数据、网络流量通信数据一样,是未来网络安全大数据&&威胁情报数据的重要源头。主动测绘数据和基于测绘数据分析后形成的知识将能够极大补充我们的视野
允许任意URL,预期任意代码执行

-- MARKDOWN --
- 我们发现并报告了流行软件中的一键式代码执行漏洞,包括 Telegram**、**Nextcloud**、**VLC**、**Libre-/OpenOffice**、**Bitcoin/Dogecoin Wallets**、**WiresharkMumble
- 将用户提供的 URL 传递给操作系统打开的桌面应用程序经常容易受到**通过用户交互执行代码**的
攻击 - 当打开指向托管在互联网可访问文件共享(`nfs`、`webdav`、`smb` 等)上的恶意可执行文件(`.desktop`、`.jar`、`.exe` 等)的 URL 时,或者利用打开的应用程序的 URI 处理程序中的其他漏洞时,都可以实现代码执行
- 其他软件中已经发现了遵循这种模式的漏洞,预计未来会发现更多漏洞

# 介绍

在本文中,我们展示了众多桌面应用程序中的代码执行漏洞,这些漏洞的根本原因都是一样的:对用户输入的验证不足,这些输入随后被视为 URL 并在操作系统的帮助下打开。所需的用户交互和利用策略取决于桌面环境以及应用程序是否经过强化,例如,使用 URI 方案允许/阻止列表。例如,以下是在 Xubuntu 20.04 上的 Nextcloud(< 3.1.3)中利用此问题的方式:
在某次授权红队行动中,客户给定目标外网资产很少

经过各种挖掘,各种尝试,久久没有结果,注意到某系统为通用系统。

寻找源码到getshell
查找源码
1、网盘泄露:这套系统并不开源,各种网盘泄露网站一顿查找,无果

2、Github、gitlab泄露:尝试了多个关键词,均无果

3、Fofa找同类型的站:用favicon.ico,或是用title来搜,并且将这些资产采集起来,最终在某个站发现web.rar,成功获得源码
从TemplatesImpl类Gadget中提取bytecode

前言
在Java反序列化的gadget中,有很多使用可反序列化TemplatesImpl类进行命令执行(比如CommonsCollections2-4、CommonsBeanutils1、Jdk7u21以及变种JRE8u20等等)。

实际上这类Gadget的反序列化过程中是直接或间接调用newTransformer或getOutputProperties方法,最终进入defineTransletClasses方法,将_bytecodes字段中存储的类的bytecode重新在JVM中定义为类,最终在对其调用newInstance方法时,触发写在该类static块或者无参构造方法中的代码块,从而达到代码执行的效果。

由于ysoserial中默认用于创建TemplatesImpl对象的createTemplatesImpl函数中,是在bytecode对应的类的静态代码块中加入执行java.lang.Runtime.exec的代码段,所以效果上来说,ysoserial创建的这类gadget是用于触发命令执行的,但实际上是可以进行任意代码执行的。
至此,我们拿到能够获得进行pickle序列化的所有条件


利用场景

Django创建cache文件夹的默认权限是700,这意味无法通过同组的用户来进行改写,但是Django的服务器一般是用nginx或者apache等来启动。有的情况下,nginx服务器底下可能不止一个服务在运行,也可能是PHP或者其他。那么如果其他服务能够进行对临时文件夹tmp或/var/tmp内部的内容进行读写的话,则可以对Django框架进行攻击
我们找到了一个名为FBSharedFramework的 Mach-O 64 位共享库二进制文件。我们将使用Hopper Disassembler打开该二进制文件,由于该文件较大,因此需要一些时间才能完全反汇编该二进制文件。

一个好的开始是使用应用程序上显示的警报错误进行搜索。因此,我们将尝试找到导致OpenSSL 证书验证错误的分支。

我们必须将b.ne(“不相等时分支”的缩写)指令反转为b.eq(“不相等时分支”的缩写)指令,前者当且仅当零标志清零时才会分支或“跳转”到指定的地址,后者当且仅当零标志清零时才会分支或“跳转”到指定的地址。因此,它不会进入导致 OpenSSL 证书验证错误的loc_1491b4分支,而是进入有效分支。
Spring 处理
恶意请求/xxxxx/..;/admin通过Shiro的校验后,传递到Spring Boot中进行解析,根据Controller设置的路由选择对应Servlet

org.springframework.web.util.UrlPathHelper#getPathWithinServletMapping
对一种加密保护的思想的一点分析.....

【声明】
我写文章以交流为主,希望大家在转载时能保持文章的完整性。

作者: ljtt
写作日期: 2001-05-08

【前言】
有段时间没有写东东,主要是肚子空空如也,没有什么可写的了,这会只好又拿点葫萝卜加白菜的方法,凑合着向大家推销点东西了。
不巧的是今天正好赶上"欢乐时光",希望不会在我写到最后来个什么惊.....

【分析对象】一类共享软件的保护机制

此共享软件的合法使用方式:电子注册,一机一码,付钱给码。

保护方法:

1、把用户输入的注册码和用户名进行变换得到一个解密数据的KEY。

2、对加密的数据用KEY进行解密。

3、对解密后的数据进行CRC检验,如果检验值正确,则提示注册成功,并"打开"被禁止(或保护)的功能。
以后用户就可以合法使用软件了。

暗藏机关:

现在得说一说这些加密的数据了。:-) 那些加密的数据是被禁止(或保护)的功能要使用到的一些关键数据。


此保护方法优点:

可对付某些形式的暴破。如果只修改跳转方向并不能得到真正解密的数据,而这些数据由于还要在被禁止(或保护)的功能中用到。
如果是KEY不正确,还原出一堆垃圾,那么会在功能使用中出现一些奇异的错误。:-)


此保护方法缺点:

1、如果有一合法用户泄密了KEY,则整个保护体系崩溃。:-)

2、如果加密的数据有明显的特征,则KEY可能会被推测出来。

3、如果加密/解密算法设计不当,也会出问题。

4、好象有已经针对CRC检验的一些破解办法,所以这里说到的CRC检验只是代表类似这样一种检验方法而已,具体用怎样的检验算法还得小心。


这主要是说明这种保护思路中的说明的重要一点就是不要进行明码比较,加密算法使用得再好,如果最后进行直接明码比较,就功亏一溃。
这种方法主要是针对此薄弱点进行的一种探讨。当然要改进之处也很多了。更多的保护方法还是你来吧,我只有三脚猫的功底,说多了就漏了。:-) 当然我想你至少会把这种方式进行迭加,弄它十个几十个解密/CRC检验方式。当然最后的保护效果如何,还是请暴破工程队来说说吧。

【后记】
当然我相信你知道更多更好的加密思想,如果你希望别人和你分享其中思想的闪光点,那么不妨说说吧。当然你也可以给我写信悄悄地告诉我,我猜这大概你已经用在自己编写的软件上了吧。:-)
确保文件无损写入。

❯ 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 检测方式 ,我这里简单复述一下结论