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,开始抓包: 点击上边的这个按钮可以设置: 这里注意:需要 ...
随机推荐
- NumPy学习_02 ndarray基本操作
1.算术运算符 它们只用于位置相同的元素之间,即为元素级的运算. 所得到的运算结果组成一个新的数组. 不用编写循环即可对数据执行批量运算.(矢量化) import numpy as np # 创建一个 ...
- 惠普笔记本fn键
fn+shift+f10 看到fn上的小灯亮了就可以了
- STS中db.properties配置文件
db.name=root db.password=root db.url=jdbc:mysql://localhost:3306/day13?useUnicode=true&character ...
- English Conversations You Can Download for Free (Spoken English MP3/Audio Files)
If you want to download free English conversations, you’ve come to the right place. This page introd ...
- 在html中使用javascript总结
对于初学者运行代码的第一步,首先是怎么把你所写的js代码与html代码之间关联起来,只有关联了,js才能控制html中的代码,进而达到控制页面的目的,我总结了html引用js的方法,一方面可以时时复习 ...
- sublime text2 安装及使用教程
1.下载安装包地址:https://www.sublimetext.com/2 2.安装,一直点下一步就好,将下列选项打钩,这样文件右键就可以直接用sublime text2打开 3.新建一个html ...
- canvas画布如何画图案例
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- Python 知识小tips
python进制转换函数: 二进制转换成十进制:v = "0b1111011" # int(v,2) 十进制转换成二进制:v = 18 # ...
- Win10专业版激活
转载来自:http://www.zhuangjiba.com/bios/3432.html 如何激活win10正式版图文解说 打开开始菜单,找到设置,点开“更新和安全”,切换到“激活”选项卡,查看到当 ...
- mvc开发网站打开慢总结
开始学习mvc开发网站的时候,看了传智博客的视频教程,其中学习了一个和牛逼的框架,开始激动的深入学习,学完后却发现其实那套框架太重并不适合一些中小型的网站开发,并且也使用导航属性关联外键,导致打开网站 ...