问答
发起
提问
文章
攻防
活动
Toggle navigation
首页
(current)
问答
商城
实战攻防技术
漏洞分析与复现
NEW
活动
摸鱼办
搜索
登录
注册
完整收集信息以扩展实战攻击面
渗透测试
通过两个实战例子,分别以外部和内部为例,展示收集信息的重要性,通过收集完备信息,最大化扩展渗透攻击面
0x00 前言 ======= 距离上次分享文章已经过去了5个月,写这篇文章之前。我已经做了较多的渗透项目,也打了一些地级和省级市的红队项目。在此期间,让我感觉非常受用的技巧无非是对于信息的收集,不管是在前期打点,亦或是拿到shell后的横向,对于目标信息的掌握程度,很大层面决定了能打到多深,能打到多宽。由于自己技术受限,仍然停留在安服水平,因此文章主要以简单技巧分享为主。主要是分享自己在早期以及近期遇到的两个例子,也是较为简单的实战技术理论,并不是较为复杂的研究性分享,分别以外部和内部为例。 并且本文主要是说收集信息,而不是信息收集,希望加以区分。 0x01 外部\_收集信息 ============= 这个例子是我以前众测的时候找到的一系列漏洞,主要成果就是通过日志泄露到Getshell。 该站点是Thinkphp的,但是做了Nginx反代,通过wappalyzer可以收集到站点指纹,通过路径报错,也可以判断出是TP站点,一般此时要么是3.x要么是5.x  最后通过漏洞扫描工具ThinkphpGUI-1.2-SNAPSHOT发现存在Tp3.x日志泄露的问题 通过TPlogScan获取日志 `python3 TPLogScan.py -u http://xx.xx.xx.xx -v 3 -p /Application/Runtime/Logs/Home/ -y 2021 -m 11 -d 1`  获取了若干日志后,就到了收集信息的重点,这里主要分享的实战理论就是 > 在收集信息中,一定要将所获得的信息和关键字关联,进行灵活筛选 **所获得的信息**,在这里就是指,我们获取的TP日志,回想一般日志会记录的东西,比如Sql语句,比如攻击流量,比如程序运行日志。 **关键字**,在这里就是指,我们经常关心的字段:`password,username,passwd,user,Key,Token,Session,Cookie等` **关联**:将这些得到的信息和关键字关联,比如Sql语句中会出现对用户名称和密码的对比是否正确,会出现数据的添加删除等。 **灵活筛选**:根据现有信息,去优先选择我们需要获得的信息 1. 如只有一个后台登录页面,当前最好的筛选是通过用户名密码的字段在大量的日志中去筛选password,username,passwd,user等关键字,尝试获取某个用户的账号密码,进入后台,去扩展自己的攻击面; 2. 又或是此时已获得后台用户权限,想找到一个Sql注入打到shell或内网,此时应该以Insert,Delete,Update,Select,Where,Order By等关键字为主,去筛选查找; 3. 或通过漏洞拿到了shell分但是数据库用户密码是加密的,此时还想继续获取数据分,呢么还是类似1的方式,筛选password,username,Admin,Administrator,root,system等高权限用户关键字,尝试获取在写入数据库前的加密明文,比如`select username,password from users where password=md5('P@ssW0rd')` 4. 等等系其他情况,灵活关联 我当时正处于第一种情况只有一个登录页面,此时立马去筛选关键字,在庞大的日志中,筛选出来了一条关于管理员用户admin的查询语句  获取到了hash值,然后很幸运的是,cmd5有相关缓存,直接解了出来  进入后台后,在上传处有对后缀的限制,有对内容的限制 此处我通过换行绕过后缀限制,脏数据绕过了对内容的限制,成功上传了php的shell   其实这些后续的bypass上传花费了我更长的事件,上述上传还需要一次特别的更名操作,才能被解析,但这里不是写Getshell的,而不是分享收集信息的实战理论,因此不多讲。这里主要就是跟大家啰嗦了下,在拿到仅限的大量无用信息中,一定要把此时自己获得的信息和关键字做匹配,做关联,减少在废物信息中的搜寻时间,最效率化利用当前的信息,去扩展自己的渗透攻击面 0x02 内部\_收集信息 ============= 前期Shiro打点(我也很好奇,2022年了,还有shiro),特别小的内网,没任何东西打,只能拿数据分了。 尝试翻找各种数据库配置文件,**可以根据数据库后缀文件名进行检索,比如yml,ini,conf,config等**  这个数据库里面数据很少,基本凑不够。 于是找到一个源码备份文件,虽然不懂Java,但是只要能收集信息的地方,我们一个都不能漏。**在源码文件中,我们可以收集到的信息,往往有很多硬编码的信息,注释中的测试账号密码,泄露的token,api,accesskey等**。 即使你不会java,你也可以解压缩jar包,然后丢到IDEA中可查看源代码。或者使用Jd-Gui直接打开jar包也可以查看源代码  发现jar包中打包进来了数据库配置文件,里面有一个内网的aliyun mysql数据库。没有太多的用户数据,但是发现了一些app\_id,app\_secret字段  拿着通过这些**关键字**,我在源代码中检索,发现跟微信相关  通过查询资料发现,app\_id和app\_secret是关于企业微信的,两个参数认证后可以获取Token,通过Token可以调用企业微信的各种API,比如将自己添加到企业微信用户中,获取企业微信部门人员列表等,具体利用可参考下面的文章 <https://mp.weixin.qq.com/s/MyIUhkxmyw-msCPnhUi92A> 这里我通过id和sercert认证获取Token中,由于不在白名单中,被拒绝了。  此时我仍没有放弃,在数据库中继续检索**关键词Token**(sql语句检索列名或内容可参考百度学习),发现了token\_cache的字段,翻译过来就是token缓存  此时通过/cgi-bin/groups/get api验证Token是可用状态,后续的信息利用就不放出了,无非是获取了部门所有人员详细信息,以及提个严重漏洞罢了  搞完数据库,我接着看源码,此时我没有立刻搜索文件内容,而是搜索整个jar包中的文件名,关键字如:Upload,OSS,Redis,Mysql,Access,Config等文件名,然后又通过关键字Accesskey,AccessID,Access\_Key,Bucket搜索云的secret key。 通过文件名我找到了一个带有OSS名字的class  通过该Class我又找到了一些存储配置的Class  找到了两个阿里云 accesskey,一个七牛云的acesskey  通过阿里云accesskey拿到一个OSS BUCKET 以及150多台的云主机  0x03 总结 ======= 通过上述内网的两个例子,主要就是想将现有信息和关键字关联,灵活筛选。 简单的说,就是要根据当前获得信息的固有属性来与关键字做适配,什么环境该拥有什么属性,什么属性该适配哪种检索关键字以及检索方式。尽可能的做一个关联性假想。 本篇文章实质是实战技术案例分享,但是想透过两个特别简单的例子,来描述下自己心中对于收集信息,扩展攻击面的认知。基本是自我粗糙的拙见,如果能给各位师傅带来一点技巧的扩充帮助,也足够我欢喜了。
发表于 2022-07-20 09:46:42
阅读 ( 10455 )
分类:
渗透测试
12 推荐
收藏
4 条评论
行之
2022-07-21 07:56
讲的很好
请先
登录
后评论
阿这阿这
2022-08-09 09:26
标题不错
请先
登录
后评论
sky666sec
2022-09-08 12:01
很实用
请先
登录
后评论
78qw7e8
2022-09-22 22:36
非常谦虚
请先
登录
后评论
请先
登录
后评论
K0u_az
5 篇文章
×
发送私信
请先
登录
后发送私信
×
举报此文章
垃圾广告信息:
广告、推广、测试等内容
违规内容:
色情、暴力、血腥、敏感信息等内容
不友善内容:
人身攻击、挑衅辱骂、恶意行为
其他原因:
请补充说明
举报原因:
×
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!