接上文《如何构建完美的Dropbox(上)》自动攻击方案这个也可以自动区分上面提到的两种场景,通过监控/sys/class/net/lan/carrier和/sys/class/net/wan/carrier,我们可以检测LAN和WAN接口上是否有一个或两个连接。如果你希望自动化网络配置,一个选项是监控这些文件,如果LAN接口处于活动状态,则假设这是一个中间人场景,而如果LAN接口没有承载,则继续“未使用”港口”的场景。如下:while[`cat/sys/class/net/wan/carrier`==0];dosleep1doneif[`cat/sys/class/net/lan/carrier`==0];then#execute"unusedport"scenarioelse#executePersonintheMiddlescenariofi这样,您可以继续选择IP地址,或使用DHCP请求IP地址。请注意,Windows和LinuxDHCP客户端有时可能会因请求的不同字段或发送到服务器的不同填充字段而有所不同。在开始探索您所连接的网络之前,花一些时间监视和微调您自己的DHCP请求可能是值得的。Windows10DHCP请求(左)和KaliLinux(右)关于网络访问控制的区别您可能会在会议室中发现一个未使用的网络端口,但它很可能会被网络访问控制(NAC)检查。它们有多种形式,从802.1x到连接到新设备上的服务以检查防病毒配置等服务的网络服务器。如果新设备未通过检查,交换机端口将被禁用或配置为受限VLAN,无法访问真正有趣的系统,真令人失望!绕过此类控制的一种简单方法是对现有设备执行中间人攻击,这可能是PC、打印机,甚至是IP电话。在许多情况下,打印机等设备无法执行802.1x身份验证,因此在该特定网络端口上禁用它。在其他情况下,设备在网络上具有必要的授权,因此,网络端口被分配到正确的VLAN。中间的人需要做的就是确保它发送的任何流量看起来与受害者的流量相同,这样交换机就不会检测到任何异常情况。许多交换机可以配置为在端口上检测到多个MAC地址时关闭端口,这是您绝对不想发生的事情!为此,我在阅读这篇帖子脚本后创建了一个简单的shell,它设置了适当的iptables规则,使来自R1S的任何流量看起来都来自受害者。这个过程的基础可以在GitHub上旧版本的slimjim脚本中找到。本质上,找出被拦截设备的MAC和IP地址,然后使用Linuxebtables(第2层)和iptables(第3层)规则来保护从中间人设备到更广泛网络的所有流量都来自MAC和被拦截设备的IP地址。如果您还希望能够与被拦截的设备进行交互,请选择要使用的上游设备的MAC和IP地址并伪装成该设备。鉴于设备的独特位置,直接连接到受害者,您可以选择任何上游设备伪装成它。早期的slimjim依赖于手动将可达设备的MAC和IP地址分别添加到ARP和路由表中,还需要操作者使用tcpdump-nnelilan-Qin等命令来识别被拦截设备地址的MAC和IP,并在运行脚本之前执行一些手动配置。当前版本的slimjim会为您完成所有这些工作,并将观察到的DNS流量映射到相关地址。但是需要python脚本,这在资源受限的设备上可能不可行!一旦配置了网桥,网络访问控制解决方案应该能够连接到受害者,即使没有识别受害者的详细信息,执行所需的任何身份验证过程并相应地激活端口。从网络访问控制中窃取凭据的一个有用技巧是了解网络访问控制的实际工作原理。在某些情况下,我们已经看到NAC解决方案使用SSH或SMB等协议来建立与新设备的连接。具有可获取和重复使用的凭据的经过身份验证的连接。此连接用于执行目录,或验证防病毒软件是否是最新的等。在这些端口上运行合适的蜜罐服务可能会导致明文凭据(或等效哈希)的泄露,这些凭据通常是高特权帐户能够登录到所有连接到网络的工作站!不幸的是,802.1x解决了这不是方案!网络命名空间自2002年以来,Linux已经支持命名空间大约18年了,但它们对很多人来说仍然有点神秘。各种不同的资源类都有命名空间,例如进程、文件系统、网络、用户ID等。这些名称通常由容器工具(如Docker工具)使用,以限制所包含系统可以看到的资源。它们还可以帮助防止命名冲突,因为很多人都叫约翰。在这种情况下,我们对网络名称空间感兴趣,因为它们提供了一种方法,使网络接口及其整个网络堆栈仅对系统上运行的程序子集可见。通过将网络接口分配给网络名称空间,只有在该网络名称空间中运行的进程才能看到或访问该接口。Opsec注意事项如前所述,R1S生成的无意网络流量(如DNS查找)可能会泄露整个游戏。避免这种情况的一种方法是在网络命名空间(例如pitm)中隔离以太网接口,并仔细考虑在该命名空间中启动了哪些进程。当前的slimjim脚本也处理这个问题,在命名空间内创建一个屏幕实例。在pitm命名空间内启动的任何进程都可以访问以太网接口,而在命名空间外创建的进程则不能。通过这种方式,我们可以确保没有意外流量命中目标网络,从而暴露他们的存在!安装slimjim要在R1S上安装slimjim,应执行以下步骤。首先,在以太网接口上禁用IPv6:cat<
