信息收集
一、DNS
1 DNS记录
区域文件
区域文件是名称服务器存储其所知道的域名的信息的方式。
区域文件的 $ORIGIN 表示该区域最高等级的权威。
区域文件的$TTL 配置它提供的信息的 “生存时间”。
SOA 记录
开始授权,或者说是 SOA,这种记录是所有区域性文件中的强制性记录。它必须是一个文件中的第一个记录($ORIGIN 和 $TTL 会在它之前指定)。
A 和 AAAA 记录
这两个记录都将主机映射到 IP 地址。 “A” 记录用于将主机映射到 IPv4 IP 地址,而 “AAAA” 记录用于将主机映射到 IPv6 地址。
CNAME 记录
CNAME 记录为您的服务器(由A或AAAA记录定义的名称)定义规范名称的别名。
MX 记录
MX 记录用来定义用于域的邮件交换。
NS 记录
此记录类型定义用于此区域的名称服务器。
PTR 记录
PTR 记录用于定义与 IP 地址相关联的名称。
详细解释
2 dnsenum
域名信息搜集工具,还可以搜集子域信息。
使用方法:
选项 | 说明 |
---|---|
--dnsserver <server> | 指定域名服务器,事例:dnsenum --dnsserver 114.114.114.114 baidu.com |
--enum | 快捷选项,相当于"--threads 5 -s 15 -w" |
-h --help | 显示帮助信息 |
--noreverse | 跳过反向查询操作 |
--nocolor | 无彩色输出 |
--private | 显示并在"domain_ips.txt"文件结尾保存私有的ips |
--subfile <file> | 写入所有有效的子域名到指定文件 |
-t, --timeout <value> | tcp或者udp的连接超时时间,默认为10s(时间单位:秒) |
--threads <value> | 查询线程数 |
-v, --verbose | 显示所有的进度和错误消息 |
-o --output <file> | 输出选项,将输出信息保存到指定文件 |
-e, --exclude <regexp> | 反向查询选项,从反向查询结果中排除与正则表达式相符的PTR记录,在排查无效主机上非常有用 |
-w, --whois | 在一个C段网络地址范围提供whois查询 |
二、二层发现(ARP)
arping
arping主要干的活就是查看ip的MAC地址及IP占用的问题。
arping详解
arping批量脚本
遍历网卡所在网段的主机
使用方法例如:
./arping.sh eth0
#!/bin/bash
interface=$1
prefix=$(ifconfig $interface | grep -w 'inet' | awk '{print($2)}' | cut -d '.' -f 1-3 )
for addr in $(seq 1 254);do
arping -c 1 $prefix.$addr | grep from | awk -F\( '{print($2)}' | awk -F\) '{print($1)}'
done
nmap(好用)
nmap -sn 192.168.1.1
nmap 192.168.1.0/24
加-sn会省略端口扫描
发送的包有arp包和dns包(反向解析ip,尝试获取主机名)
三、三层发现(ICMP)
nmap
如果不在该网段,会第三层探测,也会发tcp包,其实是综合探测。
nmap -sn 192.168.1.1
nmap 192.168.1.0/24
加-sn会省略端口扫描
发送的包有arp包和dns包(反向解析ip,尝试获取主机名)
四、四层发现(TCP/UDP)
发现的是活着的ip,并不是端口。
nmap
nmap 1.1.1.1-254 -PU53 -sn //UDP ping port 53
nmap 1.1.1.1-254 -PA80 –sn //ACK ping port 80
nmap -iL iplist.txt -PA80 -sn
hping3
hping3 --udp 1.1.1.1 -c 1 //udp
hping3 1.1.1.1 -c 1 //tcp
五、端口扫描
UDP端口扫描
对于UDP端口,没有“连接”的概念,即使本机向远端主机某个UDP端口发送一个数据包,对方没有回复,也不能断定对方该端口是否处于“开”的状态。好在ICMP协议中,当向对方未提供服务的端口发送数据时,对方会自动回复一个“远端端口未打开”的错误,那么这个错误信息就可以作为端口“关”的依据,相反则认为该端口是开的。
nmap(UDP)
• nmap -sU 1.1.1.1
//nmap默认会扫描1000个常用端口
• ICMP host-unreachable
• nmap 1.1.1.1 -sU -p 53
• nmap -iL iplist.txt -sU -p 1-200
TCP端口扫描
原理是当一个主机向远端一个服务器的某一个端口提出建立连接的请求,如果对方有此项服务,就会同意建立连接,如果对方未安装此项服务时,则不会同意建立连接。
基于连接的协议
三次握手
隐蔽扫描僵尸扫描
全连接扫描
所有的TCP扫描方式都是基于三次握手的变化来判断目标端口状态
nmap僵尸扫描(ip伪造)
• 发现僵尸机
• nmap -p445 192.168.1.133 --script=ipidseq.nse
• 扫描目标
• nmap 172.16.36.135 -sI 172.16.36.134 -Pn -p 0-100
nmap隐蔽端口扫描(SYN)
• nmap -sS 1.1.1.1 -p 80,21,25,110,443
• nmap -sS 1.1.1.1 -p 1-65535 --open
• nmap -sS 1.1.1.1 -p- --open
• nmap -sS -iL iplist.txt -p 80,21,22,23
hping3隐蔽端口扫描(SYN)
• hping3 1.1.1.1 --scan 80 -S
• hping3 1.1.1.1 --scan 80,21,25,443 -S
• hping3 1.1.1.1 --scan 0-65535 -S
• hping3 -c 10 -S --spoof 1.1.1.2 -p ++1 1.1.1.3
namp全连接扫描(TCP)
实现了三次握手
• nmap -sT 1.1.1.1 -p 80
• nmap -sT 1.1.1.1 -p 80,21,25
• nmap -sT 1.1.1.1 -p 80-2000
• nmap -sT -iL iplist.txt -p 80
默认设置了1000个端口
六、服务扫描
nc(banner)
• nc -nv 1.1.1.1 22
dmitry(banner)
• dmitry -p 172.16.36.135
• dmitry -pb 172.16.36.135
nmap(banner)
• nmap -sT 1.1.1.1 -p 22 --script=banner
amap(banner)
• amap -B 172.16.36.135 21
• amap -B 172.16.36.135 1-65535
• amap -B 172.16.36.135 1-65535 | grep on
nmap(指纹)
nmap 1.1.1.1 -p 80 -sV
amap(指纹)
• amap 192.168.1.134 80
• amap 172.16.36.135 20-30
• amap 172.16.36.135 20-30 –q
• amap 172.16.36.135 20-30 -qb
七、操作系统识别
一些操作系统默认会开发一些服务,可以利用。
nmap(综合识别)
• nmap 1.1.1.1 -O
八、SMAP扫描
smap是一个管理软件,利用smap的错误配置,可能会获取一些信息。
onesixtyone
• onesixtyone 1.1.1.1 public
• onesixtyone -c dict.txt -i hosts -o my.log -w 100
snmpwalk
• snmpwalk 192.168.20.199 -c public -v 2c
• 用户
• snmpwalk -c public -v 2c 1.1.1.1 1.3.6.1.4.1.77.1.2.25
snmpcheck
• snmpcheck -t 192.168.20.199
• snmpcheck -t 192.168.20.199 -c private -v 2
• snmpcheck -t 192.168.20.199 -w
九、SMB扫描
nmap(SMB)
• nmap -v -p139,445 192.168.60.1-20
• nmap 192.168.60.4 -p139,445 --script=smb-os-discovery.nse
• nmap -v -p139,445 --script=smb-check-vulns --script-args=unsafe=1 1.1.1.1
十、SMTP扫描
nmap
• nmap smtp.163.com -p25 --script=smtp-enum-users.nse --script-args=smtp-enumusers.methods={VRFY}
• nmap smtp.163.com -p25 --script=smtp-open-relay.nse
十一、防火墙扫描
十二、WAF扫描;
wafw00f
• wafw00f -l
• wafw00f http://www.microsoft.com
nmap
• nmap www.microsoft.com --script=http-waf-detect.nse