标签: arp

iPhone上的ARP请求

我正在尝试在iPhone上生成ARP(地址解析协议)请求数据包,并侦听返回的相关响应.

谷歌搜索让我陷入了死胡同.为了发送逻辑层数据包,我需要一些原始套接字,但需要超级用户权限才能创建它们.我试图避免越狱我的手机.

有很多c代码可以做到这一点,但由于权限,我找不到任何可以转换为iOS的代码.

当我决定使用Wireshark一些网络发现应用程序时,我已经准备好了.即"Fing"和"Pinggy"(Fing和Pinggy的帽子......真棒应用程序!)

https://itunes.apple.com/us/app/pinggy/id562201096?mt=8

https://itunes.apple.com/us/app/fing-network-scanner/id430921107?mt=8

与这些iPhone应用程序一起运行Wireshark表明他们从XXX.XXX.X.0一直到XXX.XXX.X.255进行ARP扫描.我没有看到任何ICMP数据包与"ARP"同时发出.这让我相信在iOS上确实可以发送和接收ARP数据包.

我已经考虑过ping扫,假设它会自己生成ARP请求.但是,我仍然需要一个原始套接字来听取响应,对吗?

问题:在逻辑层发送/接收数据包的可用内容是什么?特别是发送接收ARP报文?我错过了什么根本的东西?

提前致谢!

iphone arp ios

9
推荐指数
1
解决办法
5600
查看次数

如何在Linux中ping MAC地址

我想ping一个已知的MAC地址,我试图使用nmap:

sudo nmap -sP 192.168.15.1/24 | grep  20:64:32:3F:B1:A9
Run Code Online (Sandbox Code Playgroud)

但在这种情况下,它ping所有255个IP地址(从192.168.15.1到192.168.15.255),直到得到我的MAC地址,这需要很长时间约4秒.

有什么想法吗?

ip mac-address ping arp

9
推荐指数
5
解决办法
5万
查看次数

有没有办法通过Java发送ARP请求?

有没有办法在Java应用程序中发送ARP请求?我知道ARP在TCP和UDP下是一层,因此默认情况下Java无法发送ARP请求.我只是想知道是否有任何第三方Java库允许您发送ARP请求.

为了捕获ARP回复,我知道我可以使用jpcap来解决部分问题.

谢谢

java arp

8
推荐指数
1
解决办法
1万
查看次数

什么是iPhone/Android响应ARP请求的策略

当我arping用来发送ARP请求(我知道睡觉的iPhone没有回复ICMP ping)来睡觉的iPhone/Androids(意味着它们打开但是屏幕很暗)连接在同一个wifi上时,iPhone回复给我这样的:

ARPING 10.109.201.139
Timeout
Timeout
Timeout
42 bytes from e0:ac:cb:b0:22:5b (10.109.201.139): index=0 time=20.201 msec
Timeout
Timeout
Timeout
Timeout
Timeout
Timeout
Timeout
Timeout
Timeout
Timeout
42 bytes from e0:ac:cb:b0:22:5b (10.109.201.139): index=1 time=65.401 msec
Timeout
Run Code Online (Sandbox Code Playgroud)

但有时,iPhone会不断回复.有时它根本不回答arping.Android答案如下:

ARPING 10.109.201.119
Timeout
42 bytes from c0:ee:fb:01:f4:fd (10.109.201.119): index=0 time=78.345 msec
42 bytes from c0:ee:fb:01:f4:fd (10.109.201.119): index=1 time=148.228 msec
42 bytes from c0:ee:fb:01:f4:fd (10.109.201.119): index=2 time=217.777 msec
42 bytes from c0:ee:fb:01:f4:fd (10.109.201.119): index=3 time=84.933 msec
Timeout
42 bytes from c0:ee:fb:01:f4:fd (10.109.201.119): index=4 time=174.140 …
Run Code Online (Sandbox Code Playgroud)

networking ethernet ping arp libpcap

8
推荐指数
1
解决办法
834
查看次数

我在嗅探数据包时遇到了Linux网络堆栈的问题

我有一个关于低级网络/ Linux大师的问题,

我必须在我的大学为安全项目构建两个工具.第一个工具是ARP中毒攻击者,它会从远程主机中毒ARP缓存,以便检索他发送给另一台主机的数据.我使用RAW套接字在C中编写了这个工具,它工作得很好,我能够拦截从主机A传输到主机B和从主机B传回主机A的数据.

编写第二个工具时出现问题,这个工具是一个嗅探器,其目的是读取/编辑/丢弃来自主机A或主机B的数据包.我想象一个系统,当我发现来自其中一个主机的数据包时,我的程序将会问我是否要让这个数据包通过,如果我想修改它或者我只是想放弃它.我使用linux激活了IP转发

sysctl -w net.ipv4.ip_forward=1
Run Code Online (Sandbox Code Playgroud)

我能够读取两台主机之间传输的所有数据.但我不知道如何编辑/丢弃这些数据包,因为它是linux的网络堆栈的角色来管理来自我的网络接口的数据包的输入和输出.如果你愿意,我只是扮演被动攻击者的角色.

我的第一个想法是禁用ip转发并自己管理数据包的路由.但是当我禁用ip转发时,我根本无法从A或B获得任何数据,这是因为linux的网络堆栈会自动丢弃内核模式下的数据包,而IP地址并不是指向我的计算机.

然后我尝试激活混杂模式,但这是不必要的,因为此模式仅在物理层上运行(查看以太网接收的数据包中的目标MAC地址是否与本地接口上的MAC地址匹配).所以基本上,混杂模式有助于我们避免linux堆栈的物理过滤器而不是逻辑堆栈(我收到的数据包中的目标IP地址是B的IP地址而不是我的,所以linux的网络堆栈只是丢弃了数据包).

所以我的问题是,我如何能够设法编辑我收到的数据包并将其发送回去,或者如果我愿意,只需删除它们.我知道这是一个棘手的问题,我已经做了一些研究以找到我自己的解决方案,但我找不到令人满意的答案.

我知道iptables有一个解决方案,我们可以让他让一些来自某个IP地址的数据包通过,但是我不想要一个涉及第三方工具的解决方案,我想把所有内容封装在我的程序中.

有关信息,开发环境是Linux/Ubuntu Kernel 3.0.0-16,一切都是使用C语言编写的.

c linux raw-sockets arp

7
推荐指数
1
解决办法
1153
查看次数

Nmap - RTTVAR 已增长至 2.3 秒以上,降至 2.0

我有一个脚本,用于构建 icinga2 的配置。网络很大,多个/13就很大。当我运行脚本时,我不断收到 RTTVAR 已增长到超过 2.3 秒,减少到 2.0 错误。我尝试提高 gc_thresh 并分解子网。我已经浏览了谷歌的一些信息,但似乎找不到解决办法。如果有人有任何想法,我将非常感激。我使用的是 Ubuntu 16.04

我的脚本:

# Find devices and create IP list
i=72
while [ $i -lt 255 ]
    do
    echo "$(date) - Scanning xx.$i.0.0/16" >> files/scan.log
    nmap -sn --host-timeout 5 xx.$i.0.0/16 -oG - | awk '/Up$/{print $2}' >> files/ip-list
    let i=i+1
    done
Run Code Online (Sandbox Code Playgroud)

我的/etc/sysctl.conf

# Force gc to clean-up quickly
net.ipv4.neigh.default.gc_interval = 3600

# Set ARP cache entry timeout
net.ipv4.neigh.default.gc_stale_time = 3600

# Setup DNS threshold for arp 
net.ipv4.neigh.default.gc_thresh3 = 8192 …
Run Code Online (Sandbox Code Playgroud)

bash scripting ubuntu arp nmap

7
推荐指数
1
解决办法
7万
查看次数

在iPhone/iPad上获取ARP表

我想在我的iPad上获取ARP条目,就像这里一样.

当编译代码在我的iPad上运行(所以不是模拟器)时,我会丢失标题错误消息.到您在此提到的本地项目,你可以通过复制的头文件解决这些问题.

问题在于线

sdl =(struct sockaddr_dl*)(sin + 1);

在这段代码中:

-(NSString*) ip2mac: (char*) ip 
{ 

    int expire_time, flags, export_only, doing_proxy, found_entry; 

    NSString *mAddr = nil; 
    u_long addr = inet_addr(ip); 
    int mib[6]; 
    size_t needed; 
    char *host, *lim, *buf, *next; 
    struct rt_msghdr *rtm; 
    struct sockaddr_inarp *sin; 
    struct sockaddr_dl *sdl; 
    extern int h_errno; 
    struct hostent *hp; 

    mib[0] = CTL_NET; 
    mib[1] = PF_ROUTE; 
    mib[2] = 0; 
    mib[3] = AF_INET; 
    mib[4] = NET_RT_FLAGS; 
    mib[5] = RTF_LLINFO; 
    if (sysctl(mib, 6, NULL, &needed, NULL, …
Run Code Online (Sandbox Code Playgroud)

xcode objective-c arp ios

6
推荐指数
1
解决办法
2万
查看次数

“arp -a”输出中的“永久”一词是什么意思?

我正在尝试学习 ARP 协议。我对 ARP 的看法是,它是一种有助于将 IP 寻址到准确 MAC 地址的协议。

但是当我尝试这样做时:

arp -a
Run Code Online (Sandbox Code Playgroud)

我认为它会显示 IP 地址列表和匹配的 MAC 地址。我明白一切,直到我看到这个词permanent。其他行已标记ifscope,其中一行已标记permanent

有人能告诉我是什么意思permanent吗?为什么这条线不同?

提前致谢。

Arp表

arp

6
推荐指数
1
解决办法
4869
查看次数

仅捕获 arp-reply 数据包的 BPF 表达式

是否有一个BPF表达式只能捕获 arp-reply 数据包?目前,我正在使用 Pcap4J 和以下 BPF 表达式:

arp 和 dst 主机主机和以太网 dst mac

其中host是我的设备的 IP 地址,mac是我的主网络接口的 MAC 地址。不幸的是,当捕获数据包时,该过滤器也允许捕获 ARP 广播请求,因此我必须采取额外的步骤来检查 ARP 标头的操作字段是否为 2 而不是 1。

java packet-capture arp bpf pcap4j

6
推荐指数
1
解决办法
2725
查看次数

从 Windows 手动发送 ARP 请求

我正在训练自己进行网络扫描,并且专注于如何识别网络上的嗅探器。在网上搜索,我发现一种可能的方法是ARP方法:我必须向可疑的无广播IP发送ARP请求,以检查它是否处于混杂模式。

我的疑问是:如果我的电脑是Windows 7机器,有没有办法手动发送ARP响应?可能来自命令行?

command-line sniffer arp

5
推荐指数
1
解决办法
3万
查看次数