信息收集
信息收集
信息收集总览
熟悉信息收集种类
DNS、子域名、C段、邮箱、指纹、社工库、钓鱼攻击
了解信息收集的原因
DNS:
- 确定企业网站运行规模
- 可以从DNS中收集子域名、IP等
- 控制网站解析
子域名:
- 确定企业网站运行数量,从而进行下一步(安全评估)准备
- 获得不同子域名所映射的IP,从而获得不同C段
- 寻找更大的安全脆弱点和面
C段:
什么是C段
在IP地址的4段号码中,前3段号码为网络号码,剩下的1段号码为本地计算机的号码
192.168.1.5/24
收集原因
- 确定C段存活主机数量
- 确定C段中主机的端口,服务,操作系统等
收集原因
- 通过分析邮箱格式和后缀,可以得知邮箱命名规律和邮箱服务器
- 为爆破登录表单收集数据,可形成字典
- 发送钓鱼邮件,执行高级APT控制
指纹:
Web指纹
获取运行的脚本语言,开发框架,CMS,寻找脆弱点(漏洞)
如:.action 一般可以确定为Struts2
如:Powered by **
中间件指纹
获取中间件使用的产品和版本
通过产品和版本查询是否有漏洞存在,如:struts2反序列化,iis文件解析
系统指纹
- 获取操作系统使用的产品和版本可以在以后渗透中提供渗透基准如:大小写,shell部署方式
社工库:
- 寻找指定目标的已经泄露的数据
- 如:邮箱,获取到企业内部人员已经泄露的密码,可以在撞库,爆破中使用
- 如:姓名,手机号,找回密码,重置信息
钓鱼攻击:
- 邮件、链接、办公文件
- 构造鱼叉攻击和水坑攻击
- 绕过边界防御设备
- 从内部瓦解防御网络,直接反弹shell
DNS
Domain Name system 域名系统
将域名和IP地址相互映射的一个分布式数据库
- 协议:TCP/UDP
- 端口:53
- 域名长度:每一级域名长度的限制是63个字符,域名总长度则不能超过253个字符
- https://blog.csdn.net/mocas_wang/article/details/109167660
DNS A记录
A记录指定域名对应的IP地址
查询方法:
nslookup www.baidu.com
dig www.baidu.com 【+short】【@server】【+trace】
DNS NS记录
NS(Name Server)记录是域名服务器记录,用来指定该域名由哪个DNS服务器来进行解析。
查询方法:dig -t NS www.163.com
-t 用来指定查询的种类
DNS TXT记录
TXT记录,一般指某个主机名或域名的说明。
查询方法:dig -t TXT www.163.com
DNS MX记录
MX(Mail Exchanger)记录是邮件交换记录,它指向一个邮件服务器
用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮件服务器
查询方法:dig -t MX 163.com
DNS CNAME记录
CNAME记录可以将注册的不同域名都转到一个域名记录上,由这个域名记录统一解析管理
查询方法:dig-t CNAME163.com
域名信息查询
whois查询,但有时候会回应我们没有权限去查询这个域名的whois数据库
在线查询:
- whois.iana.org
- www.arin.net
- who.is
- centralops.net/co/
- www.17ce.com
subdomainbrute工具使用
python subDomainsBrute.py --full -t 10 sangfor.com.cn -w |
通过子域名的爆破,可以进一步明确企业网络资产(有哪些域名、域名对应什么系统、域名集中的C段地址等等),这是攻击者、防御者都需要时刻关注的方面。
扫描完成后,会在该工具同目录下,生成对应的文本文件
子域名收集
子域名收集原因
子域名枚举可以在测试范围内发现更多的域或子域,这将增大漏洞发现的机率。
有些隐藏的、被忽略的子域上运行的应用程序可能帮助我们发现重大漏洞。
在同一个组织的不同域或应用程序中往往存在相同的漏洞
子域名收集方法
爆破
原理:字典匹配枚举存在的域名
kali:
- subDomainBrute
- dnsmap
windows:
- fuzzDomain
- 子域名挖掘机
搜索引擎
原理:通过搜索引擎获取已经爬取到的域名
语法:Site: 163.cn
工具:
theharvester:https://blog.csdn.net/2302_82189125/article/details/135982119
theHarvester -d pinduoduo.com -l 400 -b baidu |
aquatone:https://blog.csdn.net/weixin_65582330/article/details/136433558,https://www.4hou.com/posts/Q1ol
不只通过简单的子域爆破,同时还会利用各种开放的互联网服务和资源,来协助其完成子域枚举任务,增加子域名爆破的成功率aquatone分为三个阶段:发现,扫描,收集
aquatone-discover 发现
通过获取google、shodan、censys、爆破等多种方式获取目标存在的域名常用语法:
aquatone-discover -d sangfor.com.cn -t 1 |
aquatone-scan 扫描
经过发现阶段获取到域名,然后扫描域名主机存活和开放端口
常用语法:
aquatone-scan -d sangfor.com.cn -p'port'-t 'threads |
discover没执行还执行不了这个。。。
aquatone-gather 收集
经过扫描以后发现存活的域名和端口,aquatone-gather将自动访问存活的域名并截图
常用语法:
aquatone-gather-dsangfor.com.cn |
域传送
DNS区域传送(DNS zone transfer)指的是一台备用服务器使用来自主服务器的数据刷新自己的域(zone)数据库。为运行中的DNS服务提供了一定的冗余度,目的是为了防止主的域名服务器因意外故障变得不可用时影响到整个域名的解析。
DNS区域传送操作只在网络里真的有备用域名DNS服务器时才有必要用到,但许多DNS服务器却被错误地配置成只要有client发出请求,就会向对方提供一个zone数据库的详细信息,所以说允许不受信任的因特网用户执行DNS区域传送(zone transfer)
危害
黑客可以快速的判定出某个特定zone的所有主机,收集域信息,选择攻击目标找出未使用的IP地址,黑客可以绕过基于网络的访问控制
dig @DnsServer axfr domain |
在线网站
dnsdumpster.com
tool.chinaz.com
C段扫描
C段扫描原因
- 收集C段内部属于目标的IP地址
- 内部服务只限IP访问,没有映射域名
- 更多的探测主机目标资产
C段扫描
nmap
nmap-扫描C段主机存活
nmap -sn -PE -n 192.168.1.1/24 |
-sn
:不要扫描端口-PE
:ICMP扫描-n
:不进行dns解析
nmap-定向端口扫描
nmap -sS -Pn -p 3389 ip |
- -sS:半开放扫描
- -Pn:不进行主句存活探测
nmap-全端口扫描
nmap -sS -Pn -p 1-65535 -n ip |
nmap-服务扫描
nmap -sS -sV -p 1-65535 -n ip |
Masscan
安装
sudo apt-get install git gcc make libpcap-dev(安装必备环境,kali已经默认安装完成) |
使用
masscan -p 80 ip/24 --rate 10000 -oL output.txt |
- -p:设置端口
- –rate:发包速率
- -oL:输出位置
为了绕过扫描特点ip,可以添加 –excludefile
masscan -p 80 ip --excludefile special.txt |
自定义多种格式输出
-oX XML |
注意问题
扫描选项中必须添加端口 -p、–ports 1-65535
目标主机是ip地址、不是域名
二者结合
一般情况下,可以先使用masscan对目标IP(通常是一个网段)进行全端口扫描,然后再使用nmap对存活主机的开放端口进行扫描,找出对应端口服务存在的漏洞
使用masscan对目标IP进行扫描的原因就是因为其速度快于nmap。