信息收集

一、域名信息收集

1.1、域名介绍

域名【Domain Name】一串用点分隔的名字组成的internet上某一台计算机/计算机组的名称,在数据传输时标识计算机电子方位。

如:www.baidu.com、www.51cto.com

关于edu.51cto.com以及www.51cto.com是该域名下对应的子域名,前面的[edu]、[www]都是对应的主机头

PC端访问站点的过程:【TCP/IP传输协议的过程】

①PC端--浏览器发送一条所访问站点的域名请求到DNS服务器

②DNS服务器检索并返回其域名对应IP地址给PC

③PC端获得域名对应IP地址进行对端WEB服务器进行访问请求

④对端WEB服务器收到请求进行回应

网络安全证书备考--信息收集_IP

1.2、whois介绍

查询域名IP以及所有者等信息的传输协议

查询域名是否已经被注册,以及注册域名的详细信息数据库[域名所有人、域名注册商等]


【不同域名后缀的whois信息】需向不同的【whois数据库】查询----如【.com】和【.edu】的数据库就不同

各域名/IP的whois信息由对应的管理机构保存

【.com】whois信息===>运营商VerSign管理

【.cn】中国国家顶级域名===>CNNIC【中国互联网网络信息中心】管理


whois协议

向服务器TCP端口43建立连接,发送查询关键字---接收服务器的查询结果

网络安全证书备考--信息收集_IP_02

1.3、whois查询

查询重要性:

通过whois查询可以获得域名注册者邮箱地址等信息。

【一般的中小型】域名注册者==网站管理员

whois查询方法:

①WEB接口查询:

https://whois.aliyun.com/

https://www.whois365.com/cn/

网络安全证书备考--信息收集_IP_03

以阿里云查询[baidu.com]为例:

网络安全证书备考--信息收集_子域名_04

②通过whois命令行查询

kali linux下自带whois查询工具,通过命令whois域名进行查询

同样以whois baidu.com为例

网络安全证书备考--信息收集_CISP_05

1.4、备案信息查询

ICP备案介绍:【Internet Content Provider】网络内容提供商

《互联网信息服务管理办法》指出互联网信息分为【经营性】【非经营性】

经营性互联网信息服务----国家实行许可制度

非经营性互联网信息服务----国家实行备案制度

未取得/未履行备案手续==>不得从事互联网信息服务

未经国家机关单位许可备案,不可在中国境内从事非经营性互联网信息服务

备案的好处:防止网上从事非法网站经营活动,打击不良互联网信息传播

不备案可能会被关停

ICP备案查询方法:【仅中国境内有ICP】

https://tianyancha.com

二、子域名信息收集

2.1、子域名介绍

①顶级域名:【.com】【.net】【.org】【.cn】

②子域名[Subdomain Name]----顶级域名前的前缀都是该顶级域名的子域名

子域名---二级子域名、三级子域名、多级子域名

国内顶级域名后的二级子域名:6个

【.ac[科研机构]】【.com[工商金融]】【.edu[教育机构]】

【.gov[政府机构]】【.net[互联网信息中心和运行中心]】【.org[非盈利组织]】

如:
www.zstu.edu.cn【浙江理工大学】

2.2、挖掘子域名重要性

子域名=某个主域的二级/多级域名,在防御措施严密的情况下无法直接拿下主域=方式:迂回战术拿下子域名,然后无限靠近主域

例如:

www.xxxxx.com】主域名不存在bug,并且防护措施严密

但是二级域名【edu.xxxxx.com】存在bug,并且防护措施松散

可以通过获取二级域名再进行一系列手段拿下主域名

2.3、挖掘子域名重要性

2.3.1、子域名挖掘工具:

【Maltego CE】【wydomain】【subDomainBrute】

【dnsmaper 】【layer子挖掘机】

以[Maltego]为例:

kali当中如果没有maltego,安装代码为:
sudo apt install maltego

打开maltego

拖拽一个domain图标,命名所要信息收集的域名

左下角【Machines】找到【Footprint L1】进行对域名的信息收集

网络安全证书备考--信息收集_CISP_06

以wydomain为例

【kali linux】下载【可能ls需要访问外部网络】
git clone https://github.com/ring04h/wydomain.git
cd wydomain
chmod +x dnsburte.py
chmod +x wydomain.py
需要明确自身kali环境是pip2+python2还是pip3+python3还是多版本环境再去选择性的去执行语句

网络安全证书备考--信息收集_子域名_07

网络安全证书备考--信息收集_CISP_08

使用【python2】执行【./dnsburte.py】代码
使用【dnspod.csv】字典查询子域名【baidu.com】
并将输出结果保存在【baidu.txt】当中
python2 ./dnsburte.py -d baidu.com -f dnspod.csv -o baidu.txt

网络安全证书备考--信息收集_CISP_09

python2 ./wydomain.py -d baidu.com -o baidu.log
使用【python2】执行【./wydomain.py】代码
查询【baidu.com】的子域名,并将结果输出在【baidu.log】当中

网络安全证书备考--信息收集_子域名_10

2.3.2、搜索引擎挖掘

在goole/baidu当中输入[site:sina.com]检索新浪微博的子域名

网络安全证书备考--信息收集_IP_11

2.3.3、使用第三方网站进行子域名查询

https://tool.chinaz.com/subdomain】[站长之家-子域名查询]、【https://dnsdumpster.com/

网络安全证书备考--信息收集_CISP_12


2.3.4、证书透明度公开日志枚举

https://crt.sh】、【https://censys.io

网络安全证书备考--信息收集_子域名_13

网络安全证书备考--信息收集_子域名_14

网络安全证书备考--信息收集_IP_15

2.3.5、其他在线子域名爆破

https://dns.aizhan.com

网上寻找在线子域名爆破网站进行子域名爆破

网络安全证书备考--信息收集_子域名_16

2.4、刷洞思路

针对某个具体SRC进行挖洞,直接针对主域进行shentou测试难达挖掘效果,则可通过搜集对应子域名,批量探测bug,再将bug提交对应SRC获取奖金

针对补天刷洞思路:

对应没有指定厂商的刷洞,根据某些具体bug,通过URL采集获取目标,编写探测脚本批量探测,高效刷bug

TIP:时刻保持警惕,不触及不该触及的内容,不影响公司业务,只做bug探测内容,确定存在bug即可,点到为止

挖洞高峰:互联网曝出新bug--大量该bug提交到bug平台获取奖金

三、web站点信息收集

3.1、CMS指识别

CMS(内容管理系统)

又称整站系统/文章系统。用于网站内容管理。

通过下载对应CMS软件包可以简单高效部署搭建。

各种CMS都有独特的结构命名规则和特定的文件内容,可以利用这些内容来获取CMS站点具体CMS软件与版本号

常见CMS:

【dedecms】织梦、【Discuz】、【Phpcms】等

CMS识别工具:

①在线工具:

https://www.wappalyzer.com/】、【https://builtwith.com/

②本地工具[whatweb]

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

大禹CMS识别程序【https://github.com/Ms0x0/Dayu

3.2、针对CMS的bug查询

对于查询到的CMS可以利用【https://bugs.shuimugan.com】网站查询指定CMS的bug

对于一些能够从bug库当中查询到的bug进行一个利用和安全性检测

3.3、敏感目录信息

针对目标WEB目录结构和敏感隐藏文件探测非常重要。

在探测过程中可能会探测出后台页面、上传页面、数据库文件、甚至是网站源代码文件压缩包等

探测工具

①御剑后台扫描工具

②wwwscan命令行工具

③dirb命令行工具

dirb https://edu.51cto.com

网络安全证书备考--信息收集_子域名_17

④dirbuster扫描工具

3.4、wordpress测试

wordpress是使用PHP语言开发的博客平台,用户可以在支持PHP和MYSQL数据库服务器上架设属于自己的网站

也可以将wordpress当作一个内容管理系统(CMS)来使用

针对wordpress测试,可以使用wpscan工具进行对应的安全测试

通过wpscan来进行对网站信息的收集
wpscan --url https://cn.wordpress.com

网络安全证书备考--信息收集_IP_18

可以得到域名等各式信息【服务器,版本,插件等】

四、端口信息收集

4.1、端口介绍

IP地址=房子,端口=出入房子的门。

一个IP地址可以有65536个端口[216]端口用端口号标记,只有整数个[216-1]

如:计算机80端口,21端口,23端口等

一个端口==一个服务。
windows命令行中使用
netstat -anbo		#显示开放端口,建立的连接
netstat -h			#显示命令帮助

网络安全证书备考--信息收集_子域名_19

4.2、端口信息收集

对于目标机器端口状态,使用工具测试

【原理】使用TCP/UDP等协议向目标端口发送指定标志位等的数据包,等待目标返回数据包,以此判断端口状态

①使用[nmap]探测

nmap -A -v -T4 目标

②使用[masscan]探测

masscan -p80 192.168.1.1/24 --rate=10000
探测目标地址是否开放80端口

③使用在线网站探测[http://tool.chinaz.com/port/]缺陷:无法探测本地网络的端口信息

4.3、端口attack

针对不同的端口有不同的attack方法

【针对远程连接服务端口】

端口

端口说明

attack方法

22

SSH远程连接

爆破、SSH隧道及内网代理转发、文件传输

23

Telnet远程连接

爆破、嗅探、弱口令

3389

rdp远程桌面

Shift厚门、爆破

5900

VNC远程连接

弱口令、RCE

5632

PcAnywhere远程连接

嗅探、代码执行

对于扫描到的端口可以在搜索引擎当作查找对应的attack方式进行测试

4.4、防御措施

端口attack----只要端口开放并且可以连通,就可以利用对应方式进行attack测试

【防御措施】

①关闭不必要的端口

②对重要业务的服务端口设置防火墙

③加强员工信息安全意识,经常性更换用户密码

④经常更新软件,打补丁(patch)

五、敏感信息收集

5.1、敏感信息收集重要性

针对某些安全措施较好的目标,直接通过技术层面无法完成氵参透测试。

利用搜索引擎搜索目标暴露在互联网上的关联信息。

【数据库文件、SQL氵主入、服务器配置信息】

【通过Github找到站点泄露源代码、Redis等未授权访问、robots.txt等敏感信息】

【某些情况】

收集信息对后期测试起到帮助作用,通过收集信息直接获得目标系统的数据库访问权限---氵参透测试任务结束一大半了

在技术层面情况下的测试之前,先进行更多的信息收集

5.2、Google Hacking语法

使用Google等搜索引擎对某些特定网络主机bug (服务器上的脚本bug)进行搜索,以达到快速找到bug主机/特定主机bug目的

关键字

含义

site

指定搜索域名  【site:baidu.com】

inurl

指定URL中是否存在某些关键字

【inurl:.php?id=】

intext

指定网页中是否存在某些关键字

【intext:网站管理】

filetype

指定搜索文件类型

【filetype:txt】

intitle

指定网页标题是否存在某些关键字

【intitle:后台管理】

link

指定网页链接

【link:baidu.com】

指定与百度做了外链的站点

info

指定搜索网页信息 

【info:baidu.com】

Google hacking数据库:【https://www.exploit-db.com/google-hacking-database/

查询access数据:filetype:mdb "standad jet" (password | username | user | pass)

网络安全证书备考--信息收集_IP_20

5.3、HTTP响应收集Server信息

http/https与目标站点通信时,目标响应的报文中Server透和X-Powered-By头回暴露服务器和使用的编程语言信息,通过这些信息可以有针对的利用bug尝试

【获取HTTP响应的方法】

①利用工具:【浏览器审计工具】【Burpsuite】等代理截断工具

进入一个页面,键入【F12】进行代码审计,收集信息(服务器等各类信息)

网络安全证书备考--信息收集_IP_21


网络安全证书备考--信息收集_IP_22

②编写Python脚本 requests库

参考链接:【https://www.python-requests.org/en/master/

import requests
r =request.get("https://edu.51cto.com")
r.headers

网络安全证书备考--信息收集_子域名_23

后续通过得到的服务器类型,去【exploit-db库】当中进行bug寻找

searchsploit  【服务器类型】

5.4、Github信息泄露

github--分布式版本控制系统,开发者用户数量达140+。一些敏感信息的泄露是用户自身无意中造成,使得小疏忽成为安全隐患。

Github邮件配置信息泄露:

site:Github.com stp
site:Github.com smtp @qq.coom

Github数据库信息泄露:

site:Github.com sa password
site:Github.com root password
site:Github.com User ID=' sa' ;Password

Github的SVN信息泄露:

site:Github.com svn
site:Github.com svn username

GitHub综合信息泄露:

site:Github.com password
site:Github.com ftp ftppassword
site:Github.com 密码
site:Github.com 内部

六、真实IP地址收集

6.1、CDN介绍

【Content Delivery Network】内容分发网络

不同地域有不同的缓存服务器来接受用户的数据,请求。只有需要交互时才能请求真实的服务器

6.2、判断CDN存在

通过ping判断是否存在CDN

网络安全证书备考--信息收集_子域名_24

设置代理/利用在线ping网站来使用不通过地区的ping服务器来测试目标

【http://ping.chinaz.com】

6.3、绕过CDN

目标没有使用CDN--直接利用PING获得IP地址。【http://www.ip138.com

目标使用CDN--绕过CDN获取真实地址:

①内部邮箱源,收集到内部邮箱服务器IP地址

②网站phpinfo文件,phpinfo.php

③分站IP地址,查询子域名,CDN很贵,很有可能分站就不再使用CDN

④国外访问【https://asm.ca.com/en/ping.php】暂时无法进入进行ping操作

⑤查询域名解析记录【https://viewdns.info/】需要【science 上网】

网络安全证书备考--信息收集_子域名_25

区分哪些是CDN的IP地址,哪些是服务器的IP地址

6.4、验证IP地址

利用IP地址对WEB站点进行访问,如果正常,表名是真实IP地址。

通过国外访问获得的ping地址和域名解析的地址进行比对,确定真实地址