Kali学习笔记6:二层发现
先介绍下ARPING命令:
arping命令是用于发送ARP请求到一个相邻主机的工具
arping使用arp数据包,通过PING命令检查设备上的硬件地址。能够测试一个IP地址是否是在网络上已经被使用,并能够获取更多设备信息。功能类似于ping
直接使用,-c 参数:只发一个数据包
由于这个IP不存在,只发出去数据包,但是没有应答。
也可以写一个简单的脚本:
作用:对局域网内所有设备扫描
#!/bin/bash
if [ "$#" -ne 1 ];then
echo "Usage - ./arping.sh [interface]"
echo "Excample - ./arping.sh eth0"
echo "Example will perform an ARP scan of the local subnet to which eth0 is assigned"
exit
fi interface=$1
prefix=$(ifconfig $interface | grep "broadcast" | cut -d " " -f 10 | cut -d '.' -f 1-3)
for addr in $(seq 1 255);do
arping -c 1 $prefix.$addr -I $interface | grep "reply from" | cut -d" " -f 4
done
写好后命名:arping.sh
(如果无法运行,chmod即可)
第一次运行出错,因为需要参数:
可见,这里发现了一个192.168.87.2
nmap在二层发现中的使用:
nmap只需要一行即可实现arping的一个脚本:并且速度更快
#!/bin/bash
if [ "$#" -ne 1 ];then
echo "Usage - ./arping.sh [interface]"
echo "Excample - ./arping.sh eth0"
echo "Example will perform an ARP scan of the local subnet to which eth0 is assigned"
exit
fi interface=$1
prefix=$(ifconfig $interface | grep "broadcast" | cut -d " " -f 10 | cut -d '.' -f 1-3)
for addr in $(seq 1 255);do
arping -c 1 $prefix.$addr -I $interface | grep "reply from" | cut -d" " -f 4
done
nmap:
扫描一个指定文件中保存的IP:
其实nmap这里的扫描和arping不一样,可以抓包发现,nmap还发送DNS数据包,解析主机名
Netdiscover命令用于二层发现:
主动发现:
扫描本地所有网段:
扫描完成
可以把需要扫描的IP放在一个文件中扫描:
被动发现:原理是将网卡设置成混杂模式,等待数据包,收集信息
现在就是在等待状态,只要有数据包,就会出现显示在这里。
直接输入scapy,发现丢失文件或者有错误
这时候,输入这行即可:
耗时不多,发现下载完成之后就可以正常开启scapy了!
简单使用方式:就像调用函数的方式:
示例:这里我要定制一个ARP数据包,输入ARP后查看相关信息:
这里九行的意思分别是:硬件类型,协议类型,硬件地址长度,协议长度,操作(这里的who-has表示ARP的查询包),后边的是四个地址
参数的意思分别是:0x1:以太网,0x800:IP协议,长度分别是6,4,整体来看:
这样来理解这个包:谁是psrc(发送源)?谁的mac地址是hwsrc(发送源)?我要查的是pdst这个地址;hwdst这个mac地址!
通常我们这样来给变量赋值:
我们只需要一个简单的命令就可以将这个包发出去:
仔细看下,这里发送出去了一个包,并且回应了一个包,说明192.168.87.1这个ip地址存在
我们可以抓包看看:
不错,这个包确实发送出去了!
还可以简单设置下,看看回应包的内容
我们可以使用脚本:
arp1.py
#!/usr/bin/python import logging
import subprocess
logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
from scapy.all import* if len( sys.argv ) !=:
print "Usage - ./arp_discpy [interface]"
print "Example - ./arp_disc.py eth0"
print "Example will perform an ARP scan of thr local subnet to which eth0 is assigned"
sys.exit() interface = str(sys.argv[]) ip=subprocess.check_output("ifconfig "+interface+" | grep 'inet ' | cut -d 't' -f 2 |cut -d ' ' -f 1",shell=True).strip()
prefix = ip.split(".")[] + '.' + ip.split(".")[] + '.' + ip.split(".")[] + '.' for addr in range(,):
answer=sr1(ARP(pdst=prefix+str(addr)),timeout=0.1,verbose=)
if answer ==None:
pass;
else:
print prefix+str(addr)
然后:
chmod u+x arp1.py
./arp1.py
我第一次运行时候出错,因为是从win10系统复制过来的脚本
这里会报错:/usr/bin/python^M: 解释器错误: 没有那个文件或目录
解决方式:
vi arp1.py
:set fileformat=unix
:wq
再次
./arp1.py
即可
这里发现两个收到回报的ip
可以增强下这个脚本:
指定文件扫描
arp2.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 - ./arp_discpy [interface]"
print "Example - ./arp_disc.py eth0"
print "Example will perform an ARP scan of thr local subnet to which eth0 is assigned"
sys.exit() filename = str(sys.argv[1])
file = open(filename,"r") for addr in file:
answer=sr1(ARP(pdst=addr.strip()),timeout=0.1,verbose=0)
if answer == None:
pass
else:
print addr.strip()
还需要在当前目录下创建一个文本记录数据:我这里象征性写几个,实际情况不是如此
adds
192.168.87.1
192.168.87.2
192.168.87.3
192.168.87.4
192.168.87.5
192.168.87.6
192.168.87.7
好了,现在运行这个脚本试试:
最后:二层发现的用途:
二层发现用于我们已经控制了目标的一台主机,想要探测目标主机子网下的其他主机
Kali学习笔记6:二层发现的更多相关文章
- Kali学习笔记21:缓冲区溢出实验(漏洞发现)
上一篇文章,我已经做好了缓冲区溢出实验的准备工作: https://www.cnblogs.com/xuyiqing/p/9835561.html 下面就是Kali虚拟机对缓冲区溢出的测试: 已经知道 ...
- Kali学习笔记8:四层发现
1.基于TCP协议 优点: 1.可路由且结果可靠 2.不太可能会被防火墙过滤 3.甚至可以发现端口 缺点: 速度较慢(三次握手) 利用Scapy发送ACK数据包: 配置数据包: 发送数据包: 看一下收 ...
- Kali学习笔记7:三层发现
三层发现:发送ICMP/IP数据包探测 第一种方式: 就是很简单的Ping命令: 不过linux的ping命令和windows的ping命令不一样,它会默认不停止地发数据包 我们可以通过-c参数来设置 ...
- 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,开始抓包: 点击上边的这个按钮可以设置: 这里注意:需要 ...
随机推荐
- vue 增删改查
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- textarea下高度自适应
1,背景:textarea的高度不会随内容的增加而自适应,会出现滚动条 解决方案: 1)使用div模拟textarea 使用h5的属性 <div contenteditable=&quo ...
- git 提交代码操作
1.修改1分支后 git add git commint2.切换到本地分支git checkout local-5.0git remote update 更新远程仓库3.git pull origin ...
- session实现原理(阿里面试题)
问: 当用户登录某网站后,向服务器发送一个请求,服务器如何判断是这个用户请求的 首先,你要明白一点,最初http协议在设计的时候,主要面向当时的web1.0网站,他们不需要知道是谁来访问,只需要向外界 ...
- Desktop Central —— Windows 管理工具
Desktop Central —— Windows 管理工具 定期维护对于保持系统性能平稳必不可少.诸如磁盘检查.磁盘碎片整理程序之类的工具在系统维护中至关重要.因为管理员很难定期手动执行维护. D ...
- 工程无法正常调试运行unknown failure at android.os.Binder.execTransact
同事正常使用的工程,放到另电脑上,开后可以正常编译,但是无法安装调试到手机上,始终提示错误 新建一个工程正常. 最后通过把开发工具升级到最新版本解决.
- NIOS II 之串口学习
UART中有6个寄存器分别为control, status, rxdata, txdata, divisor,endofpacket. 的寄存器是16位位宽的. UART会产生一个高电平的中断,当接收 ...
- 【慕课网实战】九、以慕课网日志分析为例 进入大数据 Spark SQL 的世界
即席查询普通查询 Load Data1) RDD DataFrame/Dataset2) Local Cloud(HDFS/S3) 将数据加载成RDDval masterLog = sc.textFi ...
- REdis主挂掉后复制节点才起来会如何?
结论: 这种情况下复制节点(即从节点)无法提升为主节点,复制节点会一直尝试和主节点建立连接,直接成功.主节点恢复后,复制节点仍然保持为复制节点,并不会成为主节点. 复制节点无法提升为主节点的原因是复制 ...
- 写给笨蛋徒弟的学习手册(3)—C#中15个预定义数据类型
在C#中学习中,你会很早的遇到预定义数据类型这个概念,但你有没有仔细想过它存在的意义?正所谓“存在即合理”,预定义数据类型的存在目的主要有俩个方面,一是为了增加程序的安全性,同时减轻编译器负担,加快编 ...