渗透测试之信息收集

渗透测试的开端

Posted by Waldo on August 9, 2018

进行渗透测试之前,最重要的一步就是信息收集。在这个阶段,要尽可能地收集目标的信息。越了解测试目标,测试的工作就越容易。在信息收集中,最主要的就是收集服务器的配置信息和网站的敏感信息,包括域名及子域名信息、目标网站系统、CMS指纹、目标网站真实IP、开放的端口等

收集域名信息

知道目标的域名之后,要做的第一件事就是获取域名的注册信息,包括该域名的DNS服务器信息和注册人的联系信息等

Whois查询

Whois是一个标准的互联网协议,可用于收集网络注册信息,注册的域名、IP地址等信息。Which simple means,Whois就是一个用于查询域名是否已被注册以及注册域名的详细信息的数据库(如域名所有人,域名注册商,域名所有人的邮箱、电话、地址)。在Whois查询中,得到相关信息后,可以通过搜索引擎和社交网络挖掘出域名所有人的很多信息。对中小站点来说,域名所有人往往就是管理员

在线Whois查询常用网站

备案信息查询

收集敏感信息

Google的常用语法及其说明

关键字 说明
site 指定域名
inurl URL中存在关键字的网页
intext 网页正文中的关键字
filetype 指定文件类型
intitle 网页标题中的关键字
link link:baidu.com即表示返回所有和baidu.com做了链接的URL
info 查找指定站点的一些基本信息
cache 搜索Google里关于某些内容的缓存

利用Google搜索可以进行收集数据库文件、SQL注入、配置信息、源代码泄露、未授权访问和robots.txt等敏感信息

使用Burp Suite的Repeater功能同样可以获取一些服务器的信息,如运行 的Server类型及版本、PHP的版本信息等

收集子域名信息

子域名是二级域名,是指顶级域名下的域名

若主域难以进入,可先进入目标的某个子域

Layer子域名挖掘机

解压密码: ms08067.com

工具有很多,此工具使用方法比较简单,在域名对话框中直接输入域名就可以进行扫描

subDomainsbrute

此工具可以用小字典递归地发现三级域名、四级域名甚至是五级域名等不容易被探测到的域名。执行该工具命令:

python subDomainsbrute.py xxx.com

搜索引擎枚举

site:cuit.edu.cn

https://dnsdumpster.com

证书透明度公开日志枚举

证书透明度(CT)是证书授权机构(CA)的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮件地址

可以用个https://crt.shhttps://censys.io

子域名爆破网站

IP反查绑定域名网站

收集常用端口信息

通过扫描服务器开放的端口以及从该端口判断服务器上存在的服务,就可以对症下药

文件共享服务端口

端口号 端口说明 攻击方向
21/22/69 Ftp/Tftp文件传输协议 允许匿名的上传、下载、爆破和嗅探操作
2049 Nfs服务 配置不当
139 Samba服务 爆破、未授权访问、远程代码执行
389 Ldap目录访问协议 注入、允许匿名访问、弱口令

远程连接服务端口

端口号 端口说明 攻击方向
22 SSH远程连接 爆破、SSH隧道及内网代理转发、文件传输
23 Telnet远程连接 爆破、嗅探、弱口令
3389 Rdp远程桌面连接 Shift后门(适用于Windows Server 2003以下的系统)、爆破
5900 VNC 弱口令爆破
5632 PyAnywhere服务 抓密码、代码执行

Web应用服务端口

端口号 端口说明 攻击方向
80/443/8080 常见的Web的服务端口 Web攻击、爆破、对应服务器版本漏洞
7001/7002 WebLogic控制台 Java反序列化、弱口令
8080/8089 Jboss/Resin/Jetty/Jenkins 反序列化、控制台弱口令
9090 WebSphere控制台 Java反序列化、弱口令
4848 GlassFish控制台 弱口令
1352 Lotus domino邮件服务 弱口令、信息泄露、爆破
10000 Webmin-Web控制面板 弱口令

数据库服务端口

端口号 端口说明 攻击方向
3306 MySQL 注入、提权、爆破
1433 MSSQL数据库 注入、提权、SA弱口令、爆破
1521 Oracle数据库 TNS爆破、注入、反弹Sell
5432 PostgreSQL数据库 爆破、注入、弱口令
27017/27018 MongoDB 爆破、未授权访问
6379 Redis数据库 可尝试未授权访问、弱口令爆破
5000 SysBase/DB2数据库 爆破、注入

邮件服务端口

端口号 端口说明 攻击方向
25 SMTP邮件服务 邮件伪造
110 POP3协议 爆破、嗅探
143 IMAP协议 爆破

网络常见协议端口

端口号 端口说明 攻击方向
53 DNS域名系统 允许区域传送、DNS劫持、缓存投毒、欺骗
67/68 DHCP服务 劫持、欺骗
161 SNMP协议 爆破、搜集目标内网信息

特殊服务端口

端口号 端口说明 攻击方向
2181 Zookeeper服务 未授权访问
8069 Zabbix服务 远程执行、SQL注入
9200、9300 Easticsearch服务 远程执行
11211 Memcache服务 未授权访问
512/513/514 Linux Rexec服务 爆破、Rlogin登录
873 Rsync服务 匿名访问、文件上传
3690 Svn服务 Svn泄露、未授权访问
50000 SAP Management Concole 远程执行

指纹识别

识别网站CMS、计算机操作系统、Web容器。只有识别出相应的Web容器或者CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作

查找真实IP

CDN是什么

CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。Which simple means,就是一组在不同运营商之间的对接节点上的高速缓存服务器,把用户经常访问的静态数据资源(例如静态的html、css、js图片等文件)直接缓存到节点服务器上,当用户再次请求时,离用户近的节点直接响应给用户,当用户有实际数据交互时才会从远程Web服务器上响应,这样可以大大提高网站的响应速度及用户体验。

判断目标是否使用了CDN

ping

多地ping

绕过CDN寻找真实IP

  • 内部邮箱源。ping目标自己的邮件服务器域名才有效
  • 扫描网站测试文件,如phpinfo、test等,从而找到目标的真实IP
  • 分站域名。分站不一定挂CDN
  • 国外访问。国内的CDN往往只对国内用户的访问加速。通过国外在线代理网站,可能会得到真实的IP
  • 查看域名的解析记录。也许目标很久以前没有用CDN,通过网站NETCRAFT来观察域名的IP历史记录,也可以大致分析出目标的真实IP段
  • 如果目标有自己的App,可以尝试利用Fiddler或Burp Suite抓取App的请求,从里面找到目标的真实IP
  • 绕过CloudFlare CDN查找真实IP。现在很多网站都使用CloudFlare提供的CDN服务,在确定了目标网站使用CDN后,可以尝试通过在线网站CloudFlareWatch对CloudFlare客户网站进行真实IP查询
  • 收集敏感目录文件

    DirBuster

    此工具专门用于探测Web服务器的目录和隐藏文件

  • 在Target URL输入框中输入要扫描的网址,扫描时将请求方法设置为”Auto Switch(HEAD and GET)”选项
  • 设置线程数值,推荐在20~30之间,太大容易死机
  • 设置扫描类型,如果使用个人字典扫描,则选择”List based brute force”选项
  • 单击”Brower”选择字典
  • 在Select starting options中选择”URL Fuzz”方式进行扫描。设置fuzzing时需要注意,在URL to fuzz里输入”/{dir}”。这里的{dir}是一个变量,用来代表字典中的每一行

WebScan