首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >渗透测试之信息收集

渗透测试之信息收集

作者头像
LuckySec
发布2022-11-02 13:36:15
8740
发布2022-11-02 13:36:15
举报
文章被收录于专栏:LuckySec网络安全LuckySec网络安全

0x001 信息搜集阶段

  渗透测试者可以使用的信息收集方法包括公开来源信息查询、Google Hacking、社会工程学、网络踩点、扫描探测、被动监听、服务查点等。而对目标系统的情报探查能力是渗透测试者一项非常重要的技能,信息搜集是否充分在很大程度上决定了渗透测试的成败,因为如果你遗漏关键的情报信息,你将可能在后面的阶段里一无所获。

0x002 域名

1. Whois查询

Whois 是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商、域名注册日期和过期日期等)。通过域名Whois服务器查询,可以查询域名归属者联系方式,以及注册和到期时间。

2. 子域名爆破
2.1 域传送漏洞

方法一: 利用nmap检测域传送漏洞,如果存在漏洞将有大量域名信息显示。

nmap --script dns-zone-transfer --script-args dns-zone-transfer.domain=nwpu.edu.cn -p 53 -Pn dns.nwpu.edu.cn

参数:
–-script:表示加载nmap文件夹下的脚本
–-script-args: 向脚本传递参数
-p:设置扫描端口
-Pn:设置通过Ping发现主机是否存活

方法二: 利用Kail下面的工具Dnsenum检测该漏洞

dnsenum --enum domain.com

方法三: 利用nslookup检测域传送漏洞   

nslookup -type=ns  地址   查询dns服务器

更多详细操作,点击查看域传送漏洞

2.2 工具使用

dnsenum (kali)

dnsenum的目的是尽可能收集一个域的信息,它能够通过谷歌或者字典文件猜测可能存在的域名,以及对一个网段进行反向查询。它可以查询网站的主机地址信息、域名服务器、mx record(函件交换记录),在域名服务器上执行axfr请求,通过谷歌脚本得到扩展域名信息(google hacking),提取自域名并查询,计算C类地址并执行whois查询,执行反向查询,把地址段写入文件。

使用:dnsenum baidu.com -f /usr/share/dnsenum/dns.txt -dnsserver 8.8.8.8
参数:
-f 指定爆破字典
-dnsserver 指定要使用的dns;若不设置,则采用默认的dns

layer 子域名挖掘机

Layer子域名挖掘机是一款域名查询工具,可提供网站子域名查询服务;拥有简洁的界面、简单的操作模式,支持服务接口、暴力搜索、同服挖掘三种模式,支持打开网站、复制域名、复制IP、复制CDN、导出域名、导出IP、导出域名+IP、导出域名+IP+WEB服务器以及导出存活网站!

下载:https://pan.baidu.com/s/1_N8nHLOr_hkRRgjMLb0o2Q
提取码:bsvu

subDomainsBrute

SubDomainsBrute用于测试者的快速子域粗暴工具,本工具用于渗透测试目标域名收集。高并发DNS暴力枚举,发现其他工具无法探测到的域名,如Google,aizhan,fofa。

环境:pip install dnspython gevent  # python2.7
下载:https://www.freebuf.com/sectool/106625.html
使用:python subDomainsBrute.py -t 10 qq.com -o qq.com.txt
参数:
-t 线程数
-o 指定保存的文件名

wydomain

wydomain是猪猪侠开发的一款子域名信息搜集工具,因其枚举速度快,结果准确,成为不少白帽居家旅行的必备神器。

工具主要分为两个模块,dnsburte模块和wydomain模块:

  • dnsburte模块通过用户自定义字典发送dns查询,最后筛选出符合条件的域名。
  • wydomain模块则是通过调用多个第三方网站的公开api获取子域名数据。
下载:git clone https://github.com/ring04h/wydomain.git
使用:python dnsburte.py -d qq.com -t 10 -f wydomain.csv -o qq.com.txt
参数:
-d 指定目标域名
-f 指定的字典,默认是default.csv
-o 指定保存的文件名,若不指定,默认保存在./result/目录下
-t 指定线程数

在线子域名挖掘

3. 绕过CDN,找真实IP
3.1 判断是否CDN

使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一,则很有可能是使用了CDN ,相关查询网站有以下几个:

3.2 查询历史CDN记录

查看IP与域名绑定的历史记录,可能会存在使用CDN之前的记录,相关查询网站有以下几个:

3.3 查询子域名

毕竟CDN也是不便宜的,所以很多站长可能只会对主站或者流量大的子站点做了CDN,而很多小站子站点又跟主站在同一个服务器或者一个C段内,此时就可以通过查询子域名对应的IP来辅助查找网站的真实IP。

3.4 让服务器主动连接我们

目的是让服务器主动连接我们,可利用XSS盲打,命令反弹shell,SSRF等漏洞。或者是通过RSS邮件订阅,很多网站都自带sendmail功能,会发邮件给我们,此时查看邮件原文里的内容就会包含网站的真实IP了。

以QQ邮箱为例

首先打开一封邮箱,点击显示邮件原文

image
image

找到Received对应的内容,包含真实IP地址

image
image
3.5 使用国外主机解析域名

国内很多CDN厂商因为各种原因只做了国内的线路,而针对国外的线路可能几乎没有,此时我们使用国外的主机直接访问就有可能获取到真实IP,也可以使用在线的多地ping网站筛选出国外对该目标的解析地址是否唯一来判断真实IP。

3.6 目标敏感文件泄露

可能目标服务器上存在一些敏感文件的泄露会直接告诉我们真实IP,比如phpinfo之类的探针文件。

3.7 目标全网扫描

这种方法对小网站比较有效果,利用Zmap对目标进行全网扫描,大概一个多小时时间,扫描完成后会出现一些IP,甚至非常多个IP,将这些IP利用本地hosts文件进行一一绑定测试,如果能正常访问目标网站,则为真实IP。

3.8 SSL证书查询
  1. 查询地址:https://censys.io/
  2. search选择:Certificates
  3. 搜索语法:parsed.names:test.com and tags.raw:trusted
  4. 点开目标信息后,点击右边Explore按钮,点击IPv4 Hosts即可
3.9 CDN 工具
3.10 更多绕过CDN方法

0x003 搜索引擎

1. 常用引擎
  • google.com
  • bing.cn
  • sogou.com
  • baidu.com
2. theHarvester

TheHarvester能够收集电子邮件账号、用户名、主机名和子域名等信息。它通过Google、Bing、PGP、LinkedIn、Baidu、Yandex、People123、Jigsaw、Shodan等公开资源整理收集这些信息。这些信息将在后期的渗透测试阶段发挥巨大的作用。

环境:python3 -m pip3 install pipenv uvloop  # python3
下载1:https://github.com/laramies/theHarvester/tree/master
下载2:apt-get install theHarvester
例子:从百度搜索引擎中的前200项搜索结果中挖掘目标域里的电子邮件地址和主机名
使用1:python3 theHarvester.py -d qq.com -l 200 -b baidu
使用2:theharvester -d qq.com -l 200 -b baidu
3. Google Hacker语法

搜索敏感文件

site:xxx.com filetype:doc intext:pass
site:xxx.com filetype:xls intext:pass
site:xxx.com filetype:conf
site:xxx.com filetype:inc

搜索管理后台

site:xxx.com 管理
site:xxx.com admin
site:xxx.com login

搜索mail

site:xxx.com intext:@xxx.com
intext:@xxx.com

搜索敏感web路径

site:xxx.com intitle:mongod inurl:28017
site:xxx.com inurl:sql.php
site:xxx.com inurl:phpinfo()

更多内容,点击查看Google Hacker语法手册

3. 网络组件搜索

0x004 旁站和C段扫描

旁站: 同服务器下的不同网站。当网站A无法渗透时,可以通过旁站注入获取网站B或者其他网站的权限。如果权限足够,直接跨目录写webshell;权限不够的话,尝试webshell提权获取服务器权限,进而渗透网站A。

C段: 同网段下的不同服务器。通过获取同网段下的服务器站点进行渗透,再进行webshell提权获取服务器权限,再进行内网渗透攻击目标服务器

  • 服务器操作系统类型
  • 端口开放和服务识别
  • 目标网络结构

nmap工具使用

nmap -T4 -A -v 服务器IP

在线查询地址:

0x005 弱点端口扫描

1. nmap端口扫描

指定域名查询

nmap -T4 -Pn www.baidu.com

指定IP查询

nmap -T4 -Pn 192.168.0.166

查询局域网的所有主机和IP

nmap -T4 -Pn 192.168.0.0/24

查看主机端口(1024-65535)中开放的端口

nmap -p 1024-65535 192.168.1.7
2. hydra爆破端口
https://www.cnblogs.com/ECJTUACM-873284962/p/7805116.html
3. 常见弱点端口

这里常见的弱点端口已经单独整理了一篇文章,点击链接跳转查看

0x006 网站漏洞扫描

1. 网站CMS指纹识别
2. 服务器类型

操作系统: Windows和Linux

最简单就是通过ping来探测,Windows的TTL值都是一般是128,Linux则是64。所以大于100的肯定是Windows,而几十的肯定是Linux。而且Windows大小写不敏感,Linux大小写敏感。

判断目标网站服务器的具体的版本的话,可以采用 nmap 进行扫描, -O 和 -A 参数都能扫描出来

nmap -O 服务器IP
nmap -A 服务器IP
3. 网站搭建平台

判断网站用的web搭建平台类型:Apache、Nginx、Tomcat、IIS。知道了web服务器是哪种类型后,我们还要探测web服务器具体的版本。比如Ngnix版本< 0.83会有解析漏洞 ,IIS6.0会有文件名解析漏洞、IIS7.0会有畸形解析漏洞等。不同的web服务器版本,存在着不同漏洞。

可以在网页审查元素中,刷新网络的数据包的响应头中获取到这些信息,或者用nmap等其他工具来扫描。

4. 网站脚本类型

网站用的脚本类型:php 、Jsp 、Asp 、Aspx 。

  1. 可以根据网站URL来判断
  2. site:xxx.com filetype:php
  3. 可以根据Firefox的插件(wappalyzer)来判断
5. 数据库类型

网站用的是哪种类型的数据库:MySQL、Oracle、SqlServer、Access 。虽然这几种数据库的语法大体上相同,但是还是有区别的。所以我们还是要知道目标网站用的是哪种数据库,并且数据库是哪个版本的

从数据库的规模来看,Access是小型数据库,,MySQL 是中小型数据库,、SqlServer是中型数据库,Oracle是大型数据库。

Access和SqlServer只支持Windows系统,如果是Linux系统,可以直接排除这两个数据库类型。

常见搭配:

  • ASP 和 ASPX:ACCESS、SQL Server
  • PHP:MySQL、PostgreSQL
  • JSP:Oracle、MySQL
6. 网站敏感目录和文件

扫描网站目录结构,看看是否可以遍历目录,或者敏感文件泄漏

  • robots.txt:指定了网站中不想被robot访问的目录
  • 网站备份文件:网站源码、配置文件、数据库文件
  • 后台目录:弱口令,万能密码,爆破
  • 安装包:获取数据库信息,甚至是网站源码
  • 上传目录:截断、上传图片马等
  • mysql管理接口:弱口令、爆破,万能密码,然后脱裤,甚至是拿到shell
  • 安装页面 :可以二次安装进而绕过
  • phpinfo:会把目标配置的各种信息暴露出来
  • 编辑器:fck、ke、等
  • IIS短文件利用:条件比较苛刻 Windows、Apache等

探测目标网站后台目录可以通过字典扫描、目录爬行、开源程序、搜索引擎、二级域名、端口站点、备份文件等方式查找,相关工具有: IntelliTamper、wwwscan 、御剑 、weakfilescan、 dirbuster、dirb、QWASP、Google Hacking等

7. 网站漏洞扫描

网站漏洞扫描就是直接对网站进行漏洞探测了。例如:任意文件上传、文件包含、文件读取、编辑器漏洞(FCKEditor、ewebeditor、KindEditor…)、XXE、常见CMS识别getshell等等。

网站漏洞扫描也有很多工具。比如AWVS、AppScan、OWASP-ZAP、Nessuss、Netsparker、Safe3等等。但是需要注意的是,使用漏扫工具直接对网站进行扫描,因为一下子流量过大,有些网站可能会崩溃。所以一般最好不要使用漏洞扫描工具对网站进行扫描。并且如果未经授权就用漏扫对网站进行扫描还是违法的!

8. 物理路径探测

对目标写入webShell时需要用到真实物理路径。

8.1 探针文件

很多网站在搭建时会留下包含有网站信息的文件,说明等。常见的探针遗留文件名

Phpinfo.php
info.php
test.php
l.php
php.php
8.2 报错获得

多用于容错做的不是很好的网站。可以访问404页面、动态URL加特殊符号(英文单引号等)、错误的SQL语句等。

8.3 后台获得

如果可以登录到目标后台,一般后台首页会有一些说明,包括CMS版本、支持的组件、更新日期、数据库信息、物理路径、IP地址等。

8.4 IIS 高版本特性

IIS7-IIS8.5 如果配置不当,都有可能会存在这个问题,只有访问404的路径,就会爆出物理路径和IIS版本信息。

8.5 搜索引擎探测
site:xxx.com warning
site:xxx.com error
site:xxx.com mysql
9. Mail服务器

Mail服务器可能会有web漏洞:比如:XSS、SQL、XXE、心脏出血、破壳漏洞等等。mail弱口令爆破,mail钓鱼,mail可能是外网入口,因为传递VPN密码,服务器密码等等。

10. 网站WAF识别

工具简介

WAFW00F识别和指纹Web应用防火墙(WAF)产品。其工作原理是首先通过发送一个正常http请求,然后观察其返回有没有一些特征字符,若没有在通过发送一个恶意的请求触发waf拦截来获取其返回的特征来判断所使用的waf。

安装:python3环境

python setup.py install

使用:切换到 wafw00f 目录下,然后执行命令

E:\wafw00f-master\wafw00f>python main.py http://www.yanjian.com.cn

                ______
               /      \
              (  W00f! )
               \  ____/
               ,,    __            404 Hack Not Found
           |`-.__   / /                      __     __
           /"  _/  /_/                       \ \   / /
          *===*    /                          \ \_/ /  405 Not Allowed
         /     )__//                           \   /
    /|  /     /---`                        403 Forbidden
    \\/`   \ |                                 / _ \
    `\    /_\\_              502 Bad Gateway  / / \ \  500 Internal Error
      `_____``-`                             /_/   \_\

                        ~ WAFW00F : v2.1.0 ~
        The Web Application Firewall Fingerprinting Toolkit

[*] Checking http://www.yanjian.com.cn
[+] The site http://www.yanjian.com.cn is behind Safedog (SafeDog) WAF.
[~] Number of requests: 2

0x007 Github搜索语法

在渗透测试的信息收集阶段,可以去Github和码云上搜索与目标有关的信息,或者就有意想不到的收获。(有些开发人员将代码上传到代码库的时候,有可能连一些重要的配置信息也上传了)

原文链接:https://blog.csdn.net/qq_36119192/article/details/99690742

GitHub的搜索语法:

in:name test               #仓库标题搜索含有关键字 SpringCloud
in:descripton test         #仓库描述搜索含有关键字
in:readme test             #Readme文件搜素含有关键字
stars:>3000 test           #stars数量大于3000的搜索关键字
stars:1000..3000 test      #stars数量大于1000小于3000的搜索关键字
forks:>1000 test           #forks数量大于1000的搜索关键字
forks:1000..3000 test      #forks数量大于1000小于3000的搜索关键字
size:>=5000 test           #指定仓库大于5000k(5M)的搜索关键字
pushed:>2019-02-12 test    #发布时间大于2019-02-12的搜索关键字
created:>2019-02-12 test   #创建时间大于2019-02-12的搜索关键字
user:test                  #用户名搜素
license:apache-2.0 test    #明确仓库的 LICENSE 搜索关键字
language:java test         #在java语言的代码中搜索关键字
user:test in:name test     #组合搜索,用户名test的标题含有test的

邮件配置信息收集

很多网站及系统都会使用 pop3 和 smtp 发送来邮件,不少开发者由于安全意识不足会把相关的配置信息也放到Github上,所以如果这时候我们动用一下google搜索命令语句,构造一下关键字,就能把这些信息给找出来了。

site:Github.com smtp
site:Github.com smtp @qq.com
site:Github.com smtp @126.com
site:Github.com smtp @163.com
site:Github.com smtp @sina.com.cn
site:Github.com smtp password
site:Github.com String password smtp
……
 
我们也可以锁定域名搜索结合厂商域名 灵活运用例如搜百度的
 
site:Github.com smtp @baidu.com

数据库信息收集

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

SVN 信息收集

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

综合信息收集

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

参考文章

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-01-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0x001 信息搜集阶段
  • 0x002 域名
    • 1. Whois查询
      • 2. 子域名爆破
        • 2.1 域传送漏洞
        • 2.2 工具使用
      • 3. 绕过CDN,找真实IP
        • 3.1 判断是否CDN
        • 3.2 查询历史CDN记录
        • 3.3 查询子域名
        • 3.4 让服务器主动连接我们
        • 3.5 使用国外主机解析域名
        • 3.6 目标敏感文件泄露
        • 3.7 目标全网扫描
        • 3.8 SSL证书查询
        • 3.9 CDN 工具
        • 3.10 更多绕过CDN方法
    • 0x003 搜索引擎
      • 1. 常用引擎
        • 2. theHarvester
          • 3. Google Hacker语法
            • 3. 网络组件搜索
            • 0x004 旁站和C段扫描
            • 0x005 弱点端口扫描
              • 1. nmap端口扫描
                • 2. hydra爆破端口
                  • 3. 常见弱点端口
                  • 0x006 网站漏洞扫描
                    • 1. 网站CMS指纹识别
                      • 2. 服务器类型
                        • 3. 网站搭建平台
                          • 4. 网站脚本类型
                            • 5. 数据库类型
                              • 6. 网站敏感目录和文件
                                • 7. 网站漏洞扫描
                                  • 8. 物理路径探测
                                    • 8.1 探针文件
                                    • 8.2 报错获得
                                    • 8.3 后台获得
                                    • 8.4 IIS 高版本特性
                                    • 8.5 搜索引擎探测
                                  • 9. Mail服务器
                                    • 10. 网站WAF识别
                                    • 0x007 Github搜索语法
                                    • 参考文章
                                    领券
                                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档