第一次参与渗透测试项目
这是人生中第一次参与项目,项目开始到结束花了半个多月的时间。在此记录一下第一次参加项目遇到的一些漏洞与一些感受
渗透过程
整个渗透过程为”工业化渗透”——在时间紧任务重的情况下,基本上每一个地方都只能采取流水化作业。即扫描器批量扫描,之后人工验证漏洞是否存在。
整个过程主要使用了两款扫描器
- AWVS
- nessus
AWVS主要扫描web层面的漏洞,可以自行挖掘目录结构,还可以挖掘邮箱泄露。
nessus主要扫描主机层面的漏洞,可以自行扫描主机的所有端口并识别有什么服务。
在人工验证完扫描器产出的漏洞时,如果时间有剩余,就手动挖掘目标。web层主要看输入口,寻找sql注入拿数据,文件上传拿shell等。而内网层主要根据已有漏洞去扩展,比如当下拿到目标服务器权限的时候,怎样去寻找目标服务器的数据库密码等。
外网层面
1. 弱口令
常出现于登录窗口(前台后台的登录窗口都可能出现弱口令漏洞)
用AWVS可以扫描出常见的弱口令漏洞并且报出弱口令的值
如果遇到复杂的弱口令情况,可以尝试使用字典爆破。但实际渗透过程中一定要控制爆破的线程。
常见弱口令:
- admin / admin
- admin / 123456
- admin / root
- admin / 888888
2. 信息泄露
关注dirsearch的扫描结果往往会有意外收获
- web中间件信息泄露
- 目录遍历漏洞
3. 基础漏洞
- SQL注入
- 储存型XSS
- 越权访问
内网层面
1. 可利用RCE漏洞
漏洞利用脚本均是从github上面扒下来的
- Oracle WebLogic Server Deserialization RCE (CVE-2019-2729)
- redis未授权访问
- ldap匿名访问漏洞
2. 可利用获取数据漏洞
- MongoDB未授权访问
- redis未设置密码
- ssh弱口令
3. dos攻击
扫描器扫出dos漏洞的时候,注意只用上验证脚本即可。切忌直接用攻击脚本。公司的业务还跑着的,这一下打过去估计就进去了
- ms12-020
- ms15_034
简单组合拳
1. redis未授权 + nginx配置文件
通过redis未授权访问漏洞写入公钥,使用私钥通过ssh登录主机,查看nginx.conf,发现数据库密码
一些感受
整个项目做下来,最大的感受就是操作的重复性和漏洞的单一性。这种时间紧迫的情况下,很难看到使用奇淫技巧进行渗透的方式。往往就是拿到目标数据或者目标权限就直接撤退。而我作为一个新人,跟在大佬后面。能够起的作用也只有机械化的验证漏洞是否存在。
在这种大型的单位里面,外网层的漏洞少得可怜。但是,一旦接入内网,简直就是满目疮痍。弱口令,未授权,RCE,应有尽有。这些单位几乎将所有精力都放在了web层的防护上,而忽略了内网的重要性。也有一部分原因是因为内网的复杂性远远高于外网。单位技术人员并不能照顾到内网的每个细节。所以在扫描器这种机械化的工具之下,这些细小的失误就展露无余。
半个多月过去了,其实感觉自己并没有学到什么实质性的东西。只是体验了一下”工业化渗透”的过程。除了累和乏味,没有什么其他感受了。