文章目录
- 前期信息收集
- 信息收集的分类
- 信息收集的内容
- 域名信息收集
- Whois
- 备案信息
- whois反查
- SSL证书查询
- 域名收集工具
- IP收集
- CDN信息收集
- CDN判断
- CDN绕过
- 端口信息收集
- 常见端口介绍
- FTP-21
- SSH-22
- WWW-80
- NetBlOSSessionService-139/445
- MySQL-3306
- RDP-3389
- Redis-6379
- Tomcat-8080
- 端口扫描
- NMAP
- 操作系统收集
- 敏感文件收集
- Github泄露
- .git泄露
- .svn泄露
- 目录收集
- 网站WAF识别
前期信息收集
- 信息收集是指通过各种方式获取所需要的信息,以便后续更好地进行的渗透。比如目标站点IP、中间件、脚本语言、端口、邮箱等等。信息收集包含资产收集但不限于资产收集。
- 信息收集是渗透成功的保障。
信息收集的分类
- 按照收集方式进行划分,信息收集可以分为主动收集和被动收集。
- 主动收集:通过直接访问网站在网站上进行操作、对网站进行扫描等,这种是有网络流量经过目标服务器的信息收集方式。
- 被动收集:基于公开的渠道,比如搜索引擎等,在不与目标系统直接交互的情况下获取信息,并且尽量避免留下痕迹。
信息收集的内容
- 需要收集的信息包括:域名信息(whois、备案信息、子域名)、服务器信息(端口、服务、真实IP)、网站信息(网站架构、操作系统、中间件、数据库、变成语言、指纹信息、WAF、敏感信息、敏感文件、源码泄露)、管理员信息(姓名、职务、生日、联系电话、邮件地址)。
域名信息收集
- 域名(Domain Name),简称域名、网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。
- DNS(域名系统,DomainName System)是互联网的一项服务。它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网。
顶级域名 | 二级域名 | 三级域名 |
---|---|---|
.com | yuan.com | www.yuan.com |
Whois
- Whois是用来查询域名IP和所有者等详细信息的数据库。
- 推荐的Whois网址:https://www.whoiscx.com/、https://who.is/、https://www.whois.com/。
备案信息
- 备案号是网站是否合法注册经营的标志,可以用网页的备案号反查出该公司旗下的资产。
- web查询接口:https://icplishi.com/、https://beian.miit.gov.cn/#/Integrated/index、https://beian.mps.gov.cn/#/query/webSearch。
whois反查
- 通过注册人、注册人邮箱、注册人手机反查whois信息,先通过whois获取注册人和邮箱,再通过注册人和邮箱反查域名。
- 缺点是很多公司都是DNS解析的运营商注册的,查到的是运营商代替个人和公司注册的网站信息。
- web查询接口:http://whois.4.cn/、https://whois.aizhan.com/。
SSL证书查询
- https://crt.sh/
域名收集工具
- SubFinder + KSubdomain + HttpX
- SubFinder:用来查询域名的子域名信息的工具,使用很多国外安全网站的api接口进行自动化搜索子域名信息。
- HttpX:一款运行速度极快的多功能HTTP安全工具,它可以使用retryablehttp库来运行多种网络探针,并使用了多线程机制来维持运行的稳定性和结果的准确性。
- kubdomain:一款基于无状态子域名爆破工具,支持在Windows/Linux/Mac上使用,它会很快的进行DNS爆破,在Mac和Windows上理论最大发包速度在30w/s,linux上为160w/s的速度。
IP收集
- IP反查域名https://tool.chinaz.com/same、https://www.dnsgrep.cn/
- 如果渗透目标为虚拟主机,那么通过IP反查到的域名信息很有价值,因为一台物理服务器上面可能运行多个虚拟主机。这些虚拟主机有不同的域名,但通常共用一个IP地址。如果你知道有哪些网站共用这台服务器,就有可能通过此台服务器上其他网站的漏洞获取服务器控制权,进而迁回获取渗透目标的权限,这种技术称为"旁注”。
- 域名查询ip:https://ip.chinaz.com/、https://ipchaxun.com/
- 知道一个站点的域名需要得到它的IP以便之后获取端口信息或扫描等后续工作。
- 查找与目标服务器IP处于同一个C段的服务器IP。
nmap -sP www.xxX.com/24
nmap -sP 192.168.1.*
CDN信息收集
- CDN即内容分发网络。CDN是构建在网络之上的内容分发网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率。
CDN判断
- 多地ping:用各种多地ping的服务,查看对应IP地址是否唯一,可以用于判断网站是否使用CDN服务。工具网站:https://ping.chinaz.com/、http://www.webkaka.com/Ping.aspx
- 国外访问:有些网站设置CDN可能没有把国外的访问包含进去,所以可以通过国外访问绕过CDN。
CDN绕过
- CDN绕过:CDN 流量收费高,所以很多站长可能只会对主站或者流量大的子站点做CDN,而很多小站子站点又跟主站在同一台服务器或者同一个C段内,此时就可以通过查询子域名对应的IP来辅助查找网站的真实IP。
1.查询子域名IP。工具网站:https://ip.tool.chinaz.com/ipbatch
- MX记录邮件服务:MX记录是一种常见的查找IP的方式。如果网站在与web相同的服务器和IP上托管自己的邮件服务器,那么原始服务器IP将在MX记录中。
- 查询历史DNS记录:查看IP与域名绑定的历史记录,可能会存在使用CDN前的记录。域名注册完成后首先需要做域名解析,域名解析就是把域名指向网站所在服务器的IP,让人们通过注册的域名可以访问到网站。工具网址:https://viewdns.info/iphistory/
- 域名解析就是域名到IP地址的转换过程,域名的解析工作由DNS服务器完成。DNS服务器会把域名解析到一个IP地址,然后在此IP地址的主机上将一个子目录与域名绑定。域名解析时会添加解析记录,这些记录有:A记录、AAAA记录、CNAME记录、MX记录、NS记录、TXT记录。
-
A记录 A(Address)记录是用来指定主机名(或域名)对应的IP地址记录。用户可以将该域名下的网站服务器指向到自己的web server上。同时也可以设置域名的子域名。简单的说,A记录是指定域名对应的IP地址。
-
NS记录 NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。 注册域名时,总有默认的DNS服务器,每个注册的域名都是由一个DNS域名服务器来进行解析的,DNS服务器NS记录地址一般以以下的形式出现: ns1.domain.com、ns2.domain.com等。 简单的说,NS记录是指定由哪个DNS服务器解析你的域名。
-
MX记录 MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器。例如,当Internet上的某用户要发一封信给 user@mydomain.com 时,该用户的邮件系统通过DNS查找mydomain.com这个域名的MX记录,如果MX记录存在, 用户计算机就将邮件发送到MX记录所指定的邮件服务器上。
-
CNAME记录 CNAME(Canonical Name )别名记录,允许将多个名字映射到同一台计算机。通常用于同时提供WWW和MAIL服务的计算机。例如,有一台计算机名为 “host.mydomain.com”(A记录),它同时提供WWW和MAIL服务,为了便于用户访问服务。可以为该计算机设置两个别名(CNAME):WWW和MAIL, 这两个别名的全称就“www.mydomain.com”和“mail.mydomain.com”,实际上他们都指向 “host.mydomain.com”。
-
TXT记录 TXT记录,一般指某个主机名或域名的说明,如:admin IN TXT “管理员, 电话:XXXXXXXXXXX”,mail IN TXT “邮件主机,存放在xxx , 管理人:AAA”,Jim IN TXT “contact: abc@mailserver.com”,也就是您可以设置 TXT 内容以便使别人联系到您。 TXT的应用之一,SPF(Sender Policy Framework)反垃圾邮件。
端口信息收集
- 协议端口,根据提供服务类型的不同,端口可分为以下两种:
- TCP端口:TCP是一种面向连接的可靠的传输层通信协议
- UDP端口:UDP是一种无连接的不可靠的传输层协议
- TCP协议和UDP协议是独立的,因此端口号也互相独立。TCP:给目标主机发送信息之后,通过返回的应答确认信息是否到达;UDP:给目标主机放信息之后,不会去确认信息是否到达。
- 端口类型
- 周知端口:众所周知的端口号,范围:0-1023,如80端口是www服务。
- 动态端口:一般不固定分配某种服务,范围:49152-65535。
- 注册端口:范围:1024-49151,用于分配给用户进程或程序。
- 渗透端口:https://www.cnblogs.com/bmjoker/p/8833316.html
常见端口介绍
FTP-21
- FTP:文件传输协议,使用TCP端口20、21。20用于传输数据,21用于传输控制信息。
- ftp基础爆破:owasp的Bruter,hydra以及msf中的ftp爆破模块。
- ftp匿名访问:用户名:anonymous 密码:为空或者任意邮箱。
- sftpd后门:vsftpd 2到2.3.4版本存在后门漏洞,通过该漏洞获取root权限。
- 嗅探:ftp使用明文传输,使用Cain进行渗透。(但是嗅探需要在局域网并需要欺骗或监听网关)。
SSH-22
- SSH:(secure shell)是目前较可靠,专为远程登录会话和其他网络服务提供安全性的协议。
- 弱口令,可使用工具hydra,msf中的ssh爆破模块。
- SSH后门,参考文章渗透基础-SSH后门分析总结。
WWW-80
80为超文本传输协议(HTTP)开放的端口,主要用于万维网传输信息的协议
- 中间件漏洞,如lls、apache、nginx等
- 80端口一般通过web应用程序的常见漏洞进行攻击
NetBlOSSessionService-139/445
- 139用于提供windows文件和打印机共享及UNIX中的Samba服务。
- 445用于提供windows文件和打印机共享。
- 对于开放139/445端口,尝试利用MS17010溢出漏洞进行攻击;
- 对于只开放445端口,尝试利用MS06040、MS08067溢出漏洞攻击;
- 利用IPC$连接进行渗透
MySQL-3306
3306是MYSQL数据库默认的监听端口
- mysql弱口令破解
- 弱口令登录mysql,上传构造的恶意UDF自定义函数代码,通过调用注册的恶意函数执行系统命令
- SQL注入获取数据库敏感信息,load_file()函数读取系统文件,导出恶意代码到指定路径
RDP-3389
- 3389是windows远程桌面服务默认监听的端口
- RDP暴力破解攻击
- MS12_020死亡蓝屏攻击
- RDP远程桌面漏洞(CVE-2019-0708)
- MSF开启RDP、注册表开启RDP
Redis-6379
开源的可基于内存的可持久化的日志型数据库。
- 爆破弱口令
- redis未授权访问结合ssh key提权
- 主从复制rce
Tomcat-8080
- Tomcat服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP程序的首选。
- Tomcat远程代码执行漏洞(CVE-2019-0232)
- Tomcat任意文件上传(CVE-2017-12615)
- tomcat 管理页面弱口令getshell
端口扫描
NMAP
- Network Mapper(NMAP),是一款开放源代码的网络探测和安全审核的工具。nmap中文参考指南。
主要功能介绍
- 检测网络存活主机 (主机发现)
- 检测主机开放端口(端口发现或枚举)
- 检测相应端口软件(服务发现)版本
- 检测操作系统,硬件地址,以及软件版本
- 检测脆弱性的漏洞(nmap的脚本)
# A:全面扫描\综合扫描
# T4:扫描速度,共有6级,T0-T5
# 默认扫描端口范围1~1024
nmap -A -T4 192.168.1.1#单一主机扫描
namp192.168.1.2
#子网扫描
namp 192.168.1.1/24
#多主机扫描
nmap 192.168.1.1 192.168.1.10
#主机范围扫描
nmap 192.168.1.1-100# 扫描除指定IP外的所有子网主机:
nmap 192.168.1.1/24 --exclude 192.168.1.1
# 扫描除文件中IP外的子网主机:
nmap 192.168.1.1/24 --excludefile xxx.txt# 扫描特定主机上的80,21,23端口
nmap -p 80,21,23 192.168.1.1
- 描全部端口
#
#
nmap -sS -v -T4 -Pn -p 0-65535 -oN FullTCP -iL 192.168.1.1
- sS:SYN扫描,又称为半开放扫描打8完全的TCP连接,执行得很快,效率高
- 优点:nmap发送SYN包到远程主机,但是不会产生任何会话,目标主机几乎不会把连接记入系统日志。(防止对方判断为扫描攻击),扫描速度快,效率高。
- 缺点:需要root/administrator权限执行。
- Pn:扫描之前不需要用ping命令,些防火墙禁止ping命令。可以使用此选项进行扫描。
- 扫描常用端口及服务信息
nmap -sS -T4 -Pn -oG TopTCP -iL xxx.txt
# 系统扫描
nmap -O -T4 -Pn -oG OSDetect -iL LiveHosts.txt
# 版本检测
nmap -sV -T4 -Pn -oG ServiceDetect -iL LiveHosts.txt
操作系统收集
- ping操作:windows TTL值为128,Linux TTL值为64。
nmap -O ip
命令,探测系统信息。
敏感文件收集
- 敏感文件、敏感目录挖掘一般都是靠工具、脚本来找,比如御剑、BBscan。
github
git
svn
.DS_store
.hg
.bzr
CVS
WEB-INF
备份文件
Github泄露
- 开发人员将代码上传到网站,在上传的时候,没有删除重要的一些信息。如邮箱信息,SVN信息,内部账号和密码,数据库连接信息,服务器配置信息等。尤其是邮箱信息和内部账号和密码。这类信息可以通过在github上搜索公司的一些特定信息,查看是否有程序员将这些信息上传到了github上。
- 如公司的域名如下:yuan.com;则可以在github上用这个信息去进行搜索,看看是否有包含该类关键字的文件。这类安全漏洞只能靠人员的安全意识进行防护,没有其它方法进行。
.git泄露
- 前大量开发人员使用git进行版本控制,对网站进行自动部署。如果配置不当,可能会将.git文件部署到线上环境,这就引起了git泄露漏洞。在网站安全维护方面,git和svn信息泄露,是非常常见也是非常致命的漏洞。会导致整个网站的源码泄露。
- 渗透测试人员、攻击者,可以进一步审计代码,挖掘:文件上传,SQL注入等web安全漏洞。
- 防护方法:在部署的时候,对.git文件夹进行删除;也可以在nginx配置中,对.git目录的访问进行屏蔽。
.svn泄露
- 使用svncheckout功能来更新代码。如果没有将.svn版本控制的目录进行删除,恶意用户就可以使用这个目录下的文件,来恢复源码。从而可以获取如数据库密码,源码漏洞等信息。
目录收集
- 外部黑客可通过暴力破解文件名等方法下载该备份文件,导致网站敏感信息泄露。
- dirsearch、dirmap
网站WAF识别
- WAF(webApplicationFirewall(Web应用防火墙)):用于保护网站,防黑客、防网络攻击的安全防护系统;是最有效、最直接的Web安全防护产品。
WAF功能
- 防止常见的各类网络攻击,如:SQL注入、XSS跨站、CSRF、网页后门等。
- 防止各类自动化攻击,如:暴力破解、撞库、批量注册、自动发贴等。
- 阻止其它常见威胁,如:爬虫、0DAY攻击、代码分析、嗅探、数据篡改、越权访问、敏感信息泄漏、应用层DDOS、远程恶意包含、盗链、越权、扫描等。
WAF识别
- nmap插件
nmap -p80,443 --script http-waf-detect ip
nmap -p80,443 --script http-waf-fingerprint ip
- 常见WAF拦截页面