【SeedLab】BGP Exploration and Attack Lab

这篇具有很好参考价值的文章主要介绍了【SeedLab】BGP Exploration and Attack Lab。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 实验环境

        本实验需要使用SEED互联网仿真器(已集成到docker配置文件)。

        启动docker容器,配置文件在/Labsetup/outputs/目录下。由于要配置很多docker容器,所以构建+启动过程会比较漫长。.随着docker启动,仿真器也随之运行,仿真器所用到的设备均为docker容器。

        Buid容器时报错【Temporary failure resolving 'security.ubuntu.com'】,无法安装软件时,修改如下解决:

cd /etc/docker       # 切换到docker配置
touch daemon.json    # 新建daemon.json文件

!-----------------------------------------
# 写入以下内容
{                                                                          
    "dns": ["8.8.8.8", "114.114.114.114"]                                                                           
}
!-----------------------------------------

sudo service docker restart    # 重启docker服务

       容器启动报错【An HTTP request took too long to complete. Retry with --verbose to obtain debug information.】,这是同时启动的服务过多,超过了请求HTTP限制的60s时间仍未全部成功启动起来。把限制时间调大;

vi /etc/profile

! ------------------------------
# 在文件尾部追加
export COMPOSE_HTTP_TIMEOUT=500
export DOCKER_CLIENT_TIMEOUT=500
! -----------------------------

source /etc/profile       # 生效

       容器正常启动后,访问 http://localhost:8080/map.html 即可访问互联网仿真器:

【SeedLab】BGP Exploration and Attack Lab

2 Task 1: Stub Autonomous System

2.1 Task 1.a: Understanding AS-155’s BGP Configuration

Task 1.a.1: 查找AS-155的peer自治系统,找到10.155.0.254/24的BGP路由,使用cat /etc/bird/bird.conf查询它的配置信息。

【SeedLab】BGP Exploration and Attack Lab

         从路由配置中得知,AS-150与3个自治系统互联,其中p_as156与之为peer关系:

【SeedLab】BGP Exploration and Attack Lab

Task 1.a.2: AS-155同时与多个AS互联,其中一个失恋不影响AS-155访问互联网。

        这里选择从10.155.0.72上ping主机10.156.0.72,并逐一切断BGP路由的链接,当且仅当所有链接均切断时,ping命令显示不可达。

【SeedLab】BGP Exploration and Attack Lab

 2.2 Task 1.b: Observing BGP UPDATE Messages

        在路由上运行以下命令,将路由器收到的数据包存储到pcap文件,并转移至虚拟机上:

# 出现权限错误时,删除旧的/tmp/bgp.pcap文件
tcpdump -i any -w /tmp/bgp.pcap "tcp port 179"
# 这条指令在虚拟机上运行
docker cp {填路由ID}:/tmp/bgp.pcap /home/seed/bgp.pcp

     切断与之相连的某个路由器(下线或者切断所有的bgp连接),使用wireshar读取pcap文件,查找BGP的UPDATE MESSAGE,能看到路由退出的报文:【SeedLab】BGP Exploration and Attack Lab

         恢复连接也能抓到路由更新的报文:

【SeedLab】BGP Exploration and Attack Lab

 2.3 Task 1.c: Experimenting with Large Communities

        先切断AS-4与AS-156之间的连接,然后在10.156.0.71上运行ping命令,发现可以ping同10.155.0.71,但ping不通10.161.0.71。 虽然AS-156通过AS-155接入了互联网,但由于两者peer的关系,AS-155并不会转发AS-156的数据(是否转发取决于两者关系)。

【SeedLab】BGP Exploration and Attack Lab

        修改AS-155路由器的配置文件,实现AS-156的数据包通过AS-155转发,一共需要修改两处:

protocol bgp u_as4 {
    ipv4 {
        table t_bgp;
        import filter {
            bgp_large_community.add(PROVIDER_COMM);
            bgp_local_pref = 10;
            accept;
        };
        # 添加PEER-COMM,把AS-156路由信息告知AS-4
        export where bgp_large_community ~ [LOCAL_COMM, CUSTOMER_COMM, PEER_COMM];
        next hop self;
    };
    local 10.102.0.155 as 155;
    neighbor 10.102.0.4 as 4;
}
protocol bgp p_as156 {
    ipv4 {
        table t_bgp;
        import filter {
            bgp_large_community.add(PEER_COMM);
            bgp_local_pref = 20;
            accept;
        };
        # 添加PROVIDER_COMM,把AS-4的路由信息告知AS-156
        export where bgp_large_community ~ [LOCAL_COMM, CUSTOMER_COMM, PROVIDER_COMM];
        next hop self;
    };
    local 10.102.0.155 as 155;
    neighbor 10.102.0.156 as 156;
}

        使用以下命令完成修改后,10.156.0.71即可ping通10.161.0.71:

dockps | grep 155
docker cp [docker id]:/etc/bird/bird.conf ./as155_bird.conf
docker cp ./as155_bird.conf [docer id]:/etc/bird/bird.conf
docker exec [docker id] birdc configure

2.4 Task 1.d: Configuring AS-180

        本节实验需要配置一系列路由器的配置信息,使AS-180能够访问互联网。使用import bird conf.sh和export bird conf.sh完成容器内配置文件的导入导出。

step 1 连通AS-180与AS-171

        分别在AS-180与AS-171的配置中添加以下内容:

! ------------------- AS-180 -------------------
define LOCAL_COMM = (180, 0, 0);
define CUSTOMER_COMM = (180, 1, 0);
define PEER_COMM = (180, 2, 0);
define PROVIDER_COMM = (180, 3, 0);
ipv4 table t_bgp;
protocol pipe {
    table t_bgp;
    peer table master4;
    import none;
    export all;
}
protocol pipe {
    table t_direct;
    peer table t_bgp;
    import none;
    export filter { bgp_large_community.add(LOCAL_COMM); bgp_local_pref = 40; accept; };
}
protocol bgp p_as171 {
    ipv4 {
        table t_bgp;
        import filter {
            bgp_large_community.add(PEER_COMM);
            bgp_local_pref = 20;
            accept;
        };
        export where bgp_large_community ~ [LOCAL_COMM, CUSTOMER_COMM];
        next hop self;
    };
    local 10.105.0.180 as 180;
    neighbor 10.105.0.171 as 171;
}

! ------------------- AS-171 -------------------
protocol bgp p_as180 {
    ipv4 {
        table t_bgp;
        import filter {
            bgp_large_community.add(PEER_COMM);
            bgp_local_pref = 20;
            accept;
        };
        export where bgp_large_community ~ [LOCAL_COMM, CUSTOMER_COMM];
        next hop self;
    };
    local 10.105.0.171 as 171;
    neighbor 10.105.0.180 as 180;
}

        重启路由后,AS-180与AS-171即可相互通信, 

【SeedLab】BGP Exploration and Attack Lab

step 2 连通AS-180与AS-2、AS-3

!------------------------------- AS-180 -----------------------------------
# 添加到ipv4 table t_bgp;后面
protocol bgp p_as171 {
    ipv4 {
        table t_bgp;
        import filter {
            bgp_large_community.add(PEER_COMM);
            bgp_local_pref = 20;
            accept;
        };
        export where bgp_large_community ~ [LOCAL_COMM, CUSTOMER_COMM];
        next hop self;
    };
    local 10.105.0.180 as 180;
    neighbor 10.105.0.171 as 171;
}

!------------------------------- AS-2 -----------------------------------
# 添加到ipv4 table t_bgp;后面
protocol bgp c_as180 {
    ipv4 {
        table t_bgp;
        import filter {
            bgp_large_community.add(CUSTOMER_COMM);
            bgp_local_pref = 30;
            accept;
        };
        export all;
        next hop self;
    };
    local 10.105.0.2 as 2;
    neighbor 10.105.0.180 as 180;
}

        此时可ping通AS-2连通的主机:

【SeedLab】BGP Exploration and Attack Lab

3 Task 2: Transit Autonomous System

3.1 Task 2.a: Experimenting with IBGP

         在AS-162任意主机上ping 10.164.0.71,观察流量路径,此时关闭3/r103路由器的ibgp3,icmp路径被中断。此时162/router0路由器的路由表中会丢失经由10.103.0.3转发的路由信息。

【SeedLab】BGP Exploration and Attack Lab

 3.2 Task 2.b: Experimenting with IGP

         使用命令disable ospf1关闭3/r103路由器的opsf协议,icmp路径被切断。

【SeedLab】BGP Exploration and Attack Lab

3.3 Task 2.c: Configuring AS-5

         修改AS-5的配置文件,一共3个,都要检查一下。更改配置后,AS-153\AS-160\AS-171即可接通:

protocol direct local_nets {
    ipv4 {
        table t_direct;
        import all;
    };

    interface "net_101_103";
    # 这里填写路由器连接的网络,有几个填几个
    interface "net_103_105";

}
ipv4 table t_ospf;
protocol ospf ospf1 {
    ipv4 {
        table t_ospf;
        import all;
        export all;
    };
    area 0 {
        interface "dummy0" { stub; };
        interface "ix103" { stub; };
        # 这里填写路由器连接的网络,有几个填几个
        interface "net_101_103" { hello 1; dead count 2; };
        interface "net_103_105" { hello 1; dead count 2; };

    };
}
protocol bgp ibgp2 {
    ipv4 {
        table t_bgp;
        import all;
        export all;
        igp table t_ospf;
    };
    local 10.0.0.13 as 5;
    # 属于同一AS的peer路由
    neighbor 10.0.0.14 as 5;
}

修改AS-5/r103与AS-3/r103的配置,使它们以peer-to-peer方式互通:

! --------------------只给出AS-5/r101配置----------------------
define LOCAL_COMM = (5, 0, 0);
define CUSTOMER_COMM = (5, 1, 0);
define PEER_COMM = (5, 2, 0);
define PROVIDER_COMM = (5, 3, 0);

protocol bgp p_as3 {
    ipv4 {
        table t_bgp;
        import filter {
            bgp_large_community.add(PEER_COMM);
            bgp_local_pref = 20;
            accept;
        };
        export where bgp_large_community ~ [LOCAL_COMM, CUSTOMER_COMM];
        next hop self;
    };
    local 10.103.0.5 as 5;
    neighbor 10.103.0.3 as 3;
}

4 Task 3: Path Selection

        先查看一下AS-150的BGP路由器中,通往10.161.0.0/24的路由表:

【SeedLab】BGP Exploration and Attack Lab

         可以看到,到达10.161.0.0/24的路由路径有两条,分别经过AS-2和AS-3,在转发路由时将会选择第一条路径转发,这是由于两条路径的优先级相同,所以优先选择AS路径更短的转发

【SeedLab】BGP Exploration and Attack Lab

         接下来修改AS-150的路由配置,使AS-150的流量均通过AS-3转发,而AS-2仅作为后备link使用。不修改路由配置时,发往10.152.0.0/24的流量将经AS-2转发:

【SeedLab】BGP Exploration and Attack Lab

        由于路由选择时优先挑选local-preference更大的,因此调整一下配置设置即可:

# The import filter for the AS-3 peering session
import filter {
    bgp_large_community.add(PROVIDER_COMM);
    # 把u_as3的这个调大
    bgp_local_pref = 15;
    accept;
};

 【SeedLab】BGP Exploration and Attack Lab

 5 Task 4: IP Anycast

        Anycast(任意播),类似“抛绣球”,一个成员向一组成员发一个消息,DNS服务器即采用该技术。

        在10.156.0.71和10.160.0.72上ping 10.190.0.100,发现两台主机的icmp包发完不同的目的主机。

【SeedLab】BGP Exploration and Attack Lab

        Anycast的实现机理在于,路由器并不关心目的主机的具体位置(哪怕有多个),而只关心到达主机的路径。两台 10.190.0.100分别告知AS-3和AS-4自己的位置,并由AS-3和AS-4向外扩散,其他路由器接收到路由信息后,会根据路由选择算法挑选最优的路径转发,转发路径只有一条,所以消息只能抵达10.190.0.100中某一台主机。

6 Task 5: BGP Prefix Attack

        原理:最长路由匹配原则

6.1 Task 5.a. Launching the Prefix Hijacking Attack from AS-16

        修改AS-161的配置信息,使通往AS-154的流量全部转往AS-161。配置中的子网需要覆盖整个10.154.0.0/24

protocol static hijacks {
    ipv4 { 
        table t_bgp; 
    };
    route 10.154.0.0/25 blackhole {
    	bgp_large_community.add(LOCAL_COMM);
    };
    route 10.154.0.128/25 blackhole {
    	bgp_large_community.add(LOCAL_COMM);
    };
}

        效果如下:

【SeedLab】BGP Exploration and Attack Lab

 6.2 Task 5.b. Fighting Back from AS-154

        修改AS-154配置,使其可以抢回属于自己的流量:

protocol static {
    ipv4 { 
        table t_bgp; 
    };
    route 10.154.0.0/26 via "net0" {
    	bgp_large_community.add(LOCAL_COMM);
    };
    route 10.154.0.64/26 via "net0" {
    	bgp_large_community.add(LOCAL_COMM);
    };
    route 10.154.0.128/26 via "net0" {
    	bgp_large_community.add(LOCAL_COMM);
    };
    route 10.154.0.192/26 via "net0" {
    	bgp_large_community.add(LOCAL_COMM);
    };
}

【SeedLab】BGP Exploration and Attack Lab

 6.3 Task 5.c. Fixing the Problem at AS-3

        由于AS-3是AS-161的唯一provider,因此AS-3可以修改自己的配置,修复错误路由:

protocol bgp c_as161 {
    ipv4 {
        table t_bgp;
        import filter {
            bgp_large_community.add(CUSTOMER_COMM);
            bgp_local_pref = 30;
            # 添加以下内容
            if (net != 10.103.0.0/24) then reject;
            accept;
        };
        export all;
        next hop self;
    };
    local 10.103.0.3 as 3;
    neighbor 10.103.0.161 as 161;
}

        这里已经把AS-154的配置回滚了,可以发现,流量依然正确发往AS-154。

【SeedLab】BGP Exploration and Attack Lab

 文章来源地址https://www.toymoban.com/news/detail-441836.html

到了这里,关于【SeedLab】BGP Exploration and Attack Lab的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • bgp 实验1

    使用BGP,按照真实网络环境的逻辑配置,实现所有PC间可以互相通讯。 一、配接口IP 二、区域内用IGP协议——这里给AS2起OSPF协议 三、区域间起bgp协议         ①直连的EBGP邻居间建立(r1-r2)         ②同一AS之内建邻居——IBGP(r2-r3-r4)         ③EBGP邻居间使用

    2024年02月11日
    浏览(29)
  • 【信息安全】seed-labs实验-TCP/IP Attack Lab

    Install SEED VM on VirtualBox 上面完成了一台虚拟机的基本配置,然后clone两台虚拟机,和原来的虚拟机一起,分别是attacker、victim和observer。 attacker是发起攻击的机器、victim是遭受攻击的机器和observer是观察用的机器,同时后面也将victim作为客户端、observer作为服务器。 Oracle Virtua

    2024年02月02日
    浏览(33)
  • BGP边界网关路由实验(华为)

    思科设备参考:BGP边界网关路由实验(思科) BGP(边界网关路由协议)是一种自治系统(AS)间的协议,主要用于在不同的AS之间交换路由信息。AS是一个由一组网络设备和路由器组成的网络集合,这些设备可以在一个共同的管理域中协同工作。AS内部的路由协议(如OSPF或RI

    2024年04月26日
    浏览(25)
  • HCIP OSPF+BGP综合实验

    1、该拓扑为公司网络,其中包括公司总部、公司分部以及公司骨干网,不包含运营商公网部分。 2、设备名称均使用拓扑上名称改名,并且区分大小写。 3、整张拓扑均使用私网地址进行配置。 4、整张网络中,运行OSPF协议或者BGP协议的设备,其Router-id值为设备名数字号,例

    2024年02月14日
    浏览(27)
  • HCIP-BGP选路实验

    R1 R2 R3 R4 R5 R6 R7 R8

    2024年01月20日
    浏览(62)
  • 【HCIP】BGP实验(联邦,路由反射器,手工汇总)

    目录  需求: Ⅰ、IP规划  Ⅱ、配置IP与做通IGP(用的ospf) Ⅲ、开启BGP协议 Ⅳ、AS1、AS3的10...环回互相通讯 Ⅴ、对路由表进行汇总 Ⅵ、回望需求 1.AS1存在两个环回,一个地址为192.168.1.0/24该地址不能在任何协议中宣告    AS3存在两个环回,一个地址为192.168.2.0/24该地址不能在任

    2023年04月25日
    浏览(28)
  • CCNP课程实验-04-BGP_CFG

    拓扑中的IP地址段采用:172.8.AB.X/24,其中AB为两台路由器编号组合。 例如:R3-R5之间的AB为35,X为路由器编号,例如R3的X=3 所有路由器都有一个Loopback 0接口,地址格式为:X.X.X.X/32,其中X为路由器编号。 R1/R4/R6之间的网段为:172.8.146.X/24,其中X为路由器编号。 没有特殊要求,

    2024年02月03日
    浏览(28)
  • 跨域BGP/MPLS IP VPN实验(OptionA方式)

    目录 一、概述 二、组网需求 三、实验拓扑 四、实验目的 五、实验编址表 六、实验步骤          1.基本配置 2.配置运营商网络的OSPF路由协议 3.配置运营商网络的MPLS协议与LDP 4.配置PE与ASBR设备间的MP-BGP 5.在PE、ASBR上创建VPN实例并与接口绑定 6.配置PE与CE的连通性 7.配置

    2024年02月08日
    浏览(23)
  • BGP/MPLS IP VPF(N) 实验(ensp)

             如图1所示,本次实验使用了6台路由器(R1-R6),其中R3、R4、R5作为运营商网络中的P或PE路由器,R1、R2作为VPN客户端(CE)路由器,R6作为VPN客户端要访问的目标路由器。运营商网络使用OSPF作为IGP协议,并开启MPLS LDP功能。PE路由器使用MP-BGP协议发布VPN路由信息,

    2024年02月09日
    浏览(23)
  • Splunk Attack Range:一款针对Splunk安全的模拟测试环境创建工具

    Splunk Attack Range是一款针对Splunk安全的模拟测试环境创建工具,该工具完全开源,目前由Splunk威胁研究团队负责维护。 该工具能够帮助广大研究人员构建模拟攻击测试所用的本地或云端环境,并将数据转发至Splunk实例中。除此之外,该工具还可以用来开发和测试安全检测机制

    2024年04月26日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包