笔记是根据马士兵教育2024HVV专题编写,作为学习记录来分享,如有错误的地方请指正,谢谢
免责声明
本文仅限于学习讨论与技术知识的分享,不得违反当地国家的法律法规。对于传播、利用文章中提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,本文作者不为此承担任何责任,一旦造成后果请自行承担!
1-真实ip获取
1、真实ip介绍
- 什么叫真实IP:真实IP就是指公网IP地址,公网IP一共多少个呢大约40亿个左右
- 为什么要找到真实IP:找到真实的IP我们就可以访问这个IP的C段和端口,方便进一步渗透,但是有的网站挂了CDN,我们必须绕过CDN获取真实IP
2、什么是CDN
CDN(Content Delivery Network,内容分发网络)是一种分布式计算的网络架构,旨在提供高性能、高可用性的内容分发服务。CDN通过将内容分布到离用户最近的边缘节点,以减少用户请求的延迟和网络拥塞,从而提高用户访问网站和下载内容的速度。CDN的工作原理是将原始内容复制到全球各地的服务器上,当用户发出请求时,CDN会根据用户的地理位置和网络条件,自动选择离用户最近的服务器来提供内容。CDN不仅可以用于加速静态网页的访问,还可以用于加速大文件的下载、视频的播放以及实时流媒体等各种网络应用。
当用户通过CDN访问网站时,请求的流量会经过CDN的服务器节点,而不是直接访问原始服务器。这样一来,原始服务器无法直接获取用户的真实IP地址,而是获取到CDN服务器的IP地址。
3、如果判断存在CDN
- 使用不同主机ping域名判断是否有CND
站长工具:https://ping.chinaz.com/
爱战网:https://ping.aizhan.com/ - 使用nslookup域名解析判断是否有CDN
nslookup命令对域名进行解析,如果发现有多个IP地址,可能使用了CDN技术
4、如何绕过CND获取真实ip
4.1、查询子域名
由于CDN加速需要支付一定的费用,很多网站只对主站做了CDN加速,子域名没有做CDN加
速,子域名和主站很有可能在同一个服务器或者同一个C段中,可以通过探测子域名的方式
,收集子域名的信息,查询子域名的IP地址来辅助判断主站的IP信息。
4.2、历史DNS解析
通过查询DNS于IP绑定的历史记录就有可能发现之前的真实IP信息,一般通过第三方服务网
站进行查询,常用的第三方服务网站有:微步在线:https://x.threatbook.cn
4.3、使用国外主机解析域名
部分国内的 CDN 加速服务商只对国内的线路做了 CDN 加速。但是国外的线路没有做加速。这样就可以通过国外外的主机来探测真实的 IP 信息。
4.4、网站漏洞
利用网站的漏洞和信息泄露的敏感文件信息,比如(phpinfo文件,网站源码文件,Github文件泄露)等获取真实IP。
4.5、邮件信息
邮件信息中会记录邮件服务器的IP信息,有些站点类似于RSS邮件订阅的功能,可以利用其发送邮件,通过查看源码的方式查看服务器的真实IP地址。
2-旁站信息收集
1、旁站信息介绍
旁站是与攻击目标在同一服务器上的不同网站,在攻击目标没有漏洞的情况下,可以通过查找旁站的漏洞攻击旁站,然后再通过提权拿到服务器的最高权限,拿到服务器的最高权限后攻击目标也就拿下了。
2、获取旁站信息方法
2.1、站长工具
通过站长工具进行同IP的查询
https://stool.chinaz.com/same
2.2、搜索引擎查询
通过bing搜索 https://cn.bing.com/search?q=ip:220.181.38.150
2.3、网络空间探测引擎搜索
fofa网络空间探测引擎
3-C段主机信息收集
1、C段主机查询
C段查询主要是当前的IP攻击不下来的时候,可以攻击他的C段,比如IP是 220.181.34.34是我们的目标,但是攻击不下来,可以去扫描220.181.34.0-255Z这个网段,看看能不能攻击下来。
2、C段获取的方式
主要是扫描C段的主机
2.1、nmap扫描c段主机
nmap -sn IP/24
2.2、搜索引擎C段信息
使用google或者百度进行语法搜索 site:x.x.x.*进行C段的探测
2.3、工具搜索
使用C段扫描的工具 《web finder》(注意:环境需要jdk1.8的支持)
2.4、使用网络空间探测引擎fofa
IP=“XXX.XXX.XXX.0/24”
4-子域名信息收集(重要)
1、子域名信息介绍
子域名是父域名的下一级,像“ www.xxx.com ”这样的域名为企业的主站域名,企业对于主站域名的应用的防护措施比较健全,不管是应用本身的漏洞发现、漏洞修复,还是安全设备相关的防护都做得更加及时和到位,而企业可能有多个、几个甚至更多的子域名应用,因为子域名数量多,企业子域名的防护可能没有主站的防护做的到位,攻击不到主站的时候,尝试攻击子域名,进行子域名的信息收集。
2、子域名信息收集方法
2.1、枚举
枚举的方式就是进行暴力的破解,首先需要一个好的字典,这样会增加成功率。
xxx.baidu.com
a.baidu.com
b.baidu.com
vpn.baidu.com…
工具可以使用Layer子域名挖掘机
2.2、搜索引擎
使用google baidu bing 等搜索引擎搜索子域名。
2.3、空间搜索引擎
使用 fofa 等工具进行搜索
2.4、透明证书
当您通过安全连接 (HTTPS) 访问某个网站时,该网站会向浏览器提供数字证书。此证书用于识别该网站的主机名,由已验证网站所有者的证书授权中心 (CA) 签发。只要用户信任相应的 CA,便可信任证书中提供的身份证明https://crt.sh/
2.5、聚合工具
聚合工具就是,结合和爆破,证书,搜索引擎,DNS解析记录等多个方式去探测子域名比
如:oneforall
注意:环境需要
- WIN10
- Python:3.6.0
- pip:19.2.2
- pip命令:pip3 install -r requirements.txt -i https://mirrors.aliyun.com/pypi/simple/
探测命令举例:OneForAll>python oneforall.py --target yuanfudao.com run
爆红是因为有些访问国外,不影响
5-端口信息收集
1、端口信息收集介绍
"端口"是英文port的意译,可以认为是设备与外界通讯交流的出口,不同的端口对应不同的服务,计算机的端口是0-65535个,当80 443 等端口攻击不下来的时候通过端口测试,扫描其他端口,从而渗透成功
2、端口信息收集方法
端口的发现一般是通过扫描技术或者网络空间探测引擎
2.1、使用nmap扫描端口
nmap -sV -p 1-65535 IP
2.2、使用端口扫描的工具
御剑端口扫描
6-whois查询
1、whois介绍
whois(读作“Who is”,非缩写)是用来查询域名的IP以及所有者等信息的传输协议。简单说,whois就是一个用来查询域名是否已经被注册,以及注册域名的详细信息的数据库(如域名所有人、域名注册商)。通过whois来实现对域名信息的查询。早期的whois查询多以命令列接口存在,但是现在出现了一些网页接口简化的线上查询工具,可以一次向不同的数据库查询。
2、收集方式
使用在线工具
- https://whois.chinaz.com/
- https://whois.aizhan.com/
- https://whois.aliyun.com/
主要看email和注册情况,可以对获取到的信息进行社工,社工库
蓝队溯源:
设备-》ip-》域名-》联系人,邮箱(qq邮箱)-》qq-》动态-》手机号
也可以通过:邮箱-》DNS解析记录-》MX邮件的交换记录
主动收集:
区分:是否与网站发送交互
优点:
- 针对性高
- 时效性高
- 未公开的敏感数据
缺点:
- 容易暴露,风险高
- 相比较被动信息收集,覆盖面少很多
7-操作系统识别
1、Linux
2、Windows Server
3、Unix
1、收集方法
1.1、通过ping命令查看TTL值判断
默认没有修改的话
windows服务器的TTL值为128
Liunx的TTL值为64
1.2、通过nmap -O ip
可以判断出可能是这几种服务器中的一种
1.3、大小写
Windows服务器大小写不敏感,Linux服务器大小写敏感
比如在访问百度时,www.baidU.com,可以识别出来就是windows服务器,反之就是Linux服务器(这里只是举例具体情况具体分析)
蓝队技能:
服务器加固
修改默认TTL值
Windows修改方法:
注册表->Local-machine->system->CurrentControlSet->Services->Tcpip->Parameters->DefaultTTL
这个值在0-255之间就可以,修改后重启
Linux修改方法:
cd /proc/
cd sys
cd net/ipv4
cat ip_default_ttl
echo 128 > ip_default_ttl (伪装成windows服务器)
8-服务版本识别
1、识别方法
1.1、流量包中的关键字
1.2、servers-db
1.3、报错显示
红队:
服务器识别后->漏洞库->RCE
蓝队:
加固:apache->httpd-default.conf->
ServerTokens Full 改为 ServerTokens prod
ServersSignature On 改为 Off
中间件:nginx,apache IIS tomcat
脚本语言:PHP ASP ASPX(.NET) JSP(JAVA)
2、服务器常见组合(要记)
- Linux+Apache+PHP+MySQL
- Linux+Nginx+PHP+MySQL
- Windows+IIS+APS+SQL sever
- Linux+Tomcat+JSP+MySQL
- Linux+Tomcat+JSP+Oracle
可以通过几个组合来判断他的一个架构
9-指纹识别(重点)
1、指纹识别介绍
在渗透测试中,指纹识别是一种不可小觑的技术,它可以用来识别目标系统、应用程序、操作系统等。通过识别目标网站的指纹,可以得到系统结构以及潜在的攻击面,那么渗透测试人员就可以通过这个攻击面对目标站点进行严密的渗透测试。
2、指纹识别方法
2.1、特有文件
直接查看js文件就可能看到
2.2、特有MD5
这个经常被修改,不是很准
2.3、文件命令规则
wp-admin。。。
2.4、在线工具
https://www.yunsee.cn.(需要账号)
2.5、其他工具
1、whatweb
2、cmseek
看到这个用户名就可以想到去爆破
10-敏感路径识别
目录扫描可以让我们发现这个网站存在多少个目录,多少个页面,探索出网站的整体结构。通过目录扫描我们还能扫描敏感文件,后台文件,数据库文件,和信息泄漏文件等等
1、常见敏感文件、目录:
- robots.txt
- crossdomain.xml
- sitemap.xml
- 后台目录
- 网站安装目录
- 网站上传目录
- mysql管理页面
- git
- svn
- phpinfo
- 网站文本编辑器
- 测试文件
- 网站备份文件(.rar、.zip、.7z、.tar、.gz、.bak)
- DS_Store文件
- WEB-INF/web.xml文件
.git
•.svn
•phpinfo
•网站文本编辑器
•测试文件
•网站备份文件(.rar、.zip、.7z、.tar、.gz、.bak)
•DS_Store文件
•WEB-INF/web.xml文件
重点
响应码:
401:不允许查看此资源(换个账号或者登录)
403:无论是否登录都无法查看
404:资源不存在
405:不允许此方法访问
403/401
403实战:换
403CTF绕过思路:
Request
GET /admin/login HTTP/1.1
Response
HTTP /1.1 403 Forbidden
使用关键字:X-Original-URL和X-Rewrite-URL
GET / HTTP/1.1
X-Rewrite-URL:/admin/login
Response
HTTP/1.1 200 OK
Request
GET /admin/login HTTP/1.1
Host:xxx
Response
HTTP/1.1 403 Forbidden
Referer:请求头来识别来源
Request
GET /admin/login HTTP/1.1
Host:xxx
ReFerer:https://xxx/admin/login
Response
HTTP/1.1 200 OK
nginx负载均衡
Request
GET /admin/login HTTP/1.1
Response
HTTP/1.1 401 Unauthorized
尝试使用x-forwared-host访问
Reqeust
GET /admin/login HTTP/1.1
X-Custom-lP-Authorization: 127.0.0.1 (伪装成本地)
Response
HTTP/1.1200 OK
遇到401.403
访问xxx.site.com/a 响应401
可以做一些拓展名绕过
xxx.site.com/a.txt 200
xxx.site.com/a.%20 200
拓展名有:%,#,%20,%09
2、目录工具扫描
2.1、kali的 drib url
2.2、御剑
扫出.git .svn
可以用工具githack还原整个网站的源码
11-历史漏洞信息收集
如果扫到中间件,比如apache等,可以用漏洞库等等去查看
国外:
https://www.exploit-db.com/
https://vulners.com/
国内:
https://www.cnvd.org.cn/
https://avd.aliyun.com/
漏洞库:
https://wooyun.kieran.top/#!/
这个信息收集内容有点多,后面就开始写那些进攻手段等就会分开写,如果这个信息收集有更新会再发的