【安全牛学习笔记】主动探测
arp协议不可路由
桥接到物理网络
arping -c指定数量,-d出现两个相同ip地址的主机 (二层发现)
arping -c 1 1.1.1.1 | grep "bytes from" | cut -d" " -f 5 | cut -d "(" -f 2 | cut -d")" -f 1 只显示ip地址
通过脚本实现对大量主机扫描
#!/bin/bash
if [ $# -ne 1 ];then
echo "Usage : ./arping1.sh eth0"
exit
fi
interface=$1
prefix=$(ifconfig $interface | grep 'inet addr' | cut -d ":" -f 2 | cut -d ' ' -f 1 | cut -d "." -f 1-3)
for addr in $(seq 1 245);do
arping $prefix.$addr -c 1 | grep 'bytes from' | cut -d " " -f 5 | cut -d "(" -f 2 | cut -d ")" -f 1
done
nmap工具
-sn 不做端口扫描
支持地址段扫描,192.168.1.0/24
-iL 文件名 指定ip地址列表文件
Netdiscover工具
主动:netdiscover -i eth0 -r 1.1.1.0/24
netdiscover -l iplist.txt
被动:netdiscover -p
scapy工具
apt-get install python-gnuplot
sr1(APR(pdst=”192.168.1.2”),timeout=1,verbose=1) 1秒超时退出,显示详细错误信息
python 1.py 不需要执行权限
三层ICMP协议
ping命令发出icmp协议包发出type8类型返回type0,-R路由追踪返回离主机远的ip地址
traceroute 路由追踪,发出ttl值递增的icmp包,返回时离主机近的网卡ip地址
ttl值,能经过路由器数目的最大值
scapy工具
ip=IP()
ip.dst=“1.1.1.1” ping=ICMP() a=sr1(ip/ping) a.display() Ping
a=sr1(ip/ping,timeout=1)
a = sr1(IP(dst=“1.1.1.1")/ICMP(),timeout=1)
fping 1.1.1.1 -c 1
fping -g 1.1.1.1 1.1.1.2
fping -g 1.1.1.0/24
fping -f iplist.txt
四层TCP与UDP
TCP协议发送未经请求的ACK包,无论端口开不开放,目标会回RST包,发SYN包SYN/ACK(开放)/RST(不开放)
UDP协议发向没有开放端口时会返回不可达包,可知主机在线
windows开放445端口
dport改端口
udp53端口
http80端口
nmap工具
nmap 1.1.1.1-254 -PU53 -sn 四层发现UDP
nmap 1.1.1.1-254 -PA80 –sn 四层发现ACK
nmap -iL iplist.txt -PA80 -sn