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
Kali学习笔记8:四层发现的更多相关文章
- Kali学习笔记21:缓冲区溢出实验(漏洞发现)
上一篇文章,我已经做好了缓冲区溢出实验的准备工作: https://www.cnblogs.com/xuyiqing/p/9835561.html 下面就是Kali虚拟机对缓冲区溢出的测试: 已经知道 ...
- Kali学习笔记7:三层发现
三层发现:发送ICMP/IP数据包探测 第一种方式: 就是很简单的Ping命令: 不过linux的ping命令和windows的ping命令不一样,它会默认不停止地发数据包 我们可以通过-c参数来设置 ...
- Kali学习笔记6:二层发现
先介绍下ARPING命令: arping命令是用于发送ARP请求到一个相邻主机的工具 arping使用arp数据包,通过PING命令检查设备上的硬件地址.能够测试一个IP地址是否是在网络上已经被使用, ...
- Kali学习笔记31:目录遍历漏洞、文件包含漏洞
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 目录遍历漏洞: 应用程序如果有操作文件的功能,限制不严 ...
- Kali学习笔记30:身份认证与命令执行漏洞
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 实验环境: Kali机器:192.168.163.13 ...
- Kali学习笔记27:Burpsuite(上)
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 如果我只能选择一款工具进行Web渗透,那么一定就是Bu ...
- Kali学习笔记26:OWASP_ZAP
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 OWASP_ZAP扫描器不同于之前介绍的Web扫描器: ...
- Kali学习笔记24:Nikto、Skipfish
文章的格式也许不是很好看,也没有什么合理的顺序 完全是想到什么写一些什么,但各个方面都涵盖到了 能耐下心看的朋友欢迎一起学习,大牛和杠精们请绕道 实验环境: Kali机器IP:192.168.163. ...
- Kali学习笔记4:Wireshark详细使用方法
Kali Linux自带Wireshark工具使用介绍: 1.进入界面 这里Lua脚本报错,无需关注 开始使用: 双击第一个eth0:以太网0,开始抓包: 点击上边的这个按钮可以设置: 这里注意:需要 ...
随机推荐
- Rendering Problems Couldn't resolve resource @dimen/y20
(转)文章转自 songzi1228 的 https://blog.csdn.net/songzi1228/article/details/80255058 本人亲自试用,妥妥的解决了我的问题. R ...
- 《笨方法学Python》加分题32
注意一下 range 的用法.查一下 range 函数并理解它在第 22 行(我的答案),你可以直接将 elements 赋值为 range(0, 6) ,而无需使用 for 循环?在 python ...
- 面试简单整理之Redis
179.redis 是什么?都有哪些使用场景? Redis是一个key-value存储系统. 缓存,消息队列,排行榜/计数器,分布式架构,做session共享 180.redis 有哪些功能? 181 ...
- FPGA學習筆記(肆)--- Star Test Bench Template Writer
上一篇testbench我自己也沒怎麽搞懂,再來一篇學習特權同學的方法. 課程:Lesson 7 BJ EPM240学习板实验1——分频计数实验 鏈接:https://www.youtube.com/ ...
- Movavi Video Editor 15 Plus Mac怎样更改视频的分辨率?
使用Movavi Video Editor 15您可以对视频进行切割和修剪,裁剪和旋转,色度键,视频稳定以及画中画等很多的编辑,该软件操作简单,就算是新手也无需担心操作问题,本文讲述了Movavi V ...
- 1. String可调用方法
class str(basestring): """ str(object='') -> string Return a nice string represent ...
- node vue 项目部署问题汇总
场景:vue-router为history模式,不带项目名访问的部署,如果资源是用相对路径加载,则资源匹配路径不对 一.带项目名称访问,如部署到tomcat服务上 webpack: build/ut ...
- Qt自定义滚动条(不使用样式表)
前面使用Qt 样式表实现滚动条,在实际工作中,发现存在一些瑕疵,例如如果在主窗口中绘制背景,则有可能给滚动条染色,还有如果想实现特殊的效果,则必须使用自定义风格,即从QStyle的子类派生出新的类型. ...
- 【Mybatis】MyBatis之动态SQL(六)
MyBatis 的强大特性之一便是它的动态 SQL,本章介绍动态 SQL 查看本章,请先阅读[Mybatis]MyBatis对表执行CRUD操作(三). 本例表结构 CREATE TABLE `emp ...
- C# 结构体和List<T>类型数据转Json数据保存和读取
C# 结构体和List<T>类型数据转Json数据保存和读取 一.结构体转Json public struct FaceLibrary { public string face_name ...