web安全攻防渗透测试实战指南笔记
一.渗透测试之信息收集
~1.1搜集域名信息
——1.1.1whois查询:注册商、邮箱电话、联系电话、更新创建过期时间、域名服务器、DNS
在线whois查询的网站有爱站工具网、站长之家、VirusTotal
——1.1.2备案信息查询:常用的网站有 ICP备案查询网、天眼查
~1.2收集敏感信息
——Google语法:
site:指定域名
inurl:url中存在关键字的网页
intext:网页正文中的关键字
filetype:指定文件类型
intitle:网页标题中的关键字
link:表示返回所有和xx做了链接的url
info:查找指定站点的一些基本信息
还可以用它来收集数据库文件、SQL注入、配置信息、源代码泄露、未授权访问和robots.txt等
当然不仅是Google搜索引擎,这种搜索思路还可以用在百度、雅虎、Bing、Shodan等
~1.3收集子域名信息
——1.3.1什么是域名:
对于http://mail.163.com/index.html
http://:这个是HTTP超文本传输协议,也就是网页在网上传输的协议。
mail:这个是服务器名,代表着是一个邮箱服务器
163.com:这个是域名,是用来定位网站的独一无二的名字。
mail.163.com:这个是网站名,由服务器名+域名组成。
/:这个是根目录,也就是说,通过网站名找到服务器,然后在服务器存放网页的根目录
index.html:这个是根目录下的默认网页
http://mail.163.com/index.html:这个叫做URL,统一资源定位符
顶级域名:.com
二级域名:163.com
三级域名:mail.163.com
——1.3.2收集子域名信息
用于子域名搜集的工具主要有:Layer子域名挖掘机、Sublist3r、subDomainsBrute、dnsaper、k8、Maltego CE、wydomain、等,重点推荐前三款工具
——1.3.3搜索引擎枚举
我们可以用Google语法搜索子域名,如site:baidu.com
——1.3.4第三方聚合应用枚举
可以利用DNSdumpster网上、在线DNS侦查和搜索的工具挖掘出指定域隐藏的大量子域
——1.3.5证书透明度公开日志枚举
推荐https://crt.sh和https://censys.io,还可以利用在线网站查询子域名,如子域名爆破网站(https://phpinfo.me/old/domain)、IP反查绑定域名网站(https://dns.aizhan,con)等
~1.4收集常用端口信息
——1.4.1常用的端口扫描工具:
Namp,Masscan,ScanPort,ZMap和御剑高速TCP端口扫描工具等
——1.4.2常见的端口:
-文件共享服务端口:
端口号 端口说明 攻击方向
21/22/69 Ftp/Tftp文件传输协议 允许匿名的上传、下载、爆破和嗅探的操作
2049 Nfs服务 配置不当
139 Samba服务 爆破、未授权访问,远程代码执行
389 Ldap目录访问协议 注入、允许匿名访问、弱口令
-远程连接服务器端口:
端口号 端口说明 攻击方向
22 SSH远程连接 爆破、SSH隧道及内网代理转发、文件传输
23 Telnet远程连接 爆破、嗅探、弱口令
3389 Rdp远程桌面连接 Shift后门、爆破
5900 VNC 弱口令爆破
5632 PyAnywhere服务 抓密码、代码执行
-数据库服务端口:
3306 MySQL 注入、提权、爆破
1433 MSSQL 注入、提权、爆破、SA弱口令
1521 Oracle TNS爆破、注入、反弹shell
5432 PostgreSQL 注入、爆破、弱口令
27017/27018 MongoDB 爆破、未授权访问
6379 Reids 可尝试未授权访问、弱口令爆破
5000 SysBase/DB2 爆破、注入
-Web应用服务端口:
80/443/8080 常见的web服务 web攻击、爆破、对应服务器版本漏洞
7001/7002 Weblogic控制台 java反序列化、弱口令
8080/8089 Jboss/Resin/Jetity/Jenkins 反序列化、控制台弱口令
9090 WebSphere控制台 java反序列化、弱口令
4848 GlassFish控制台 弱口令
1352 Lotus domino邮件 弱口令、信息泄露、爆破
10000 Webmin-Web控制面板 弱口令
-邮件服务:
25 SMTP邮件服务 邮件伪造
110 POP3 爆破、嗅探
143 IMAP协议 爆破
-网络常见协议端口:
53 DNS域名系统 允许区域传送、DNS劫持、缓存投毒、欺骗
67/68 DHCP服务 劫持、欺骗
161 SNMP协议 爆破、搜集目标内网信息
-特殊服务端口:
2181 Zookeeper服务 未授权访问
8069 Zabbix服务 远程执行、SQL注入
9200/9300 Elasticsearch 远程执行
11211 Memcache服务 未授权访问
512/513/514 Linux Rsync服务 爆破、Rlogin登录
873 Rsync服务 匿名访问、文件上传
3690 Svn服务 Svn泄露,未授权访问
50000 SAP Management Console 远程执行
~1.5指纹识别
——1.5.1本文的指纹:
指网站CMS指纹识别、计算机操作系统及Web容器的指纹识别等
——1.5.2CMS:
常见的CMS有Dedecms(织梦)、Discuz、PHPWEB、PHPWind、PHPCMS、ECShop、Dvbbs、SiteWeaver、ASPCMS、帝国、Z-Blog、WordPress等
代表工具有:御剑Web指纹识别、WhatWeb、WebRobo、椰树、轻量WEB指纹识别,也有在线识别的网站:http://whatweb.bugscaner.com/look/、https://www.yunsee.cn/、https://www.webscan.cc/
~1.6查找真实ip
——1.6.1目标服务器不存在CDN:
可以直接通过http://ip.tool.chinaz.com/、https://site.ip138.com/获取目标ip及域名信息
——1.6.2CDN:
CDN即内容发布网络,主要解决因传输距离和不同运营商节点造成的网络速度性能低下的问题。说得简单点,就是一组在不同运营商之间的对接节点上的高速缓存服务器,把用户经常访问的静态数据资源(例如htnl,css,js图片等文件)直接缓存到节点服务器上,当用户再次请求时,会直接发到在离用户近的节点服务器上响应给用户,当用户有实际数据交互时才会从远程Web服务器上响应,这样可以大大提高网站的响应速度及用户体验
所以如果渗透模目标购买了CDN服务,可以直接ping目标的域名,但得到的并非真正的目标web服务器,只是离我们最近的一台目标节点的CDN服务器,这就导致我们没法直接得到目标的真实ip段范围
——1.6.3判断目标服务器是否使用CDN:
通常会通过ping目标主域,观察域名的解析情况,以此来判断是否使用了CDN,还可以通过在线网站https://www.17ce.com/进行全国多地区的ping服务器操作,然后对比每个地区ping出的ip结果,查看这些ip是否一致,如果都是一样的,极有可能不存在CDN,如果ip大多不一样或者规律性很强,可以尝试查询这些ip的归属地,判断是否存在CDN
——1.6.4绕过CDN寻找真实ip:
·内部邮箱源。一般的邮件系统都在内部,没有经过CDN的解析,通过目标网站用户注册或者RSS订阅功能,查看邮件、寻找邮件头中的邮件服务器域名ip,ping这个邮件服务器的域名,就可以获得目标的真实ip(注意,必须是目标自己的邮件服务器,第三方或公共是没有用的)
·分站域名。很多网站主站的访问量会比较大,所以主站都是挂CDN的,但是分站可能没有挂CDN,可以通过ping二级域名获取分站ip,可能出现分站和主站不是同一个ip但在同一个c段下面的情况,从而判断出目标的真实ip段
·国外访问。国内的CDN往往只对网内用户的访问加速,而国外的CDN就不一定了。因此,通过国外在线代理网站App Synthetic Monitor(https://asm.ca.com/en/ping.php)访问
·查询域名的解析记录。也许目标很久以前没有使用过CDN,所以可以通过网站NETCRAFT(https://www.netcraft.com/)来观察域名的ip历史解析
·如果目标网站有自己的app,可以尝试利用Fiddler或Burp抓取app的请求,从里面找到目标的真实ip
·绕过CloudFlare CDN查找真实ip。现在很多网站使用CloudFlare提供的CDN服务,在确立了目标使用CDN后,可以尝试先通过在线网站Cloud FlareWatch(http://www.crimeflare.us/cfs.html#box)对CloudFlare客户网站进行真实ip查询
——1.6.5验证获取的ip
如果是web,最简单的验证方式就是直接尝试用ip访问,看看响应的页面是不是和访问域名返回的一样;或者在目标段比较大的情况下,借助类似Masscan的工具批扫描对应ip段中所有开了80、443、8080端口的ip,然后逐个尝试ip访问,观察响应结果是否为目标网站
~1.7收集敏感目录文件
——1.7.1常用的扫描目录的工具:
DirBuster、御剑后台扫描珍藏版、wwwscan、Spinder.py(轻量级快速单文件目录后台扫描)、Weakfilescan(轻量级快速单文件目录后台扫描)等工具
~1.8社会工程学
假设攻击者对一家公司进行渗透测试,正在收集目标的真实IP阶段,此时就可以利用收集到的这家公司的某位销售人员的电子邮箱。首先,给这位销售人员发送邮件,假装对某个产品很感兴趣,显然销售人员会回复邮件。这样攻击者就可以通过分析邮件头来收集这家公司的真实IP地址及内部电子邮件服务器的相关信息。通过进一步地应用社会工程学,假设现在已经收集了目标人物的邮箱、QQ、电话号码、姓名,以及域名服务商,也通过爆破或者撞库的方法获取邮箱的密码,这时
就可以冒充目标人物要求客服人员协助重置域管理密码,甚至技术人员会帮着重置密码,从而使攻击者拿下域管理控制台,然后做域劫持。
除此以外,还可以利用"社工库”查询想要得到的信息, 社工库是用社会工程学进行攻击时积累的各方数据的结构化数据库。这个数据库里有大量信息,甚至可以找到每个人的各种行为记录。利用收集到的邮箱,可以在社工库中找到已经泄露的密码,其实还可以通过搜索引|擎搜索到社交账号等信息,然后通过利用社交和社会工程学得到的信息构造密码字典,对目标用户的邮箱和OA账号进行爆破或者撞库。就可以冒充目标人物要求客服人员协助重置域管理密码,甚至技术人员会帮着重置密码,从而使攻击者拿下域管理控制台,然后做域劫持。