内容简介:发现的目的是扫描出可能存活的IP地址,四层发现虽然涉及端口扫描,但是并不对端口的状态进行识别,其本质是利用四层协议的一些通信来识别主机ip是否存在传统TCP连接是通过三次握手建立通信过程,然后可以向目标发送资源申请的请求,本机再发送ack进行确认,这是一种基于连接的可靠的通信协议。如果我们之前没有建立TCP连接,而是直接向目标发送ack,这时目标服务器回想本机发送一个RST包进行拒绝,因此,当目标服务器拒绝时,便可以基于次探测目标主机是否存在了!也可以通过三次握手建立通信连接,通过发送的SYN包来确定目标主
发现的目的是扫描出可能存活的IP地址,四层发现虽然涉及端口扫描,但是并不对端口的状态进行识别,其本质是利用四层协议的一些通信来识别主机ip是否存在
TCP探测
传统TCP连接是通过三次握手建立通信过程,然后可以向目标发送资源申请的请求,本机再发送ack进行确认,这是一种基于连接的可靠的通信协议。如果我们之前没有建立TCP连接,而是直接向目标发送ack,这时目标服务器回想本机发送一个RST包进行拒绝,因此,当目标服务器拒绝时,便可以基于次探测目标主机是否存在了!也可以通过三次握手建立通信连接,通过发送的SYN包来确定目标主机是否在线。
UDP探测
UDP不同于TCP,UDP没有通过握手建立连接的过程,UDP只是尽力而为而已,它是一种非连接的不可靠传输协议,因此基于UDP来探测主机,难度和发现的准确率都高于TCP。同样是基于UDP的一些特征信息来探测。
如果目标IP不在线,那我们对其发送的UDP包不会有任何的回应,但假如目标IP在线,而且发送到UDP的目标端口处于开放状态,一般说来,这时目标主机接受到我的UDP包时也不会有任何回应,但有一种列外,即是目标端口没有开放时,会向我们发送一个ICMP不可达的包(但是到这里我们并不对其端口进行扫描)
Scapy构造四层TCP探测数据包
将TCP包头的flag位设定为ACK,然后发送给一个目标/端口,最后判断是否收到RST响应包,以此确定目标IP是否在线。无论是基于几层的探测扫描,得到结果也只不过是一种极大可能的参考,一切都可能不是真实的
先构造三层ip包,再构成四层tcp,然后将三层/四层组合起来构成一个TCP包
root@:~# scapy
>>> i=IP()
>>> t=TCP()
>>> r=(i/t)
>>> r.display()
###[ IP ]###
version= 4
ihl= None
tos= 0x0
len= None
id= 1
flags=
frag= 0
ttl= 64
proto= tcp
chksum= None
src= 127.0.0.1
dst= 127.0.0.1
\options\
###[ TCP ]###
sport= ftp_data
dport= http
seq= 0
ack= 0
dataofs= None
reserved= 0
flags= S
window= 8192
chksum= None
urgptr= 0
options= []
>>> r[IP].dst="192.168.1.1"
>>> r[IP].dst="19
>>> r[IP].dst="192.168.1.1"
>>> r[TCP].flags="A"
>>> r.display()
###[ IP ]###
version= 4
ihl= None
tos= 0x0
len= None
id= 1
flags=
frag= 0
ttl= 64
proto= tcp
chksum= None
src= 192.168.0.108
dst= 192.168.1.1
\options\
###[ TCP ]###
sport= ftp_data
dport= http
seq= 0
ack= 0
dataofs= None
reserved= 0
flags= A
window= 8192
chksum= None
urgptr= 0
options= []
>>>
发包:
a=sr1(r)
上述过程用一行命令实现:
a=sr1(IP(dst="192.168.0.1")/TCP(dport=80,flags="A"),timeout=1)
Scapy构造四层UDP探测数据包
a=sr1(IP(dst="192.168.0.102")/UDP(dport=7345),timeout=1)
使用nmap进行四层发现
nmap不仅可以用于端口扫描,还可以用于四层发现
参数-PU:基于UDP
nmap -PU -sn 221.22.0.1-50
-PA:基于TCP的ACK,-PS:基于TCP的SYN
nmap -PA80 -sn 221.22.0.1-50
hping3
--udp:基于UDP模式
hping3 --udp -c 1 211.144.145.1
如果我选择一个内网中不存在的IP,会显示端口不可达
基于这个提示,至少可以确定主机是存在的
不加参数--udp,默认使用TCP模式,凡是hping发送的tcp所有的flags位都是not set的,即都是0的状态,它不同于udp的扫描,它通过返回的ack+rst包来判断主机存活
hping3 -c 1 211.144.145.1
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
The Master Switch
Tim Wu / Knopf / 2010-11-2 / USD 27.95
In this age of an open Internet, it is easy to forget that every American information industry, beginning with the telephone, has eventually been taken captive by some ruthless monopoly or cartel. Wit......一起来看看 《The Master Switch》 这本书的介绍吧!