目录
前言
信息收集是渗透测试中必不可少的一个环节,所有的攻击手法或策略都基于信息收集的结果展开,因此它的重要性不言自明,本文对开展信息收集所用的方式方法以及关注点做个简单介绍
1.web应用安全
1.1常见的建站模式
比我有一个服务器4.4.4.4和一个域名ped8.com。
自建站:
子域名模式
www.ped8.com zblog asp程序
ccc.ped8.com wordpress php程序
bbs.ped8.com 论坛 dz程序
oa.ped8.com OA 通达OA
端口模式
www.ped8.com zblog asp程序
www.ped8.com:8080 wordpress php程序
目录模式
www.ped8.com zblog asp程序
www.ped8.com/bbs 论坛 dz程序
容器站:
docker容器搭建
搭建在docker容器中的网站
分配站:
zblog开通账号会给你分配一个域名,你可以把它当作一个博客站点,形象地说就是房东给你分配了一个房间,这不同于前面几种自建站(自己搭建的网站,自己配置源码,数据库等等)
部署站
宝塔,phpstudy
从网站的几种建站模式就可以分析出几种信息收集手法,如子域名枚举,端口扫描,目录扫描,这几种一般适用自建站。
那如果是docker站呢?dokcer站和自建站单从网站页面或者运行状态是没法区分的,docker站的识别一般不是在信息收集阶段,而是在后渗透阶段,即拿到shell,通过dokcer镜像的特征去判断,如存在./dockerenv文件,常见命令无法使用(ifconfig,wget),/proc/1/cgroup中包含"docker”字符串
1.2 web源码
三种:开源 商业 自写
对目标网站,一般很明显即可判断web源码是哪一类。如腾讯、阿里这种厂商他们有自己专门开发网站的部门,一般不会用到开源或是商业码。什么是商业码?你给钱,我帮你写码,或者你出钱买我的源码,你需要的功能我帮你开发。常见的商业码厂商有通达,用友,某某CMS等等。自写码一般偏个人,比如自己写个博客什么的。
开源码主要有两类:
可见:直接白盒,风险最高,人人可见,人人可以做代审
不可见:由语言特性决定:比如Java站点的class文件、.NET的dll文件,直接打开是乱码,但可以用反编译工具查看。另外php代码可以进行加密而不影响代码功能
为什么要提这些呢?因为从目标网站的源码类型就大概可以知道可以获取到多少有价值的信息了,也可以大概判断这个站点渗透难度
1.3 网站访问状态
401未授权访问:后台很可能锁定了文件或是目录
需要登陆访问:后台开启了身份验证,关闭匿名访问验证
1.4 源码结构
data:网站数据
config:网站配置文件
bin:网站可执行程序
images:保存图片
upload:文件上传
functions:一些辅助函数
index:网站首页
...
当然名称不一定是上面写的这些,但是大都可以根据名称去判断这个目录或文件的作用或是功能
1.4.1 站库分离
网站和数据库部署在不同服务器上,除了服务器,数据库还有一种云数据库,如阿里云的云数据库(对象存储OSS),这也是站库分离的一种。与放到本地的区别是,放到本地服务器的数据库只要拿下就可访问全部数据,云数据库的话一般会有流量白名单或是其他的访问规则限制。上传文件的话,如果是上传到本地服务器网站根目录下,如果可以解析文件的话一般就可以getshell,但是如果是上传到云数据库,可不存在解析的可能,也就是不存在文件上传漏洞。
为什么讲这个?帮助确定漏洞的利用条件和利用可能性,避免做一些无用功
1.5 路由访问
常规:URL和文件目录对应上
路由访问:mvc源码,java,python
URL文件目录对应不上,要根据路由配置决定
2. 参考:
【小迪安全】V2024版 全栈网络安全 | 攻防渗透工程师 (持续更新)_哔哩哔哩_bilibili
快速判断是不是docker环境_怎么判断一个网站是不是docker-CSDN博客
结语
这篇文件是我在看小迪安全视频的时候,对视频中讲到的信息收集相关知识做的简单记录,讲到的内容也确实是我在实际渗透测试过程中所遇到的,以博客的形式发出来是希望能够帮助大家对信息收集方面有更深的理解,提示大家哪些是应该关注的,哪些是可以忽略的,尽量避免做无用功。详细的演示大家可以看参考中的视频链接,文章中提到的所有内容视频中都有演示,能更好帮助大家理解。
文章讲得不够全面,我后续会再做补充。如果问题欢迎大家评论区交流!