目录
信息收集对于渗透测试前期来说是非常重要的。正所谓,知己知彼百战不殆,信息收集是渗透测试成功的保障,只有我们掌握了目标网站或目标主机足够多的信息之后,才能更好地进行渗透测试。
信息收集的方式可以分为两种:主动和被动。
主动信息收集
通过直接访问网站,在网站上进行操作,对网站进行扫描等。这种是有网络流量经过目标服务器的信息收集方式。
被动信息收集
基于公开的渠道,比如搜索引擎等,在不与目标系统直接交互的情况下获取信息,并且尽量避免留下痕迹。
这两种方式各有优势,主动信息收集你能获取更多的信息,但是目痕迹较为明显,容易被溯源。被动信息收集因为不是针对网站进行特定的扫描,所以一般来说收集的信息会相对较少,但是你的行动并不会被目标主机发现。所以我们要灵活运用不同的收集方式,才能保证信息收集的完整性。
服务器常用的操作系统基本上只有两种:windows和linux,不过在企业服务器中linux系统占大多数,常用的判断方法有三种
ping 判断,windows的TTL值一般为128,Linux则为64。所以TTL大于100的一般为windows,几十的一般为linux,但是,通过TTL值来判断服务器类型也不是百分之百准确的,有部分windows服务器的TTL值也是几十,而且有的服务器禁止ping,无法通过该方式探测
nmap扫描,可以通过-O
或者-A
参数来扫描操作系统,优点就是可以扫描到具体的操作系统版本,缺点就是扫描痕迹明显,容易被发现
网站常用的web服务器有:Apache、Nginx、Tomcat 、 IIS。知道了web服务器是哪种类型后,我们还要探测web服务器具体的版本。比如Ngnix版本<0.83会有解析漏洞 ,IIS6.0会有文件名解析漏洞、IIS7.0会有畸形解析漏洞等。不同的web服务器版本,存在着不同漏洞。
F12查看响应头Server字段
whatweb
WhatWeb - Next generation web scanner.
wappalyzer插件
Find out what websites are built with - Wappalyzer
网站常见的脚本类型:php 、Jsp 、Asp 、Aspx 、python。
根据网站URL来判断
利用google判断,site:xxx filetype:php
利用wappalyzer插件插件来判断
常见的数据库类型
常见搭配:
- ASP 和 ASPX:ACCESS、SQL Server + win
- PHP:MySQL + win/linux、PostgreSQL + linux
- JSP:Oracle、MySQL + win/linux
常见CMS:dedecms(织梦)、Discuz、phpcms等。
Ehole
Glass
dirsearch: https://github.com/maurosoria/dirsearch
御剑后台扫描工具 https://03w43c.lanzous.com/ivPY5ohubda 密码:gw3m
7kbscan https://github.com/7kbstorm/7kbscan-WebPathBrute
dirmap: https://github.com/H4ckForJob/dirmap
.git泄露 https://github.com/lijiejie/GitHack
.svn泄露 https://github.com/admintony/svnExploit
js文件: https://github.com/Threezh1/JSFinder
Web应用防护系统(也称为:网站应用级入侵防御系统。英文:Web Application Firewall,简称: WAF)。Web应用防火墙是通过执行一系列针对HTTP/HTTPS的安全策略来专门为Web应用提供保护的一款产品。
功能:
识别方式:
wafw00f https://github.com/EnableSecurity/wafw00f
whatwaf https://github.com/Ekultek/WhatWaf
nmap 识别waf
shell
nmap -p 80,443 --script http-waf-detect ip nmap -p 80,443 --script http-waf-fingerprint ip
看图识waf,常见WAF拦截页面总结
干货 | 常见WAF拦截页面总结
域名(英语:Domain Name),又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。
由于IP地址具有不方便记忆并且不能显示地址组织的名称和性质等缺点,人们设计出了域名,并通过网域名称系统(DNS,Domain Name System)来将域名和IP地址相互映射,使人更方便地访问互联网,而不用去记住能够被机器直接读取的IP地址数串。
whois是用来查询域名的IP以及所有者等信息的传输协议。就是一个用来查询域名是否被注册,以及注册域名的详细信息的数据库(如:域名所有人、域名注册商),一般情况下对于中小型网站域名注册者就是网站管理员。通过域名Whois服务器查询,可以查询域名归属者联系方式,以及注册和到期时间。
Whois协议。基本内容是,先向服务器的TCP端口43建立一个连接发送查询关键字并加上回车换行,然后接收服务器的查询结果。
whois查询方式:
web接口查询
whois命令行查询
whois baidu.com
ICP备案介绍:Internet Content Provider 网络内容提供商。国家对经营性互联网信息服务实行许可制度;对非经营性互联网信息服务实行备案制度。
查询方式:
先通过whois获取注册人和邮箱,再通过注册人和邮箱反查域名。
缺点:很多公司都是DNS解析的运行商注册的,查到的是运营商代替个人和公司注册的网站信息。
子域名指二级域名,二级域名是顶级域名(一级域名)的下一级。
比如:mail.baidu.com和bbs.baidu.com是baidu.com的子域,而baidu.com则是顶级域名.com的子域。
搜索引擎:google hacking
avrasm
site:hetianlab.com
第三方web接口查询
网络空间安全搜索引擎
Fofa: 网络空间测绘,网络空间安全搜索引擎,网络空间搜索引擎,安全态势感知 - FOFA网络空间测绘系统
ini
domain="baidu.com"
Zoomeye: ZoomEye - Cyberspace Search Engine
avrasm
site:"baidu.com"
shodan: Shodan Search Engine
vim
hostname:baidu.com
ssl证书查询
工具扫描
CDN即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
方法一:
使用各种多地 ping 的服务,查看对应 IP 地址是否唯一,如果不唯一多半是使用了CDN, 多地 Ping 网站有:
方法二:
使用 nslookup 进行检测,原理同上,如果返回域名解析对应多个 IP 地址多半是使用了 CDN
国外访问
CA App Synthetic Monitor
因为有些网站设置CDN可能没有把国外的访问包含进去,所以可以这么绕过。
查询子域名的IP
IP批量查询 - 站长工具
CDN流量收费高,所以很多站长可能只会对主站或者流量大的子站点做了CDN,而很多小站、子站点又跟主站在同一台服务器或者同一个C段内,此时,就可以通过查询子域名对应的IP来辅助查找网站的真实IP
phpinfo文件
查看SERVER_ADDR
Mx记录邮件服务
网络空间搜索引擎
Home - Censys
stylus
443.https.tls.certificate.parsed.extensions.subject_alt_name.dns_names:hetianlab.com
查询历史DNS记录
详细绕过方式可以参考文章https://www.cnblogs.com/tomyyyyy/p/13699134.html
如果渗透目标为虚拟主机,那么通过IP反查到的域名信息很有价值,因为一台物理服务器上面可能运行多个虚拟主机。这些虚拟主机有不同的域名,但通常公用一个IP地址。如果你知道有哪些网站共用这台服务器, 就有可能通过此台服务器上其他网站的漏洞获取服务器控制权,进而迂回获取渗透目标的权限,这种技术也称为“旁注”。
Nmap
apache
nmap -sP www.XXX.com/24 nmap -sP 192.168.1.*
https://github.com/se55i0n/Cwebscanner
通过物联网搜索引擎搜索c段ip信息
在Internet上,各主机间通过TCP/IP协议发送和接收数据包,各个数据包根据其目的主机的IP地址来进行互联网络中的路由选择,从而顺利地将数据包传送给目标主机。
根据提供的服务类型不同,端口可分为以下两种:
FTP:文件传输协议,使用TCP端口20、21,20用于传输数据,21用于传输控制信息。
SSH:(secure shell)是目前较可靠,专为远程登陆会话和其他网络服务提供安全性的协议。
超文本传输协议(HTTP)开放的端口,主要用于万维网传输信息的协议。
139用于提供windows文件和打印机共享及UNIX中的Samba服务。
445用于提供windows文件和打印机共享。
3306是mysql数据库默认的监听端口
3389是windows远程桌面服务默认监听的端口
开源的可基于内存的可持久化的日志型数据库。
Weblogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用,网络应用和数据库应用的Java应用服务器。
Tomcat服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP程序的首选