确定目标——信息收集——漏洞扫描——漏洞利用——形成报告
域名信息、IP段、开放的端口、网站架构、文件目录结构、软件版本、WAF、旁站、C段....
域名是什么
用IP地址来对网站进行访问过于繁琐且不好记忆,域名便是代替了IP。
域名的分类
国际域名:.com(商业公司);.net(网络服务);.org(组织协会等);.gov(政府部门);.edu(教育机构);.mil(军事领域);.int(国际组织)
国别域名:.CN代表中国,.UK代表英国,.US代表美国
新顶级域名:biz,info,name,pro,aero,coop,museum.........(原有域名已经快被消耗殆尽)
域名与IP
www.baidu.com——>域名解析服务(DNS)——>220.181.38.148
域名联系人信息
所属人、邮箱、电话、地址.....
whois查询
站长工具
whoissoft
CNNIC
kali中whois查询:自带whois命令
域名反查:站长工具
ICP备案查询
国内主机绑定域名都需要备案,信息公开
工信部的ICP/IP地址/域名信息备案管理系统中可查
备案。
天眼查
作用
社工数据的基础
邮箱可进行钓鱼
从薄弱域名处进行攻击
子域名的作用
使攻击者可以较容易攻击成功
怎么查询子域名
1.字典猜解
2.枚举
3.使用子域名挖掘机
4.GitHub(中有子域名猜解工具)
域名DNS信息
DNS(域名解析服务):
如何查询DNS记录
DBA查
sitereport.netcraft.com
IP信息
DNS服务器类型
DNS解析流程
ping/nslookup
nslookup -type="NS"
ip归属信息
通过ipwhois.cnnic.net.cn查询
如何获取CDN背后的真实IP
渗透测试的本质就是信息收集(打点)
知己知彼
1.真实IP获取
真实IP:指公网IP地址(大约40亿,xxx.xxx.xxx.xxx,一个xxx代表0-255)
私网IP:
找到真实IP就可以访问这个IP的C段和端口,方便进一步渗透,但是有的网站挂了CDN,我们必须绕过CDN获取真实IP
域名——DNS——IP——网站
CDN:负载均衡,虚假IP
如何判断存在CDN
使用不同主机PING域名判断
站长工具
爱站网
国外piing探测
2.使用nslookup域名解析判断
子域名查询
由于CDN加速需要支付一定的费用,所以很多网站可能只对主站做了CDN加速,而对其子域名没有做,而且子域名和主站很可能在同一个服务器或者同一个C段上,所以可以通过查询子域名的IP来辅助判断主站的IP信息
历史DNS解析记录
通过查询DNS与IP绑定的历史记录就有可能发现之前的真实IP信息,一般通过第三方服务网站进行查询:
DNSdb:https://dnsdb.io/zh-cn/
微步在线:微步在线X情报社区-威胁情报查询_威胁分析平台_开放社区
使用国外主机解析域名
部分国内的CDN加速服务商只对国内线路做了CDN加速,但是对国外的线路没有做加速,这样就可以通过国外的主机来探测真实IP信息
网站漏洞
利用网站的漏洞和信息泄露的敏感文件信息,比如(PHPinfo文件,网站源码文件,Github文件泄露)等获取真实IP
邮件信息
邮件信息中会记录邮件服务器的IP信息,有些站点拥有类似于RSS邮件订阅功能。可以利用其发送邮件,通过查看源码的方式查看服务器的真实IP
旁站信息收集
旁站:与攻击目标在同一服务器的不同网站,在攻击目标没有漏洞的情况下,可以通过查找旁站的漏洞攻击旁站,然后再通过提权拿到服务器的最高权限,拿到服务器的最高权限后攻击目标也就拿下了。
通过站长工具进行同IP的查询:同IP网站查询,同服务器网站查询 - 站长工具
通过引擎查询:通过bing搜索ip:220.181.38.150 - 搜索
网络空间探测引擎搜索
C段主机信息收集
C段查询主要是当前的IP攻击不下来的时候,可以攻击它的C段。
查询方法:
nmap -sn ip/24
Google语法
使用C段扫描器扫
子域名信息收集
子域名:是父域名的下一级
枚举法(暴力破解):Layer子域名挖掘机
搜索引擎进行搜索子域名:Google语法
fofa等空间探测引擎:domain="baidu.com"
透明证书:当您通过安全连接(HTTPS)访问某个网站时,该网站回想浏览器提供数字证书。此证书用于识别该网站的主机名,由已验证网站所有者的证书授权中心(CA)签发。只要用户信任相应的CA ,便可相信证书中提供的身份证明
crt.sh
聚合工具: 结合了爆破,证书,搜索引擎,DNS解析记录。(oneforall)
端口服务信息
端口扫描思路和代码实现思路
查看本机端口信息
Windows:netstat -aon|findstr 3306
Linux:netstat -an|grep 3306
远程主机端口信息查询
kali:telnet ip 端口号
wget ip 端口号
nc -vz ip 端口号
常见端口号
文件共享服务端口
端口号 |
端口说明 |
攻击方式 |
21/22/69 |
FTP/SFTP文件传输协议 |
允许匿名上传、下载、爆破和嗅探操作 |
2049 |
NFS服务 |
配置不当 |
139 |
samba服务 |
爆破、未授权访问、远程代码执行 |
389 |
LDAP目录访问协议 |
注入、允许匿名访问、弱口令 |
nmap
使用最广泛的端口扫描工具
常用参数:简单扫描:nmap -sP ip
指定端口或范围扫描:nmap -p0-65535 IP
探测操作系统:nmap -O IP
只进行主机发现,不进行端口扫描:nmap -sn ip
IP后面的/24指掩码的位数
子网掩码8位,11111111.00000000.00000000.00000000代表:255.0.0.0(A类IP地址)
子网掩码16位:255.255.0.0(B类IP地址)
24位:255.255.255.0(C类IP地址)
旁站:和目标网站在同一台服务器但端口不同的其他网站。
C段:和目标服务器IP处于同一个C段的其他服务器。
指纹识别
什么是指纹识别
通过关键特征,识别出目标的CMS系统、服务器、开发语言
操作系统、CDN、WAF的类别版本等
识别对象
CMS信息:比如Discuz、织梦、帝国CMS、PHPCMS、ECshop等;
前端技术:比如HTML5、jquery、bootstrap、vue、ace等
开发语言:如PHP,Java,ruby、python、c#等
web服务器:如apache、nginx、IIS、lighttpd等
应用服务器:如tomcat、JBoss、weblogic、websphere等
操作系统信息:如Linux、win2k8、win7、kali、centos等
CDN信息:是否使用CDN,如cloudflare、帝联、蓝讯、网宿、七牛云、阿里云等
WAF(web应用防火墙)信息:是否使用WAF,如D盾、云锁、宝塔、安全狗、360等
CMS指纹识别
CMS:内容管理系统。
包括:博客系统,微博团购团战、导航网站、信息分类、百科网站.....
企业官网、学校官网、医院官网.....
针对这些开源的CMS可利用历史漏洞。
CMS识别思路
通过特定的文件或者代码来找到关键的特征。
版权信息
通过页面的可见版权信息
特定文件MD5值
通过特定文件图标的MD5值
通过GitHub等其他资源上的CMS和中间件指纹库进行对照
查看网页源代码
分析网站源代码中的关键代码来进行判断
通过特定文件分析
robots.txt禁止爬虫机器人爬取某些资源
CMS识别工具
kali中自带工具whatweb
浏览器插件:
wappalyzer:Find out what websites are built with - Wappalyzer
whatruns:WhatRuns — Discover What Runs a Website
在线网站:
TideFinger 潮汐指纹 TideFinger 潮汐指纹
http://whatweb.bugscaner.com
离线工具:
御剑指纹扫描器(需要.NET Framework)
Test404轻量CMS指纹识别v2.1
其他开源程序
https://github.com/Tuhinshubhra/CMSeek
CDN指纹识别
思路
通过查询CDN解析记录,来获取到别名解析记录,从而有可能会获得CDN的信息
工具
ping:
nslookup
超级ping
lbd(load balance detector)
专用:
WAF指纹识别
什么是WAF
web应用防火墙:用来过滤http/https的请求
作用:
WAF分类
硬件型WAF(厂商安装)、
云WAF(阿里云、腾讯云、华为云...)
软件型WAF(部署在Apache、Nginx等HTTPServer中)
常见WAF厂商
阿里云、腾讯云、华为云、百度云.....
安全狗、宝塔、360、知道创宇、长亭、安恒...
WAF指纹识别思路
不同WAF铲平拦截返回界面不同
额外的cookie
任何相应或请求的附加标头
响应内容(如果被阻止请求)
响应代码(如果被阻止请求)
IP地址(云WAF)
JS客户端模块(客户端WAF)
GitHub中可见思路和部分WAF特征
如何触发拦截:使用恶意请求,如:
指纹库:https://github.com/CSecGroup/wafid/blob/master/finger.xml
工具
kali自带:https://github.com/EnableSecurity/wafw00f
用法:wafw00f URL
nmap URL --script=http-waf-detect.nse
sqlmap -u "URL(动态地址)" --identify-waf
其他:https://github.com/0xlnfection/Awesome-WAF
搜索引擎收集信息
搜索引擎:Google、百度、搜狗、360...、
什么是Google Hacking
2002年Johnny long总结了Google语法
运算符
完全匹配 |
”搜索内容“ |
任意字词 |
在所需字词中间+OR |
不包含 |
搜索内容 -用户不想看到的内容 |
数字范围 |
number..number |
Google高级语法
只搜索某个网站的内容 |
site:URL |
|
网页文本内容包括 |
allintext/intext:用户想包含的内容 |
|
网页标题内容包含 |
allintitle/intitle:内容 |
|
URL地址包括 |
allinurl/inurl:admin.php |
|
文件类型指定 |
filetype:文件类型 |
语法数据库:Google Hacking Database (GHDB) - Google Dorks, OSINT, Recon
https://github.com/BullsEye0/google_dork_list
网络空间引擎搜索
什么是网络空间搜索引擎
360水滴直播事件
除了网络摄像头之外,网络空间还包括了什么?
黑客是怎么找到某一个网络设备的?
网络空间搜索引擎是一种专门对网络空间进行搜索的搜索引擎。
什么是网络空间?
网络空间(Cyber space),搜索引擎:1996年数字图书馆的成立到1998年谷歌诞生并有了网页,可以非常方便的检索网页内容。 随着网络空间的发展:出现了专门的搜索引擎可以去搜索图片、音乐、声音(电视剧)等等,进一步发展之后可以分为网络系统,如CDN、CMS、IDS、办公软件、数据库服务、杀毒软件、文件服务NFS等,网络设备如:手机、交换机、平板电脑、路由器、网络摄像头、私人网盘、打印机、ATM、物联网家电、机器人等等,工业系统如:交通信号灯、企业大屏幕、公园控制系统、加油站、电网、自来水厂、核电站等等这些个节点,网络空间正是由这些节点组成。
常规的搜索引擎无法对这些节点进行一个全面的搜索,所以导致网络空间搜索引擎的出现。
网络空间搜索引擎(OSINT)
open source intelligence(开源的网络情报收集)
网络空间搜索引擎使用网络扫描工具进行扫描。
方式:使用IP库或枚举的方式
怎样标识一个设备?
爬虫是用URL的地址去进行标识。
网络空间搜索引擎可以使用IP地址(域名)、开放端口、操作系统、物理地址、MAC地址、设备类型等去进行标识。
实施威胁地图:https://www.fireeye.com/cyber-map/threat-map.html
安全性:有一定安全策略
常见的网络空间搜索引擎
shodan
基本介绍:地图、截图、监控,新手指引,视频教程,开发者工具,filter过滤器(e.g)Explore
CLI:命令行工具
kali:自带
alert Manage the network alerts for your
account
convert Convert the given input data file
into a... # 转换输入文件
count Returns the number of results for a
search # 返回查询结果数量
download Download search results and
save them in a... # 下载查询结果到文件
honeyscore Check whether the IP is a
honeypot or not. # 检查 IP 是否为蜜罐
host View all available information for an
IP... # 显示一个 IP 所有可用的详细信息
info Shows general information about
your account # 显示账户的一般信息
init Initialize the Shodan command-line #
初始化命令行
myip Print your external IP address # 输出
用户当前公网IP
parse Extract information out of
compressed JSON... # 解析提取压缩的JSON信
息,即使用download下载的数据
scan Scan an IP/ netblock using
Shodan. # 使用 Shodan 扫描一个IP或者网段
search Search the Shodan database # 查询
Shodan 数据库
stats Provide summary information about
a search... # 提供搜索结果的概要信息
stream Stream data in real-time. # 实时显示
流数据
用法示例:
shodan host 172.67.167.88
shodan count apache
shodan count vuln:cve-2019-0708
shodan search --fields ip_str,port,org,
hostnames microsoft iis 6.0
shodan stats port:445 SMB
shodan download --limit -1 test net:172.67.
167.88/24
cencys
无收费,收录了证书
zoomeye(知道创宇)国产第一个网络空间搜索引擎
fofa
基于网络空间搜索引擎的工具
GitHub - knownsec/Kunyu: Kunyu, more efficient corporate asset collection
https://github.com/coco413/DiscoverTarget
GitHub - saucer-man/saucerframe: python3批量poc检测工具
目录扫描收集信息
什么是目录扫描
在部署的网站上有一些敏感文件,如配置文件(xxx.cfg),数据文件(xxx.sql),特殊的目录(/backup、/conf、/admin)。
由于配置不当导致目录信息外、本地文件包含漏洞也会造成目录扫描。
会泄露数据库用户名和密码,服务器的用户名和密码,数据库的文件。
常见敏感目录和文件
robots.txt文件:对爬虫机器人的规范和限制。会提示攻击者有某些关键文件
sitemap.xml文件:指导搜索引擎去搜索
网站的备份文件/数据:不定时的进行备份,虚拟系统在线压缩在指定的路径和文件名下生成一个压缩包(压缩文件),里面存在着网站全部的备份文件。对数据:帝国备份王
路径:后台登陆的目录:/admin;
程序的安装包(源码):
文件上传的目录:/upload;/upload.php
MySQL管理页面
程序的安装路径
PHP的探针
网站的文本编辑器
Linux:/etc/passwd;/etc/shadow;/etc/sudoers
macos:.DS_store
编辑器的临时文件.swp
目录穿越:
tomcat
文件扫描思路
做法
在域名后直接加上想要查询的文件名,看返回状态码,如果是200,则存在
方法:
递归:dir xxx
字典:
暴力破解:
爬虫:
fuzz(模糊测试)
文件扫描字典
kali中包含:dirb,dirbuster
GitHub上
御剑
BP
注意事项:
WAF、IDS
挂代理
防御:权限、敏感文件删除、布置WAF,
git信息收集
什么是版本控制系统
代码的恢复需要备份。修改仓库难以管理,对整个工程直接打包,占存过大。
发展:本地VCS,当程序员们进行协同开发时,会产生文件冲突的问题,这时就需要一个可以自动合并且不冲突、标记冲突的内容的集成化的工具。
集成化的VCS:CVCS,SVN,CVS,
GIT工作区域的划分
为什么GIt会导致信息泄露: 将私有仓库/隐私文件提交到了GitHub上
部署项目的时候,不小心把.git文件一起打包放在了web网站目录下
.git下有用的内容
GitHub搜索技巧:
kali in:file -搜索文件中包含kali的代码
kali in:path ——搜索路径中包含kali的代码
kali in:path.file ——搜索路径、文件中包含kali的代码
shodan language:python ——搜索关键字shodan,语言python的代码
filename:config.php language:php ——搜索文件名为config.php,且语言为PHP
git信息泄露利用方式
通过目录扫描、robots.txt、搜索引擎搜索(intitle:"index of/.git")找到.git
把.git下载到本地
用git的命令获取内容:
git log
git reset --hard[log hash]
git diff
工具:GitHub - gakki429/Git_Extract: 提取远程 git 泄露或本地 git 的工具