| 关键词: 成功 文件 中转 powershell 尝试 命令 waf 34 内容 目标 |
搜索公众号:暗网黑客教程可领全套安全课程、配套攻防靶场前言很久没有整理实战文章了,恰好这周项目上有一个目标折腾了两天时间,记录分享下其中的心路历程(本次渗透过程均在目标授权下进行,请勿进行非法渗透行为)。 目标基本信息
Getshell 过程其它漏洞的挖掘过程不再描述,直奔权限,发现目标存在一处上传功能。 ![]() 上传成功后返回取件码。 ![]() 使用取件码进行信件查询。 ![]() 点击附件为下载链接。 ![]() 通过对下载链接进行测试,发现报错时泄漏了网站的绝对路径。 ![]() 进过几次尝试,成功访问到上传的图片。 ![]() 网站 waf 对上传文件的后缀名进行了白名单限制。 根据以往的 bypass 经验,开始手撕 waf。 后缀名校验绕过寻找 waf 的设计缺陷来绕过 waf 的上传限制, 常用的几种方法有:
总结一下思路就是在不影响正常上传功能的前提下,尝试改变数据包的部分格式内容,绕过 waf 的校 验。 经过多次尝试,当 Content-Disposition 字段修改为 Content+Disposition 时可以绕过 waf,可以看到上传功能的代码未对后缀名做限制,存在任意文件上传漏洞。 ![]() 内容校验绕过成功对文件后缀名进行了绕过。 直接上传免杀还可以的冰蝎马。 ![]() 上传失败,再次被 waf 拦截,发现还存在文件内容校验,尝试使用平时积累的免杀马。 经过尝试免杀马全部阵亡,无一例外。 当使用 java 的输出函数时也会被 waf 检测拦截。 ![]() 第一次碰到连输出 helloword 都拦的 waf。 经过多次测试,waf 对绝大部分的 java 函数都进行了拦截。 内容加密这种情况下,首先想到的解决方案是对木马进行加密。 在网上查找相关的资料,发现了 LandGrey 大佬的一个 unicode 编码的菜刀马。传送门 可以上传成功。 ![]() 必须要使用 caidao-20160622 的版本进行连接(默认分隔符 : X@Y),然而。 ![]() 菜刀流量被 waf 拦截了。 想到了 2 种解决方案。 1、使用内容加密的大马,例如下图的 php 大马的这种加解密。 2、菜刀马流量中转,上传中转菜刀马,配合本地加解密脚本文件,对数据进行中转加密传输。
奈何网上关于 jsp 加密大马和 jsp 中转木马研究的文章数量有限,再加上本人不懂 java 开发,最后以失败告终。 在这个学习尝试的过程看到了不少大佬优秀的文章,学习到了很多相关知识。如:
感兴趣的小伙伴可以研究下。 内容混淆内容加密 bypass 失败了,只能换一个思路。 尝试对文件内容进行混淆,绕过 waf。 首先想到的是图片马,尝试把木马隐藏到图片源码中,绕过 waf。 在这个过程中也踩了一些坑,有些图片源码包含特殊字符会和木马的代码发生冲突,因此需要特殊处理过的图片才能保证正常解析。 使用 notepad++打开准备好的图片,把 jsp 马插入到图片源码中。 ![]() 更改为 jsp 后缀进行上传。 ![]() 上传失败,猜测可能是混淆的力度不够,未起到混淆的目的。 开始增加文件内容的长度,复制图片的一段源码,反复的粘贴到木马的前后位置,经过若干次尝试,返回了上传成功,且只能成功一次,下 次上传需要重新混淆,难道 waf 还自带了机器学习? ![]() 访问 webshell 地址,文件解析成功,成功拿下了目标的 webshell,权限为最高的 administrator 权限。 ![]() 上传的为 CMD 马,只能执行系统命令,目标通互联网,下一步的思路是:使用命令直接下载 cs 马或者 msf 马执行。 使用命令下载免杀 exe 到本地执行。 cmd 下常用的下载命令有三种,推荐使用证书下载命令,免杀性强,其它两种容易被防护拦截。 证书下载``` *
bitsadmin 命令下载 ``` *
免杀处理的方法有很多,可以参考我之前发布的文章中。攻防演练对抗赛之初识文件钓鱼 也可以关注我们 Tide 安全团队的公众号,查看免杀系列文章。 上传后成功执行,cs 成功接收到会话信息。 尝试激活 guest 用户,加入管理员组失败。 ![]() 存在服务器防护需要绕过。 服务器为 server 2008,默认情况下,可以使用 Procdump+Mimikatz 来读取管理员的明文密码。 Procdump 由微软官方提供,绝大多数情况下不会被杀。 https://docs.microsoft.com/zh-cn/sysinternals/downloads/procdump 分为 2 步: 1、导出 lsass.exe 进程``` *
使用 Get-ExecutionPolicy 查看当前执行策略为 Restricted (默认策略,不允许任意脚本的执行) 使用 Set-ExecutionPolicy 设置执行的策略为 RemoteSigned (本地脚本无限制,但是对来自网络的脚本必须经过签名) 相关 powershell 命令可查看 CSeroad 大佬的文章。 ![]() powershell 的免杀性强,大多数情况下都可以执行成功。 上传添加用户的 ps1 文件到服务器中,调用 powershell 执行,此方法可以绕过大部分杀软,达到免杀加用户到管理员组的目的。``` *
添加用户成功后。 使用 cs 自带的 socks4 隧道。 本机配置 Proxifer。 ![]() 成功把本机带入目标内网。 打开远程桌面功能,输入对方的内网 ip 和远程桌面端口,输入用户名密码。 登录成功,目标安装了服务器安全狗和企业版金山毒霸,到此渗透结束。 ![]() 总结由于不懂 java 开发,导致前期的 getshell 耽误了过长时间,未解决的问题,后面还需要再学习。 渗透过程中走了很多弯路,但也学习到了很多新的知识。 原文作者:诺言 转载自:https://www.chainnews.com/articles/863749841296.htm#FBXJjD4U33uwNtZKExSFiw |
| 本文出处: https://www.toutiao.com/a6797624334933295623/ |
|
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系
[邮箱地址] 删除
|