信息收集全流程

        一开始本打算按不同类别写明手动和自动化工具的信息收集方式,但实际情况是各个工具、在线网站都集合多种功能,所以部分工具/网站多次出现,导致文章有些冗余(主要是犯懒,也就这么写下去了)

一、域名信息收集

在渗透测试或攻防演练中,拿到一个主站域名后,直接从主站入手进行攻击相对较难,毕竟大多数的企业官网都是较成熟的框架,每天都会接受成千上万次的洗礼,主域的防护也相对完善,我们可以对域名信息收集将资产放大化,扩大攻击面后寻找脆弱点做入口会提高效率。

1.whois查询

Whois查询可以获取站点的注册信息,如注册人、注册邮箱、联系方式、域名注册商等信息。

站长工具:http://whois.chinaz.com/

以天融信为例

根据邮箱反查

其他whois信息查询网站

爱站whois:站长工具_whois查询工具_爱站网(可以查到完整邮箱)

ip138:ip查询 查ip 网站ip查询 同ip网站查询 iP反查域名 iP查域名 同ip域名

Domaintools :Whois Lookup, Domain Availability & IP Search - DomainTools

2.备案查询

 爱站网ICP备案查询:icp备案查询_网站备案查询_域名备案查询_APP备案查询_小程序备案查询_快应用备案查询_爱站网

其他备案查询网站

ICP备案查询网:ICP备案查询网 - 网站备案查询 - 工信部域名备案查询实时数据

天眼查:天眼查-商业查询平台_企业信息查询_公司查询_工商查询_企业信用信息系统

爱企查:百度安全验证

工信部备案查询:

站长工具:网站备案查询 - 站长工具 (数据有点老)

3.IP反查域名

(1)在线网站

https://site.ip138.com/

https://stool.chinaz.com/same

(2)工具

https://github.com/Sma11New/ip2domain

二、子域名挖掘

若目标系统较难突破,我们可以对其子域名下手,比如目标系统为http://a.com,那么http://bbs.a.com、http://mail.a.com这类的域名就是子域名。

1.子域名收集工具

子域名收集工具众多,以下介绍了几款常用的开源和在线工具,子域名收集的原理有些不同,收集的结果也是不尽相同,可以根据现实情况选择合适的工具,尽可能的全面收集。

(1)Layer子域名挖掘机

https://pan.baidu.com/s/1L2nheZUZhrx7NZSgLa97Uw 提取码:so87

(2)OneForAll

https://github.com/shmilylty/OneForAll

(3)subDomainsBrute

特点:可以用小字典递归的发现三级域名、四级域名、甚至五级域名等不容易被探测到的域名

https://github.com/lijiejie/subDomainsBrute

(4)subfinder

https://github.com/projectdiscovery/subfinder

(6)在线工具

https://ruo.me/

http://z.zcjun.com/

https://chaziyu.com/

https://site.ip138.com/

https://tool.chinaz.com/subdomain?domain=

yunsee.cn-2.0

https://dns.aizhan.com/

https://dnsdumpster.com/

2.证书透明度公开日志枚举

证书透明度(Certificate Transparency, CT)是证书授权机构(CA) 的一个项目,证书授权机构会将每个SSL/TLS证书发布到公共日志中,一个SSL/TLS证书通常包含域名、子域名和邮件地址,这些也经常成为攻击者非常希望获得的有用信息。那么,通过这样的证书透明度项目,我们就可以在其中获取一些有价值的域名。

还是以天融信为例

https://crt.sh/

其他证书查询网站

google: https://google.com/transparencyreport/https/ct/

censys :https://censys.io/certificates

entrust :https://www.entrust.com/ct-search/

facebook:https://developers.facebook.com/tools/ct

certspotter:https://sslmate.com/certspotter/api/

3.DNS数据收集

第三方DNS服务运行DNS复制功能,通过存储用户访问URL时执行的DNS解析来构建数据库

常用的第三方DNS服务如下:

https://decoder.link/

https://searchdns.netcraft.com/

https://dnsdumpster.com/

https://pentest-tools.com/information-gathering/find-subdomains-of-domain

https://www.pkey.in/tools-i/search-subdomains

https://hackertarget.com/find-dns-host-records/

https://dnsdumpster.com/

https://hackertarget.com/find-dns-host-records/

https://searchdns.netcraft.com/

https://www.robtex.com/dns-lookup/

https://who.is/dns/

4.威胁情报查询

Virustotal :https://www.virustotal.com/gui/home/search

threatminer:https://www.threatminer.org/

微步在线:https://x.threatbook.com/

奇安信威胁情报中心:https://ti.qianxin.com/

启明星辰威胁情报中心:https://www.venuseye.com.cn/

5.搜索引擎

(1)Google

https://www.google.com/

inurl: 用于搜索网页上包含的URL.

intext: 只搜索网页部分中包含的文字(也就是忽略了标题,URL等的文字).

site: 可以限制你搜索范围的域名.

filetype: 搜索文件的后缀或者扩展名

intitle: 限制你搜索的网页标题.

allintitle: 搜索所有关键字构成标题的网页. 但是推荐不要使用

link: 可以得到一个所有包含了某个指定URL的页面列表

例:

site:xx.com filetype:txt

site:xx.com intext:管理

site:xx.com inurl:login

site:xx.com intitle:后台

(2)百度

https://www.baidu.com/s

intitle=公司名称;site:xxx.com

(3)360测绘空间

https://quake.360.net/quake/#/index

domain:"xxx.cn"

(4)FOFA

https://fofa.info/

title="公司名称" ; domain="xxx.cn"

(5)shodan

https://www.shodan.io/

hostname:"xxx.com"

(6)钟馗之眼

https://www.zoomeye.org/

site=域名即可 ; hostname:xxx.com

6.站点配置文件

通过扫描站点的一些配置文件来看是否存在其它域名信息。此类文件包括跨域策略文件crossdomain.xml, sitemap文件

(1)crossdomain.xml

直接访问crossdomain.xml路径

(2)sitemap文件

直接访问sitemap.xml、sitemap.txt、sitemap.html、sitemapindex.xml、sitemapindex.xml路径

7.网页中收集子域名

网站的网页,js等可能存在一些信息,可以通过这些去收集域名

jsfinder:https://gitee.com/kn1fes/JSFinder

Packer-Fuzzer: https://github.com/rtcatc/Packer-Fuzzer

SecretFinder:https://gitee.com/mucn/SecretFinder

8.host碰撞

当收集到的域名和IP有很多都报404或者403,我们可以尝试使用host碰撞,有可能会发现一些上面没有发现的东西。一般来说,通过ip直接访问目标,要比通过域名来访问目标网站,得到的信息会更多。但如果域名绑定过多个ip的话,管理员出现配置上的失误,是会导致一些敏感信息泄露的。那么这种情况就可以通过域名+ip捆绑的形式进行碰撞,收集目标公司资产的域名以及解析过的所有ip,将他们一对多的形式进行碰撞,能发现一些很有意思的东西出现

https://github.com/fofapro/Hosts_scan

https://github.com/cckuailong/hostscan

三、获取真实IP

首先我们要先了解一下CDN,CDN的全称是Content Delivery Network,即内容分发网络。使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。用户先经由CDN节点,然后再访问Web服务器。CDN的主要功能是提高用户访问速率,优化用户使用体验;隐藏真实服务IP;提供WAF功能。因此在对使用CDN的网站进行渗透测试时,找到其真实IP是必须的

1.验证是否使用CDN

(1)多地ping/国外ping

配置cdn需要向cdn厂商购买,如果这个厂商的cdn节点是只针对国内的,也就是国内用户访问时直接用离你最近的一个节点来解析,此时就是不由目标的真实ip来解析。而此时如果你购买 cdn的厂商没有国外的业务,当你作为一个国外客户端来访问时,就没有离你最近的节点,也就无法用节点来解析,此时 国外客户端访问的网页就是由真实ip提供的,也就是国外客户端ping目标时,就会拿到真实ip,多地ping同理,就是范围缩小了一点而已。

从多个地点ping目标域名,若返回的是不同的IP,则服务器确定使用了cdn,返回的IP也不是服务器的真实IP

在线多地ping站点

https://ping.chinaz.com/

https://tools.ipip.net/ping.php

(2)nslookup

进入cmd,直接输入nslookup www.xxx.com

原理同多地ping,若返回域名解析对应多个 IP 地址多半是使用了 CDN

如下示例

①有 CDN 的示例:

www.163.com

服务器: public1.114dns.com

Address: 114.114.114.114

非权威应答:

名称: 163.xdwscache.ourglb0.com

Addresses: 58.223.164.86

125.75.32.252

Aliases: www.163.com

www.163.com.lxdns.com

②无 CDN 的示例:

xiaix.me

服务器: public1.114dns.com

Address: 114.114.114.114

非权威应答:

名称: xiaix.me

Address: 192.3.168.172

(3)IP反查

IP反查时,如果此网站有非常多个不同域名,那么多半不是真实IP

(4)Nginx反向代理

如果一个ASP或者ASP.NET网站返回的头字段的Server不是IIS、而是Nginx,那么多半是用了Nginx反向代理,不是真实IP

(5)IP定位

如果IP定位是在常见CDN服务商的服务器上,那么是真实IP的可能性就微乎其微

CDN Finder工具,查找网页上使用的所有CDN的名称,找出主机名或单个URL的CDN

Cdnplanet:CDN Finder - CDN Planet

(6)工具检测

 全家桶:https://github.com/k8gege/K8tools

2.绕过CDN获取真实IP

(1)DNS历史解析记录

一个网站,它的用户量肯定是由少到多的一个增长,而cdn主要是管理员为了加快网站的访问速度而部署的,所以 网站搭建之初 大概率 是没有cdn的,所以如果能查到这个网站 最早的DNS解析记录,那个解析的结果就有可能是该域名对应的真实ip

如上图,最早的解析解析是2017年的,所以59.57.252.60就有可能是目标的真实IP,但此方法不是一定的,受到查询网站和目标的各种因素影响

DNS解析记录在线网站

https://ipchaxun.com/

https://viewdns.info/iphistory/?domain=

https://site.ip138.com/

https://x.threatbook.cn/

https://sitereport.netcraft.com/?url=github.com

https://www.17ce.com/

(2)边缘业务的子域名

因为cdn收费,所以微信⼩程序,app客户端,旁站,子域名,c段这些边缘业务程序和服务基本都没有配置cdn,而他们一般和主站用的也是同一个服务器或者同一内网环境,拿到边缘业务的真实ip,一样能进一步拿到目标的真实ip

(3)证书

cdn基于证书的绕过,在域名的证书上很有可能存在目标的真实ip信息,因为如果目标站点有https证书,并且默认虚拟主机配了https证书,我们就可以找所有目标站点是该https证书的站点

查询证书的在线站点

https://crt.sh/

https://search.censys.io/

(4)邮箱服务器

cdn是不⽀持邮箱的,如果能找到他的邮箱系统,那么一般是可以拿到它的真实ip的

例如:

北京市人民政府网: www.beijing.gov.cn

北京市公务员电子邮箱系统:https://mail.beijing.gov.cn

其根域是一样的,用DNS历史解析记录查询主站,发现有很多结果,说明使用了CDN;而解析第二个邮箱系统,则发现只有一个结果,也就是该域名的真实IP

注:很多稍微大一点的站都会配有邮箱服务,只要找到了邮箱服务就相当于绕过了CDN

(5)网络空间安全引擎搜索

通过关键字或网站域名,就可以找出被收录的IP,很多时候获取到的就是网站的真实IP

钟馗之眼:https://www.zoomeye.org

Shodan:https://www.shodan.io

Fofa:https://fofa.so

(6)网站邮件头信息

邮箱注册,邮箱找回密码、RSS邮件订阅等功能场景,通过网站给自己发送邮件,从而让目标主动暴露他们的真实的IP,查看邮件头信息,获取到网站的真实IP

如,邮件原文中获取真实IP

(7)配置不当导致绕过

在配置CDN的时候,需要指定域名、端口等信息,有时配置不当就容易导致CDN防护被绕过

案例1:为了方便用户访问,我们常常将www.test.com 和 test.com 解析到同一个站点,而CDN只配置了www.test.com,通过访问test.com,就可以绕过 CDN 了

案例2:站点同时支持http和https访问,CDN只配置 https协议,那么这时访问http就可以轻易绕过

(8)网站漏洞查找

通过网站的信息泄露如phpinfo泄露,github信息泄露,命令执行等漏洞获取真实IP

(9)CDN绕过工具

https://github.com/Pluto-123/Bypass_cdn

https://github.com/al0ne/Vxscan?tab=readme-ov-file

四、端口探测

子域名可以发现一些薄弱资产和边缘业务,同样,端口扫描也可能会发现一些开放的不常见端口,比如不常见的端口暴露其边缘系统的管理页面。

以下是一些高危端口和对应的服务,并且介绍了渗透测试时可以尝试的攻击手段,如下:

端口

服务

攻击手段

tcp 20、21

ftp(文件传输协议

允许匿名的上传下载、爆破、嗅探、win提权、远程执行(proftpd 1.3.5)、各类后门(proftpd,vsftp 2.3.4)

tcp 22

ssh(安全外壳协议)

弱口令爆破、v1版本可以中间人、ssh隧道及内网代理转发、文件传输等

tcp 23

telnet(远程终端协议)

爆破、嗅探、一般用于路由、交换登录,可尝试弱口令

tcp 25

smtp(简单邮件传输协议)

邮件伪造、vrfy/expn查询邮件用户信息、可使用smtp-user-enum工具自动跑

tcp/udp 53

dns(域名系统)

允许区域传送、dns劫持、缓存投毒、欺骗以及各种基于dns隧道的远控

udp 67、68

dhcp(动态主机配置协议)

劫持、欺骗

tcp/udp 69

tftp(简单文件传输协议)

尝试下载目标及其各类重要配置文件

tcp 80-89、443、8440-8450、8080-8089

各种经常使用的web服务端口

可以尝试经典的token、vpn、owa、webmail、目标oa、各类java控制台、各类服务器web管理面板、各类web中间件漏洞利用、各类web框架漏洞利用等等

tcp 110

pop3(邮局协议版本3)

可尝试爆破、嗅探

tcp 111、2049

NFS(网络文件系统)

权限配置不当

tcp 137、139、445

smb(netbios协议)

可尝试爆破以及smb自身的各种远程执行类漏洞利用,如:ms08-067、ms17-010、嗅探等

tcp 143

imap(邮件访问协议)

可尝试爆破

udp 161

snmp(简单网络管理协议)

爆破默认团队字符串,搜集目标内网信息

tcp 389

ldap(轻量目标访问协议)

ldap注入、允许匿名访问、弱口令

tcp 512、513、514

linux rexec(远程登录)

可爆破、rlogin登录

tcp 873

rsync(数据镜像备份工具)

匿名访问、文件上传

tcp 1080

socket(防火墙安全会话转换协议)

爆破

tcp 1194

openvpn(虚拟专用通道)

想版本钓vpn账号进内网

tcp 1352

lotus(lotus软件)

弱口令、信息泄露、爆破

tcp 1433

sql server(数据库管理系统)

注入、提权、sa弱口令、爆破

tcp 1521

oracle(甲骨文数据库)

tns爆破、注入、反弹shell

tcp 1500

ISPmanager(主机控制面板)

弱口令

tcp 1723

pptp(点对点隧道协议)

爆破、想办法钓vpn账号进内网

tcp 2049

nfs(网络文件系统协议)

配置不当

tcp 2082、2083

cPanel(虚拟机控制系统)

弱口令

tcp 2181

ZooKeeper(分布式系统的可靠协调系统)

未授权访问

tcp 2601、2604

Zebra(zebra路由器)

默认密码zerbra

tcp 3128

Squid(代理缓存服务器)

弱口令

tcp 3312、3311

kangle(web服务器)

弱口令

tcp 3306

MySQL(数据库)

注入、提权、爆破

tcp 3389

Windows rdp(桌面协议)

shift后门(需要03以下系统)、爆破、ms12-020

tcp 3690

SVN(开放源代码的版本控制系统)

svn泄露、未授权访问

tcp 4848

GlassFish(应用服务器)

弱口令、认证绕过、爆破

tcp 5000

sybase(数据库)、DB2(数据库)

爆破、注入

tcp 5432

PostgreSQL(数据库)

爆破、注入、弱口令、缓冲区溢出

tcp 5632

pcanywhere(远程控制软件)

代码执行

tcp 5900、5901、5902

VNC(虚拟网络控制台、远控)

弱口令爆破

tcp 5984

CouchDB(数据库)

未授权导致的任意指令执行

tcp 6379

Redis(数据库)

可尝试未授权访问、弱口令

tcp 7001、7002

Weblogic(web应用系统)

java反序列化、弱口令

tcp 7778

Kloxo(虚拟主机管理系统)

主机面板登录

tcp 8000

Ajenti(linux服务器管理面板)

弱口令

tcp 8083、8086

influxDB(数据库)

未授权访问

tcp 8443

plesk(虚拟主机管理面板)

弱口令

tcp 8069

zabbix(系统网络监视)

远程执行、sql注入

tcp 8080-8089

jenkins、jboss、tomcat(应用服务器)

反序列化、控制台弱口令

tcp 8161

activemq(web应用系统)

弱口令、文件写入

tcp 9000

fastcgi(快速通用网关接口)

tcp 9080-9081、9090

websphere(应用服务器)

java反序列化、弱口令

tcp 9200、9300

ElasticSearch(lucene的搜索服务器)

远程执行

tcp 11211

Memcached(缓存系统)

未授权访问

tcp 27017、27018

MongoDB(数据库)

爆破、未授权访问

tcp 50070、50030

Hadoop(分布式文件系统)

默认端口未授权访问

注:以上各种端口对应的攻击手段有相当一部分(几乎全部)是查询其他资料得来,其实际可操作性未经验证,仅做理论知识,后续有机会应该会进行验证

1.Nmap/Zenmap

Zenmap是Nmap的图形用户界面(GUI)版本

https://nmap.org

中文网站:http://www.nmap.com.cn

Nmap/Zenmap的扫描速度较慢,但是可以扫描操作系统、端口的服务和版本等详细的信息,同时Zenmap也提供了一些高级功能,如扫描配置文件管理、扫描配置文件导入和导出、扫描结果导出等。它还提供了一些可视化工具,如拓扑图和端口状态图,以帮助用户更好地理解扫描结果。

2.Masscan

https://github.com/robertdavidgraham/masscan

Masscan不建立完整的TCP连接,收到SYN/ACK之后,发送RST结束连接(选项--banners除外)。因此,Masscan扫描速度快,但只能扫描端口。

3.Kscan

https://github.com/lcvvvv/kscan

kscan不但可以扫描端口,还可以进行指纹识别、抓取title信息等。

4.Goby

https://gobysec.net/

5.在线端口扫描工具

http://coolaf.com/tool/port

Online Port Scanner Powered by Nmap | HackerTarget.com

Online Nmap scanner - nmap.online

http://www.jsons.cn/port/

Free Port Scanner with Nmap 🛡️ scan for open TCP and UDP ports

https://tool.cc/port/

五、网页指纹识别

1.ehole

https://github.com/EdgeSecurityTeam/Ehole/releases

2.Wappalyzer

Wappalyzer - Technology Profiler 是一个浏览器扩展,它可以帮助用户分析网站所使用的技术。Wappalyzer 可以检测出许多不同的 Web 技术,例如:服务器端语言、客户端脚本、数据库、API 等等。

以火狐为例,在“扩展与主题”中直接搜索即可安装


 

效果如下

3.TideFinger

https://github.com/TideSec/TideFinger

4.webanalyzer

https://github.com/webanalyzer/

5.在线工具

云悉:https://www.yunsee.cn/

潮汐指纹:http://finger.tidesec.net/

六、目录探测

网站目录和敏感文件扫描是网站测试中最基本的手段之一。如果通过该方法发现了网站后台,可以尝试暴库、SQL注入等方式进行安全测试;如果发现敏感目录或敏感文件,能帮我们获取如php环境变量、robots.txt、网站指纹等信息;如果扫描出了一些上传的文件,我们甚至可能通过上传功能(一句话恶意代码)获取网站的权限。

1.dirmap

https://github.com/H4ckForJob/dirmap

2.dirsearch

https://github.com/maurosoria/dirsearch

3.御剑

https://github.com/foryujian/yjdirscan

图形化界面,使用起来简单上手

4.DirBuster

https://sourceforge.net/projects/dirbuster/

支持全部的Web目录扫描方式。它既支持网页爬虫方式扫描,也支持基于字典暴力扫描,还支持纯暴力扫描。该工具使用Java语言编写,提供命令行(Headless)和图形界面(GUI)两种模式。其中,图形界面模式功能更为强大。用户不仅可以指定纯暴力扫描的字符规则,还可以设置以URL模糊方式构建网页路径,同时,用户还对网页解析方式进行各种定制,提高网址解析效率。

5.Webdirscan

https://github.com/TuuuNya/webdirscan/

6.cansina

https://github.com/deibit/cansina

注:目录探测的重点是字典,工具其实没那么重要

七、旁站

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

https://www.webscan.cc/

http://s.tool.chinaz.com/same

搜索引擎:fofa: ip="1.1.1.0/24"

八、C段

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

1.Nmap/Zenmap

Nmap: https://nmap.org

中文网站:http://www.nmap.com.cn

2.Webfinder(小米范工具)

可以高效查找C段的存在的域名,并可以预览网站

魔改版:https://github.com/Liqunkit/webfinder-next

全家桶:

3.K8_C段、旁注工具

全家桶:https://github.com/k8gege/K8tools

4.在线工具

https://chapangzhan.com/

该工具,可先查C段存活IP,并标识出近期是否绑定过域名,直接点击IP,可以跳转

九、操作系统识别

在进行服务器类型的判断时,最简单的方式之一是通过ping命令来进行探测。通常情况下,Windows和Linux的TTL(Time To Live)值有一定的区别,可以借此判断服务器的类型。

下面是默认操作系统的TTL

WINDOWS NT/2000   TTL:128

WINDOWS 95/98     TTL:32

UNIX              TTL:255

LINUX             TTL:64

WIN7          TTL:64

例1:

D:\Documents and Settings\hx>ping 61.152.93.131

Pinging 61.152.93.131 with 32 bytes of data:

Reply from 61.152.93.131: bytes=32 time=21ms TTL=118

Reply from 61.152.93.131: bytes=32 time=19ms TTL=118

Reply from 61.152.93.131: bytes=32 time=18ms TTL=118

Reply from 61.152.93.131: bytes=32 time=22ms TTL=118

Ping statistics for 61.152.93.131:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss

Approximate round trip times in milli-seconds:

Minimum = 18ms, Maximum = 22ms, Average = 20ms

TTL值是118,比较接近128,所以我们可以初步判断这台机器的操作系统是Windows操作系

统,128-118=10,所以它经过了10个路由器(不包含本机路由器)到达目的主机。

例2:

D:\Documents and Settings\hx>ping 61.152.104.40

Pinging 61.152.104.40 with 32 bytes of data:

Reply from 61.152.104.40: bytes=32 time=28ms TTL=54

Reply from 61.152.104.40: bytes=32 time=18ms TTL=54

Reply from 61.152.104.40: bytes=32 time=18ms TTL=54

Reply from 61.152.104.40: bytes=32 time=13ms TTL=54

Ping statistics for 61.152.104.40:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss

Approximate round trip times in milli-seconds:

Minimum = 13ms, Maximum = 28ms, Average = 19ms

TTL值是54,比较接近64,所以可以判断出这台机器使用的是Linux的操作系统,64-54=10,所以一共经过了10个路由器(不包含本机路由器)。因为路由器在选择路径的时候会选择最佳的路由路径,所以不可能是高TTL经过多个路由器(比如TTL为128经过了74个路由器)的情况。想知道经过了哪些路由器的话,可以使用cmd命令里面的tracert命令来查看。

注:通过TTL值来判断服务器类型也不是百分之百准确的,如win7和Linux的TTL值就是相同的,而且有的服务器出于安全考虑可能会修改TTL值混淆攻击者(虽然很少有人这么做)或者直接禁PING。

十、敏感信息收集

1.Robots.txt

关于Robots.txt可以看本人的另一篇文章

Robots.txt在渗透测试中的利用-CSDN博客

 2.Github搜索语法

GitHub就是信息泄露的宝库之一,用好搜索语法将事半功倍

(1)查询大于或小于另一个值的值

可以使用>,>=,<,和<=搜索是大于,大于或等于,小于和小于或等于另一个值的值

查询

示例

>n

cats stars:>1000 匹配含有 "cats" 字样、星标超过 1000 个的仓库

>=n

cats topics:>=5 匹配含有 "cats" 字样、有 5 个或更多主题的仓库

<n

cats size:<10000 匹配小于 10 KB 的文件中含有 "cats" 字样的代码

<=n

cats stars:<=50 匹配含有 "cats" 字样、星标不超过 50 个的仓库

n..*

cats stars:10..* 等同于 stars:>=10 并匹配含有 "cats" 字样、有 10 个或更多星号的仓库

*..n

cats stars:*..10 等同于 stars:<=10 并匹配含有 "cats" 字样、有不超过 10 个星号的仓库

(2)查询范围之间的值

可以使用范围语法 n..n 搜索范围内的值,其中第一个数字 n 是最低值,而第二个是最高值

查询

示例

n..n

cats stars:10..50 匹配含有 "cats" 字样、有 10 到 50 个星号的仓库

(3)查询日期

可以通过使用 >、>=、<、<= 和范围查询搜索早于或晚于另一个日期,或者位于日期范围内的日期。日期格式必须遵循 ISO8601标准,即 YYYY-MM-DD(年-月-日)

查询

示例

>YYYY-MM-DD

cats created:>2016-04-29 匹配含有 "cats" 字样、在 2016 年 4 月 29 日之后创建的议题

>=YYYY-MM-DD

cats created:>=2017-04-01 匹配含有 "cats" 字样、在 2017 年 4 月 1 日或之后创建的议题

<YYYY-MM-DD

cats pushed:<2012-07-05 匹配在 2012 年 7 月 5 日之前推送的仓库中含有 "cats" 字样的代码

<=YYYY-MM-DD

cats created:<=2012-07-04 匹配含有 "cats" 字样、在 2012 年 7 月 4 日或之前创建的议题

YYYY-MM-DD..YYYY-MM-DD

cats pushed:2016-04-30..2016-07-04 匹配含有 "cats" 字样、在 2016 年 4 月末到 7 月之间推送的仓库

YYYY-MM-DD..

cats created:2012-04-30..* 匹配在 2012 年 4 月 30 日之后创建、含有 "cats" 字样的议题

..YYYY-MM-DD

cats created:*..2012-04-30 匹配在 2012 年 7 月 4 日之前创建、含有 "cats" 字样的议题

也可以在日期后添加可选的时间信息 THH:MM:SS+00:00,以便按小时、分钟和秒进行搜索。这是 T,随后是 HH:MM:SS(时-分-秒)和 UTC 偏移 (+00:00)

查询

示例

YYYY-MM-DDTHH:MM:SS+00:00

cats created:2017-01-01T01:00:00+07:00..2017-03-01T15:30:15+07:00 匹配在 2017 年 1 月 1 日凌晨 1 点(UTC 偏移为 07:00)与 2017 年 3 月 1 日下午 3 点(UTC 偏移为 07:00)之间创建的议题

YYYY-MM-DDTHH:MM:SSZ

cats created:2016-03-21T14:11:00Z..2016-04-07T20:45:00Z 匹配在 2016 年 3 月 21 日下午 2:11 与 2016 年 4 月 7 日晚上 8:45 之间创建的议题

(4)逻辑运算符

可以使用 NOT 语法排除包含特定字词的结果。NOT 运算符只能用于字符串关键词, 不适用于数字或日期

查询

示例

NOT

hello NOT world 匹配含有 "hello" 字样但不含有 "world" 字样的仓库

还可以使用包括AND、OR运算符

(5)排除运算符

缩小搜索结果范围的另一种途径是排除特定的子集。您可以为任何搜索限定符添加 - 前缀,以排除该限定符匹配的所有结果

查询

示例

-*QUALIFIER

cats stars:>10 -language:javascript 匹配含有 "cats" 字样、有超过 10 个星号但并非以 JavaScript 编写的仓库

(6)有空格的查询需使用引号

如果搜索含有空格的查询,您需要用引号将其括起来。

例如:cats NOT "hello world" 匹配含有 "cats" 字样但不含有 "hello world" 字样的仓库

(7)包含运算符

查询

示例

in:file

cats in:file 搜索文件中包含cats的代码

in:path

cats in:path 搜索路径中包含cats的代码。cats in:path,file 搜索路径、文件中包含cats的代码

(8)关键字总结

pushed:在push中的代码中查找

created:基于创建时间查找

stars:基于star数量查找

topics:基于标签数查找

size:基于仓库文件数大小查找

language:基于语言查找

user:基于用户名查找

org:基于组织搜索

in:包含搜索

repo:指定仓库搜索  repo:USERNAME/REPOSITORY

filename:基于文件名查找

path:指定路径搜索 cats path:app/public language:javascript 搜索关键字cats,且语言为javascript,在app/public下的代码

extension:指定扩展名搜索 extension:properties jdbc

(9)注意事项

①只能搜索小于384 KB的文件。

②不支持长度超过 256 个字符的查询

③无法使用超过五个 AND、OR 或 NOT 运算符构造查询

④只能搜索少于500,000个文件的存储库。

⑤登录的用户可以搜索所有公共存储库。

⑥除filename搜索外,搜索源代码时必须至少包含一个搜索词。例如,搜索language:javascript无效,而是这样:amazing language:javascript。

⑦搜索结果最多可以显示来自同一文件的两个片段,但文件中可能会有更多结果。

⑧不能将以下通配符用作搜索查询的一部分:. , : ; / \ ' " = * ! ? # $ & + ^ | ~ < > ( ) { } [ ]。搜索将忽略这些符号。

3.在线网盘搜索

在线网盘搜索工具,可以通过关键词搜索找到目标泄露的信息,包括电话号码、身份证号、密码文件、员工信息文件等敏感信息

凌风云:https://www.lingfengyun.com/

还是以天融信为例

小马盘:https://www.xiaomapan.com/

盘搜搜:https://pansoso.com/

4.社交平台

利用贴吧等平台进行关键词的搜索,也可以通过贴吧内水贴以社工的方式获取想要的信息。类似的交流平台还有微博、知乎、小红书等等

百度贴吧:https://tieba.baidu.com/

新浪微博:https://weibo.com

知乎:https://www.zhihu.com/

百度文库:https://wenku.baidu.com/

CSDN:https://www.csdn.net/

5.Web源码泄露

(1)git源码泄露

由于目前的web项目的开发采用前后端完全分离的架构:前端全部使用静态文件,和后端代码完全分离,隶属两个不同的项目。表态文件使用 git 来进行同步发布到服务器,然后使用nginx 指向到指定目录,以达到被公网访问的目的。在运行git init初始化代码库的时候,会在当前目录下面产生一个.git的隐藏文件,用来记录代码的变更记录等等。在发布代码的时候,如果.git这个目录没有删除,那么使用这个文件,可以用来恢复源代码

访问 http://XX/.git/config 时,可以下载得到隐藏文件

①GitHack

https://github.com/lijiejie/GitHack

GitHack是一个.git泄露利用脚本,通过泄露的.git文件夹下的文件,还原重建工程源代码

②dvcs-ripper

https://github.com/kost/dvcs-ripper

(2)DS_store文件泄露

.DS_Store是Mac下Finder用来保存如何展示文件或文件夹的数据文件,每个文件夹下对应一个。如果开发人员将.DS_Store部署到线上环境,可能造成文件目录结构泄漏,特别是备份文件、源代码文件。在被利用的网址后面加.DS_Store即可利用

ds_store_exp

https://github.com/lijiejie/ds_store_exp

ds_store_exp 是一个.DS_Store 文件泄漏利用脚本,它解析.DS_Store文件并递归地下载文件到本地

(3)svn源码泄露

在使用 SVN 管理本地代码过程中,会自动生成一个名为.svn 的隐藏文件夹,其中包含重要的源代码信息。一些网站管理员在发布代码时,直接复制代码文件夹到 WEB 服务器上,使.svn 隐藏文件夹被暴露于外网环境,攻击者可借助其中包含的用于版本信息追踪的‘entries’文件,逐步摸清站点结构。.svn 目录下还包含了以.svn-base 结尾的源代码文件副本,如果服务器没有对此类后缀做解析,攻击者则可以直接获得文件源代码。在被利用的网址后面加 /.svn/entries,即可列出网站目录,甚至下载整站

①svnExploit

https://github.com/admintony/svnExploit/

SvnExploit是一款SVN源代码利用工具,其完美支持SVN<1.7版本和SVN>1.7版本的SVN源代码泄露

②dvcs-ripper

https://github.com/kost/dvcs-ripper

(4)swp文件泄露

swp即swap文件,在编辑文件时产生的临时文件,它是隐藏文件,如果程序正常退出,临时文件自动删除,如果意外退出就会保留,文件名为 .filename.swp

直接访问.swp文件,下载回来后删掉末尾的.swp,获得源码文件

(5)cvs信息泄露

CVS是一个C/S系统,多个开发人员通过一个中心版本控制系统来记录文件版本,从而达到保证文件同步的目的。CVS项目在初始化(cvs checkout project)的时候,会在 project 目录下创建一个名为 CVS 的目录,其中保存了各个文件的修改和 commit 记录。通过此目录可以获取代码的历史版本。其中两个关键文件为: CVS/Root 和CVS/Entries,分别记录了项目的根信息和所有文件的结构,直接就可以看到泄露的信息

http://url/CVS/Root 返回根信息

http://url/CVS/Entries 返回所有文件的结构

dvcs-ripper

https://github.com/kost/dvcs-ripper

(6)bzr泄露

bzr也是个版本控制工具, 虽然不是很热门, 但它也是多平台支持, 并且有不错的图形界面。Bazaar 是一个分布式的版本控制系统,它发布在 GPL 许可协议之下, 并可用于Windows、GNU/Linux、UNIX 以及 Mac OS 系统。Bazaar 由Canonical 公司赞助,目前已服务于 Samba、Drupal 等知名的开源项目。不像 Subversion 和 CVS 只支持中心存储库模式,Bazaar 还支持分布式版本控制,让人们能够有效地协作。bzr 在初始化项目时(bzr init/init-repo),会在项目根目录产生名为.bzr 的隐藏目录, 同样暴露了源代码和用户信息

 dvcs-ripper

https://github.com/kost/dvcs-ripper

(7)hg源码泄露

Mercurial 是一种轻量级分布式版本控制系统,使用 hg init的时候会生成.hg

 dvcs-ripper

https://github.com/kost/dvcs-ripper

(8)WEB-INF/web.xml泄露

WEB-INF 是 Java 的 WEB 应用的安全目录。如果想在页面中直接访问其中的文件,必须通过 web.xml 文件对要访问的文件进行相应映射才能访问。通常一些 web 应用我们会使用多个 web 服务器搭配使用,解决其中的一个 web 服务器的性能缺陷以及做均衡负载的优点和完成一些分层结构的安全策略等。在使用这种架构的时候,由于对静态资源的目录或文件的映射配置不当,可能会引发一些的安全问题,导致 web.xml 等文件能够被读取。

WEB-INF 主要包含以下文件或目录:

/WEB-INF/web.xml

Web 应用程序配置文件,描述了 servlet 和其他的应用组件配置及命名规则。

/WEB-INF/classes/

包含了站点所有用的 class 文件,包括 servlet class 和非 servlet class, 他们不能包含在 .jar 文件中

/WEB-INF/lib/

存放 web 应用需要的各种 JAR 文件,放置仅在这个应用中要求使用的jar 文件,如数据库驱动 jar 文件

/WEB-INF/src/

源码目录,按照包名结构放置各个 java 文件。

/WEB-INF/database.properties

数据库配置文件

利用方式为使用扫描工具或直接在域名后加WEB-INF/web.xml,通过找到 web.xml 文件,推断class文件的路径,最后接class文件, 再通过反编译 class 文件,得到网站源码

(9)备份压缩文件泄露

管理员在对网站进行修改、升级等操作前,可能会将网站或某些页面进行备份,将该备份文件存放到网站目录下,若对该文件未做任何访问控制,导致可直接访问并下载。通常这些备份文件会导致源码泄露,数据库连接信息泄露,用户数据泄露。可能为.rar、zip、.7z、.tar.gz、.bak、.txt、.swp以及和网站信息有关的文件名www.rar、web.rar等等。通过扫描目录,猜测备份文件名即可

十一、组织信息收集

1.组织架构查询

(1)官网查询

有部分企事业单位网站首页会有其组织机构、直属单位、各地分部、内设机构和直属机构等介绍,可以根据现有的介绍,加以扩展完善后,尽可能的整理出其组织架构组成

(2)第三方网站查询

天眼查:https://www.tianyancha.com/

企查查:https://www.qcc.com/

企业猫:https://www.qichamao.com/

爱企查:百度安全验证

钉钉企典:https://www.dingtalk.com/qidian/home?spm=a213l2.13146415.4929779444.89.7f157166W6H4YZ

小蓝本:https://www.xiaolanben.com/pc

注:100%控股的一定是目标资产,但是占比较少的不论是SRC还是攻防演练等,都有可能不收该站点的报告,因为不完全是目标的资产

(3)Google搜索

直接搜xx子公司

2.网络结构查询

Zenmap、Goby都可以查看网络拓扑结构

Zenmap:

https://nmap.org

http://www.nmap.com.cn

Goby:https://gobysec.net/

3.人员及邮箱信息

(1)官网获取

官网“联系我们”,即可获取邮箱甚至人员信息

(2)在线网站

Find the email address format for millions of companies

Find email addresses of companies and people - Skymem

Find email addresses in seconds • Hunter (Email Hunter)

(3)工具

https://github.com/laramies/theHarvester

ENScan_GO:https://github.com/wgpsec/ENScan_GO

(4)搜索引擎

google、baidu、bing等

以天融信为例,语法为:site:topsec.com.cn 邮箱

(5)其他方法

例如,whois、威胁情报、备案信息等等,查询网站在前面上文中都有提及,此处不再赘述

十二、​公众号信息收集

1.搜狗微信

搜狗微信支持搜索微信公众号和微信文章,可以通过关键词搜索相关的微信公众号,或者是微信公众号推送的文章

https://weixin.sogou.com/

2.微信APP

在微信APP中搜索相关的公众号关键字,进行关注获取相关资产

十三、小程序

1.小程序搜索

(1)微信小程序

在微信APP中可以下拉直接搜索小程序,小程序大多数都是Js代码构成,会出现一些信息泄露

(2)支付宝小程序

在支付宝APP中可以直接通过关键词搜索小程序

2.小程序源码提取

https://github.com/sjatsh/unwxapkg

https://github.com/chenrensong/SS.UnWxapkg

十四、APP

通过各应用商店可以搜索相关APP,并可以搜索开发者开发的相关APP(可能需要手机上的应用市场才可以搜索)

1.IOS

App Store:https://www.apple.com/app-store/

爱思助手:https://www.i4.cn/

2.安卓

应用宝:https://sj.qq.com/

豌豆荚:https://www.wandoujia.com/

小米应用商店:https://app.mi.com/

搜狗应用下载:http://as.sogou.com/

pp助手:https://www.25pp.com/

十五、数据库识别

在信息收集中,了解目标网站所使用的数据库类型也是至关重要,因为它直接关系到系统的数据存储和管理

Access:适用于小型项目,后缀名.mdb,一般与ASP网页文件搭配使用

MySQL:适用于中小型项目,是PHP页面的常用选择。

SQL Server:适用于中型项目,后缀名.mdf

Oracle:适用于大型项目

数据库的选择通常与使用的编程语言和框架相关,以下是一些常见的搭配

ASP 和 ASPX:Access、SQL Server

PHP:MySQL、PostgreSQL

JSP:Oracle、MySQL

十六、信息收集思路

1.思路一

简单粗暴全程都用工具跑

(1)subfinder收集子域名

可以用其他工具作为补充,比如OneForAll

(2)kscan扫描端口指纹

先扫描top 1000常用端口,根据扫描情况判断是否进行下一轮全端口扫描

而且kscan不但可以扫描端口,还能进行指纹识别、抓取title等

将结果输出到一个.csv列表中,其中就包含了端口、url等信息

此时就可以结合上文提到的端口对应的漏洞进行尝试,如ssh、ftp的弱口令爆破,445的ms0708等等

(3)ehole网页指纹识别

提取上一步中的http、https服务,使用ehole进行指纹识别

(4)rad爬取网站url

https://github.com/chaitin/rad/releases

到这一步,就已经获取了不同子域名+端口+path路径的URL,后续正常开始渗透即可

2.思路二

https://daydust.github.io/2023/11/04/%E5%A4%A7%E5%9E%8BWeb%E8%B5%84%E4%BA%A7%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86/

转自https://daydust.github.io/

这里涉及到灯塔的搭建,后续会单独介绍如何在vps上搭建灯塔

总结

        写本文的初衷是想把零散的信息收集的知识整合起来,方便初学者能快速了解信息收集的内容和手段(但是自己回过头来读一遍感觉还是有些混乱),所以最好还是用上述提到的工具和方法,自己去实际场景中收集信息,从而能总结出来一套自己的思路或者说是方案

  • 30
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值