信息收集
0x01域名信息收集
1.域名介绍
域名(Domain name)是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输是标识计算机的电子方位。
- 浏览网站的过程:
个人电脑(浏览器)——> DNS服务器——>个人电脑(获得ip)——> 访问目标网站
whois用来查询域名的IP以及所有者等信息的传输协议。
不同域名后缀的whois信息需要到不同的whois数据库查询。
whois协议:向服务器TCP端口43建立一个连接,发送查询关键字并加上回车换行,然后接受服务器的查询结果。
3.Whois查询
查询IP,注册者的邮箱、电话、传真等信息
- Web接口查询(站长之家)
- 命令行下查询
whois 51cto.com
ICP备案:Internet Content Provider网络内容提供商
《互联网信息服务管理办法》支出互联网信息服务分为经营性和非经营性两类。国家对经营性互联网服务实行许可制度;对非经营性互联网服务实行备案制度。未取得许可或者未履行备案手续的,不得从事互联网信息服务。在中华人民共和国境内提供非经营性互联网信息服务,应当依法履行备案手续。未经国家机关单位许可备案,不得在中华人民共和国境内从事非经营性互联网信息服务。
ICP备案查询方法:
- web接口查询:
http://www.beianbeian.com
http://www.tianyancha.com
顶级域名:.com、cn、org、net
子域名,凡顶级域名前加前缀的都是该顶级域名的子域名。
2. 挖掘子域名重要性
子域名是某个主域的二级域名或者多级域名。
在防御措施严密情况下无法直接拿下主域,那么就可以采用迂回战术拿下子域名,然后无限靠近主域名。
3.子域名挖掘方法
- . 子域名挖掘工具:Maltego CE、wydomain、subDomainsBrute、dnsmaper、Layer子域名挖掘机
- wydomain可以在github上下载,根据使用指南进行安装配置,将wydomain.py和dnsburte.py增加执行权限后,利用python2运行。
- Maltego CE注册有点麻烦,我试了一下,没有连接到服务器,以后专门学习的时候在详说吧。
- 搜索引擎挖掘:site:sina.com
- 第三方网站:站长之家、crt.sh、censys.io、http://phpinfo.me/domain、http://dns.aiazhan.com
- 针对某个具体SRC进行挖洞,可以收集对应子域名,批量探测。
- 针对补天:对应没有指定厂商的刷洞,可以根据某些具体漏洞,通过URL采集获取目标,编写探测脚本,批量探测,高效刷洞。
- 挖洞高峰期:报出新漏洞时
CMS(内容管理系统),又称整站系统或文章系统。用于网站内容管理。用户只需要下载对应的CMS软件包,部署搭建,就可以直接利用CMS,简单方便。
常见CMS:dedecms(织梦)、Discuz、Phpcms等
CMS识别工具:
- 在线工具:
http://whatweb.bugscaner.com/look
http://www.yunsee.cn/finger.html - 本地工具
御剑web指纹识别程序
大禹CMS识别程序
https://bug.shuimugan.com(乌云漏洞库的,不能用了)
3.敏感信息探测
针对目录Web目录结构和敏感隐藏文件探测是非常重要的。
在探测过程中很有可能会探测出后台页面、上传页面、数据库文件、甚至是网站源代码文件压缩包等。
探测工具:
1.御剑后台扫描工具
2.WWWScan命令行工具
3.dirb命令行工具
4.dirbuster命令行工具
4.wordPress探测
WordPress中文网:https://cn.wordpress.org
WordPress是使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把WordPress当做一个内容管理系统来使用。
Kali Linux:wpscan --url https://cn.wordpress.org
0x04 端口信息 1.端口介绍
每个端口对应一个服务
范围0——65535
2.端口信息收集
1.nmap工具
2.masscan工具
3.在线网站探测(不能扫描本地,不留痕迹,可以扫描远程服务器)
3.端口攻击
针对不同的端口具有不同的攻击方法
端口 | 端口说明 | 攻击方法 |
---|---|---|
22 | SSH | 爆破、SSH隧道及内网代理转发、文件传输 |
23 | Telnet远程连接 | 爆破、嗅探、弱口令 |
3389 | RDP远程桌面 | shift后门、爆破 |
5900 | VNC远程连接 | 弱口令、RCE |
5632 | PcAnywhere远程连接 | 嗅探、代码执行 |
1、关闭不必要的端口
2、对重要业务的服务端口设置防火墙
3、加强员工的信息安全意识,经常性更换用户密码
4、经常更新软件、打补丁
0x05 敏感信息收集 1.Google Hack语法
关键字 | 含义 |
---|---|
site | 指定搜索域名,例如:site:baidu.com |
inurl | 指定URL中是否存在某些关键字,例如:inurl:php?id= |
intext | 指定网页中是否存在某些关键字,例如:intext:网站管理 |
filetype | 指定搜索文件类型,例如:filetype:txt |
intitle | 指定网页标题是否存在某些关键字,例如:intitle:后台管理 |
link | 指定网页链接,例如:link:baidu.com指定与百度做了个外链的站点 |
info | 指定搜索网页信息,例如:info:baidu.com |
https://www.exploit-db.com/google-hacking-database
2.HTTP响应收集Server信息
通过HTTP或HTTPS与目标站点进行通信中,目标响应的报文中Server头和X-Powered-By头会暴露目标服务器和使用的编程语言信息,通过这些信息可以有针对性的利用漏洞。
获取HTTP响应的方法:
- 利用工具。如:浏览器审计工具、Burpsuite等代理截断工具
- 编写python脚本 requests库 参考链接
- Github之邮件配置信息泄露:
site:github.com smtp
site:github.com smtp@qq.com - Github之数据库信息泄露:
site:github.com sa password
site:github.com root password
site:github.com User ID=‘sa’; Password - Github之svn信息泄露:
site:github.com svn
site:github.com svn username - Github之综合信息泄露
site:github.com password
site:github.com ftp ftppassword
site:github.com 密码
site:github.com 内部
CDN的全称是Content Delivery Network,即内容分发网络
根据用户所在地区来确定访问的缓存服务器,只有在需要交互时才请求真实服务器。否则访问本地区的告诉缓存器即可。
2. 判断CDN存在
通过ping判断是否存在CDN
3. 绕过CDN
如果目标没有使用CDN,我们可以直接利用Ping获得IP地址,或者利用在线网站:http://www.ip138.com
如果目标是用CDN,需要绕过CDN来获取真实IP地址
- 内部邮箱源,收集到内部邮箱服务器IP地址
- 网站phpinfo文件 phpinfo.php
- 分站ip地址,查询子域名 CDN很贵,很有可能分站就不再使用CDN
- 国外访问 https://asm.ca.com/en/ping.php
- 查询域名解析记录 https://viewdns.php
利用IP地址对WEB站点进行访问,如果正常表名是真实IP地址。否则不为真。
有logo,有内容
0x07 shodan搜索引擎 1. 信息收集
服务器系统
数据库系统
中间件系统
应用程序系统
边界设备
系统管理员的信息
2. 信息收集方式
- 主动信息收集:与目标进行交互,在交互过程中对信息进行收集,如nmap等
- 被动信息收集:通过第三方引擎与目标交互,或不与目标交互查询具体数据库。如google hacking,shodan
shodan搜索引擎可直接进入互联网的背后通道,一刻不停地寻找着所有和互联网关联的服务器、摄像头、打印机、路由器等等
www.shodan.io
4. shodan命令行搜索
- 安装:easy install shodan
- 初始化:shodan init [key]
- 启动与查找具体服务数量:shodan count Apache
- shodan search microsoft iis 6.0
shodan host ip
6. shodan获取账号信息(vip)
shodan info
7.shodan获取自身外部IP地址
shodan myip
8. shodan检测是否有蜜罐
【【HACK】第二阶段 web安全篇1——信息收集】shodan honeyscore ip
9. shodan与python结合
- python-shodan 连接API Key
import shodan
SHODAN_API_KEY = "****"
api = shodan.Shodan(SHODAN_API_KEY)
- Python-shodan search方法
result = api.search('apche')
print(result['total'])
# total参考:https://developer.shodan.io/api
- Python-shodan IP查询
result = shodan.host('target_ip')
print(result['country_name'])
- Python-shodan 基本查询脚本
import shodan
import sysAPI_KEY = "Your api key"if len(sys.argv) == 1:
print('Usage: %s ' % sys.argv[0])
sys.exit(1)try:
api = shodan.Shodan(API_KEY) query = ' '.join(sys.argv[1:])
result = api.search(query) for service in result['matches']:
print(service['ip_str'])except Exception as e:
print('Error: %s' % e)
sys.exit(1)