【HACK】第二阶段 web安全篇1——信息收集

信息收集 0x01域名信息收集 1.域名介绍
域名(Domain name)是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输是标识计算机的电子方位。

  • 浏览网站的过程:
    个人电脑(浏览器)——> DNS服务器——>个人电脑(获得ip)——> 访问目标网站
2.Whois介绍
whois用来查询域名的IP以及所有者等信息的传输协议。
不同域名后缀的whois信息需要到不同的whois数据库查询。
whois协议:向服务器TCP端口43建立一个连接,发送查询关键字并加上回车换行,然后接受服务器的查询结果。
3.Whois查询
查询IP,注册者的邮箱、电话、传真等信息
  • Web接口查询(站长之家)
  • 命令行下查询
    whois 51cto.com
4.备案信息查询
ICP备案:Internet Content Provider网络内容提供商
《互联网信息服务管理办法》支出互联网信息服务分为经营性和非经营性两类。国家对经营性互联网服务实行许可制度;对非经营性互联网服务实行备案制度。未取得许可或者未履行备案手续的,不得从事互联网信息服务。在中华人民共和国境内提供非经营性互联网信息服务,应当依法履行备案手续。未经国家机关单位许可备案,不得在中华人民共和国境内从事非经营性互联网信息服务。
ICP备案查询方法:
  • web接口查询:
    http://www.beianbeian.com
    http://www.tianyancha.com
0x02 子域名信息收集 1.子域名介绍
顶级域名:.com、cn、org、net
子域名,凡顶级域名前加前缀的都是该顶级域名的子域名。
2. 挖掘子域名重要性
子域名是某个主域的二级域名或者多级域名。
在防御措施严密情况下无法直接拿下主域,那么就可以采用迂回战术拿下子域名,然后无限靠近主域名。
3.子域名挖掘方法
  • . 子域名挖掘工具:Maltego CE、wydomain、subDomainsBrute、dnsmaper、Layer子域名挖掘机
  1. wydomain可以在github上下载,根据使用指南进行安装配置,将wydomain.py和dnsburte.py增加执行权限后,利用python2运行。
  2. Maltego CE注册有点麻烦,我试了一下,没有连接到服务器,以后专门学习的时候在详说吧。
  • 搜索引擎挖掘:site:sina.com
  • 第三方网站:站长之家、crt.sh、censys.io、http://phpinfo.me/domain、http://dns.aiazhan.com
4. 刷洞思路
  • 针对某个具体SRC进行挖洞,可以收集对应子域名,批量探测。
  • 针对补天:对应没有指定厂商的刷洞,可以根据某些具体漏洞,通过URL采集获取目标,编写探测脚本,批量探测,高效刷洞。
  • 挖洞高峰期:报出新漏洞时
0x03 CMS信息收集 1.CMS指纹识别
CMS(内容管理系统),又称整站系统或文章系统。用于网站内容管理。用户只需要下载对应的CMS软件包,部署搭建,就可以直接利用CMS,简单方便。
常见CMS:dedecms(织梦)、Discuz、Phpcms等
CMS识别工具:
  1. 在线工具:
    http://whatweb.bugscaner.com/look
    http://www.yunsee.cn/finger.html
  2. 本地工具
    御剑web指纹识别程序
    大禹CMS识别程序
2.针对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远程连接 嗅探、代码执行
4.防御措施
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
googe hacking数据库:
https://www.exploit-db.com/google-hacking-database
2.HTTP响应收集Server信息
通过HTTP或HTTPS与目标站点进行通信中,目标响应的报文中Server头和X-Powered-By头会暴露目标服务器和使用的编程语言信息,通过这些信息可以有针对性的利用漏洞。
获取HTTP响应的方法:
  1. 利用工具。如:浏览器审计工具、Burpsuite等代理截断工具
  2. 编写python脚本 requests库 参考链接
3.github信息泄露
  1. Github之邮件配置信息泄露:
    site:github.com smtp
    site:github.com smtp@qq.com
  2. Github之数据库信息泄露:
    site:github.com sa password
    site:github.com root password
    site:github.com User ID=‘sa’; Password
  3. Github之svn信息泄露:
    site:github.com svn
    site:github.com svn username
  4. Github之综合信息泄露
    site:github.com password
    site:github.com ftp ftppassword
    site:github.com 密码
    site:github.com 内部
0x06 CDN 1. CDN介绍
CDN的全称是Content Delivery Network,即内容分发网络
根据用户所在地区来确定访问的缓存服务器,只有在需要交互时才请求真实服务器。否则访问本地区的告诉缓存器即可。
2. 判断CDN存在
通过ping判断是否存在CDN
3. 绕过CDN
如果目标没有使用CDN,我们可以直接利用Ping获得IP地址,或者利用在线网站:http://www.ip138.com
如果目标是用CDN,需要绕过CDN来获取真实IP地址
  1. 内部邮箱源,收集到内部邮箱服务器IP地址
  2. 网站phpinfo文件 phpinfo.php
  3. 分站ip地址,查询子域名 CDN很贵,很有可能分站就不再使用CDN
  4. 国外访问 https://asm.ca.com/en/ping.php
  5. 查询域名解析记录 https://viewdns.php
4. 验证IP地址真实性
利用IP地址对WEB站点进行访问,如果正常表名是真实IP地址。否则不为真。
有logo,有内容
0x07 shodan搜索引擎 1. 信息收集
服务器系统
数据库系统
中间件系统
应用程序系统
边界设备
系统管理员的信息
2. 信息收集方式
  • 主动信息收集:与目标进行交互,在交互过程中对信息进行收集,如nmap等
  • 被动信息收集:通过第三方引擎与目标交互,或不与目标交互查询具体数据库。如google hacking,shodan
3. shodan搜索引擎
shodan搜索引擎可直接进入互联网的背后通道,一刻不停地寻找着所有和互联网关联的服务器、摄像头、打印机、路由器等等
www.shodan.io
4. shodan命令行搜索
  • 安装:easy install shodan
  • 初始化:shodan init [key]
  • 启动与查找具体服务数量:shodan count Apache
  • shodan search microsoft iis 6.0
5.shodan获取指定ip地址信息
shodan host ip
6. shodan获取账号信息(vip)
shodan info
7.shodan获取自身外部IP地址
shodan myip
8. shodan检测是否有蜜罐
【【HACK】第二阶段 web安全篇1——信息收集】shodan honeyscore ip
9. shodan与python结合
  1. python-shodan 连接API Key
import shodan SHODAN_API_KEY = "****" api = shodan.Shodan(SHODAN_API_KEY)

  1. Python-shodan search方法
result = api.search('apche') print(result['total']) # total参考:https://developer.shodan.io/api

  1. Python-shodan IP查询
result = shodan.host('target_ip') print(result['country_name'])

  1. 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)

    推荐阅读