渗透攻击实例-完整的实战演练( 二 )


回到先前未反解出来的两个账号 , nana 的
208f0aba4a6d4b9afe94207e6c57d594、admin 的 3faf009c43bb39c5a37859bc48feaff3 。
https://www.cmd5.com/拥有海量的彩虹表数据 , 它反解不出来 , 很可能是个强口令 。对于强口令的暴破 , 我习惯围绕用户名 , 制作具有社工属性的密码字典 , 如 , 用户名 nana , 社工属性密码可能为 NaNa、na520na、nana@19901015 。如何生成社工属性密码字典?hashcat!对滴 , hashcat 不仅是哈希暴破神器 , 也支持基于规则生成密码字典 , 规则库位于 hashcat/rules/:

渗透攻击实例-完整的实战演练

文章插图
 
其中 , dive.rule 含有我需要的规则 , 选之 。我把 nana 视为基础信息存入 base.txt 中作为输入 , 让 dive.rule 模仿学习生成类似的密码字典 , 保存至 se_passwds.txt:接着用社工字典暴破哈希密码:
渗透攻击实例-完整的实战演练

文章插图
 
7 秒出结果 , 得到 nana 的密码 nanacnacnanac , 第四个漏洞 , 业务系统存在社工属性口令账号 nana 。用类似的手法 , 制作了账号 admin 的社工密码字典 , 遗憾 , 并未暴出 admin 的密码 。没关系 , 用 nana / nanacnacnanac 登录系统 , 或许有新发现 。
一旦进入后台 , 习惯上先找三类功能:上传功能、查询功能、命令功能 。上传功能 , 通过各种任意文件上传攻击手法 , 上传 webshell;查询功能 , 审查是否存在 SQL 注入 , 拿数据(如 , 哈希密码);命令功能 , 指那些有著名工具实现的功能 , 比如 , 输入个 IP , 业务功能探测该 IP 是否存活 , 服务端可能执行了 ping 命令 , 又如 , 上传个压缩包 , 页面显示压缩包内容 , 服务端可能执行了 unzip 命令 , 这时 , 用命令注入或命令选项注入的手法 , 攻击服务端 。
登录 nana 账号 , 业务功能也不多 , 但有个上传功能:
渗透攻击实例-完整的实战演练

文章插图
 
我得深入审查它 , 或许是 getshell 的唯一通道 。
先上传一个正常的 PNG 图片 , 页面报错 , 提示非管理员禁止上传:
渗透攻击实例-完整的实战演练

文章插图
 
这可不好玩了 , admin 的哈希密码之前用彩虹表、社工字典都尝试过 , 无法反解 , 前进步伐再次受阻 。
回想之前刺探过的密码找回功能 , 发现泄漏用户哈希密码就未再深入 , 应该再审查下 , 或许能重置 admin 密码 。
用 admin 进入密码找回流程 , 先顺利通过服务端用户名是否存在的校验 , 然后向该账号绑定的邮箱地址发送密码重置 URL , 请求如下:
显然 , 参数 email 存在不安全的直接对象引用(IDOR)问题 , 将其替换为攻击者的邮箱 , 90% 的概率会收到重置邮件 。
于是 , 我找了个匿名邮箱 , 尝试劫持 admin 的密码找回邮件:
渗透攻击实例-完整的实战演练

文章插图
 
很快 , 匿名邮箱收到来信 , 访问带 token 的密码重置链接 , 还真能修改密码:
渗透攻击实例-完整的实战演练

文章插图
 
至此 , 已经拿到管理员的后台权限 。后续便可以很方便的上传大马小马了 。就不在一一列举 。
另外参数 email 存在不安全的直接对象引用(IDOR)问题这是一个很常见的漏洞类型 , 通过抓包修改参数等操作很容易拿到修改密码链接 。

【渗透攻击实例-完整的实战演练】


推荐阅读