某次省hvv-步步艰辛的打点入口
2023-4-8 11:13:59 Author: 藏剑安全(查看原文) 阅读量:40 收藏

前言

某次省攻防演练的艰辛打点。

篇幅较长,请耐心观看

不是星标不推送文章了。

师傅也不想吧~

快把极梦C设置成星标吧。

环境结束

windows2016

iis10

asp.net:4.0

目标假设ip: 55.55.55.55

入口点

提供的靶标:http://55.55.55.55:8111/

大官网,找不到什么可利用的点。

IP封的太快了。

端口扫描:经过好几个ip的分段扫描,发现了几个端口。(因为ip封禁太快,这里端口分开跑一下)

发现

http://55.55.55.55:8411/ 地市

http://55.55.55.55:6611/ 省直

细看这两个都是同一个框架的。

测试发现两个都存在弱口令 admin/123456

同时发现地市的资产对ip封禁很少,省直的封ip嘎嘎快

首选地市的资产,发现后台没有上传点,js分析也没有发现upload相关的上传,放弃。

不得已,转到省直的目标,找到了几个上传模块,发现上传接口都是同一个。

文件上传

假设文件上传为:http://55.55.55.55:6611/aa/bb/upload

文件上传路径为:http://55.55.55.55:6611/image/2023/test.png

后缀绕过

首选别名绕过,发现目标asmx后缀名是可以上传的。

发现访问进行了url跳转。

http://55.55.55.55:6611/500.html?=/image/2023/test.asMx

第一反应,这是linux的吗?
asp能在linux 上跑吗?
特意去google一下,发现linux应该是可以跑asp的

这里也利用了png改成pnG的方式,但是目标报错。假设是linux先测试一波

既然是假设是linux,第二次上传了asmx

发现访问也进行了url跳转。

http://55.55.55.55:6611/500.html=/image/2023/test.png.asmx

asmx和asMx测试结果都是一样的,假设失败。
想起来之前也是遇到过这种情况,不过当时他的环境是linux/jsp.
当时访问也是这种500。利用;可以绕过正常访问。

这里利用;也无法正常访问.

到这里就不用考虑系统,只需要考虑后缀名即可。

回想

回想起来,在2020年进行过的一次攻防演练,打过目标这个系统框架。

当时也是通过文件上传进行后缀和内容检测的绕过,最终获取了webshell。

当时绕过的方式:

后缀绕过: 

"1.aspx".jpg" 

内容绕过: 

      利用gif图片绕过

      jpg图片+gif图片+木马绕过

经过测试,发现目标都进行了修改。

再次回想

又想到一次绕过,当时无法访问是因为文件后缀和文件内容不匹配。

如: a.asp 内容需要全部是asp内容。

详细可以参考一下我之前写的

https://www.t00ls.com/thread-62556-1-1.html

或者

https://www.freebuf.com/articles/web/270385.html

经过测试发现上述方式都失败。

假设asmx可以成功,接下来就是考虑内容检测的问题了。

内容检测,不知道是什么检测机制。对一些字符的拼接有拦截。如图

asmx的头部测试。

asmx的马子,本身是不会asp的,对免杀陷入沉思。不停的搜文章,发现最后也无法进行单纯的asmx上传。

总结上述方式

经过了一天的时间做的一些失败尝试。

上传asmx文件-->访问500-->尝试利用;号绕过500-->历史绕过方式-->尝试内容和后缀名一致绕过-->最终结果全部失败

访问还是无法访问,到这里就感觉可能不是免杀的问题,

可能还是后缀问题,

(该退就退,不能一条路走到黑,其实是已经耗时一天了。

hw中一天是什么概念!)

接下来就测试其余后缀是否可以绕过

继续绕过后缀

单纯的进行双写filename--->失败

boundary=1--->boundary= 1 等效替换--->失败

等等。

最终绕过后缀

Content-Disposition: form-datA*;;;;;;;;;;;;;;name="file";;;;;;;;;;;;;;;;;;;;; filename1123="1.aspx";$20 filename="test.asp"

Content-Type: multipart/form-data; boundary= ---------------------------

说明:集合了所有见过的绕过方式,进行一些乱加,最终绕过。

访问

测试上传helloworld

发现gg,内容检测需要绕过。

慢慢测试内容,发现和上面的检测一样。

和文件名的后缀没有什么关系。

继续进行过了各种编码免杀,发现waf有点难搞。

这里省略测试了n次。差不多一上午。

退而求其次,试试执行时间命令

<%=now()%> 输出当前主机时间

但是测试别的也是无法上传。

思考

各种测试都被拦截,静下来想一下。

1.本地waf太过强硬。在其余全部免杀的地方这里被查杀。

2.传输过程中waf检测拦截查杀。

内容检测

通过思考,这里一定是因为上述思考的如何在传输过程中进行免杀绕过。

这里想到了之前的绕过方式利用编码

最终成功绕过

Accept-Encoding:

Content-Encoding:

上传asp的马子,访问虽然500但是可以连接的。

asp的权限比较低,后续上传了aspx和asmx进行后渗透。

提权

老思路,利用反射去提权。

上线了cs,查看补丁。

不过现在查看补丁意义不大,因为windows后面出的一些打补丁包会批量修前面的洞,只能看到最近更新,之前的就无法查看了。

想想是不是查看就只有就几个补丁呢。

尝试过的方式

printspoofer

SweetPotato

PrintNotifyPotato

SharpEfsPotato

LocalPotato

PetitPotato

都失败了

说一下:之前都是利用cs反射去绕过。但是在搜索文章过程中,

发现2016对反射进行了一些补丁,导致之前的反射方式会被查杀。

免责声明

本公众号文章以技术分享学习为目的。

由于传播、利用本公众号发布文章而造成的任何直接或者间接的后果及损失,均由使用者本人负责,公众号及作者不为此承担任何责任。

一旦造成后果请自行承担!如有侵权烦请告知,我们会立即删除并致歉。谢谢!


文章来源: http://mp.weixin.qq.com/s?__biz=Mzg5MDA5NzUzNA==&mid=2247484935&idx=1&sn=0a953166ed26094902604b820e252e48&chksm=cfe09c16f8971500af3827778a0f419b246b71b86cc83b825f4cb2d074cbae84ccb5c60e2544#rd
如有侵权请联系:admin#unsafe.sh