渗透测试-信息收集

"感谢您阅读本篇博客!如果您觉得本文对您有所帮助或启发,请不吝点赞和分享给更多的朋友。您的支持是我持续创作的动力,也欢迎留言交流,让我们一起探讨技术,共同成长!谢谢!🚀✨"

纯文本 复制代码
domain:"kuaishou.com" AND port:"80"       360网络空间检索语句

(domain="qianxin.com")&&ip.port="80"      鹰图

曾记得某位大佬说过"渗透测试的本质就是信息收集",那么信息收集,我们到底该收集啥?

信息收集是指通过各种方式获取所需要的信息,以便我们在后续的渗透过程更好的进行需要收集的信息:

目标主机的DNS信息目标IP地址子域名旁站和C段CMS类型敏感目录端口信息操作系统版本网站架构漏洞信息服务器与中间件信息邮箱人员地址

\(信息收集分类\)

erlang 复制代码
主动信息收集:直接访问网站进行操作扫描等等,这种是有网络流量经过目标服务器的收集方式

被动信息收集:通过公开的东西比如搜索引擎,在不与目标系统交互的情况下获取信息避免留下痕迹

收集的信息

指纹识别CMS

众多的子域名扫描出来后,我们要从中找到一个比较好挖的地方,进行该网站后就是指纹识别判断该网站是何种框架

御剑CMS识别

使用工具或者肉眼确认是何种CMS再进行Nday利用进行扫描,此功能原理是通过拼接路径来判断是什么CMS

御剑WEB指纹识别系统教程,图文教程(超详细)-CSDN博客

erlang 复制代码
Wappalyzer 插件可以帮助我们看到网站的相关信息 是一个指纹识别插件,会显示出是用何种语言编写
 御剑指纹识别

我们知道是这个某个框架之后,我们就可以去网上搜素相关的源码文件,不需要审计代码,直接按着结构去访问。例如discuz的后台admin.php

收集网站

概念介绍

域名收集

erlang 复制代码
域名:Domain Name 简称域名,是由一串用点分隔的名字组成,用在数据传输时标识计算机的电子位置
DNS: 域名系统是互联网的一项服务,作为域名和IP地址相互映射的一个分布式数据库能够使人更方便地访问互联网 、

域名分类:

顶级域名    二级域名      三级域名    政府域名  商业域名  教育域名
.com       baidu.com    www.com     .gov     .com     .edu

我们可以通过SRC给出的资产范围,去爱企查或者别的软件中搜索相关的域名,通过域名找到网站的名称,知识产权->网站备案中可以获取测试范围。

备案

如果是给到的域名不是很全的的情况下,就利用网站备案号去进行查询 获得更多的资产

erlang 复制代码
网站备案是根据国家法律法规规定,需要网站的所有者向国家有关部门申请的备案,
这是国家信息产业部对网站的一种管理,为了防止在网上从事非法的网站经营活动的发生.

查询路径:

天眼查

ICP备案

SEO综合查询

每个网站都有相对应的指标,seo综合查询就是输入网址,就可以得到网址域名建立的时间、百度权重、移动权重和注册邮箱等等基本信息指标,所以想要得到一个网站的这些指标,就可以在seo综合查询上得知

6502 复制代码
在这里我们可以看到权重,权重为1,一般的权重为0,1,2,3还是容易日的,大于3的直接pass,但是你厉害的话,可以忽略这话

子域名查询

在渗透测试过程中,一般在目标的主站很少有发现漏洞点的存在,这时候我们就要从从主站之外的接口进行渗透测试,这时我们可以从域名出发收集信息

6502 复制代码
我们通常使用子域名挖掘机等等一系列在线的工具,因为主站或许不存在漏洞但是主站下的子域名页面就不一样了 

目标的子域是一个重要的测试点,你收集到的可用的子域名越多,意味着你的机会也就越多,所以说要尽可能的收集目标的子域名。子域名的收集方法有很多,这里我分为两种:
第一种在线子域名收集。第二种利用工具进行子域名收集。比较常见的在线子域名搜索(爆破)的网站有:在线子域名爆破-子成君提供、在线子域名查询等;
子域名扫描工具有fofa、layer子域名挖掘机、 
   

这种的在主域名 .com 中的才是 真正的子域名 ab.baidu.com

这种的只能算是子页面 不要搞错了

另类子域名

收集到类似big-data.target.com子域名 使用工具对前缀单词进行爆破fuzz,尝试获取到更多的子域名

域名泛解析

泛域名指在一个根域名之下,所有未建立的子域名的合集。如果某子域名已经存在,那么不在泛域名之中,用通配符* 做次级域名这样所有的次级域名均指向同一IP地址

用户的域名是abc.com,IP解析到:218.104.78.100。将主机名设置为通配符"*",表明 abc.com 之前的所有子域名都将解析到218.104.78.100,如 bbs.abc.com123.234.abc.com,任意字符均可以指向到111.111.111.111这个IP地址。

Whois 查主域

猜密码构造密码,获得公司名称 注册人 联系方式后, 通过社工字典生成器或者弱口令字典生成器网上都有教程文章去实现和生成

erlang 复制代码
whois是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)

whois查询的重要性:通过whois查询可以获得域名注册者邮箱地址等信息。一般情况下对于中小型网站域名注册者就是网站管理员
利用搜索引擎对whois查询到的信息进行搜索,获取更多域名注册者的个人信息 

得到目标URL之后,我们可以通过站长之家来进行whios查询这家公司的信息。例如:公司名称,注册人或者机构、联系方式:邮箱,手机号码,备案号,ip,域名,DNS,少量子域名等。

查询路径:

站长之家Whios查询

爱站网

VIRUSTOTAL

敏感目录信息

目录扫描也是一个渗透测试的重要点,如果你能从目录中找到一些敏感信息,那么你的渗透过程就会轻松很多。例如扫描出后台,源码,robots.txt的敏感目录或者敏感信息。目录扫描我分为两种:一种时在线目录扫描,一种是利用工具扫描目录

6502 复制代码
在线目录扫描可以使用Google语法然后利用我们平时用的搜索引擎(搜狗,百度,bing,Google等)进行搜索,例子:

 谷歌黑客语法
    site:限制搜索范围的域名
    inurl:限制搜索的url中必须存在na的内容
    intext:限制搜索的页面中必须存在的内容
    intitle:限制搜索的页面的标题栏中的内容
      filetype:限制搜索的文件类型 
6502 复制代码
任意文件下载:site:域名 filetype:zip|rar|zip|xml (任选其中一个)
敏感信息(目录):site:域名 index of、intitle:"Index of /admin"
未授权访问:inurl:php? intext:CHARACTER_SETS,COLLATIONS, ?intitle:phpmyadmin、
后台:site:xxx.com inurl:login|admin|manage|member|admin_login|login_admin|system|login|user、
敏感信息泄露:
site:xxx.com intext:管理|后台|登录|用户名|密码|系统|账号|admin|login|managetem|password|username
sql注入:site:域名 inurl:?id=
扫描工具有:御剑,dirseach等。

GitHub敏感信息

michenriksen/gitrob:GitHub 组织的侦测工具 工具

github信息收集.docx

IP收集

判断真实IP方法^[1]^

如果渗透目标为虚拟主机,那么通过IP反查到的域名信息很有价值,因为一台电脑上上面可能运行多个虚拟主机。虽然虚拟机里有不同的域名,

但通常共用一个IP地址。如果你知道有哪些网站共用这台服务器,就有可能通过此台服务器上其他网站的漏洞获取主机服务器控制权,进而迂回获取渗透目标的权限,这种技术也称为"旁注"。

利用主机名下的东西对主机进行渗透,但是主机ping后的地址不一定是真实的IP,有的是虚拟的ip地址,我们通过别的手段获取到真实IP

使用端口扫描工具扫描开了哪些端口,然后结合开放的端口直接访问找到的IP,看看响应的页面是不是和访问域名返回的一样

IP 反查

如果打野时出现一个网站是以IP形式出现的我们就可以通过 IP 去反差这个域名,一个IP下面肯可能有很多个域名,通过爱站网和或者别的工具来判断

这个网站是个人的资产还是真正的企业.

CDN

内容分发网络是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率,也就是就近访问web服务器更快的获取到内容;

CDN就是用来加速访问的,在全国各处设置CDN节点,当用户使某个网站时,其实就是在使用离用户最近的CDN节点来搜索内容。

判断CDN

  • 超级ping如果存在多个IP则可能采用 爱站网超级ping工具:https://ping.aizhan.com/ 站长之家超级ping工具:http://ping.chinaz.com/
  • CMD面板使用 nslookup命令进行查询 若目标存在多个IP的话,就很有可能有CDN服务

绕过CDN

  • 网站对每个站都开启了CDN价格是很高的,因为是按流量计费,我们可以利用国外的机房去全球ping,如果得到的都是同一个地址那么应该没有开启CDN且得到了真实IP
  • 主站有CDN但是主站其他的子域名可能没有
  • DNS历史记录,站点在使用CDN服务之前,它的真实IP地址可能被DNS服务器所记录到,此时我们就可以通过DNS历史记录找到目标真实IP

C段

erlang 复制代码
C段就是同一网段,如192.168.100.0  --- 255. 



p:ping  baidu.com (获取IP后扫描C段)        24:子网掩码

获得地址后对最好的位数进行爆破,找到同一网段下不同的站点,通过
1. IP去访问
2. 使用IP反差域名访问

 探测工具nmap    nmap -sP www.XXX.com/24 |[ nmap -sP 192.168.1.*         

收集子域名后通过Eeyes扫描得到对应域名的IPC段信息

C段和旁站区别

收集到C段后可以在C段的基础上再收集一次旁站

java 复制代码
192.168.1.10:80   192.168.1.10:3306  // 旁站是同一IP下不同的网站,所开放的端口不一样

192.168.1.10  192.168.1.11  //   C段是同一网段下不同的IP 

Cwebscanner

erlang 复制代码
快速扫描C段web应用,获取请求状态code、server、title信息
支持域名或ip地址形式,默认扫描80端口
支持自定义端口扫描 
如果对方使用CDN技术则无法扫描,同时可以判断对方使用了CDN

虚拟机克隆github:  git clone https://github.com/se55i0n/Cwebscanner.git   升级: git pull
--------------------------
github地址: https://github.com/se55i0n/Cwebscanner.git

支持域名或ip地址形式,默认扫描80端口

erlang 复制代码
python Cwebscan.py www.baidu.com    指定域名扫描可以指定ip端口默认80

自定义端口扫描

erlang 复制代码
python Cwebscan.py www.baidu.com  -p80,8080

判断网站操作系统类型

TTL值判断

ping网站或者IP如果TTL值是128则是windows,Linux则是0-64范围

大小写

windows对大小学不铭感 linux对大小写敏感

端口收集

erlang 复制代码
端口简介:

Internet上,各主机间通过TCP/IP协议发送和接受数据包,
各个数据包根据其 目的主机的IP地址来进行互联网络中的路由选择,从而顺利的将数据包顺利的传送给目标主机 

一个网站可能会开放多个不同的端口,而我们可以通过同一网站的不同端口进行测试,扫描开放端口的方法有很多,这里我分为两种:
第一种在线端口扫描,第二种利用工具扫描端口。
比较常见的在线端口扫描网站有:在线端口扫描,IP/服务器端口在线扫描 - TooL.cc、在线端口检测,端口扫描,端口开放检查-在线工具-postjson等;端口扫描工具有nmap,goby等。

协议端口

erlang 复制代码
  根据提供服务类型的不同,端口可分为以下两种:
  TCP端口:TCP是一种面向连接的可靠的传输层通信协议  给目标主机发送信息后,通过返回应该答确认信息是否到达
  
  UDP端口:UCP是一种无连接的不可靠的传输协议       给目标主机发送服务后不会确认是否到达
  
  TCP协议和UDP协议的是互相独立的,因此各自的端口号也互相独立

端口类型

erlang 复制代码
周知端口: 大家都知道的端口号,范围 0-1023 如80端口是WWW服务,就是我们数据库等我们本地搭建的端口
注册端口: 范围1024-49151 用于分配给用户进程或程序 我们可以进行使用
动态端口: 一般不会固定某种服务,范围49132-65535 我们

端口作用

erlang 复制代码
把服务器比作房子,端口就是其中的很多道门,窃贼想要在没经过房子主人允许进入房子,就需要破门而入;
窃贼在破门之前,得先了解到房子开了几扇门,门后是什么东西,也就是踩点;踩点得到的信息越多对于窃贼顺利的窃取有价值的东西至关重要。

渗透端口

FTP 21

erlang 复制代码
FTP:文件传输协议,使用TCP端口20,21,20用于传输数据,21用于传输控制信息
  (1)FTP基础爆破:owasp的Bruter,hydra以及msf中的FTP爆破模块   (hydra) 爆破各种服务
  (2)FTP匿名访问:用户名:anonymous 密码为空或者任意邮箱,当文件传输协议没有开启验证的事情我们就可以通过这种方式窃取敏感信息
  (3)Vsftpd后门:Vsfrpd2到2.3.4版本存在后门漏洞,通过该漏洞获取root权限  Vsftdp:linux操作系统的服务器

SSH 22

6502 复制代码
SSH:(secure shell)是目前比较可靠,专为远程登录会话和其他网络服务提供安全性的协议


(1) 弱口令 可使用工具 hydra,msf中的ssh爆破模块
(2) SSH 后门
(3) openssh用户枚举 CVE-2018-15473

Telnet 23

6502 复制代码
Telnet协议是TCP/IP协议族中的一员,是wbe远程登录服务的标准协议和主要方式

(1) 暴力破解 使用hydra或者 msf中telnet模块对其破解
(2) 在linux系统中一般采用SSH进行远程访问,传输的敏感数据都是经过加密的。而对于windows下的telnet来说是脆弱的,因为默认没有经过任何加密就在网络中井行传输。使用cain等嗅探工具可轻松截获远程登录密码。

SMTP 25/465

lua 复制代码
邮件协议:在linix中默认开启这个服务,可发送钓鱼邮件
默认端口: 25 265(smtps)
(1) 爆破: 弱口令 使用hydra
(2)SMTP 无认证伪造发件人

WWW 80

lua 复制代码
超文本传输协议(HTTP)开放端口,主要用于万维网传输信息的协议
(1) 中间件漏洞 如IIS apache ngix  (我们利用OWAVPS 可以对80进行攻击,也可以利用网站部署的这些微服务进行侧面的攻击渗透)
(2) 80端口一般通过web应用程序的常见漏洞进行攻击

NetBIOS SessionService 139/445

lua 复制代码
139 提供windows文件和打印机共享UNIX中的Samba服务
445 提供windows文件和打印机共享
  (1) 对于开放 139/445端口,尝试利MS17010溢出漏洞漏洞攻击
  (2) 对于只开发445端口
  (3) 利用IPC$ 连接进行渗透

MySQL-3306

lua 复制代码
3306 是MySQL数据库默认的监听端口
(1) mysql弱口令破解
(2) 弱口令登录mysql 上传构造的恶意UDF自定义函数代码 通过调用恶意注册的恶意函数执行系统命令
(3) SQL注入获取数据库敏感信息 load_file() 函数读取系统文件 导出恶意代码到指出路径

RDP 3389

lua 复制代码
3389是windows远程桌面服务默认监听端口

(1) RDP暴力破解攻击
(2) MS12_020死亡蓝屏攻击
(3) RDP远程桌面漏洞 (CVE-2019-0708)
(4) MSF 开启RDP 注册表开启RDP

Redis 6379

lua 复制代码
开源的可基于内存的可持久化的日志型数据库
(1) 爆破弱口令
(2) redis未授权访问结合ssh key提权
(3) 主从复制RCE (命令执行漏洞)

Weblogic 7001

lua 复制代码
(1) 弱口令 爆破 弱密码 一般为weblogic  / Oracle@123 or weblogic
(2) 管理后台部署 war包后门
(3) weblogic SSRF
(4) 反序列化漏洞

Tomcat 8080

c# 复制代码
(1) Tomcat 远程代码执行漏洞 (CVE-2019-0232)
(2) tocat 任意文件上传(CVE-2017-12615)
(3) tomcat 管理页面弱口令getshell

nmap -A - T4 WWW.hetianlab.com

历史漏洞收集

c# 复制代码

搜索引擎高级搜索指令

API

java 复制代码
site() 用来搜索某个域名在搜索引擎收录的所有文件。百度、Google、雅虎等各大搜索引擎都支持该指令。
site的语法格式:site:xxxx(域名)
site:sina.com     site:edu.cn   

link() 常用的高级指令,用于查询url的反向链接,只有google支持该指令,但查询结果不准确

linkdomain() 该指令也是用于查询域名的反向链接,但只有雅虎支持,用雅虎来查网站的反向链接数据比较准确,所以都会用雅虎的linkdomain:命令查询一个网站的反向链接

inurl() 用于搜索查询呈现在url 中的页面,百度和google均支持该指令
指令格式:inurl:用户登录 返回的结果是url包含"用户登录"的页面,支持中英文。
使用技巧:inurl命令可以准确查询个人博客的收录情况,比如:我在百度申请了一个用户名为jiangkanek的博客,那么我们准确的查询博客收录呢?
正确的查询方法是 site:hi.baidu.com inurl:jiankangek 这条命令的意思就是hi.baidu.com(百度空间域名) 包含jiankangek(用户名)的页面

allinurl()
与inurl相似,区别在于allinurl指令可以同时查询多个关键词
指令格式:allinurl:医院网络营 推广技巧 相当于inurl:医院网络营销 inurl:医院推广技巧

intitle()
该指令返回的结果是页面title包含关键词,baidu和google均支持该指令。
指令格式:intitle:医院网络营销
使用技巧:比如我们要查询"医院网络营销"这个关键词的竞争对手,那么用intitle指令查询返回的结果中将是你最强的竞争对手\

filetype()
用于搜索特定文件格式,baidu和google均支持该指令
指令格式:filetype:医院网络方案 doc 返回的是包含"医院网络方案"的文档

https://www.wolai.com/6827jZPTHDhsyZad8SpU8x#5YJKiULX9QR2vyVniyx5ao

子站报错页面


  1. 收集子域名后尝试以解析ip不在CDN上的ip解析主站,真实ip成功被获取到。 ↩︎