信息搜集
信息搜集是什么?
俗称踩点,在权限范围内尽可能多的搜集目标的信息,包括端口信息,DNS信息,员工邮箱等等甚至于个人信息的搜集,主要作用是在渗透测试中加以利用。
个人认为:信息分为这几类
1.显性信息:通过搜索引擎等主动手段,去查找搜集信息,这类信息一般显而易见,容易被目标所察觉。
2.隐式信息:通过工具软件等对北侧目标发起互动来获取相关信息,也可以通过支类网站进行索索信息搜集。
搜集信息大概:
1、whois信息(微步)
2、网站架构
3、dns信息(通过查询dns我们可以检测是否存在dns域传送漏洞)
4、子域名搜集
5、敏感目录及敏感信息、源码泄露(搜索引擎+工具)
6、脆弱系统(网络空间)
7、旁站查询
8、C端查询
9、指纹信息
10、端口服务
11、备案信息
12、真实ip
13、探测waf
14、社工(朋友圈、微博、qq空间、求职、交易等社交平台)
15、企业信息(天眼查、企业信用信息公示系统、工业和信息化部ICP/IP地址/域名信息备案管理系统)
搜集大致流程
1.首先入手域名方面:whois、子域名、备案信息;
2.其次是入手服务器方面:dns信息、端口服务、真实ip;
3.然后入手网站程序(web层)方面:网站架构、敏感目录及敏感信息、源码泄露(搜索引擎+工具)、脆弱系统(网络空间)、旁站查询、C端查询、指纹信息、探测waf;
4.最后入手企业方面:天眼查、企业信用信息公示系统
相关主体工具
搜集搜集重在找到信息,通过各种途径
Google、百度等
对于我们第一步肯定是先谷歌一下
常用搜索语法:
"" //双引号表示强制搜索
//表示搜索不包含关键词的网页
| 或者的意思
site 返回所有于这个域名有关的网页
intext //搜索到的网页正文部分包含关键词
intitle //搜索到的网页标题包含关键词
cache //搜索关于某些内容的缓存
definne //搜索某个词语的定义
filetype //搜索指定的文件类型
info //查找指定站点的一些基本信息
inurl //搜索包含关键词的URL
link //可以返回所有和baidu.com做了链接的URL
我们可以同时附加多个条件进行筛选,两个筛选条件之间用空格隔开
然后再搜索一些奇奇怪怪的东西。接下来再抛出两个网站
hodan
Shodan与Google这种搜索网址的搜索引擎不同的是,Shodan是用来搜索网络空间中在线设备的。
Zoomeye(钟馗之眼)
ZoomEye是一款针对网络空间的搜索引擎,收录了互联网空间中的设备、网站及其使用的服务或组件等信息。
搜索语法
1、app:nginx 组件名
2、ver:1.0 版本
3、os:windows 操作系统
4、country:”China” 国家
5、city:”hangzhou” 城市
6、port:80 端口
7、hostname:google 主机名
8、site:thief.one 网站域名
9、desc:nmask 描述
10、keywords:nmask’blog 关键词
11、service:ftp 服务类型
12、ip:8.8.8.8 ip地址
13、cidr:8.8.8.8/24 ip地址段
域名ip等备案信息
备案信息
备案信息分为两种,一种是IPC备案信息查询,一种是公安部备案信息查询。如果是国外的服务器是不需要备案的,因此可以忽略此步骤,国内的服务器是需要备案的,因此可以尝试获取信息。
查询方式
1、ICP备案查询(http://www.miitbeian.gov.cn/icp/publish/query/icpMemoInfo_showPage.action#)
2、公安部备案查询(http://www.beian.gov.cn/portal/recordQuery)
域名的判断
通过whois查询,ip相关信息查询。网上有很多的网站,这里推荐一篇帖子写的很详细。
相关贴:https://www.sohu.com/a/218661410_653604
获取真实IP
1、二级域名法 一般网站不会所有的二级域名放CDN,因此我们可以利用这点来获取网站的真实ip
2、多地ping法 由CDN的原理,不同的地方去Ping服务器,如果IP不一样,则目标网站肯定使用了CDN,这里推荐一个网站可以多个地点ping服务器,https://asm.ca.com/en/ping.php
3、nslookup法 找国外的比较偏僻的DNS解析服务器进行DNS查询,因为大部分CDN提供商只针对国内市场,而对国外市场几乎是不做CDN,所以有很大的几率会直接解析到真实IP
4、查看邮件法 通过查看邮件原文来确定ip地址,CDN总不会发送邮件吧
5、RSS订阅法 RSS原理于邮件法差不多
6、查看历史解析记录法 查找域名历史解析记录,域名在上CDN之前用的IP,很有可能就是CDN的真实源IP地址
7、利用网站漏洞(XSS、命令执行、SSRF、php探针、phpinfo页面等) 可以通过一些页面和漏洞获取到服务器ip地址也是可能的。
Whois信息和Whois反查
whois是用来查询域名的IP以及所有者等信息的传输协议。 whois信息可以获取关键注册人的信息,包括注册商、联系人、联系邮箱、联系电话、创建时间等,可以进行邮箱反查域名,爆破邮箱,社工,域名劫持等等。
查询方式
1、http://whois.chinaz.com/4、Linux whois命令
5、其他工具
当然站长之家的whois查询也是非常舒爽的。就是不能查境外的,有点难受。
子域名搜集
子域名收集可以发现更多目标,以增加渗透测试成功的可能性,探测到更多隐藏或遗忘的应用服务,这些应用往往可导致一些严重漏洞。当一个主站坚不可摧时,我们可以尝试从分站入手。
查询方式
1、layer子域名挖掘机3、subDomainsBrute
4、搜索引擎语法(site:xxx.com)
layer
这个小东西还挺好用的就是一个多线程枚举,最终结果还是会取决于字典的大小。
subDomainsBrute
利用python的程序,最终结果依旧取决于字典大小。
搜索引擎
相对来说还是比较完全的
DNS查询
什么是dns是必须要搞明白的,参数都是什么意义,这儿推荐一篇帖子https://www.cnblogs.com/momenglin/p/8556079.html
主要方法有:
1、Kali(host、big命令)2、windows(nslookup命令)
3、在线工具
这里对kali的命令和windows的命令进行简单操作说明
kali
host命令查询
Host指令提供一个简单的DNS解析的功能。正常地使用名称到IP的解析,当指令没有任何参数和选项的时候,它将输出简单的带命令行参数和选项的概要。
名称是可以被解析的域名,也可以是点分十进制的IPV4的地址或冒号分隔的IPV6的地址,默认地,也可以行使一个反向解析的功能,DNS服务器既有名称又有IP地址,host查询可以替代它们,或者可以列在/etc/resolv.conf文件里
实操
/*
root@kali:~# host -a hrbust.edu.cn 114.114.114.114
Trying "hrbust.edu.cn"
Using domain server:
Name: 114.114.114.114
Address: 114.114.114.114#53
Aliases:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 46986
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0
;; QUESTION SECTION:
;hrbust.edu.cn. IN ANY
;; ANSWER SECTION:
hrbust.edu.cn. 2531 IN NS hkd.hrbust.edu.cn.
Received 49 bytes from 114.114.114.114#53 in 45 ms
*/
具体参数详情
root@kali:~# host
Usage: host [-aCdilrTvVw] [-c class] [-N ndots] [-t type] [-W time]
[-R number] [-m flag] hostname [server]
-a is equivalent to -v -t ANY
-c specifies query class for non-IN data
-C compares SOA records on authoritative nameservers
-d is equivalent to -v
-i IP6.INT reverse lookups
-l lists all hosts in a domain, using AXFR
-m set memory debugging flag (trace|record|usage)
-N changes the number of dots allowed before root lookup is done
-r disables recursive processing
-R specifies number of retries for UDP packets
-s a SERVFAIL response should stop query
-t specifies the query type
-T enables TCP/IP mode
-v enables verbose output
-V print version number and exit
-w specifies to wait forever for a reply
-W specifies how long to wait for a reply
-4 use IPv4 query transport only
-6 use IPv6 query transport only
/*
-a 显示详细的DNS信息;
-c<类型> 指定查询类型,默认值为“IN“;
-C 查询指定主机的完整的SOA记录;
-r 在查询域名时,不使用递归的查询方式;
-t<类型> 指定查询的域名信息类型;
-v 显示指令执行的详细信息;
-w 如果域名服务器没有给出应答信息,则总是等待,直到域名服务器给出应答;
-W<时间> 指定域名查询的最长时间,如果在指定时间内域名服务器没有给出应答信息,则退出指令;
-4 使用IPv4;
-6 使用IPv6.
*/
dig命令查询
dig(域信息搜索器)命令是一个用于询问 DNS 域名服务器的灵活的工具。它执行 DNS 搜索,显示从受请求的域名服务器返回的答复。多数 DNS 管理员利用 dig 作为 DNS 问题的故障诊断,因为它灵活性好、易用、输出清晰。
虽然通常情况下 dig 使用命令行参数,但它也可以按批处理模式从文件读取搜索请求。不同于早期版本,dig 的 BIND9 实现允许从命令行发出多个查询。除非被告知请求特定域名服务器,dig 将尝试 /etc/resolv.conf 中列举的所有服务器。当未指定任何命令行参数或选项时,dig 将对“.”(根)执行 NS 查询。
/*
实操
root@kali:~# dig hrbust.edu.cn
; <<>> DiG 9.11.5-P4-5.1+b1-Debian <<>> hrbust.edu.cn
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 54236
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; MBZ: 0x0005, udp: 1452
;; QUESTION SECTION:
;hrbust.edu.cn. IN A
;; ANSWER SECTION:
hrbust.edu.cn. 5 IN A 202.118.201.1
;; Query time: 841 msec
;; SERVER: 192.168.32.2#53(192.168.32.2)
;; WHEN: 五 4月 03 21:28:24 CST 2020
;; MSG SIZE rcvd: 58
*/
具体参数详情
-b address
设置所要询问地址的源IP地址,这必须是主机网络接口上的某一合法的地址,
-c class
缺当查询类(IN for internet)由选项-c重设。class 可以是任何合法类,比如查询 Hesiod 记录的HS 类或查询 CHAOSNET记录的 CH类
-f filename
使 dig 在批处理模式下运行,通过从文件 filename 读取一系列搜索请求加以处理,文件包含许多查询;每行一个。文件中的每一项都应该以和使用命令行接口对dig 的查询相同的方法来组织,
-h
当使用选项-h时,显示一个简短的命令行参数和选项携要。
-k filename
要签署由 dig 发送的 DNS 查询以及对它们使用事务签名(TSIG)的响应,用选项·k指定TSIG 密钥文件。
-n
缺省情况下,使用IP6. ARPA 域和 RFC2874 定义的二进制标号接素 IPv6 地址,为了使用更早的、使用IP6. INT域和nibble标签的RFC1886 方法,指定选项-n(nibble).
-p port#
如果需要查询一个非标准的端口号,则使用选项-p.port#是dig 将发送其查询的馈口号,而不是标准的 DNS 端口号53, 该选项可用于测试已在非标准端口号上配置成侦听查询的城名服务器。
-t type
设置查询类型为 type, 可以是 BIND9 支持的任意有效查询类型,缺省查询类型是A, 除非提供-x选项来指示一个逆向查询,通过指定AXFR的type 可以请求一个区域传输。当需要增量区域传输(IXFR)时,type 设置为 ixfr=N. 增量区域传输将包含白从区域的 SOA 记录中的序列号改为 N之后对区域所做的更改。
-x addr
逆向查询(将地址映射到名称)可以通过-x选项加以简化。addr是一个以小数点为界的IPv4 地址或面号为界的IPv6 地址,当使用这个选项时,无需提供 name、class 和 type 参数,dig 自动运行类似11. 12. 13. 10.in-addr.arpa的城名查询,并分别设置查询类型和类为 PTR和IN.
-y name:key
您可以通过命令行上的-y选项指定 TSIG 密钥:name是TSIG 密码的名称,key 是实际的密码,密码是 64 位加密字符串,通常由 dnssec-keygen(8)生成,当在多用户系统上使用选项-y 时应该谨慎,因为密码在ps(1)的输出或,shell 的历史文件中可能是可见的。当同时使用dig和TSCG 认证时,被查询的名称服务器需要知道密码和解码规则,在BIND中,通过提供正确的空码和 named. conf 中的服务销声明实现。
windows
Windows的就稍显潦草了,但是通过在nslookup后加-qt=type控制参数依然可以查询到很多有用的信息。
nslookup指令
/*
实操
C:\Users\WebFucker>nslookup hrbust.edu.cn
服务器: UnKnown
Address: 192.168.32.2
名称: hrbust.edu.cn.localdomain
Address: 202.118.201.1
*/
具体参数说明
nslookup -qt = type domain [dns-server]
type:
A -->地址记录
AAAA -->地址记录
AFSDB Andrew -->文件系统数据库服务器记录
ATMA -->ATM地址记录
CNAME -->别名记录
HINHO -->硬件配置记录,包括CPU、操作系统信息
ISDN -->域名对应的ISDN号码
MB -->存放指定邮箱的服务器
MG -->邮件组记录
MINFO -->邮件组和邮箱的信息记录
MR -->改名的邮箱记录
MX -->邮件服务器记录
NS --> 名字服务器记录
PTR ->反向记录
RP -->负责人记录
RT -->路由穿透记录
SRV -->TCP服务器信息记录
TXT -->域名对应的文本信息
X25 -->域名对应的X.25地址记录
nslookup -d [其他参数] domain [dns-server]
//只要在查询的时候,加上-d参数,即可查询域名的缓存
工具
再介绍kali上两个相关的软件
dnsenum 的目的是尽一切可能收集一个域的信息,它能够通过Google或者字典文件猜测可能存在的域名,以及对一个网段进行反查询。
它可以查询网站主机的主机地址信息、域名服务器、MX record(函数交换记录),在域名服务器上执行axfr请求,并通过Google脚本得到扩展域名信息,提取子域名并且查询,计算C类地址并执行Whois查询,执行反向查询,把地址段写入文件
/*
实操
root@kali:~# dnsenum hrbust.edu.cn
Smartmatch is experimental at /usr/bin/dnsenum line 698.
Smartmatch is experimental at /usr/bin/dnsenum line 698.
dnsenum VERSION:1.2.4
----- hrbust.edu.cn -----
Host's addresses:
__________________
hrbust.edu.cn. 5 IN A 202.118.201.1
Name Servers:
______________
hkd.hrbust.edu.cn. 5 IN A 202.118.192.2
Mail (MX) Servers:
___________________
mxbiz1.qq.com. 5 IN A 203.205.232.191
mxbiz2.qq.com. 5 IN A 203.205.232.191
Trying Zone Transfers and getting Bind Versions:
_________________________________________________
Trying Zone Transfer for hrbust.edu.cn on hkd.hrbust.edu.cn ...
AXFR record query failed: REFUSED
brute force file not specified, bay.
*/
具体参数说明
用法:dnsenum [选项] [域名]。注:"-"和"--"的区别,"-"使用选项简写,"--"使用选项全写。
选项 说明
通用选项
--dnsserver <server> 指定域名服务器,事例:
dnsenum --dnsserver 114.114.114.114 baidu.com
--enum 快捷选项,相当于"--threads 5 -s 15 -w",选项说明后续说明
-h --help
显示帮助信息
--noreverse 跳过反向查询操作
--nocolor 无彩色输出
--private 显示并在"domain_ips.txt"文件结尾保存私有的ips
--subfile <file> 写入所有有效的子域名到指定文件
-t, --timeout <value>
tcp或者udp的连接超时时间,默认为10s(时间单位:秒)
--threads <value> 查询线程数
-v, --verbose 显示所有的进度和错误消息
其它常用选项
-o --output <file> 输出选项,将输出信息保存到指定文件
-e, --exclude <regexp> 反向查询选项,从反向查询结果中排除与正则表达式相符的PTR记录,在排查无效主机上非常有用
-w, --whois 在一个C段网络地址范围提供whois查询
其它没有描述的选项请输入:dnsenum -h查询。
dmitry
根据IP(或域名)来查询目标主机的Whois信息
在Netcraft.com的网站上挖掘主机信息
查找目标域中用的子域
查找目标域的电子邮件地址
探测目标主机上打开的端口、被屏蔽的端口和关闭的端口
/*
实操
root@kali:~# dmitry -w hrbust.edu.cn
Deepmagic Information Gathering Tool
"There be some deep magic going on"
HostIP:202.118.201.1
HostName:hrbust.edu.cn
Gathered Inic-whois information for hrbust.edu.cn
---------------------------------
All scans completed, exiting
*/
具体参数说明
-O 将输出保存到%host.txt或由-o文件指定的文件
-i 对主机的IP地址执行whois查找
-w 对主机的域名执行whois查找
-n 在主机上检索Netcraft.com信息。
-s 执行搜索可能的子域
-e 执行搜索可能的电子邮件地址
-p 在主机上执行TCP端口扫描
-f 在显示输出报告过滤端口的主机上执行TCP端口扫描
-b 读取从扫描端口接收的banner
-t 0-9扫描TCP端口时设置TTL(默认为2)
Requires the -p 需要-p标记才能传递
在线工具
http://tool.chinaz.com/dns/
https://tool.lu/dns/
端口扫描
namp足矣,kali自带,一发入魂。有以下主要功能:
- 主机探测
- 端口扫描
- 版本检测
- 系统检测
- 支持探测脚本的编写
常见的端口信息及渗透方法:端口 ———————————— 服务 —————————— 渗透用途(加黑斜体为重点)
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隧道的远控
tcp/udp 69 TFTP 尝试下载目标及其的各类重要配置文件
tcp 80-89,443,8440-8450,8080-8089 各种常用的Web服务端口 可尝试经典的topn,vpn,owa,webmail,目标oa,各类Java控制台,各类服务器Web管理面板,各类Web中间件漏洞利用,各类Web框架漏洞利用等等……
tcp 110 POP3 可尝试爆破,嗅探
tcp 111,2049 NFS 权限配置不当
tcp 137,139,445 Samba 可尝试爆破以及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 1194 OpenVPN 想办法钓VPN账号,进内网
tcp 1352 Lotus 弱口令,信息泄漏,爆破
tcp 1433 SQL Server 注入,提权,sa弱口令,爆破
tcp 1521 Oracle tns爆破,注入,弹shell…
tcp 1500 ISPmanager 弱口令
tcp 1723 PPTP 爆破,想办法钓VPN账号,进内网
tcp 2082,2083 cPanel 弱口令
tcp 2181 ZooKeeper 未授权访问
tcp 2601,2604 Zebra 默认密码zerbra
tcp 3128 Squid 弱口令
tcp 3312,3311 kangle 弱口令
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 5900,5901,5902 VNC 弱口令爆破
tcp 5984 CouchDB 未授权导致的任意指令执行
tcp 6379 Redis 可尝试未授权访问,弱口令爆破
tcp 7001,7002 WebLogic Java反序列化,弱口令
tcp 7778 Kloxo 主机面板登录
tcp 8000 Ajenti 弱口令
tcp 8443 Plesk 弱口令
tcp 8069 Zabbix 远程执行,SQL注入
tcp 8080-8089 Jenkins,JBoss 反序列化,控制台弱口令(8888也较容易出现后台)
tcp 9080-9081,9090 WebSphere Java反序列化/弱口令
tcp 9200,9300 ElasticSearch 远程执行
tcp 11211 Memcached 未授权访问
tcp 27017,27018 MongoDB 爆破,未授权访问
tcp 50070,50030 Hadoop 默认端口未授权访问
指纹识别(相关网络资产查询)
通过识别目标网站所使用的操作系统、CMS、服务器与中间件信息,可以帮助我们进一步了解渗透测试环境,可以利用已知的一些CMS漏洞或中间件漏洞来进行攻击。
一、可以在以下地方获取信息:
1.指定路径下指定名称的js文件或代码。
2.指定路径下指定名称的css文件或代码。
3.<title>
中的内容,有些程序标题中会带有程序标识,但不是很多。
4.meta标记中带程序标识
5.display:none中的版权信息。
6.页面底部版权信息,关键字© Powered by等。
7.readme.txt、License.txt、help.txt等文件。
8.指定路径下指定图片文件,如一些小的图标文件,后台登录页面中的图标文件
等,一般管理员不会修改它们。
9.注释掉的html代码中<!–
10.http头的X-Powered-By中的值,有的应用程序框架会在此值输出。
11.cookie中的关键字
12.robots.txt文件中的关键字
robots.txt 中禁止的路径很可能说明站点就有这些路径 而且robots.txt 多是可访问的
13.404页面
14.302返回时的旗标
二、大小写
Windows操作系统不区分大小写,Linux系统大小写敏感,用此方法能够判断是Windows还是Linux系统。
查询方式:
1、Nmap
2、wappalyzer插件
3、云悉[http://www.yunsee.cn/]
### 敏感目录及敏感信息、源码泄露(搜索引擎+工具)
Web敏感文件
robots.txt、crossdomin.xml、sitemap.xml、源码泄漏文件 、/WEB-INF/…
BBscan:信息泄漏批量扫描脚本【这是项目地址:https://github.com/lijiejie/BBScan】
GSIL:从github上寻找敏感文件的安全工具。【项目地址:https://github.com/FeeiCN/GSIL】介绍:https://feei.cn/gsil/
WAF信息
WAF识别大多基于Headers头信息,还可以使用Wafw00f,Sqlmap的waf脚本,Nmap的http-waf-detect和http-waf-fingerprint脚本等等。
相关漏洞
漏洞查询站点:exploitdb、hackerone、CNVD、0day5、乌云漏洞库镜像站 …
旁站查询
旁站:是和目标网站在同一台服务器上的其它的网站。
旁注:通过入侵安全性较差的旁站,之后可以通过提权跨目录等手段拿到目标服务器的权限。
工具:http://s.tool.chinaz.com/same、WebRobot、御剑、明小子 …
C段查询
C段:每个IP有ABCD四个段,也就是说是D段1-255中的一台服务器,然后利用工具嗅探拿下该服务。比如192.168.3.0-255的设备都处于同一个c段。
C段入侵:目标ip为192.168.1.128,可以入侵192.168.1.*的任意一台机器,然后利用一些黑客工具嗅探获取在网络上传输的各种信息。
工具:Cain、Sniffit 、Snoop、Tcpdump、Dsniff 、北极熊扫描器…
脆弱系统(网络空间)
网络空间搜索引擎的作用就是将互联网上公开的网络资产收集和整理,以此方便人们进行查阅和利用。我在网络空间可发现了不少企业的脆弱系统,未授权访问、SQL注入、弱口令等等都是存在的。
网络空间搜索引擎:
1、Shodan
2、FOFA
3、Zoomeye
人文信息搜集
可以通过搜索引擎搜索关键字获取相关的贴文,再通过一些社交网站的关联性可以获得部分下属人员信息等,甚至于通过添加群聊等方式获取人员信息。