Kali linux 学习笔记(十一)主动信息收集——三层发现(ping、nmap、scapy、fping、hping) 2020.2.21

前言

三层发现理论上可以发现世界上所有活着的主机
优点:可路由、速度较快
缺点:速度比二层慢、经常被防火墙过滤
主要用IP协议、icmp协议
工具有:ping、fping、hping、scapy、nmap

1、三层发现——ping

指令

ping 1.1.1.1 -c 2
ping -R 1.1.1.1 #-R实现路由追踪,不一定能正常使用
traceroute 1.1.1.1 #traceroute实现路由追踪
ping 1.1.1.1 -c 1 | grep "bytes from" | cut -d " " -f 4 | cut -d ":" -f 1

脚本

ping.sh

#!/bin/bash
if["$#" -ne 1] then #脚本执行时后面参数不为1
 echo "Example  ./ping.sh 1.1.1.1" 
 exit
fi
prefix=$(echo $1 | cut -d "." -f 1-3)  #取指定IP的前三部分
for addr in $(seq 1 254):do
 ping -c 1 $prefix.$addr | grep "bytes from" | cut -d " " -f 4 | cut -d ":" -f 1
done

执行

chmod u+x ping
./ping.sh 211.144.145.0

2、三层发现——scapy

OSI多层堆叠手工声称ICMP包——IP/ICMP

指令

i=IP()
p=ICMP()
ping=(i/p) #定义一个ping包
ping.display() #查看内容
ping[IP].dst = "192.168.1.132" #赋值
a=sr1(ping) #发送ping包
a.display() #查看返回包

脚本

pinger1.py

#!/usr/bin/python
import logging #导入日志
import subprocess #系统指令
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
form scapy.all import *
if len(sys.argv) != 2: #命令后面如果没跟参数
 print("Example : ./pinger1.py 1.1.1.1")
 sys.exit
address = str(sys.argv[1])
prefix = address.split('.')[0] +"." + address.split('.')[1]+"." + address.split('.')[2] + "."
for addr in range(0,254):
 answer = sr1(IP(dst=prefix+str(addr))/ICMP(),timeout=0.1,verbose=0) #verbose=0指错误不显示
 if answer == None:
  pass
 else:
  print(prefix + str(addr))

pinger2.py

#!/usr/bin/python
import logging #导入日志
import subprocess #系统指令
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
form scapy.all import *
if len(sys.argv) != 2: #命令后面如果没跟参数
 print("Example : ./pinger2.py 1.1.1.1")
 sys.exit
filename = str(sys.argv[1])
file = open(filename,'r')
for addr in file:
 answer = sr1(IP(dst=addr.strip())/ICMP(),timeout=0.1,verbose=0)
 if answer == None:
  pass
 else:
  print(addr.strip())

3、三层发现——nmap

与二层发现相同

nmap 1.1.1.1-254 -sn #-sn就只做ping扫描不做端口扫描,nmap可以指定IP段
nmap -iL iplist.txt -sn #-iL调用iplist,扫描里面记录的IP

4、三层发现——fping

比ping多响应时间、丢包率等
且可以对IP地址段使用

fping 1.1.1.1 -c 1
fping -g 192.168.1.100 192.168.1.200 -c 1 #对IP段扫描
fping -g 192.168.1.100 192.168.1.200 -c 1 | grep min/avg/max 

5、三层发现——hping

能够发送几乎所有TCP/IP包
每次只扫描一个目标

hping3 1.1.1.1 -icmp -c 2

脚本

for addr in $(seq 1 254):do hping3 1.1.1.$addr -icmp -c 1 >> handle.txt & done

结语

三层发现主要在于可路由
但容易被防火墙过滤

下一节是四层发现

发布了28 篇原创文章 · 获赞 2 · 访问量 1040

猜你喜欢

转载自blog.csdn.net/weixin_44604541/article/details/104430637
今日推荐