Fragscapy:经由过程协定Fuzz的要领探测IDS/防火墙检测划定规矩的破绽 | 申博官网
登录
  • 欢迎进入申博官网!
  • 如果您觉得申博官网对你有帮助,那么赶紧使用Ctrl+D 收藏申博官网并分享出去吧
  • 这里是申博官方网!
  • 申博官网是菲律宾sunbet官网品牌平台!
  • 申博开户专业品牌平台!

Fragscapy:经由过程协定Fuzz的要领探测IDS/防火墙检测划定规矩的破绽

申博_安全工具 申博 42次浏览 已收录 0个评论

菲律宾Sunbet

欢迎您来到菲律宾Sunbet娱乐,菲律宾Sunbet企业源自缅甸金木棉,企业拥有丰富的在线游戏娱乐经验和强大的后台服务队伍。公司为你提供24小时在线开户值,加盟业务,期待您的加入!

,

Fragscapy:经由过程协定Fuzz的要领探测IDS/防火墙检测划定规矩的破绽

Fragscapy是一个能够测试防火墙庇护才能的东西,旨在经由历程隐约经由历程防火墙发送的收集音讯来检测防火墙和IDS中的破绽,该开源项目可从Amossys的Github取得。

什么是所谓的“ Fragscapy”?

我们常常剖析防火墙和IDS,测试它们的设置能够很耗时。固然,开发了一些基础东西和剧本来自动化这些测试。Fragscapy旨在对这些东西举行现代化和革新,它用自动化,模块化,可扩大和高等的Python 3项目替代了它们。望文生义,Fragscapy基于Scapy举行收集数据包处置惩罚。

简而言之,Fragscapy是一种能够针对防火墙的庇护运转一连测试的东西,其背地的道理实际上异常简朴。

Fragscapy:经由过程协定Fuzz的要领探测IDS/防火墙检测划定规矩的破绽

Fragscapy的平常道理

Fragscapy运转的历程是:

1.启动将与收集交互的运用程序(假如测试基于HTTP的划定规矩或ping以测试较低层,则一般为wget);

2.阻拦传出数据包;

3.对数据包运用一组修正,这是历程中最主要的步骤,这是隐约测试的真正定义地点。目标是取得经由修正的数据包,该数据包经由充足修正能够绕过防火墙搜检,但防火墙背面的效劳依然能够明白。

4.发送修正后的数据包并守候复兴;

5.从第1步从新启动,但设置差别;

什么是“修正”?

该东西最风趣的部份发作在步骤3的修正中,其他的只是编排这些修正。那末,这些修正会发作任何能够的效果。

实际上,从技术上讲,修正是一种功用,该功用吸收一个数据包列表并返回另一个数据包列表。介于两者之间,任何事变都能够发作;能够对数据包举行修正,耽误,抛弃,替代,支解,从新组合……该东西包括一些基础修正,能够实行通用修正,比方:

1.丢包(每一个包或特定包的几率牢固);

2.耽误数据包;

3.过滤和从新排序数据包;

4.对IPv4和IPv6数据包举行分段(具有一些特别的选项);

5.支解TCP数据包;

6.修正数据包的任何字段;

有关怎样举行这些修正的更多细致信息,能够在fragscapy/modifications/中检察其背地的python代码。

怎样运用这个很棒的东西?

示例1:怎样发明Linux中未记录的行动

关于第一个用法示例,我们来看一个简朴的案例。假定我们具有以下设置,而且愿望尝试接见效劳器上端口80和8080上的网页,然则有一个iptables防火墙阻挠了对端口8080的要求。

Fragscapy:经由过程协定Fuzz的要领探测IDS/防火墙检测划定规矩的破绽

第一个示例的初始状况

让我们设置Fragscapy

如今,我们将经由历程隐约IPv6碎片来尝试绕过防火墙的安全性。为此,我们须要设置Fragscapy,统统都应经由历程以下体式格局设置:

· JSON设置文件(用于测试行动);

· 敕令行选项(用于输出、日记和美学);

因而,以下JSON文件(ipv6_frag.json)定义了测试的3个方面:

1.运转敕令:一个curl来猎取两个端口上的web页面,只有当端口80上的页面能够被猎取时,才运用0状况码退出;

2.仅捕捉特定数据包的防火墙设置:该东西没法猜想,因而默许状况下会捕捉一切内容;

在地下生意业务中,个人信息到底有若干代价?

网络犯罪分子有很多种获取非法商品的途径,特别是一些地下论坛,在那里,商品交易价格就像地上论坛一样,随着供求而上下浮动。 在深网和暗网(DDW)市场上找到的任何商品,都有其利用价值。而有一些物品则是一些用于诈骗的个人银行信息。下面让我们一起来揭秘个人信息的价值。 信息打包出售 这些地下网站提供的服务包括个人识别信息、银行卡的数据及凭证、对受害者系统及设备的访问、分布式拒绝服务攻击和伪造文件及凭证。 近年来由于执法部门的查处,很多提供数据的地下网站不再处于活动状态。 让我们来看看下面这些数

3.要运用的修正列表:能够指定参数,而且INPUT和OUTPUT链上的修正能够差别。

{
  "cmd": "/usr/bin/curl -6 -f -m 1 http://www.example.com:80 -o results/http_{i}_{j}.html; e1=$?; /usr/bin/curl -6 -f -m 1 http://www.example.com:8080 -o results/alt_{i}_{j}.html; e2=$? if [ $e1 -eq 0 && $e2 -ne 0 ]; then return 0; else return 1; fi",

  "nfrules": [
    {"host": "www.example.com", "port": 80, "ipv4": false, "input_chain": false}
  ],

  "input": [
  ],

  "output": [
    {
      "mod_name": "ipv6_frag",
      "mod_opts": "range 10 3000 10"
    }
  ]}

在本示例中,我们设想以10为牢固丈量长度,对一切数据包举行分段,其分段大小在10到3000字节之间。然后,剩下的就是经由历程运转以下敕令来最先运转测试:

fragscapy start fragment.json \
  -o run/std/stdout_{i}_{j}.txt \
  -e run/std/stderr_{i}_{j}.txt \
  -W run/pcap/local_{i}_{j}.txt \
  -w run/pcap/remote_{i}_{j}.txt

此敕令具有多个选项,以指定在那边输出有关每一个测试的某些日记(范例输出和毛病,数据包捕捉)。如许,在测试触发风趣行动的状况下,我们能够轻松地细致搜检发作了什么。 {i}和{j}语法只是python花样的语法,它由测试编号和反复编号替代(在测试不确定的状况下,能够反复屡次)。

有关可用选项的更多信息,能够运转以下敕令以猎取每一个能够参数的细致信息:

fragscapy --help
fragscapy start --help

效果测试

有多种要领能够搜检测试是不是准确。起首,fragscapy start敕令的输出显现了基于敕令的退出代码运转的测试的择要(0 =经由历程,其他=失利)。

100%|██████████████████████████████████████████████████████████████████|300/300
Results (300 tests done over 300 scenarios)
==================
Pass : 174
    n°0_0, n°127_0, n°128_0, n°129_0, n°130_0, n°131_0, n°132_0, n°133_0, ...
Fail : 126
    n°1_0, n°2_0, n°3_0, n°4_0, n°5_0, n°6_0, n°7_0, n°8_0, n°9_0, n°10_0, ...
Not Done : 0

这意味着,起首这是一个进度条,用于指导测试历程当中的进度。我们能够看到,运用此设置总共要运转300个测试。以后的一切行仅在一切测试完成时显现。它包括3个部份:

1.经由历程的测试数目(此处为174),然后是经由历程的第一个测试编号;

2.测试失利的次数(此处为126),然后是第一个失利的测试号码;

3.在测试中心中缀的状况下未完成的测试数目(此处为0),然后是未完成的第一个测试编号(假如有);

因而,正如我们在示例中看到的那样,有174个测试经由历程了寄义,端口80上的页面被猎取,而端口8080上的页面则没有。然则,新鲜的是,在前126个案例中(碎片大小在10到1270之间),发作了一些事变,这就是我们在敕令行中指定的日记的轻易位置。

经由历程检察results/输出目次,我们能够看到端口8080上的页面从未被检索过(\o/iptables完成了它的事情),然则端口80上的页面却在测试#1至#126中丧失了。发作了什么?让我们继承观察。

在run/pcap/ 中,我们捕捉了发作的状况。经由简短的研讨,好像以某种体式格局谢绝了1280字节以下的片断……这能够很新鲜。然则1280能够会敲响警钟,因为这是IPv6数据包的下限大小,这能够不是偶合。

经由检测,确切是的,经由频频搜刮,好像在Linux中引入了小于1280字节的谢绝片断,而没有任何文档或范例“以防止病理状况”。这就是统统的来源:Linux内核删除了这些片断,但没有文档说起它。然则,近来因为兼容性问题在Linux 5.0中对其举行了复原。

以下就是Fragscapy的运用体式格局:设置,运转测试,剖析日记和效果。固然,在如许一个简朴的示例中,我们没有展现iptables的任何缺点,然则我们展现了iptables的新鲜行动。

示例2:碎片的准确处置惩罚

如今,让我们更深切地运用Fragscapy举行准确的测试。该示例来自实在示例,因而效果只能在此特定装备上重现。测试状况以下:

我们将从“用户”地区隐约DMZ中的Web效劳器。Web运用程序防火墙已设置,因而我们不该发送具有给定参数的要求。让我们运转一些测试,看看会发作什么:

fragment_ipv4.json

{
  "cmd": "/usr/bin/curl -f -m 1 http://www.example.com/index.html?azerty -o results/{i}_{j}.html",

  "nfrules": [
    {"host": "www.example.com", "port": 80, "ipv6": false, "input_chain": false}
  ],

  "input": [
  ],

  "output": [
    {
      "mod_name": "ipv4_frag",
      "mod_opts": "range 1 1000"
    },
    {
      "mod_name": "drop_proba",
      "mod_opts": "seq_float 0.1 0.2 0.3 0.4 0.5",
      "optional": true
    },
    {
      "mod_name": "duplicate",
      "mod_opts": "seq_str first last random",
      "optional": true
    },
    {
      "mod_name": "reorder",
      "mod_opts": "seq_str reverse random",
      "optional": true
    }
  ]}

segment_tcp.json

{
  "cmd": "/usr/bin/curl -f -m 1 http://www.example.com/index.html?azerty -o results/{i}_{j}.html",

  "nfrules": [
    {"host": "www.example.com", "port": 80, "input_chain": false}
  ],

  "input": [
  ],

  "output": [
    {
      "mod_name": "tcp_segment",
      "mod_opts": "range 1 1000"
    },
    {
      "mod_name": "drop_proba",
      "mod_opts": "seq_float 0.1 0.2 0.3 0.4 0.5",
      "optional": true
    },
    {
      "mod_name": "duplicate",
      "mod_opts": "seq_str first last random",
      "optional": true
    },
    {
      "mod_name": "reorder",
      "mod_opts": "seq_str reverse random",
      "optional": true
    }
  ]}
fragscapy start fragment_ipv4.json segment_tcp.json \
  -o run/std/stdout_{i}_{j}.txt \
  -e run/std/stderr_{i}_{j}.txt \
  -W run/pcap/local_{i}_{j}.txt \
  -w run/pcap/remote_{i}_{j}.txt \
  --append

基础上,我们正在运转Fragscapy,以便在要求中运用参数azerty提取index.html(不过这不能够)。然则,我们还在许多差别的设置中搞砸了IPv4分段和TCP分段。在运转144k测试须要许多小时以后,涌现了异常风趣的效果:

100%|██████████████████████████████████████████████████████████████|72000|72000
Results (666000 tests done over 72000 scenarios)
==================
Pass : 0

Fail : 666000
    n°0_0, n°1_0, n°2_0, n°2_1, n°2_2, n°2_3, n°2_4, n°2_5, n°2_6, n°2_7, ...
Not Done : 0

100%|██████████████████████████████████████████████████████████████|72000|72000
Results (666000 tests done over 72000 scenarios)
==================
Pass : 98
    n°0_0, n°1_0, n°2_0, n°2_1, n°2_2, n°2_3, n°2_4, n°2_5, n°2_6, n°2_7, ...
Fail : 665987
    n°22_5, n°23_3, n°25_5, n°32_1, n°32_6, n°33_8, n°34_1, n°35_6, n°35_7, ...
Not Done : 0

上半部份显现了IPv4分段的效果,统统都失利了,这意味着防火墙阻挠了数据包,或许经由历程的数据包对Web效劳器毫无意义。然则,后半部份处置惩罚TCP分段,并显现一些测试想法检索了该网页。确切,在检察了result/目次以后,好像防火墙没法很好地处置惩罚从1到46的分段,而且没有触发阻挠划定规矩,而Web效劳器正在完美地重修数据并对要求做出相应。

不过,这是此特定防火墙的效果,即能够运用小型分段经由历程防火墙传输有用数据。这是小范围剖析的效果之一,它不能准确地确保许诺的庇护措施。

注重:防火墙许可某些毛病组织的数据包经由历程(Web效劳器没法明白)的状况是合理的,但实际上并非Fragscapy能够检测到的。只管明显这是一个轻易处理的安全问题,但Fragscapy的诠释却更高:该协定在依然有用的同时,是不是准确绕过了防火墙?然则,能够设想如许一种状况,即防火墙两头运用花样毛病的数据包的客户端和效劳器。 Fragscapy的测试敕令能够从客户端发送数据,并搜检在效劳器端吸收和诠释的内容(就像攻击者能够盗取数据一样)。因为Fragscapy不会诠释敕令的寄义,因而对它没有任何影响。

示例3:挟制Fragscapy取得风趣效果

让我们用末了一个风趣的示例来演示Fragscapy能够完成的其他操纵。如今我们晓得它能够用于对安全产品举行测试并声明其相符性,然则雷同的机制也能够用于其他目标。我们将设置Fragscapy看起来像HTTP代办,像HTTP代办那样攀谈,而不是HTTP代办。

这实际上异常简朴,你只须要运用以下设置文件启动Fragscapy:

{
  "cmd": "while true; do sleep 1; done",

  "nfrules": [
    {"port": 80, "output_chain": false},
    {"port": 8080, "input_chain": false}
  ],

  "input": [
    {
      "mod_name": "field",
      "mod_opts": ["TCP", "sport", 8080]
    },
    {
      "mod_name": "field",
      "mod_opts": ["TCP", "chksum", "none"]
    }
  ],

  "output": [
    {
      "mod_name": "field",
      "mod_opts": ["TCP", "dport", 80]
    },
    {
      "mod_name": "field",
      "mod_opts": ["TCP", "chksum", "none"]
    }
  ]}

此设置有什么作用?实在这只是一个无穷轮回敕令,因而它实际上不会运转任何测试。它会阻拦一切从端口8080出站并进入端口80的数据包。然后,它修正端口8080上的传出数据包,使其在端口80上进入并对传入数据包举行反向处置惩罚。要对其举行测试,请启动Fragscapy(无需在此处保留输出和数据包捕捉):

fragscapy start http_proxy.json

就是云云,如今一切网站都能够经由历程端口8080而不是80举行接见,最少关于运用HTTP的浏览器和当地东西来讲,状况就是如许。你能够转到http://www.example.com:8080,它之所以起作用,是因为你实际上是在端口80上发送数据包。

怎样改良Fragscapy?

这个东西真棒,它能够完成许多惊人的技能!然则它依然须要革新,你能够在许多方面供应协助。一切源代码都能够在Amossys的Github上找到,因而请搜检一下以举行深切的相识和革新。

增加修正

实际上,该东西的设想使其能够经由历程新的修正及其附带的准确行动轻松扩大。要增加能够满足本身需求的新修正,只需检察怎样定义其他修正,然后根据文档中的申明举行操纵(关于fragscapy.modifications.Mod类)。

改良中心引擎

Fragscapy能够看做是缭绕修正的大型编排东西。因而,能够革新的东西的症结部份是其中心,即竖立统统并一连运转一切测试的代码。坦白地说,与增加修正比拟,这部份更难控制,也不那末直观。

本文翻译自:https://blog.amossys.fr/fragscapy-fuzzing-protocols-to-evade-firewalls.html


申博|网络安全巴士站声明:该文看法仅代表作者自己,与本平台无关。版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明Fragscapy:经由过程协定Fuzz的要领探测IDS/防火墙检测划定规矩的破绽
喜欢 (0)
[]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址