主动与被动扫描简介
搜集目标
- IP地址段
- 域名信息
- 邮件地址
- 文档图片数据
- 公司地址
- 联系电话、传真密码
- 人员信息、职务
- 目标系统使用的技术架构
- 公开的商业信息
搜索用途
- 信息描述目标
- 发现目标
- 物理缺口
被动搜索
利用搜索引擎收集信息
利用谷歌引擎搜索
可以通过特定语法,查询内容丰富的信息,或查到远程服务器的一些敏感信息,造成信息泄露
常用语法:
(1)intitle:关键字:
语法含义:搜索网页标题中包含关键字的网页*
若查询一个以上关键字,用”allintitle”代替”intitle”
(2)inurl:关键字:
- 语法含义:搜索URL中包含关键字的网页
- 若查询一个以上关键字,用”allinurl”代替”inurl”
(3)site:关键字:
- 语法含义:在指定的站点搜索
如:联系方式 site:souhu.com
(4)filetype:关键字:
- 语法含义:搜索指定类型的文件,如doc、pdf
(5)intext:关键字:
(7)link:关键字:
- 语法含义:返回所有链接到某个url地址的网页
2.利用Shodan引擎搜索
主要用于查找在线存在的特定设备和设备类型,如服务器、路由器、交换机、物联网设备和工控设备等,提供在全世界范围内的所有设备,范围非常广泛
(1)webcam
展示所有网络存在的摄像头
(2)cisco
显示世界上所有的cisco网络设备
(3)port
显示开放终端的远程设备
(4)hostname
搜索出所有和该名称相关的终端设备
(5)telnet
搜索安装telnet服务的终端信息
利用ip地址查询
- 域名:通过查询DNS记录,可以将IP地址映射到域名。
- 地理位置:通过查询IP地址所在的地理位置数据库,可以获取IP地址对应的地理位置信息。
- 网络服务:通过查询IP地址所在的网络服务数据库,可以获取IP地址对应的网络服务信息,例如HTTP、HTTPS、FTP等。
- 安全信息:通过查询IP地址的安全数据库,可以获取IP地址的安全信息,例如是否为恶意IP、是否为僵尸IP等。
- 操作系统:通过查询IP地址的操作系统数据库,可以获取IP地址对应的操作系统信息,例如Windows、Linux、macOS等。
利用DNS信息收集
域名解析原理
概述
运行DNS服务器程序的计算机,存储DNS数据库信息。DNS服务器分为根服务器、顶级域名DNS服务器。根域DNS服务器有13个,存储全部的顶级域名服务器所在地址;顶级域名服务器储存了每个客服所注册的主机地址。
域名记录:A, Cname, NS, MX, PTR
A记录(adress)正向解析
A记录将一个主机名(全名FQDN)和一个IP地址关联起来。这也是大多数客户端程序默认的类型。例:xuegod.cn->8.8.8.6。
PTR记录(Pointer)反向解析
PTR记录将一个IP地址对应到主机名(全程名FQDN)。这些记录保存在in-addr.arpa域中。
CNAME记录别名
别名记录,也称为规范名字(Canoncal Name)。这种记录允许你将多个名字映射到同一台计算机中。
例如:www.xuegod.cn对应IP8.8.8.6,web.xuegod.cn对应IP8.8.8.6
MX记录
是邮箱交换记录,指向一个邮件服务器,用于电子邮件系统发邮件时根据收信人的地址后缀来定位邮箱服务器
NS记录
是域名服务器记录,也称为授权服务器,用来指明该域名由哪个DNS服务器来解析。
DNS缓存服务器
不负责解析域,只是缓存域名解析结果
相关命令
使用nslookup查看域名
1 | nslookup 需要查询的域名 |
使用dig查询域名
1 | dig (选项) 需要查询的域名 |
dig查询DNS服务器bind版本信息
1 | dig txt chaos VERSION.BIND @ns3.dnsv4.com |
说明:
txt 记录类型
chaos 类级别
version 版本信息
查询网站的域名注册信息和备案信息
web接口查询和Whois命令查询
(1) 通过web接口查询
(2)通过whois命令查询
whois查询
WHOIS 是一个广泛使用的查询和响应协议,旨在访问存储有关注册互联网资源信息的数据库。它主要与域名相关联,但也可以提供有关 IP 地址块和自治系统的详细信息。你可以把它想象成互联网的巨大型电话簿,让你查找谁拥有或负责各种在线资产。1
whois inlanefreight.com
每个 WHOIS 记录通常包含以下信息:
Domain Name: 域名本身(例如,example.com)Registrar: 域名注册的公司(例如,GoDaddy,Namecheap)Registrant Contact: 注册域名的人员或组织。Administrative Contact: 负责管理域名的人员。Technical Contact: 处理域名相关技术问题的人员。Creation and Expiration Dates: 域名注册时间和到期时间。Name Servers: 将域名转换为 IP 地址的服务器。
四、常见最新漏洞公布网站
美国著名安全公司 offensive Security的漏洞库 http://www.exploit-db.com[比较及时]
赛门铁克的漏洞库 http://www.securityfocus.com(国际权威漏洞库)
国家信息安全漏洞分享平台 http://www.cnvd.org.cn/
国内安全厂商——绿盟科技 http://www.nsfocus.net/
俄罗斯知名安全实验室 https://www.securiitylab.ru/vulnerability/
CVE常见漏洞和披露 http://cve.mitre.org
信息安全漏洞门户 http://vulhub.org.cn/index
美国国家信息安全漏洞库 https://nvd.nist.gov/
知道创宇漏洞库 https://www.seebug.org/
主动扫描
1.特点
直接与目标系统交互通信。
无法避免留下访问痕迹。
- 使用受控的第三方电脑进行探测,使用代理或已经被控制的机器,做好被封杀的准备。
- 扫描发送不同的探测,根据返回结果判断目标状态。
2.过程
- 识别存活主机,发现潜在的被攻击目标
- 输出一个IP地址列表,比如一个IP地址段IIP地址范围。
- 使用二、三、四层进行探测发现
主机扫描
ping命令
PING命令是我们通过常用的判断主机之间网络是否畅通,同样也可判断我们的目标主机是否存活。
常用参数
-I <接口>: 指定使用的网络接口。-c <次数>: 指定发送的数据包数量。-f: 以最快的速度发送数据包。-w <超时>: 指定等待每个回复的超时时间(以秒为单位)。
其他参数
-U: 发送ICMP Echo Request(ping)数据包,但不等待回复。-D: 显示详细的路由信息。-n: 不进行DNS解析,直接使用IP地址。-q: 静默模式,不显示进度信息。-v: 详细模式,显示更多信息。
批量扫描
Linux主机:1
for i in {1..254}; do ping -c 1 -W 1 192.168.1.$i >/dev/null 2>&1 && echo "192.168.1.$i is UP" & done
Windows主机
- cmd:
1 | for /L %x in (1,1,254) do @ping -n 1 -w 100 192.168.1.%x | find "回复" |
- powershell:
1
2
3
4
5
6
7
8
9
10
11
12
13$subnet = "192.168.1"
$results = 1..254 | ForEach-Object -Parallel {
$ip = "$using:subnet.$_$"
$ping = Test-Connection -ComputerName $ip -Count 1 -Quiet
[PSCustomObject]@{
IP = $ip
Status = if ($ping) { "存活" } else { "离线" }
}
} -ThrottleLimit 50 # 同时并发50个线程
# 输出存活的 IP 列表
$results | Where-Object Status -eq "存活" | Out-GridView衍生命令
ARPING
概述:ARP协议是地址解析协议“Address Resolution Protocol”(地址解析协议)的缩写。计算机通过ARP协议将IP地址转化成MAC地址。
ARP协议将32位IP地址转换成48位物理地址,即网卡的MAC地址,保证通讯顺利进行。
可以检查是否有人冒充网关。
常用选项
-I <接口>: 指定使用的网络接口。-c <次数>: 指定发送的数据包数量。-f: 以最快的速度发送数据包。-w <超时>: 指定等待每个回复的超时时间(以秒为单位)。
HPING3
hping3是一个命令行下使用的TCP/IP数据包组装/分析工具,通过web服务会用来做压力测试使用,也可以用来DOS攻击实验。Hping只能扫描一个目标。
基本用法
hping3 的基本用法如下:
1 | hping3 <目标IP地址> [选项] |
常用选项
-c <次数>: 指定发送数据包的次数。-p <端口>: 指定目标端口。-S: 模拟SYN包。-F: 模拟FIN包。-R: 模拟RST包。-A: 模拟ACK包。-X: 模拟PSH包。-0: 模拟NULL选项。-1: 模拟ECHO选项。-2: 模拟TS选项。-3: 模拟WScale选项。
补充选项
--flood:尽可能快的发送数据包,不需要考虑入站回复。洪水攻击模式--rand-source使用随机的源头IP地址,这里伪造的IP地址,只是在局域网中伪造,通过路由后会还原成真实IP地址nmap扫描
nmap在探测前会把域名通过DNS解析器解析为IP地址,也可以使用指定的DNS解析器进行解析,使用--dns-servers参数指定
地址扫描
traceroute命令
traceroute命令可以追踪路由,进而判断经过设备的ip地址。
端口扫描
nc命令
nc是netcat的简写,有着网安界的瑞士军刀美誉。因为它短小精悍、功能实用、被设计成一个简单、可靠的网络工具
nc的作用:
1.实现任意TCP/UDP端口的侦听,nc可以作为server以TCP或UDP方式侦听指定端口。
2.端口的扫描,nc可以作为client发起TCP或UDP连接
3.机器之间传输文件
4.机器之间网络测速
nc参数:
-nv 表示我们扫描的目标是个IP地址不做域名解析
-w 表示超时时间
-z 表示进行端口扫描
nmap端口扫描
- Open 表示端口处于开放状态
- Closed 表示端口处于关闭状态
- Filterd 表示端口处于过滤无法收到信息
- UnFilterd 表示端口收到返回的probe,但是无法确认
- Open/UnFilterd 表示端口处于开放或者未过滤状态
- Closed/UnFilterd 表示端口处于关闭或者为过滤状态
强制扫描端口
在扫描目标机器时,跳过“Ping探测”阶段,直接强制扫描端口,以此来绕过防火墙的拦截。
在默认情况下,当你使用 Nmap 扫描一个 IP 时,它会先发送一个 ICMP 请求(也就是俗称的 Ping) 去试探一下目标主机是否“活着”。
- 如果主机有回应,Nmap 才会接着扫描它的具体端口。
- 如果主机没有回应(Ping不通),Nmap 就会认为这台机器没开机或不存在,直接停止后续的扫描。
很多服务器为了安全,会开启防火墙并禁止 Ping(也就是拦截 ICMP 数据包)。
- 如果你不用
-Pn参数:Nmap 会因为 Ping 不通目标而放弃扫描,导致你获取不到任何端口信息,即使这台机器其实是正常运行的。 - 如果你加上
-Pn参数: 你就是在告诉 Nmap:“别管这台机器能不能 Ping 通,直接假设它是活着的,给我硬扫它的端口。”
指定端口扫描
使用命令-p m-n扫描之间的所有端口
详细输出
-v(详细输出模式 / Verbose)- 由于 nmap 扫描极其耗时,如果什么都不加,终端界面会一直卡在那里没有任何反馈,让人误以为程序死机了。
- 加上
-v后,Nmap 会在扫描过程中实时打印出它正在做什么(例如:“发现了一个开放的 80 端口”、“正在尝试识别操作系统”等)。 - 提示:如果想看更底层的详细信息,可以使用
-vv(双重详细)。
识别指纹
为了确保有一个成功的渗透测试或网络设备监控,必须需要知道目标系统中服务的指纹信息。服务指纹信息包括服务端口、服务名和版本等。
通过分析目标往Nmap发送的数据包中某些协议标记、选项和数据,我们可以推断发送这些数据包的操作系统等。
nmap通过向目标主机发送多个UDP与TCP数据包并分析其响应来进行操作系统指纹识别工作
全面扫描
-A通常用于对目标进行深度且全面的扫描,并实时查看扫描进度。
-A(全面扫描 / 综合扫描) 这是一个“强力”参数(Aggressive scan options)。启用它相当于同时开启了 Nmap 的四个高级功能,可以一次性获取目标机器极其丰富的指纹和配置信息:- 操作系统探测 (
-O):尝试识别目标机器运行的操作系统类型及版本。 - 服务版本探测 (
-sV):探测开放端口上具体运行的服务及版本号(也就是你上一节记的内容)。 - 默认脚本扫描 (
-sC):使用 Nmap 脚本引擎 (NSE) 中的默认脚本集合对目标进行自动化安全测试(比如检测常见漏洞、获取更详细的服务信息)。 - 路由追踪 (
--traceroute):追踪从你的电脑到目标主机之间经过的路由节点。
- 注意:因为动作很大,发送的数据包非常多,所以扫描速度较慢,且极易被目标防火墙或 IDS(入侵检测系统)记录和拦截。
- 操作系统探测 (
