一、信息收集简介
1.1 什么是信息收集?
信息收集就是要充分了解被测试对象
包括:测试域名、ip、公司、管理员、邮箱、电话
1.2 信息收集两种模式
- 被动:测试人员不直接与被测试对象进行通信,通常来说被动测试相对比较安全
- 例如:查询whois信息
- 主动:测试者需要直接和测试对象进行通信,通常来说主动测试相对危险一些
- 例如:直接ping目标主机
1.3 信息收集的内容
目标人物、电话、邮箱、QQ、whois信息......
目标网站的配置:
- 域名和子域名、
- 编程语言[C、Java、php、go、python],
- 数据库类型[oracle、MySQL、SQLserver],
- 中间件类型[apache、tomcat、nginx、iis],
- 开放端口[80、443、8080、3306、3389、22、9000、111、53、20、21]
目标的历史事件:历史漏洞、使用手册、通知、公众号
上面开放的端口分别代表以下协议和服务:
- 80端口:HTTP(超文本传输协议)的默认端口,主要用于在WWW服务上传输信息。当您在浏览器中输入网址时,例如http://baidu.com,浏览器会使用HTTP协议通过80端口与服务器建立连接并获取网页内容 。
- 443端口:用于网页浏览,主要是用于HTTPS服务。HTTPS是一个安全通信通道,基于HTTP开发,用于在客户计算机和服务器之间交换加密信息。在一些对安全性要求较高的网站,比如银行、证券、购物等,都采用HTTPS服务,这样在这些网站上的交换信息,其他人抓包获取到的是加密数据,保证了交易的安全性。网页的地址以https://开始,而不是常见的http:// 。
- 8080端口:通常被Tomcat服务器用作HTTP端口。
- 3306端口:MySQL数据库的默认端口,用于客户端与MySQL服务器之间的通信。
- 3389端口:Windows Server操作系统的远程桌面连接协议(RDP)所使用的默认端口。该端口允许用户通过远程桌面连接到Windows服务器并进行管理操作。
- 22端口:SSH(Secure Shell)协议的默认端口,用于加密的远程登录和其他网络服务。通过SSH,用户可以安全地连接到远程服务器并执行命令。
- 9000端口:PHP-FPM
- 111端口:111端口主要用于RPC(Remote Procedure Call,远程过程调用)服务。
- 53端口:DNS服务的默认端口,用于将域名解析为IP地址。
- 20端口:FTP(文件传输协议)的默认数据端口,用于在客户端和服务器之间传输文件。
- 21端口:FTP的默认控制端口,用于在客户端和服务器之间传输控制信息和命令 。
二、信息收集具体操作
2.1 信息收集关注的点
- 网站源代码
- 网站的备案信息
- 网站的请求和响应报文:各种首部、cookie
- 网页上的内容
- 网站的说明文档
- 关注robots.txt
- 测试一些常规的目录:例如admin、login、bakcup、web、www
备份文件:web.zip、web.rar、web.tar.gz、www.rar、www.zip、www.tar.gz
数据库备份文件:sql.bak、sql.rar、sql.zip、web.sql、www.sql
2.2 网站源代码
- 按F12
- 右键➡打开网页源代码
- 浏览器设置及其它➡更多工具➡开发人员工具
重点看到的内容
1.检查注释信息
- 文件开头的注释
- 登录框附近的注释
- 其他位置
2.检查js代码
检查js中如何加密登录信息,检查是否有密钥信息
2.3 whois查询
whois其实本质是一种协议,whois查询
就是查询域名在进行购买,备案过程中填写的各种信息,包括邮箱和电话
查询whois信息的方法
方法一:用在线网站
方法二:用kali内置数据库
whois 目标网站 注意:kali虚拟机需要能联网
补充 :查询DNS解析记录,可以查询A记录、TXT记录
2.4 查询企业信息
查询企业信息的网站:
天眼查:天眼查-商业查询平台_企业信息查询_公司查询_工商查询_企业信用信息系统 (tianyancha.com)
企查查:企查查 - 企业工商信息查询系统_查企业_查老板_查风险就上企查查! (qcc.com)
小蓝本(推荐):小蓝本-商业信息搜索 (xiaolanben.com)
要查询的企业信息包括:
- 股东姓名——密码
- 管理员手机、邮箱、公众号
- 小程序、app、公司旗下其他网站
2.5 子域名
顶级域名:.gov(政府) .net(网络服务商) .edu(学校) .com(商业组织) .cn(中国) .hk(香港) .jp(日本) .tw(台湾省) .org(非盈利组织) .mil(军事)
公司注册申请的都是一级域名:jd.com、baidu.com
二级域名:以jd.com为例
- mail.jd.com
- ftp.jd.com
- xxx.jd.com
查询子域名: crt.sh | Certificate Search
也可以用软件的方式来扫描:子域名挖掘机
2.6 扫描端口
1. 什么是端口
每个进程占用的一个编号
2.可以通过端口反推你服务器上运行的程序
例如:服务器开了80端口,意味着在运行nginx或者apache、iis,那么这个服务器是web端口。
开22端口,开了ssh,是Linux。
开3389端口,远程桌面,Windows
3.扫描端口方式
- python+telnet自动扫
- 手动执行telnet
- kali系统中nmap命令
4. 务必记住常见的端口和服务
服务名称 | 端口号 |
SSH(Secure Shell) | 22 |
Tomcat | 8080(默认),8443(HTTPS) |
IIS(Internet Information Services) | 80(HTTP),443(HTTPS) |
Apache | 80(HTTP),443(HTTPS) |
MySQL | 3306 |
Oracle | 1521(默认) |
Redis | 6379(默认) |
Nginx | 80(HTTP),443(HTTPS) |
PHP-FPM | 9000(默认) |
DNS(Domain Name System) | 53(默认) |
FTP(File Transfer Protocol) | 21(控制连接),20(数据连接) |
2.7 网络空间搜索引擎
- fofa:fofa.info
- 傻蛋:shodan.io
- 钟馗之眼:zoomeye.org
搜资产:
- app
- 小程序
- 公众号
- 网站
- 域名
- 子域名
2.8 目录扫描软件
为了找到敏感文件和路径:
软件:御剑
爬虫:robots.txt