Kali学习笔记8:四层发现

1.基于TCP协议

 

优点:

1.可路由且结果可靠

2.不太可能会被防火墙过滤

3.甚至可以发现端口

 

缺点:

速度较慢(三次握手)

 

利用Scapy发送ACK数据包:

 

配置数据包:

 

 

发送数据包:

 

看一下收到数据包的结果:

 

这里收到Reset,只要ip存在,无论这个端口是否开放,都会返回Reset数据包

 

我们抓包看看:

 

 

基本会使用Scapy之后,可以写一个Scapy的脚本:

ack_ping.py

#!/usr/bin/python

import logging
import subprocess
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *

if len(sys.argv)!= 2:
  print "Usage - ./ack_ping.py [/24 network address]"
  print "Example - ./ack_ping.py 10.14.4.129"
  sys.exit()

address = str(sys.argv[1])
prefix = address.split(".")[0]+'.'+address.split(".")[1]+'.'+address.split(".")[2]+'.'

for addr in range(1, 255):
  response = sr1(IP(dst=prefix+str(addr))/TCP(dport=2222,flags='A'),timeout=0.1,verbose=0)
  try:
    if int(response[TCP].flags)==4: 
      print(prefix+str(addr))
  except:
    pass

 

vi ack_ping.py

:set fileformat=unix

:wq

chmod u+x ack_ping.py

 

接下来就可以运行:

./ack_ping.py

就可以探测哪些ip存活

 

2.基于UDP协议

由于UDP协议的特性:

如果ip存在,我们将无法收到回应

反而:如果ip不存在,我们就会收到ICMP的不可达信息

所以,要注意使用时最好发送到基本不会使用到的端口

 

Scapy使用:

 

同理,写一个脚本:

#!/usr/bin/python

import logging
import subprocess
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import *

if len(sys.argv)!= 2:
  print "Usage - ./ping1.py [/24 network address]"
  print "Example - ./ping1.py 10.14.4.129"
  sys.exit()

address = str(sys.argv[1])
prefix = address.split(".")[0]+'.'+address.split(".")[1]+'.'+address.split(".")[2]+'.'

for addr in range(1, 254):
  response = sr1(IP(dst=prefix+str(addr))/UDP(dport=7634),timeout=0.1,verbose=0)
  try:
    if int(response[IP].proto)==1: 
      print(prefix+str(addr))
  except:
    pass

 

这种方式其实通常无法满足我们的需求

 

实际总是运用多种方式,arping,tcp等等结合在一起使用

 

3.Nmap工具

 在三、四层的发现中,nmap是一个十分强大的工具:

 

四层发现参数:-PU端口:UDP   -PA端口:TCP(ACK)

 

 

nmap的速度和scapy相比,快了很多,而且nmap扫描两遍

 

4.Hping命令

 

 

当然可以将hping命令写成脚本

#!/bin/bash
prefix=$(echo $1 | cut -d"." -f 1-3)
for addr in $(seq 1 254);do
   hping3 $prefix.$addr -c 1 >> r.txt
done
grep ^len r.txt | cut -d" " -f 2 | cut -d"=" -f 2 >> output.txt
rm r.txt

 

总结:推荐使用nmap,毕竟这是最强大的工具。而我们如果想要细节定制,可以采用Scapy

 

转载于:https://www.cnblogs.com/xuyiqing/p/9309124.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值