<bdo id="2b3yk"><code id="2b3yk"></code></bdo>

  • <output id="2b3yk"><sup id="2b3yk"></sup></output>
    <output id="2b3yk"><ruby id="2b3yk"></ruby></output>
  • <code id="2b3yk"><delect id="2b3yk"></delect></code>

  • Fwknop:单包授权与端口试探工具

    2019-04-12 47460人围观 工具

    介绍

    fwknop实现了一种称为单包授权(SPA)的授权方案,用于隐藏服务。SPA将单个数据包经过?#29992;埽?#19981;可重放,并通过HMAC进行身份验证,以便在传达到隐藏在防火墙后面的服务。

    SPA的主要应用场景是防火墙来过滤一切SSH等服务流量,从而使漏洞的利用(包括0day的和?#21019;?#34917;丁)变得更加困难。由于没有开放端口,因此无法使用Nmap扫描SPA隐藏的任何服务。

    fwknop项目支持四种不同的防火墙:Linux,OpenBSD,FreeBSD和Mac OS X上的iptables,firewalld,PF和ipfw。

    SPA基本上是下一代Port Knocking(PK),但在保留其核心优势的同?#20445;?#35299;决了PK所表现出的许多限制。PK局限性包括难以防止重放攻击,不对称密码和HMAC计划,通常不可能可靠地支持,这是非常简单的?#20197;?#19968;个DoS攻击PK服务器通过欺骗一个额外的包成PK顺序遍历网络(因此令人信服的PK服务器客户端不知道正确的序列)。所有这些缺点都通过SPA得到了解决。

    同?#20445;琒PA将服务隐藏在默认的drop防火墙策略后面,被动地获取SPA数据(通常通过libpcap或其他方法),并为SPA包身份验证?#22270;用?解密实现标准的?#29992;?#25805;作。

    由fwknop生成的SPA数据包利用HMAC在?#29992;?#28982;后验证模型中进行身份验证?#29992;堋?#34429;然HMAC的使用目前是可选的(通过--use-hmac命令行开关启用),但有三个原因强烈建议使用:

    1.如果没有HMAC,除非使用GnuPG,否则fwknop不可能进行?#29992;?#30340;?#21487;?#20221;验证,但即使这样,仍然应该应用HMAC。

    2.?#29992;?#21518;应用的HMAC可防止密码分析CBC模式填充oracle攻击,例如Vaudenay攻击和相关欺骗(如最近的针对SSL的“Lucky 13”攻击)。

    3.wknopd守护进程验证HMAC所需的代码比解密SPA包所需的代码要简单得多,因此没有正确的HMAC的SPA包甚至不会通过解密例程发送。

    上面的最后一个原因是,即使SPA数据包使用GnuPG?#29992;埽?#20173;然应该使用HMAC,因为SPA数据不是通过libgpgme函数发送的,除非HMAC首先检出。GnuPG和libgpgme是相对复杂的代码体,因此限制潜在攻击者通过HMAC操作与此代码交互的能力有助于保持更强的安全性。生成用于SPA通信的HMAC除了普通?#29992;?#23494;钥之外还需要专用密钥,并且可以使用该--key-gen选项生成两者。

    fwknop使用Rijndael分组密码或通过GnuPG和相关的非对称密码对SPA数据包进行?#29992;堋?#22914;果选择了对称?#29992;?#26041;法,则通常在客户端和服务器之间共享?#29992;?#23494;钥(/etc/fwknop/access.conf有关详细信息,请参阅文件)。用于Rijndael?#29992;?#30340;实际?#29992;?#23494;钥是通过标准PBKDF1密钥导出算法生成的,并且设置了CBC模式。如果选择GnuPG方法,则?#29992;?#23494;钥从GnuPG密钥环导出。

    用例

    使用单数据包授权(SPA)或安全性受到挑战的同类端口 Knocking(PK)的人通常访?#35797;?#37096;署SPA / PK软件的同一系统上运行的SSHD。也就是说,在主机上运行的防火墙对所有传入的SSH连接?#21152;?#19968;个默认删除策略,这样就不能扫描SSHD,但是SPA守护进程会重新配置防火墙,暂时授予对被动?#29616;?#30340;SPA客户机的访问权:

    1.png

    fwknop支持上述内容,但也更加牛批,并且使用NAT(对于iptables / firewalld防火墙)。毕竟,重要的防火墙通常是网络之间的网关,而不?#22681;?#37096;署在独立主机上。NAT通常用于此类防火墙(至少用于IPv4通信),以便为RFC 1918地址空间上的内部网络提供Internet访问,并允许外部主机访问内部系统上托管的服务。

    由于fwknop与NAT集成,因此可以利用SPA 通过外部Internet上的用户通过防火墙访问内部服务。虽然这在现代传统网络上有很多应用,但它也允许fwknop支持亚马逊的AWS等云计算环?#24120;?/p>

    2.png

    用户界面

    官方跨平台fwknop客户端用户界面fwknop-gui (下载github)由Jonathan Bennett开发。支?#25191;?#22810;数主要的客户端SPA模?#21073;?#21253;括NAT请求,HMAC和Rijndael密钥(尚不支持GnuPG),fwknoprc节点保存等。目前fwknop-gui在Linux,Mac OS X和Windows上运行。

    这是来自OS X的截图:

    3.png

    教程

    有关fwknop的综合教程可以在这里找到:

    Android应用程序可以生成SPA数据包。

    3.支持Rijndael和GnuPG方法用于SPA数据包的?#29992;?解密。

    4.支持Rijndael和GnuPG的HMAC?#29616;ぜ用堋?#25805;作顺序是?#29992;?– 然后验证以避免各种密码分析问题。

    5.通过?#34892;?#20256;入SPA数据包的SHA-256摘要比较来检测和阻止重播攻击。还支?#21046;?#20182;摘要算法,但SHA-256是默认算法。

    6.通过libpcap从导线上被动地嗅探SPA包。fwknopd服务器还可以从由单独的以太网嗅探器(例如with tcpdump -w <file>),iptables ULOG pcap writer或直接通过UDP套接字--udp-server模式写入的文件中获取数据包数据。

    7.对于iptables防火墙,fwknop添加的ACCEPT规则在?#36828;?#20041;iptables链中添加和删除(在可配置的超时之后),以便fwknop不会干扰可能已经加载到系统上的任何现有iptables策略。

    8.支持经过身份验证的SPA通信的入站NAT连接(仅适用于iptables防火墙)。这意味着可以将fwknop配置为创建DNAT规则,以便您可以从开放Internet访问RFC 1918 IP地址上的内部系统上运行的服务(如SSH)。还支持SNAT规则,它实质上将fwknopd转换为SPA验证网关,以从内部网络访问Internet。

    9.fwknop服务器支持多个用户,并且可以通过/etc/fwknop/access.conf文件为每个用户分配自己的对称或非对称?#29992;?#23494;钥。

    10.通过https://www.cipherdyne.org/cgi-bin/myip?#36828;?#35299;析外部IP地址 (当从NAT设备后面运行fwknop客户端?#20445;?#36825;非常有用)。由于外部IP地址在此模式下在每个SPA数据包内进行?#29992;埽?#22240;此中间人(MITM)会攻击内联设备拦截SPA数据包并仅从其他IP转发以获取访问权限受到阻碍。

    11.SPA数据包的目标端口以及通过iptables NAT功能建立后续连接的端口支持端口随机化。后者适用于转发到内部服务的连接以及授予运行fwknopd的系统上的本地套接字的访问权限。

    12.与Tor集成(如本DefCon 14演示文稿中所述)。请注意,由于Tor使用TCP进行传输,因此通过Tor网络发送SPA数据包要求每个SPA数据包都通过已建立的TCP连接发送,因此从?#38469;?#19978;讲,这打破了“单数据包授权”的“单一”方面。但是,Tor提供的匿名优势在某些部署中可能超过这一考虑因素。

    13.实现SPA通信的版本化协议,因此很容易扩展协议以提供新的SPA消息类型,同时保持与旧的fwknop客户端的向后兼容性。

    14.支?#25191;?#34920;?#34892;PA数据包执行shell命令。

    15.fwknop服务器可以配置为对入站SPA数据包施加多个限制,超出?#29992;?#23494;钥强制执行的限制和重放攻击检测。即,包年龄,源IP地址,远程用户,对请求端口的访?#23454;取?/p>

    16.捆绑了fwknop是一个全面的测试套件,它发布了一系列测试,旨在验证fwknop的客户端和服务器部分是否正常工作。这些测试涉及通过本地环回接口嗅探SPA数据包,构建临时防火墙规则,根据测试配置检查相应的访问权限,并解析来自fwknop客户端和fwknopd服务器的输出,以获得每个测试的预期标记。测试套件输出可以很容易地匿名化,以便与第三方进行通信以进行分析。

    17.fwknop是第一个将端口?#27809;?#19982;被动操作系统指纹识别相结合的程序。但是,单包授权提供了除端口 knocking之外的许多安全优势,因此通常不推荐端口 knocking操作模式。

    License

    fwknop项目根据GNU通用公共许可证(GPL v2)或(根据您的选择)任何更新版本的条款作为开源软件发布。最新版本可在http://www.cipherdyne.org/fwknop/找到。

    升级

    如果您从旧版本的fwknop升级(这也包括原始的perl实现),?#25970;?#24744;将需要阅读以下链接以确保顺利过渡到fwknop-2.5或更高版本:

    *参考来源:github,FB小编周大涛编译,转载请注明来自FreeBuf.COM

    取消
    Loading...
    css.php 宁夏卫视在线直播观看