第一章:渗透测试之信息搜集
1.收集域名信息
(1)Whois查询
(2)备案信息查询
2.收集敏感信息
3.收集子域名信息
4.收集常用端口信息
5.指纹识别
6.查找真实IP
7.收集敏感目录文件
8.社会工程学
1.收集域名信息
(1)Whois查询
Whois是标准的互联网协议,可用于收集域名注册信息(注册人名,邮箱信息),注册域名,IP地址等。
示例:
注:
- whois查询的网址不需要www
- 在线Whois查询网站:爱站工具网(https://whois.aizhan.com),站长之家(http://whois.chinaz.com),VirusTotal(https://www.virustotal.com/gui/home/search)(需翻墙)
(2)备案信息查询
主要针对国内网站,国外网站不需要备案 常用网站:
- ICP备案查询网:http://www.beianbeian.com
- 天眼查:http://www.tianyancha.com
2.收集敏感信息
使用搜索引擎(Google)并构造关键字语法查找所需信息
- site:指定域名
- inurl:url中存在关键字的网页
- intext:网页正文中的关键字
- filetype:指定文件类型
- intitle:网页标题中的关键字
- link:link:baidu.com,即表示返回所有和baidu.com做了链接的url
- info:查找指定站点的一些基本信息
- cache:搜索Google里关于某些内容的缓存
举例:
- site xxx.com intext:后台
- inurl:php?id=
…
注:
- 百度搜索和google差不多,因此,使用搜索引擎我们可以收集数据库文件、SQL注入、配置信息、源代码泄露、未授权访问、robots.txt等敏感信息
- 也可以使用bp的repeater获取服务器信息
- 使用github获取数据库连接信息、邮箱密码、uc-key、阿里的osskey,源码…
- 乌云漏洞列表(https://wooyun.shuimugan.com)查询历史漏洞信息(需翻墙)
3.收集子域名信息
子域名是二级域名,是顶级域名以下的域名。
1.子域名检测工具 (绿色为常用):
- Layer子域名挖掘机
- K8
- wydomain
- Sublist3r
- dnsmaper
- subDomainsBrtute(使用小字典递归发现三级、四级、五级等域名)
- Maltego CE
2.搜索引擎搜索:site:baidu.com
3.DNS侦察:https://dnsdumpster.com/ (需翻墙)
4.证书透明度公开日志枚举
每一个SSL/TLS证书通常包含域名、子域名和邮件地址;查找某个域名所属证书最简单的方法就是使用搜索引擎搜索一些公开的CT日志
网站:
- https://crt.sh
- https://censys.io
5.在线域名查询:
- https://phpinfo.me/domain/
4.收集常用端口信息
常用工具:
- Nmap(使用方法:https://blog.csdn.net/qq_41617034/article/details/91129340)
- Masscan(这是最快的Internet端口扫描程序。它可以在6分钟内扫描整个互联网,每秒传输1000万个数据包)
masscan -p80,8000-8100 10.0.0.0/8 - ZMap(Linux下使用,ZMap是一款扫描软件,由Durumeric领导密歇根大学研究团队开发。这一工具能在一个小时内扫描整个公共互联网,显示近40亿在线设备的信息。)
- 御剑高速TCP端口扫描工具
常用端口:
文件共享服务端口:
端口号 | 端口说明 | 攻击方向 |
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爆破、注入、反弹Shell |
5432 | PostgreSQL数据库 | 爆破、注入、弱口令 |
27017/27018 | MongoDB | 爆破、未授权访问 |
6379 | Redis数据库 | 可尝试未授权访问、弱口令爆破 |
5000 | SysBase/DB2数据库 | 爆破、注入 |
邮件服务端口:
端口号 | 端口说明 | 攻击方向 |
21 | 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 Rexec服务 | 爆破、Rlogin登陆 |
873 | Rsync服务 | 匿名访问、文件上传 |
3690 | Svn服务 | Svn泄露、未授权访问 |
50000 | SAP Management Console服务 | 远程执行 |
5.指纹识别
对目标服务器进行指纹识别,也就是识别相应的Web容器或者CMS(整站系统或文章系统)
- 常见CMS:Dedecms(织梦)、Discuz、PHPWEB、PHPWind、PHPCMS、ECShop、Dvbbs、SiteWeaver、ASPCMS、帝国、Z-Blog、WordPress
- 指纹识别工具:
1.御剑web指纹识别
2.WHatWeb
3.WebRobo
4.椰树
5.轻量web指纹识别 - 在线网站查询CMS指纹识别
1.BugScaner:http://whatweb.bugscaner.com/look/
2.云溪指纹:http://www.yunsee.cn/finger.html
3.WhatWeb:http://whatweb.net
6.查找真实IP
通过目标服务器域名来确定其真实IP,若目标服务器不存在CDN,可以直接通过http://www.ip138.com获取目标的一些IP及域名信息
下面几种方法介绍如何绕过CDN寻找目标服务器的真实IP
1.目标服务器存在CDN
- CDN即内容分发网络,主要解决因传输距离和不同运营商节点造成的网路速度性能低下的问题。
- 如果目标购买了CDN服务,可以直接ping目标的域名,但得到的并非真正的目标Web服务器,只是离我们最近的一台目标节点的CDN服务器,这就导致我们无法获取目标的真实IP段范围
2.判断目标是否使用CDN
通常通过ping目标主域,观察域名解析情况,以此来判断是否使用了CDN
还可以利用在线网站17CE(https://www.17ce.com)进行全国多地区的ping服务器操作,然后对比每个地区ping出的ip结果,查看这些ip是否一致,如果一致,极有可能不存在CDN,。如果ip大多不太一样或者规律性很强,可以尝试查询这些ip归属地,判断是否存在CDN
3。绕过CDN寻找真实IP(在确认目标使用CDN后)
- 内部邮箱源。一般邮箱系统都在内部,没有经过CDN解析,通过目标网站用户注册或者RSS订阅功能,查看邮件、寻找着邮件头中的邮件服务器域名ip,ping这个邮件服务器的域名,就可以获得真实ip(注意:必须是目标服务器自己的邮件服务器,第三方或公共邮件服务器无用)
- 扫描网站测试文件,如phpinfo、test
- 分站域名。很多网站主站访问量较大会挂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历史记录,也可以大致分析出目标的真实IP段
- 如果目标网站有自己的App,可以尝试利用Fiddler或Burpsuite抓取App的请求,从中找到目标的真实IP
- 绕过CloudFlare CDN查找真实IP。现在很多网站使用CloudFlare提供的CDN服务,在确定了目标网站使用CDN后,可以先尝试通过在线网站CloudFlareWatch
4。验证获取的IP
找到目标的真实IP后,如何验证其真实性呢?
-如果是Web,直接尝试用IP访问,查看响应页面和访问域名返回的是否一样;或者在目标端比较大的情况下,借助类似Masscan的工具批量扫描对应IP段中所有开了80、443、8080端口的IP,然后逐个尝试IP访问,观察响应结果是否为目标站点
7.收集敏感目录文件
在渗透测试中,探测Web目录结构和隐藏的敏感文件是必不可少的一件事,从中我们可以获得网站的后台管理页面、文件上传页面、源代码等
1.网站目录扫描
- DirBuster
- 御剑后台扫描
- wwwscan
- Spinder.py(轻量级快速单文件目录后台扫描)
- Sensitivefilescan(轻量级快速单文件目录后台扫描)
- Weakfilescan(轻量级快速单文件目录后台扫描)
2.在线工具 - WebScan(http://www.webscan.cc)
8.社会工程学
目标邮箱、QQ、电话、姓名、域名服务商等等,知道一个账号的密码后进行撞库
第一章:渗透测试之信息搜集相关推荐
- 第一章 渗透测试之信息收集
VMware安装:进入vmware官网(http://www.VMware.com/cn.html),点击左下角下载,导航栏中下载,根据操作选择合适的产品,完成下载. kali下载(www.kali. ...
- 渗透测试之信息搜集总结
在渗透测试的第一步,就是进行信息搜集,在做渗透测试时我们越了解目标,测试的工作就越容易.只要是与网站相关的的信息,都要竟可能多的去搜集. 目录 收集域名信息 whois查询 备案信息查询 收集敏感信息 ...
- Web安全渗透测试之信息搜集篇(上)
通过使用搜索引擎.扫描器.发送简单的HTTP请求或者专门精心制作的请求,都有可能导致应用程序泄漏诸如错误信息.版本信息以及所使用的技术等信息. 一.测试robots.txt文件 现在,我们首先介绍如何 ...
- 渗透测试之信息搜集专题
渗透测试全流程: 1.信息搜集: 1.获取域名whois信息(邮箱,电话,使用社工库查看泄露密码.尝试登录后台,邮箱-->搜索引擎查询--->社交账号,管理员生成密码的习惯,生成密码字典) ...
- 第一章:渗透测试之信息收集
第一章:渗透测试之信息收集 信息收集主要内容:服务器配置信息.网站敏感信息. 其中包括:域名及子域名信息.目标网站系统.CMS指纹.目标网站的真实IP.开放端口等. 总之:只要与目标网站有关就尽量去搜 ...
- @渗透测试之信息收集
目录 渗透测试之信息收集 一.信息收集之概述 1.1 渗透一个目标系统,最常见的信息手机目标有如下几种: 1.2 信息收集的作用 二.利用搜索引擎收集信息 2.1 利用搜索引擎的收集目标主要有以下几种 ...
- 渗透测试-最全Web 渗透测试信息搜集-CheckList
干货 | 最全Web 渗透测试信息搜集-CheckList 文章目录 干货 | 最全Web 渗透测试信息搜集-CheckList 前言 1.获取真实IP 2.如何判断是否是CDN 使用ping域名判断 ...
- 渗透测试之信息收集思维导图
渗透测试之信息收集-脑图 信息收集的重要性 根据<精通Metasploit渗透测试>一书所讲: 信息收集是整个渗透测试最重要阶段之一,可任意让测试者选择合适和准确的渗透测试攻击方式,缩短渗 ...
- 渗透测试之信息收集篇
文章目录 前言: 一.域名信息收集: 1.Whois查询: 2.备案信息查询: 二.敏感信息收集: 1.Google Hacking语法: 2.FOFA网络安全空间搜索: 3.Github信息泄露: ...
最新文章
- 浅析HDFS的副本存放策略
- linux为什么创建不了分区,linux下扩容磁盘扩展分区解决因无法创建新分区不能扩容lvm问题...
- xcode7.1 安装不了Alcatraz怎么办.看这里
- 初学Vue.js--数据绑定与文本插值
- freerdp 解压安装_Ubuntu下编译安装运作FreeRdp连接Windows
- @AuotoWired+@Qualifier(百度百科)
- java中map函数指针_如何用Rust编写合适的map函数?
- 拓端tecdat|R语言分布滞后非线性模型(DLNM)研究发病率,死亡率和空气污染示例
- Java 实现MD5
- Android中多次点击开发者模式的实现
- 《编译学习计划【第一季】》- C语言中的qsort函数
- matlab常用命令整理
- 全球AMR调度系统分析(RMS、TMS)
- java记忆翻牌_html5记忆翻牌游戏
- Golang中的并发:如何使用Goroutines?详细指南
- uart硬件一些小知识
- 如何制作一个蓄力跳的功能
- 笔记本计算机硬盘如何分盘,笔记本电脑怎样分盘_笔记本电脑如何自己分盘-win7之家...
- 开源地图服务器 网站,开源WebGIS:地图发布与地图服务
- java 连接多实例_Java如何连接多实例SQL Server?
热门文章
- Vue学习(动态组件、组件路由缓存keepalive)-学习笔记
- BIM+GIS应用实战(听课笔记)
- ReactNative-WebView组件
- C#lock语句用法(lock到底有什么用?)
- linux常用工具命令
- 商城计价中心 - 从容应对复杂场景价格计算
- Facebook力推导航库:React Navigation使用详解
- 基于事件的异步模式——BackgroundWorker
- android studio 引入arr的问题
- Tomcat 之 启动tomcat时 错误: 代理抛出异常 : java.rmi.server.ExportException: Port already in use: 1099;...