【红队系列】外网打点(一)

红队系列


B站配套视频:【顺手挂个三连呗】

https://www.bilibili.com/video/BV19s4y1K7J7/?share_source=copy_web&vd_source=0e30e09a4adf6f81c3038fa266588eff

系列专栏:红队靶场
欢迎关注点赞收藏⭐️留言
首发时间:2023年5月25日
作者水平很有限,如果发现错误,还望告知,感谢!

巅峰之路

  • 红队系列
  • 前言
  • 前台逻辑问题
        • 任意用户注册
        • 用户名可爆破
        • 没有锁定策略
        • 用户名处的sql以及xss问题
            • 用户名注入
            • 密码注入
            • 绕过登陆界面
        • 用户名XSS
        • 修改返回包信息,越权
        • 敏感目录
        • 密码重置找回方面
  • 快速地资产判断以及利用
  • 手工测试sql注入
  • 手工测试文件上传
  • 人工筛选精准测试
  • 爆破
  • 钓鱼
  • 近源渗透
  • GPT代码审计


前言

本文章仅用作实验学习,仅使用kali虚拟机作为操作学习工具。本文仅用作学习记录,不做任何导向。请勿在现实环境中模仿,操作。


我计划的整个红队体系:

外网信息收集——>打点——>权限维持——>提权——>内网信息收集——>横向移动——>痕迹清理

这是第二章节,后续也会继续发出其他章节

前期的信息收集决定了此时此刻,你的赢面有多大

因为篇幅问题,并且我也不太喜欢码字,所以很多内容就在视频中展示了,有兴趣的读者可以看看视频,并且这是一篇纯方向文的文章,具体的细节在后续,因为一篇文章写半个月真的很头大


前台逻辑问题

任意用户注册

该问题可能会导致一些功能点被利用,例如头像处的上传点,越权等

用户名可爆破

如果输错密码和输错用户返回的不一样,就会导致用户名可爆破

没有锁定策略

没有锁定策略就可以爆破了

用户名处的sql以及xss问题
用户名注入

用户名和密码分开检验

select * from user where username = '$name'
1' union select 1,'admin',md5('123')#

1' union select 1,'admin','202cb962ac59075b964b07152d234b70'#
密码注入

如果应用是先通过用户名,读取密码的MD5,然后和你提供的密码的MD5进行比较,那么你就需要一些额外的技巧才能绕过验证。你可以把一个已知明文的MD5哈希和它的明文一起提交,使得程序不使用从数据库中读取的哈希,而使用你提供的哈希进行比较。

用户名:admin
密码:1234 ' AND 1=0 UNION ALL SELECT 'admin','81dc9bdb52d04dc20036dbd8313ed055

其中81dc9bdb52d04dc20036dbd8313ed055 = MD5(1234)

绕过登陆界面
  • admin' --
  • admin' #
  • admin'/*
  • ' or 1=1--
  • ' or 1=1#
  • ' or 1=1/*
  • ') or '1'='1--
  • ') or ('1'='1--
用户名XSS

这个可以直接搜一些xss payload去放一下

不过不必强求,就算有XSS也没啥大用(一般来说)

修改返回包信息,越权

如果返回包中包含了一些用户信息,尝试修改,然后把包发出去
一般改改成admin比较好

敏感目录

登录界面有可能存在注册界面
如果配置不当,可能只是前端没这个接口了,但是路径依旧存在
常见的注册接口
/reg、/register、/sign

密码重置找回方面

1.重置一个账户,不发送验证码,设置验证码为空发送请求,看看有没有在前端做校验
2.发送验证码,查看相应包,看看有没有在前端做校验
3.验证码生存期的爆破
4.修改相应包为成功的相应包
5.两个账户,重置别人密码时,替换验证码为自己正确的验证码
6.重置别人密码时,替换为自己的手机号
7.重置自己的成功时,抓包修改一下信息
8.替换用户名,ID,cookie,token参数等验证身份的参数
9.通过越权修改他人的找回信息如手机/邮箱来重置

快速地资产判断以及利用

在企业中常见的有很多资产,例如泛微那些一大堆OA,什么fastjson,shiro等等一大堆东西,对于他们认为攻击方式很简单,如果你有0day,那就直接梭,如果你没有,那就看看版本然后1day,nday梭,对于这个方面,工具太多了,就没啥可说的,可能在这其中有一些小技巧我简单说一下

首先就是判断资产
众所周知,指纹判断非常高效,可以批量,可以快速地在成千上万的资产中找到重点资产
但是目前的问题是指纹有些根本跑不出来
视频中会演示这一段
所以单纯依靠指纹来进行资产的判断我认为没啥用了
所以我们得想一些别的办法

我最近在用的方法就是批量打开网页
首先,我们通过前期的信息收集,手里面已经有了很多的资产,主域名,二级域名,有可能有几千个几万个,当然,这其中大部分是借助网络测绘引擎来达成的,而后我们筛去一些资产引擎返回404的页面,包括一些空页面,并且title没有任何信息的页面

经过这一步我们的资产应该只有几百条了
然后我们批量打开页面,直接百度搜索批量打开url
记得这一步一定要挂着代理池,不然你必被封IP

然后我们手动关掉没有用的页面,比如一些静态页面(你也可以留着,说不定可以爆破一下)

然后对于一些OK的页面,我们直接甩到观星平台去看指纹,看到的指纹有三种情况
第一种是国内的一些OA,还有fastjson等有集成化的工具的指纹
第二种是一些cms,没有集成的工具利用

当我们看到指纹是一些有洞可梭的东西时,直接拿工具开始梭,梭完了以后有两种可能,你没有shell,另一种是你有shell

如果你有shell,你就可以进一步扩大战果了,当然你也可以多拿一些shell,因为如果是什么活动不是要评分么,并且俗话说多个朋友多条路,多个shell总归是好的

然后因为你比较惨,所以你没有梭到洞,那么这个时候就要开始一些手工的东西
首先,你需要burp联动xray,然后挂好你的代理池,然后看到什么页面就去点一点,全部都点完以后,过一段时间,去看看报告,在这个时间内,你还需要做一些事情

xray目前支持的漏洞检测类型包括:

XSS漏洞检测 (key: xss)
SQL 注入检测 (key: sqldet)
命令/代码注入检测 (key: cmd-injection)
目录枚举 (key: dirscan)
路径穿越检测 (key: path-traversal)
XML 实体注入检测 (key: xxe)
文件上传检测 (key: upload)
弱口令检测 (key: brute-force)
jsonp 检测 (key: jsonp)
ssrf 检测 (key: ssrf)
基线检查 (key: baseline)
任意跳转检测 (key: redirect)
CRLF 注入 (key: crlf-injection)
Struts2 系列漏洞检测 (高级版,key: struts)
Thinkphp系列漏洞检测 (高级版,key: thinkphp)
XStream 系列漏洞检测 (key: xstream)
POC 框架 (key: phantasm)

与此同时,你还可以利用goby,yakit来进行一个扫描
当然你也可以利用AWVS等,这是非常棒的扫描器,建议awvs联动xray
他们可以互相弥补

在这些进程进行完了之后,有两种可能,一种是各种扫描器扫出来了洞,我们直接利用,一种是扫描器只扫出来了一些可接着利用的点,那么我们就要去手工的进行一些操作,这其中的原因是因为无论是什么扫描器,都不可能针对某一种风险进行完全的扫描,例如目录爆破,我们的字典可能动不动就是几万个数据,但是xray会跑这么多数据吗?显然不会,在我实际的使用中,他更多的使用了精简的高频的内容。而不是一种全量的尝试,否则时间会很长。并且在目前有很多waf的情况下,我们去手工的绕过,就可以弥补这个不足,那么这就引出了第三大点的内容以及需求。如何针对有可能的一些漏洞点进行手工测试

手工测试sql注入

因为前期xray等扫描器可能已经爆出了此处可能存在sql注入,那么我们也就不必使用手工的方式去一个一个试,我们就可以直接跑sqlmap
那么sqlmap的用法在我上一条动态中已经发出来了(我的笔记)
这里单独拿出sqlmap工具用法的连接

https://www.wolai.com/iVf3NxZSSAPXW1rYFYE3e5

以及sql注入的一些绕过以及各种数据库的手撸方法

https://www.wolai.com/mXoCr3Ri9AWzCdUa1gQhz5

通过sqlmap,我们就可以在已经存在问题的sql注入点进一步获得内容

手工测试文件上传

文件上传一直以来都是重头戏,这其中涉及到绕过的多种方法
文件上传主要是两个方面,如何上传以及寻找上传路径在哪里
常见的过滤有这几种,他们检测你的文件头,他们检测你的文件内容,他们检测你的文件后缀,基本上就是这三种可能,经过排列组合,构成了防护文件上传的waf功能,这其中如何绕过,在如下的笔记中

https://www.wolai.com/3Gur58ifBAPaD2FY5UzGi2

这一个方面结束了呢,就是找到文件上传的路径,常用的方法有这几种

  1. 返回包中直接返回上传的文件路径
  2. 在你上传的文件右键复制链接

如果能找到,那就最好不过了,如果找不到,那也比没有shell好

经过了如上的步骤,你有可能已经获取了shell,当然,你也有可能没有获取shell,但是经过这漫长的过程,在这个期间你也没有中断你对于资产搜集筛选的过程,那么你应该已经基本上获取了很大一部分的资产
接下来你就要在这一大部分资产中,找一些重点资产,然后去找洞
因为扫描器不是万能的

人工筛选精准测试

对于一些重点资产,比如你漏洞库中存在的一些资产,也许有可能扫描器没有扫出来,那么这个时候你手测一下,是非常正确的选择。并且对于重点网站的目录,应该进行一个目录爆破

爆破

我认为爆破是最后一步,也是被逼无奈才选择进行的一步
我们常常会去爆破ssh,mysql等密码,也会去爆破网站密码
但是我非常不建议在一开始就去爆破,非常蛮横并且低效

钓鱼

钓鱼是非常重要的,你要学会做一个钓鱼网站,你也要学会利用手头的资源去欺骗,例如邮件,例如电话,推荐大家看一本书,叫欺骗的艺术,里面虽然没有详细的模版让你照搬,但是你可以学会骗人

近源渗透

如果你一直没有什么进展
那就冲进对方大楼,拖把沾屎犹如盖世吕布
丢丢U盘,什么的

GPT代码审计

https://hacker-ai.ai/#hacker-ai

你可能感兴趣的:(红队体系,渗透测试,网络安全,数据库,docker,redis)