信息搜集
渗透测试中信息搜集是十分重要的一步,而一般获得的初始信息就是一个IP、域名,其他信息都需要自行搜集。
信息收集内容
- IP地址段
- 域名信息
- 邮件地址
- 文档图片数据
- 公司地址
- 公司组织架构
- 联系电话/传真号码
- 人员姓名/职务
- 目标系统使用的技术架构
- 公开的商业信息:
信息用途
- 用信息描述目标
- 发现
- 社会工程学攻击
- 物理缺口
DNS
域名解析是把域名指向网站空间IP,让人们通过注册的域名可以方便地访问到网站的一种服务。IP地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替IP地址标识站点地址。域名解析就是域名到IP地址的转换过程。域名的解析工作由DNS服务器完成。
域名解析也叫域名指向、服务器设置、域名配置以及反向IP登记等等。说得简单点就是将好记的域名解析成IP,服务由DNS服务器完成,是把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。
互联网中的地址是数字的IP地址,域名解析的作用主要就是为了便于记忆。
域名解析成IP地址:
-
域名和FQDN的区别
-
域名记录:A、C nmae、NS、MX、ptr
A:A (Address) 记录是用来指定主机名(或域名)对应的IP地址记录。
说明:用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置自己域名的二级域名。MX:用户可以将该域名下的邮件服务器指向到自己的mail server上,然后即可自行操作控制所有的邮箱设置。只需在线填写您服务器的主机名或主机IP地址,即可将域名下的邮件全部转到设定的相应的邮件服务器上。
CNAME:CNAME(别名记录)可以将注册的不同域名转到一个域名上去,别名记录设置的可以是一个域名的描述而不一定是IP地址。
本地如果有DNS的记录就会直接输出,如果没有就会向根域或其他底部的服务器请求。
**域名解析信息搜集最完美的结果是把一个域名下的所有注册的记录。 **
NSLookup
DNS信息收集一NSLOOKUP
使用方法
nslookup www .sina.com
server
type=a、mx、ns、any
nslookup -type=ns example.com 156. 154.70.22
反馈多台可响应的上级服务器(分流,缓解服务器压力)
注释:本地host可以增加域名缓存:
例如增加127.0.0.1 你乱写的域名
在网页或者ping,dnlookup都会从你增加的内容(解析域名存在优先级,最优先从hosts进行解析)进行搜寻使用。
DIG
DNS信息收集一DIG
功能与DNlookup类似,使用方法有些地方也差不多,但是功能更加强大。
使用方法:
dig @8.8.8.8 www sina.com mx //与nslookup差不多
dig www .sina.com any //开始出现差异
反向查询: dig +noall +answer -X 8.8.8.8 (控制不输出【noall】,但是仅输出answer【answer】,-x反向查询参数) //逐渐变态
bind版本信息: dig +noall +answer txt chaos VERSION.BIND @ns3.dnsv4.com(利用dig查看服务器的bind的版本信息,如果版本较低可能存在可以用的漏洞,从而获得服务器权限获得所有注册信息)
DNS追踪: dig +trace example .com
抓包比较递归查询、迭代查询过程的区别()
(bind的版本信息一般都会隐藏,因为这个信息对于大多数人来说都是无用的,一般都是黑客或者不轨的人员感兴趣。)
(查看是否被域名劫持了,使用trace查询:舍弃一部分递归查询,进行迭代查询从根域名开始查询)可以看到trace的时候先从13个点域的根域名服务器开始查询,拿到.com域的域名服务器的地址,之后去找.com的域名服务器,从.com的域名服务器中随机选了一个查询baidu.com的ns记录。
域名追踪当中的迭代查询和递归查询
通过抓包对比分析。首先展示dig命令显示出来的直观的结果。
- (上面的dig +trace的是迭代查询)
- (下面为递归查询)
抓包分析:
1:递归查询。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-3pDjF0WW-1584061129976)(.\pic1\11.png)]
很快,因为递归查询会先询问本地的DNS服务器,如果本地的DSN服务器存储了相关信息则会直接反馈。如果DNS 服务器本地没有存储查询DNS 信息,那么该服务器会询问其他服务器,并将返回的查询结果提交给客户机。
2:迭代查询
先从根域名服务器开始查询,获得上层的相关服务器的IP地址信息,如果有多个对这些都(随机顺序)进行查询,直到解析出A域名。其中A记录是IPV4的信息,AAAA记录是IPV6的信息。
HOST命令
kali自带,比较简单,和上面差不多。可以查看一个域名的主机记录等。
DNS区域传输
查询所有记录:
dig @ns 1.example .com example .com axfr
host -T -| sina.com 8.8.8.8
DNS字典爆破
在查询DNS区域传输中所有的主机子域信息时候,使用dig中的axfr全区域查询或者使用host命令查询的效果是一样的,但是大部分的DNS服务器设置都比较健全,不会轻易将DNS主机记录反馈给我们,这时候可以使用DNS爆破来获得DNS区域内所有的主机信息。
字典爆破方式去查询主机记录
DNS字典爆破
fierce -dnsserver 8.8.8.8 -dns sina.com.cn -wordlist a.txt
dnsdict6 -d4-t 16 -X sina.com
dnsenum -f dnsbig.txt -dnsserver 8.8.8.8 sina.com -0 sina.xml
dnsmap sina.com -W dns.txt
dnsrecon -d sina.com -lifetime 10 -t brt -D dnsbig.txt
dnsrecon -t std -d sina.com
只需要掌握一个工具就可以了,关键在于好的字典,一般工具中都会附带有一个字典,使用查询命令可以查看字典位置。例(其它查询命令也可以):
root@kali:~# dpkg -L fierce
/.
/usr
/usr/bin
/usr/bin/fierce
/usr/share
/usr/share/doc
/usr/share/doc/fierce
/usr/share/doc/fierce/changelog.Debian.gz
/usr/share/doc/fierce/copyright
/usr/share/fierce
/usr/share/fierce/hosts.txt
其中有一个txt,查看一些是不是字典。
root@kali:~# more /usr/share/fierce/hosts.txt
0
01
02
03
1
10
11
12
13
14
15
159
16
167
17
文件很长,但是翻到后面看到了WWW等类似的字符串,可以肯定这个就是用于DNS爆破的字典。使用该字典进行爆破
root@kali:~# fierce -dnsserver 8.8.8.8 -dns baidu.com -wordlist /usr/share/fierce/hosts.txt
DNS Servers for baidu.com:
ns4.baidu.com
ns7.baidu.com
ns3.baidu.com
dns.baidu.com
ns2.baidu.comTrying zone transfer first…
Unsuccessful in zone transfer (it was worth a shot)
Okay, trying the good old fashioned way… brute forceChecking for wildcard DNS…
** Found 93879697071.baidu.com at 223.82.248.117.
** High probability of wildcard DNS.
Now performing 2280 test(s)…
111.13.100.240 0.baidu.com
112.34.112.147 01.baidu.com
39.156.66.141 01.baidu.com
112.34.111.53 1.baidu.com
39.156.68.158 1.baidu.com
117.185.16.136 1.baidu.com
111.13.101.29 11.baidu.com
117.185.16.139 8.baidu.com
112.34.113.160 a.baidu.com
117.185.16.211 a.baidu.com
36.152.44.95 abc.baidu.com
36.152.44.96 abc.baidu.com
112.34.111.37 ac.baidu.com
183.232.231.209 ac.baidu.com
这里只进行了一会,没有将爆破完全进行下去,可以看到查出了很多本来是搜索不到的域名记录。
其他工具的使用方法差不多,但是有的工具不需要自己指定字典的路径会从程序自己的路径来读取字典,上面的例子是需要自己找出字典的路径的。大佬视频推荐使用dnsdict6以及它的默认字典(高效,字典好用)。
DNS注册信息
这部分信息的获取可以有利于后期的社会工程学的攻击以及物理攻击。
Whois
whois -h whois apnic .net 192.0. 43.10
可以用whois选择服务器针对的查询nic,也可以直接进入网站进入查询。
可以看到通过这个方式就获得了一些相关的信息。其中有域名注册是时间,续费时间,注册人的信息(电话,邮箱等)。可以通过这些信息来进行一些攻击,如:发送木马给该邮箱,或者进一步查询注册人在公司的信息职位等等。
搜索引擎
公司新闻动态
重要雇员信息
机密文档/网络拓扑
用户名密码
目标系统软硬件技术架构
–
SHODAN
专门用于搜索联网的设备、服务器的搜索引擎,通过爬虫人爬取互联网上的banner信息,来获得设备信息。
Banner: http、 ftp、 ssh、 telnet
https://www. shodan.io/
常见filter:
- net (192. 168.20.1)
- city
- country (CN、US)
- port (80、 21、22、23)
- OS
- Hostname (主机或域名)
- server
例如:
net:8.8.8.8
net:1.1.1.0/24 country:CN
网站很强大,一些喜欢用默认密码的设备可以很容易的就进入。
如果查到了那个具体的需要搜集信息的IP可以在该IP上搜寻到相关的服务或者设备。
200 OK cisco country.JP
user: admin pass: password
http://1.179.177.109-81/index.htm
linux upnp aytech
http://75.69 .59.49:8000
**功能太多强大不做更多的解释,大家使用的时候一定注意法律和道德底线,切忌违法行为 **
+含有
-不含有
“ ”完整内容
*谷歌的通配符
布尔逻辑:与或非:and,|,or,-”
… :(两个点号)表示一个数字范围,一般应用于日期、货币、尺寸、重量、高度等范围的搜索。用作范围时最好给一定的含义
() :括号分组,避免逻辑混乱
intitle:搜索网页标题中包含有特定字符的网页。例如输入“intitle: cbi”,这样网页标题中带有cbi的网页都会被搜索出来。
inurl:搜索包含有特定字符的URL。例如输入“inurl:cbi”,则可以找到带有cbi字符的URL。
intext:搜索网页正文内容中的指定字符,例如输入“intext:cbi”。这个语法类似我们平时在某些网站中使用的“文章内容搜索”功能。link:可以寻找含有某个链接的网页
related:查询结构内容相似的内容
Filetype:搜索指定类型的文件。例如输入“filetype:cbi”,将返回所有以cbi结尾的文件URL。
Site:找到与指定网站有联系的URL。例如输入“Site:family.chinaok.com”。所有和这个网站有联系的URL都会被显示。define: 查询单词或者术语的定义
info:用来显示与某链接相关的一系列搜索,提供cache、link、related和完全包含该链接的网页的功能。如:info:www.baidu.com
这些就是Google的常用语法,也是Google Hack的必用语法。虽然这只是Google语法中很小的部分,但是合理使用这些语法将产生意想不到的效果。
其他例子:
inur:" level/15/exec/ -/show
intitle:" netbotz appliance" “ok”
inurl /admin/login.php
inurt:qq.txt
filetypexs “username | password”
inurl:ftp’ 'password" filetype:xls site:baidu.com
lnurl:Service.pwdhttp://exploit db.com/google dorks ###GoogleHacking语法参考库
混合搜索:
可以用来查找可以未经授权就可以访问的phpMyAdmin的后台页面:
inurl:.php? intext:CHARACTER_SETS,COLLATIONS, ?intitle:phpmyadmin
查找别人留下的webshell:
inurl:diy.asp
搜索可能存在漏洞的点:(可以达到批量注入的效果)
asp?id= asp?newid= asp?page= asp?article=
查找特定网站的注入漏洞:
site:pku.edu.cn inurl:php?id=
YANDEX
号称世界第四大搜索引擎。
俄罗斯搜索引擎,可能能与google互补。
theharvester
theHarvester是一个社会工程学工具,它通过搜索引擎、PGP服务器以及SHODAN数据库收集用户的email,子域名,主机,雇员名,开放端口和banner信息。
root@kali:~# theharvester -h
*******************************************************************
* *
* | |_| |__ ___ /\ /\__ _ _ ____ _____ ___| |_ ___ _ __ *
* | __| '_ \ / _ \ / /_/ / _` | '__\ \ / / _ \/ __| __/ _ \ '__| *
* | |_| | | | __/ / __ / (_| | | \ V / __/\__ \ || __/ | *
* \__|_| |_|\___| \/ /_/ \__,_|_| \_/ \___||___/\__\___|_| *
* *
* TheHarvester Ver. 2.6 *
* Coded by Christian Martorella *
* Edge-Security Research *
* cmartorella@edge-security.com *
*******************************************************************
Usage: theharvester options
-d: Domain to search or company name
-b: data source: google, googleCSE, bing, bingapi, pgp #指定搜索引擎或社交媒体
linkedin, google-profiles, people123, jigsaw,
twitter, googleplus, all
-s: Start in result number X (default: 0)
-v: Verify host name via dns resolution and search for virtual hosts
-f: Save the results into an HTML and XML file #保存文件
-n: Perform a DNS reverse query on all ranges discovered
-c: Perform a DNS brute force for the domain name
-t: Perform a DNS TLD expansion discovery
-e: Use this DNS server
-l: Limit the number of results to work with(bing goes from 50 to 50 results,#限制搜索结果数,默认每次并发为50
-h: use SHODAN database to query discovered hosts
google 100 to 100, and pgp doesn't use this option)
<span style="color:#ff0000;">Examples: #例子</span>
theharvester -d microsoft.com -l 500 -b google
theharvester -d microsoft.com -b pgp
theharvester -d microsoft -l 200 -b linkedin
theharvester -d apple.com -b googleCSE -l 500 -s 300
范例:theharvester -d sina.com -l 300 -b bing
metagoofil
metagoofil是一款收集文档信息的工具,可以从目标域的可用文档中收集信息。利用的搜索引擎是google。其支持的格式如下:.doc .odt .xls .ods .ppt .odp .PDF
metagoofil -d 目标域名 -l 10 -f all -o a.html -t a
以上介绍了通过DNS(NSLookup、DIG、HOST、DNS区域传输、DNS字典爆破、DNS注册信息)、搜索引擎(SHODAN、google、YANDEX、theharvester、metagoofil)进行信息搜集,其中包含了计算机网络的信息以及基本的搜索知识,无论是否渗透需要都是新时代IT人需要掌握的基本技能。