DHCP攻击神器--dhcpig

版权声明:本文为博主原创文章,未经博主允许不得转载,否则将追究法律责任。 https://blog.csdn.net/qq_29277155/article/details/51712059

0x00前言

    DHCPig可以发起一个高级的DHCP耗尽攻击。它将消耗局域网内的所有IP地址以及阻止新客户端获取IP,同时它也防止旧客户端释放IP地址。另外,它会发送无效的ARP去把所有的windows主机震下线。
    它需要python库scapy2.1或以上的库,并且需要管理员/root权限去执行。它无需额外的配置,仅仅通过接口提供参数即可。该程序已在多个linux发行版本和DHCP服务器ISC,Windows 2k3/2k8,..).上进行测试。
     当该脚本被执行的时候,也会执行以下操作:
在局域网其他电脑自动获取IP之前,将这些IP截获---如果检查到DHCP请求应答,则监听其他DHCP请求并且回应该请求。
请求区域内所有的IP地址---循环发送DHCP所有的主机和MAC地址请求。
查找你电脑的邻居的MAC和IP地址,并且从DHCP服务器中释放这些地址。
最终,该脚本将等待DHCP耗尽(将会在10秒内没有DHCP提供并且询问所有离线的Windows主机,同时在局域网产生无效的ARP回应。
并且因为没有其他可用的DHCP地址,这些windows系统将保持脱机状态。即使检测到局域网的另外一个系统使用同一个IP,该Linux系统也不会释放该IP。
    该工具支持IPv4、IPv6协议。

0x01 下载安装

#加强DHCP耗尽攻击
github地址:https://github.com/kamorin/DHCPig
Usage:
    pig.py [-h -v -6 -1 -s -f -t -a -i -o -l -x -y -z -g -r -n -c ] <interface>
Options:
    -h, --help                     #显示帮助信息
    -v, --verbosity                #显示详细输出信息。(默认是10,范围是1-99
    -6, --ipv6                     #DHCPv6 (默认是关, 默认是开启DHCPv4)
    -1, --v6-rapid-commit          #开启RapidCommit (双向是被指定的,而不是4向。) (未开启)
    -s, --client-src               #客户端MAC地址列表。如00:11:22:33:44:55,00:11:22:33:44:56 (默认: 任意地址)
    -O, --request-options          #可选的请求编码,如 21,22,23 or 12,14-19,23 (默认: 0-80)
    -f, --fuzz                     #任意模糊包。 (未开启)
    -t, --threads                  #发送线程的数目。 (1)
    -a, --show-arp                 #检测/打印哪个主机有ARP请求 (未开启)
    -i, --show-icmp                #检测/打印ICMP请求 (未开启)
    -o, --show-options             #打印IP地址租赁信息。(未开启)
    -l, --show-lease-confirm       #检测/打印DHCP回复。 (未开启)
    -g, --neighbors-attack-garp    #使用无故的ARP去碰撞网络分段。 (未开启)
    -r, --neighbors-attack-release #释放所有的邻居IP (未开启)
    -n, --neighbors-scan-arp       #ARP邻居扫描 (未开启)
    -x, --timeout-threads          #线程生成计时器。 (0.4)
    -y, --timeout-dos              #DOS超时(8) (聚集grat.arp的等待时间)
    -z, --timeout-dhcprequest      #DHCP请求超时 (2)
    -c, --color                    #开启彩色输出(未开启)
-v, --verbosity                #显示详细输出信息
输出信息中的符号的代表意义如下所示:
. = DHCP_Discovery
! = DHCP_Offer
; = ICMP/ARP/DHCP_ACKs
D = DEBUG output (show options, etc.)
E = ERROR
N = NOTICE / INFO

0x02 使用示例

root@kali:~# pig.py eth0
root@kali:~# pig.py --show-options eth0
root@kali:~# pig.py -x1 --show-options eth0
root@kali:~# pig.py -6 --fuzz eth0
root@kali:~# pig.py -6 -c -verbosity=100 eth0
root@kali:~# pig.py --neighbors-scan-arp -r -g --show-options eth0

0x03 实践应用

#在本例中,因为是虚拟机的原因,所以在网络选择的时候要选择“桥接模式-复制物理网络连接状态”
root@kali:~# pig.py -g -t 10 eth0   #可使局域网的其他客户端(电脑或者手机因无法获取IP而连接不上网络)

root@kali:~# pig.py -c -v3  -l -a -i -o eth2
root@kali:~# pig.py -6 -c -v3  -l eth3



0x04 防御策略

     大多数通用的方法是通过接入层交换机或者无限控制器来防止DHCP耗尽。   
在思科交换机中,最简单的选择是开启DHCP snooping 功能,snooping 将会防止资源池耗尽、IP劫持和使用DHCPig进行 DHCP服务器欺骗。基于检测流量,DHCP snooping 将会在每个端口上生成从IP到MAC的映射表。这将严格控制用户通过给定IP访问端口。任何从不信任端口发出的DHCP服务器消息将会被过滤。
开启下列的功能去防止资源池耗尽、IP劫持和DHCP服务器欺骗。

开启 snooping
ip dhcp snooping

指定你的DHCP所绑定的端口。这个最有可能是你的快速链接。执行下列的操作将会限制DHCP服务器响应特定的端口,所以应该在试验环境下测试后再使用该功能。
int fa0/1 (or correct interface)
ip dhcp snooping trust
显示状态
show ip dhcp snopping
show ip dhcp snopping binding
更多信息: http://www.cisco.com/en/US/docs/switches/lan/catalyst4500/12.1/12ew/configuration/guide/dhcp.pdf

欢迎大家分享更好的思路,热切期待^^_^^ !!!



阅读更多

没有更多推荐了,返回首页