0
点赞
收藏
分享

微信扫一扫

渗透测试_信息收集

Python百事通 2022-03-15 阅读 83

文章目录

一、明确目标

三个原则:政府,学习,公益组织 在未得授权情况下不得渗透攻击

有三点需要确定:

​ 1、确定测试需求(是针对业务逻辑,还是针对人员权限漏洞)

​ 2、确定测试范围(是整站测试还是局部测试)

​ 3、确定测试程度(渗透到什么程度,是确定漏洞为止,还是继续利用漏洞进一步测试)

二、信息收集

信息收集是整个渗透测试中最重要的一步,信息收集越丰富,内容或情报收集的越多,成功的攻击率就越高。

收集内容:

Ⅰ. 域名信息收集

当我们确定了要渗透的目标,也就是知道了其域名,接下来我们需要收集域名对应的 ip,域名的whois信息、子域名等等一系列与域名相关的信息。

a、判断域名对应IP:

1、判断该域名是否存在CDN的情况
	去在线CDN查询网站:超级ping网址:http://ping.chinaz.com/https://ping.aizhan.com/。如果查询出的ip数量大于一个的话,则说明该ip地址不是真实的服务器地址。以我的经验来看,如果是2个或者3个,并且这几个地址是同一地区的不同运营商的话,则很有可能这几个地址是服务器的出口地址,该服务器在内网中,通过不同运营商NAT映射供互联网访问,同时采用几个不同的运营商可以负载均衡和热备份。如果是多个ip地址,并且这些ip地址分布在不同地区的话,则基本上可以断定就是采用了CDN了。

ping测试网站有:

全球Ping测试,在线ping工具 - 网络工具
多个地点Ping服务器,网站测速 - 站长工具
网站测速工具_超级ping _多地点ping检测 - 爱站网

利用多节点技术进行请求返回判断

  1. 超级ping网址:http://ping.chinaz.com/https://ping.aizhan.com/

      • 无CDN情况:
        通过检测,发现返回的IP都一样,所以这是没有CDN
        img
        • 有CDN情况:
          通过检测,发现有多个IP返回,说明存在CDN
        • img
  2. Windows命令查询:nslookup,若目标存在多个IP的话,就很有可能有CDN服务
    img

2、绕过CDN查找网站真实的ip地址

查询域名相关的网站:

DNS查询:https://dnsdb.io/zh-cn/ 
微步在线:https://x.threatbook.cn/
在线域名信息查询:http://toolbar.netcraft.com/site_report?url=
DNS、IP等查询:ViewDNS.info - Your one source for DNS related tools!
CDN查询IP:https://tools.ipip.net/cdn.php
SecurityTrails平台:Historical A records for www.baidu.com - SecurityTrails
名词解释:
旁站:指的是同一服务器上的其他网站
C段:C段指的是同一内网段内的其他服务器
查询工具:旁站和C段在线查询地址:http://www.webscan.cc/ 、 http://www.5kik.com/
(1)查询子域名:

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

(2)查询主域名:

以前用CDN的时候有个习惯,只让WWW域名使用cdn,秃域名不适用,为的是在维护网站时更方便,不用等cdn缓存。所以试着把目标网站的www去掉,ping一下看ip是不是变了,您别说,这个方法还真是屡用不爽。

(3)邮件服务器:

一般的邮件系统都在内部,没有经过CDN的解析,通过目标网站用户注册或者RSS订阅功能,查看邮件,寻找邮件头中的邮件服务器域名IP,ping这个邮件服务器的域名,就可以获得目标的真实IP(必须是目标自己的邮件服务器,第三方或者公共邮件服务器是没有用的)。

(4)查看域名历史解析记录:

也许目标很久之前没有使用CDN,所以可能会存在使用 CDN 前的记录。所以可以通过网站Netcraft | Internet Research, Cybercrime Disruption and PCI Security Services](https://www.netcraft.com/)来观察域名的IP历史记录。

(5)国外访问:

国内的CDN往往只对国内用户的访问加速,而国外的CDN就不一定了。因此,通过国外在线代理网站CA App Synthetic Monitor 访问 ,可能会得到真实的ip地址。

(6)Nslookup查询:

查询域名的NS记录、MX记录、TXT记录等很有可能指向的是真实ip或同C段服务器。

(7)网站漏洞:

利用网站自身存在的漏洞,很多情况下会泄露服务器的真实IP地址

(8)Censys查询SSL证书找到真实IP:

利用“Censys网络空间搜索引擎”搜索网站的SSL证书及HASH,在https://crt.sh上查找目标网站SSL证书的HASH,然后再用Censys搜索该HASH即可得到真实IP地址。

443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:***trade.com

b、域名的whois信息

whois是用来查询域名注册所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。通过whois来实现对域名信息的查询。早期的whois查询多以命令行接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。网页接口的查询工具仍然依赖whois协议向服务器发送查询请求,命令行接口的工具仍然被系统管理员广泛使用。whois通常使用TCP协议43端口。每个域名/IP的whois信息由对应的管理机构保存。

查询内容:

查询域名是否已经被注册
注册域名的详细信息的数据库(如域名所有人、域名注册商)

作用:

可以根据查询出来的邮箱、注册人、公司、电话等进行反查。

whois查询网址:

http://whois.chinaz.com/

c、子域名、DNS记录查询

相关文章:(9条消息) 子域名查询、DNS记录查询_谢公子的博客-CSDN博客_子域名查询

查询子域名有四种方法:

1、通过爆破子域名进行查询,如 Layer子域名爆破机、subDomainBrute,在线子域名查询网站:https://phpinfo.me/domain/
2、通过查询DNS服务器,查询该域下的解析记录

3、通过HTTPS证书来查询(只适用于https网站) ,如:https://crt.sh/ 就是通过https证书查询子域名

证书透明度(Certificate Transparency)是证书授权机构的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中。一个SSL/TLS证书通常包含域名、子域名和邮件地址。查找某个域名所属证书的最简单的方法就是使用搜索引擎搜索一些公开的CT日志。在线网站:crt.sh | Certificate Search 

可以使用python脚本ct-exposer完成

python3 ct-exposer.py -d baidu.com

4、通过google查询

指定站点,然后-就是不包含这个,来查询

site:baidu.com -www

Ⅱ. 公司敏感信息网上搜集

当确定了公司后,我们可以去互联网上查询与该公司有关的任何信息。比如,公司的邮箱格式,公司的员工姓名,以及与该公司有关的任何信息。并且,我们还可以去Github、码云等代码托管平台上查找与此有关的敏感信息,有些粗心的程序员在将代码上传至代码托管平台后,并没有对代码进行脱敏处理。导致上传的代码中有包含如数据库连接信息、邮箱密码、还有可能有泄露的源代码等。

传送门——> (9条消息) 信息收集之Github搜索语法_谢公子的博客-CSDN博客_github搜索语法

Ⅲ. 网站指纹识别

在渗透测试中,对目标服务器进行指纹识别是相当有必要的,因为只有识别出相应的Web容器或者CMS,才能查找与其相关的漏洞,然后才能进行相应的渗透操作。CMS又称整站系统。常见的CMS有:WordPress、Dedecms、Discuz、PhpWeb、PhpWind、Dvbbs、PhpCMS、ECShop、、SiteWeaver、AspCMS、帝国、Z-Blog等。

常见的网站指纹识别工具有:whatweb等。

在线指纹识别网站:

  • BugScaner:在线指纹识别,在线cms识别小插件–在线工具
  • 云悉指纹:yunsee.cn-2.0
  • WhatWeb:WhatWeb - Next generation web scanner.

Ⅳ. 整站分析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-4YwZEmWZ-1647283430416)(https://s2.loli.net/2022/03/15/GYIaOsbnjRZiyVH.png)]

a.服务器类型(Linux/Windows)

服务器信息包括服务器用的操作系统:Linux 还是 Windows 。现在企业网站服务器的操作系统有百分之九十以上用的是Linux操作系统。知道了服务器的操作系统之后,还需要知道操作系统使用的具体版本。因为很多低版本的操作系统都存在已知的漏洞

判断是Linux还是Windows最简单就是通过ping来探测,Windows的TTL值都是一般是128,Linux则是64。所以大于100的肯定是Windows,而几十的肯定是Linux。但是,通过TTL值来判断服务器类型也不是百分之百准确的,有些windows服务器的TTL值也是几十,而且有的服务器禁止ping。

判断目标网站服务器具体版本:

可以采用 nmap 进行扫描, -O 和 -A 参数都能扫描出来

b.网站容器(Apache/Nginx/Tomcat/IIS)

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

c.脚本类型(php/jsp/asp/aspx)

我们需要知道网站用的脚本类型:php 、Jsp 、Asp 、Aspx 。

1:可以根据网站URL来判断

2:site:xxx filetype:php

3:可以根据Firefox的插件(Wappalyzer)来判断

4:根据cookie值

截取网站的数据包如下,根据传递的cookie值,比如 PHP 使用的会话ID是 PHPSESSID,JSP 使用的会话 ID 是 JSESSION。所以下面网站使用的脚本语言为JSP。若该网站存在任意文件上传漏洞则可以上传jsp文件的后门程序。

img

5:响应包的server值

有时候网站的响应包会携带server信息,如下,这种情况多存在内网中。公网很少会携带这个server信息。所以我们可知道脚本语言为php

img

相关文章:php、jsp、asp和aspx的区别

d.数据库类型(Mysql/Oracle/Accees/Mqlserver)

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

几种数据库的区别:

Access 全名是Microsoft Office Access,是由微软发布的关联式数据库管理系统。小型数据库,当数据库达到100M左右的时候性能就会下降。数据库后缀名: .mdb 一般是asp的网页文件用access数据库
SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),是一个比较大型的数据库。端口号为1433数据库后缀名 .mdf
MySQL 是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统,在 WEB 应用方面MySQL是最好的应用软件之一,MySQL数据库大部分是php的页面。默认端口是3306
Oracle又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。常用于比较大的网站。默认端口是1521
首先,成本上的差距,access是不要钱的,mysql也是开源的,sql server 是收费的一般也就几千,Oracle的费用则数万。其次,处理能力,access支持千以内的访问量,sql server支持几千到上万的访问,而Oracle则支持海量的访 问。再次,从数据库的规模来看,access是小型数据库,,mysql 是中小型数据库,sql server是中型数据库,Oracle是大型数据库。

常见搭配:

ASP 和 ASPX:ACCESS、SQL Server
PHP:MySQL、PostgreSQL
JSP:Oracle、MySQL

Ⅴ. 主机扫描(Nessus)

对目标主机进行扫描,而不仅仅是对网站进行扫描,扫描目标主机开放了哪些端口扫描端口运行的服务目标主机上有哪些漏洞。

主机扫描的工具也有很多,比如:Nessus

传送门: Nessus扫描器的使用

Ⅵ. 端口扫描(nmap)

需要知道目标服务器开放了哪些端口,**常见的如 135 、137 、138 、139 、445,**这几个端口经常爆发漏洞。以下是一些服务端口的漏洞:

22——>ssh弱口令
873——>rsync 未授权访问漏洞
3306——>mysql弱口令
6379——>redis未授权访问漏洞

端口扫描工具有nmap和masscan。nmap扫描的准确性较高,但是扫描的比较慢。masscan扫描的比较快,但是准确性较低。

传送门:(9条消息) 常见危险端口服务及对应的漏洞_谢公子的博客-CSDN博客_常见高危端口

Ⅶ. 网站敏感目录和文件

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

后台目录:弱口令,万能密码,爆破
安装包:获取数据库信息,甚至是网站源码
上传目录:截断、上传图片马等
mysql管理接口:弱口令、爆破,万能密码,然后脱裤,甚至是拿到shell
安装页面 :可以二次安装进而绕过
phpinfo:会把你配置的各种信息暴露出来
编辑器:fck、ke、等
iis短文件利用:条件比较苛刻 windows、apache等
提到了网站敏感目录我们就不得不提 robots.txt 文件了

robots.txt 文件是专门针对搜索引擎机器人robot 编写的一个纯文本文件。我们可以在这个文件中指定网站中不想被robot访问的目录。这样,我们网站的部分或全部内容就可以不被搜索引擎收录了,或者让搜索引擎只收录指定的内容。因此我们可
以利用robots.txt让Google的机器人访问不了我们网站上的重要文件,GoogleHack的威胁也就不存在了。
假如编写的robots.txt文件内容如下:

User-agent: *
Disallow: /data/
Disallow: /db/
Disallow: /admin/
Disallow: /manager/
Allow:/images/

其中“Disallow”参数后面的是禁止robot收录部分的路径,例如我们要让robot禁止收录网站目录下的“data”文件夹,只需要在Disallow参数后面加上 /data/ 即可。如果想增加其他目录,只需按此格式继续添加。文件编写完成后将其上传到网站的根目录,就可以让网站远离Google Hack了。

虽然robots文件目的是让搜索蜘蛛不爬取想要保护的页面,但是如果我们知道了robots文件的内容的话,我们就可以知道目标网站哪些文件夹不让访问,从侧面说明这些文件夹是很重要的了

探测目标网站后台目录的工具有: wwwscan 、御剑 、 dirbuster、cansina 等

传送门——>(9条消息) 网站目录扫描工具_谢公子的博客-CSDN博客_扫描网站目录

Ⅷ. 旁站和C段扫描

旁站指的是同一服务器上的其他网站,很多时候,有些网站可能不是那么容易入侵。那么,可以查看该网站所在的服务器上是否还有其他网站。如果有其他网站的话,可以先拿下其他网站的webshell,然后再提权拿到服务器的权限,最后就自然可以拿下该网站了!

对于红蓝对抗和护网,C段扫描比较有意义。对于单独网站的渗透测试,C段扫描意义不大。C段指的是同一内网段内的其他服务器,每个IP有ABCD四个段,举个例子,192.168.0.1,A段就是192,B段是168,C段是0,D段是1,而C段嗅探的意思就是拿下它同一C段中的其中一台服务器,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务器。

旁站和C段在线查询地址:

http://www.webscan.cc/
https://phpinfo.me/bing.php

Ⅸ. 网站漏洞扫描

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

附:小迪安全信息收集思维导图

img

举报

相关推荐

0 条评论