信息收集
2024年12月10日大约 3 分钟
1.主机发现:
nmap -sn 10.32.252.0/24 (扫c段)
-sn不进行端口扫描(也称ping扫描)(在扫描互联网的时候)
- 发送ICMP回显请求
- 对端口443的TCPSYN请求
- 对端口80的TCPACK请求
- 默认情况下的ICMP时间戳请求
- 非特权用户执行时会用conact调用发送SYN数据包到443端口
- 特权用户发送ARP请求
-sL列表扫描
- -sL与-sn有相同时目的吗,-sn对目标网络进行轻量级的侦查(入侵),不会引起太多注意
sudo arp-scan -l
这段命令与nmap -sn原理相同(在扫描本地网络的时候)
--send-ip :发送ICMP时间戳请求确定主机的活动性,(arp请求可能不会被主机响应,而icmp可以,更可靠)
2.端口扫描:
- 建立一个文件夹以存放扫描结果:mkdir nampscan
sudo nmap --min-rate 10000 -p- 10.10.10.21 -oA nmapscan/ports
不指定扫描技术则默认-sS扫描,但实际应该以-sT以tcp协议进行扫描 - --min-rate 1000:以最低一万的速率扫描全部端口
- -p- :接需要扫描的主机
- -o(输出)A(all):数据化输出
- -sS:利用tcp的syn标志位来探测目标主机的端口,发送syn包只建立tcp连接的第一步,收到syn+ack回复,则表示端口开放,若表示rst复位,则表示端口关闭(快速扫描存在的端口)
- -sT:需要等待完整的tcp的连接过程,实战中这个准确性,隐蔽性更高
nmapscan/ports:输出到nmapscan下的ports文档中,输出文件格式.gnmap(nmap自创的形式,已被弃用) .nmap .xml
需要单独将开放的端口输出到控制台:
grep open nmapscan/ports.nmap | awk -F'/' '{print $1}'
- 搜索posts.nmap中open的端口 | 用awk指定-F的参数,用斜杠作为分隔符,打印第一列
posts=$(grep open nmapscan/ports.nmap | awk -F'/' '{print $1}' | paste -sd ',')
- -sd:指定合并到一行
- ',':分隔符是逗号
- posts=$:指定变量posts
构造详细信息扫描
sudo nmap -sT -sV -sC -O -p21,22,80,3306 10.10.21 -oA nmapscan/detail
- -sT:用tcp协议扫描
- -sV:探测服务版本
- -sC:用默认脚本扫描(用于漏洞检测或服务信息收集)
- -O:探测服务器版本
- -p:用$+tab键补全端口值
本次扫描是nmap最重的一次扫描,同时可以尝试UDP扫描
UDP扫描
sduo nmap -sU --top-ports 20 10.10.10.21 -oA nampscan/udp
- sU:指定UDP协议扫描
- --top-ports 20:指定扫描20端口(常用)
Traceroute
traceroute
是一个网络诊断工具,用于显示数据包从源主机到目标主机经过的路由。它通过发送带有逐渐增加的 TTL(生存时间)值的 ICMP 数据包来工作。
Nmap Scripting Engine (NSE)
Nmap 是一个强大的网络扫描工具,NSE 允许用户编写 Lua 脚本以执行各种网络任务,如服务发现、漏洞扫描等。NSE 脚本可以通过 -sC
或 --script
选项来运行。