├── red └── README.md ├── images ├── .gitkeep └── daedalus-grid-5g.png ├── .coveragerc ├── environments ├── scenario1 │ ├── host1 │ │ └── README.md │ ├── host2 │ │ ├── README.md │ │ ├── httpd_server │ │ │ └── Dockerfile │ │ ├── ssh_server2 │ │ │ └── Dockerfile │ │ ├── tomcat_server_extra │ │ │ └── Dockerfile │ │ ├── tomcat_vuln_server │ │ │ ├── Dockerfile │ │ │ ├── 1.png │ │ │ ├── context.xml │ │ │ ├── docker-compose.yml │ │ │ ├── tomcat-users.xml │ │ │ ├── tomcat-users.xml.orig │ │ │ └── README.zh-cn.md │ │ ├── nfs_server │ │ │ └── Dockerfile │ │ ├── ssh_server │ │ │ └── Dockerfile │ │ ├── nfs_server_extra │ │ │ └── Dockerfile │ │ ├── down.sh │ │ ├── scenario-3-servers.txt │ │ ├── scenario-6-servers.txt │ │ ├── scenario-5-servers.txt │ │ ├── scenario-4-servers.txt │ │ └── hostnames.txt │ ├── host3 │ │ ├── README.md │ │ ├── down.sh │ │ ├── desktop │ │ │ └── docker-compose.yml │ │ └── hostnames.txt │ └── controller │ │ └── README.md └── scenario2 │ ├── .env │ ├── config │ ├── faucet.yaml │ ├── run_smf.sh │ ├── run_mme.sh │ ├── run_sgwc.sh │ ├── run_sgwu.sh │ ├── run_sgwu2.sh │ ├── run_webui.sh │ ├── open5gs │ │ ├── sgwu.yaml │ │ ├── sgwu2.yaml │ │ ├── hss.yaml │ │ ├── pcrf.yaml │ │ ├── sgwc.yaml │ │ ├── upf.yaml │ │ ├── upf2.yaml │ │ ├── mme.yaml │ │ └── smf.yaml │ ├── run_hss.sh │ ├── run_pcrf.sh │ ├── run_upf2.sh │ ├── run_upf.sh │ ├── freeDiameter │ │ ├── hss.key.pem │ │ ├── mme.key.pem │ │ ├── pcrf.key.pem │ │ ├── smf.key.pem │ │ └── cacert.pem │ └── srsLTE │ │ └── drb.conf │ ├── host2 │ ├── config │ │ ├── faucet.yaml │ │ ├── run_smf.sh │ │ ├── run_mme.sh │ │ ├── run_sgwc.sh │ │ ├── run_sgwu.sh │ │ ├── run_sgwu2.sh │ │ ├── run_webui.sh │ │ ├── open5gs │ │ │ ├── sgwu.yaml │ │ │ ├── sgwu2.yaml │ │ │ ├── hss.yaml │ │ │ ├── pcrf.yaml │ │ │ ├── sgwc.yaml │ │ │ ├── upf.yaml │ │ │ ├── upf2.yaml │ │ │ ├── mme.yaml │ │ │ └── smf.yaml │ │ ├── run_hss.sh │ │ ├── run_pcrf.sh │ │ ├── run_upf2.sh │ │ ├── run_upf.sh │ │ ├── freeDiameter │ │ │ ├── hss.key.pem │ │ │ ├── mme.key.pem │ │ │ ├── smf.key.pem │ │ │ ├── pcrf.key.pem │ │ │ └── cacert.pem │ │ └── srsLTE │ │ │ └── drb.conf │ ├── srsLTE │ │ ├── start_srsue.sh │ │ ├── add_default_route.sh │ │ └── Dockerfile │ ├── dovesnapviz.png │ ├── shutdown_all_in_one.sh │ ├── config_cpn │ │ ├── run_smf.sh │ │ ├── run_mme.sh │ │ ├── run_sgwc.sh │ │ ├── run_webui.sh │ │ ├── open5gs │ │ │ ├── hss.yaml │ │ │ ├── pcrf.yaml │ │ │ ├── sgwc.yaml │ │ │ ├── mme.yaml │ │ │ └── smf.yaml │ │ ├── run_hss.sh │ │ ├── run_pcrf.sh │ │ └── freeDiameter │ │ │ ├── hss.key.pem │ │ │ ├── mme.key.pem │ │ │ ├── pcrf.key.pem │ │ │ ├── smf.key.pem │ │ │ └── cacert.pem │ ├── startup_all_in_one.sh │ ├── config_upn │ │ ├── run_sgwu.sh │ │ ├── run_sgwu2.sh │ │ ├── open5gs │ │ │ ├── sgwu.yaml │ │ │ ├── sgwu2.yaml │ │ │ ├── upf.yaml │ │ │ └── upf2.yaml │ │ ├── run_upf.sh │ │ ├── run_upf2.sh │ │ └── srsLTE │ │ │ └── drb.conf │ ├── mongoloader │ │ └── Dockerfile │ ├── README.md │ ├── shutdown.sh │ ├── docker-compose-desktops.yml │ ├── provisioning │ │ └── db │ │ │ └── run_db.sh │ ├── up.sh │ └── Dockerfile │ ├── host3 │ ├── config │ │ ├── faucet.yaml │ │ ├── run_smf.sh │ │ ├── run_mme.sh │ │ ├── run_sgwc.sh │ │ ├── run_sgwu.sh │ │ ├── run_sgwu2.sh │ │ ├── run_webui.sh │ │ ├── open5gs │ │ │ ├── sgwu.yaml │ │ │ ├── sgwu2.yaml │ │ │ ├── hss.yaml │ │ │ ├── pcrf.yaml │ │ │ ├── sgwc.yaml │ │ │ ├── upf.yaml │ │ │ ├── upf2.yaml │ │ │ ├── mme.yaml │ │ │ └── smf.yaml │ │ ├── run_hss.sh │ │ ├── run_pcrf.sh │ │ ├── run_upf2.sh │ │ ├── run_upf.sh │ │ ├── freeDiameter │ │ │ ├── hss.key.pem │ │ │ ├── mme.key.pem │ │ │ ├── smf.key.pem │ │ │ ├── pcrf.key.pem │ │ │ └── cacert.pem │ │ └── srsLTE │ │ │ └── drb.conf │ ├── srsLTE │ │ ├── start_srsue.sh │ │ ├── add_default_route.sh │ │ ├── patch.txt │ │ └── Dockerfile │ ├── dovesnapviz.png │ ├── shutdown_all_in_one.sh │ ├── dba │ │ ├── ssh_host_ecdsa_key.pub │ │ ├── ssh_host_ecdsa_key │ │ ├── ssh_host_rsa_key.pub │ │ ├── docker-compose.yml │ │ ├── ssh_server_fork.patch │ │ ├── ssh_host_dsa_key.pub │ │ ├── ssh_host_dsa_key │ │ └── Dockerfile │ ├── config_cpn │ │ ├── run_smf.sh │ │ ├── run_mme.sh │ │ ├── run_sgwc.sh │ │ ├── run_webui.sh │ │ ├── open5gs │ │ │ ├── hss.yaml │ │ │ ├── pcrf.yaml │ │ │ ├── sgwc.yaml │ │ │ ├── mme.yaml │ │ │ └── smf.yaml │ │ ├── run_hss.sh │ │ ├── run_pcrf.sh │ │ └── freeDiameter │ │ │ ├── hss.key.pem │ │ │ ├── mme.key.pem │ │ │ ├── pcrf.key.pem │ │ │ ├── smf.key.pem │ │ │ └── cacert.pem │ ├── startup_all_in_one.sh │ ├── config_upn │ │ ├── run_sgwu.sh │ │ ├── run_sgwu2.sh │ │ ├── open5gs │ │ │ ├── sgwu.yaml │ │ │ ├── sgwu2.yaml │ │ │ ├── upf.yaml │ │ │ └── upf2.yaml │ │ ├── run_upf.sh │ │ ├── run_upf2.sh │ │ └── srsLTE │ │ │ └── drb.conf │ ├── scenario-2-cpn.txt │ ├── scenario-4-cpn.txt │ ├── scenario-7-cpn.txt │ ├── scenario-3-cpn.txt │ ├── scenario-5-cpn.txt │ ├── scenario-6-cpn.txt │ ├── mongoloader │ │ └── Dockerfile │ ├── README.md │ ├── shutdown.sh │ ├── desktop │ │ └── docker-compose.yml │ ├── docker-compose-desktops.yml │ ├── provisioning │ │ └── db │ │ │ └── run_db.sh │ ├── Dockerfile │ └── hostnames.txt │ ├── srsLTE │ ├── start_srsue.sh │ └── add_default_route.sh │ ├── shutdown_all_in_one.sh │ ├── config_cpn │ ├── run_smf.sh │ ├── run_mme.sh │ ├── run_sgwc.sh │ ├── run_webui.sh │ ├── open5gs │ │ ├── hss.yaml │ │ ├── pcrf.yaml │ │ ├── sgwc.yaml │ │ ├── mme.yaml │ │ └── smf.yaml │ ├── run_hss.sh │ ├── run_pcrf.sh │ └── freeDiameter │ │ ├── hss.key.pem │ │ ├── mme.key.pem │ │ ├── pcrf.key.pem │ │ ├── smf.key.pem │ │ └── cacert.pem │ ├── startup_all_in_one.sh │ ├── config_upn │ ├── open5gs │ │ ├── sgwu.yaml │ │ ├── sgwu2.yaml │ │ ├── upf.yaml │ │ └── upf2.yaml │ ├── run_sgwu.sh │ ├── run_sgwu2.sh │ ├── run_upf.sh │ ├── run_upf2.sh │ └── srsLTE │ │ ├── drb.conf │ │ ├── ettus │ │ └── rr.conf │ │ └── bladeRF │ │ └── rr.conf │ ├── README.md │ ├── shutdown.sh │ ├── provisioning │ └── db │ │ └── run_db.sh │ ├── docker-compose-5g-nsa-upn-ettus-enb.yml │ ├── docker-compose-5g-nsa-upn-bladerf-enb.yml │ ├── docker-compose-5g-nsa-upn-enb.yml │ └── Dockerfile ├── blue ├── nfsconfuser │ ├── confused │ │ ├── requirements.txt │ │ └── README.md │ ├── serve.sh │ ├── ganesha.conf │ └── Dockerfile ├── sctp_tools │ └── README.md ├── generate_fs │ ├── requirements.txt │ ├── gen.js │ └── extensions.txt ├── 5G │ └── daedalus │ │ ├── 5G │ │ ├── core │ │ │ ├── .env │ │ │ ├── ui.yml │ │ │ ├── upn.yml │ │ │ └── db.yml │ │ ├── configs │ │ │ ├── faucet │ │ │ │ └── faucet.yaml │ │ │ ├── srsRAN │ │ │ │ ├── blade-rr.conf │ │ │ │ ├── ettus-rr.conf │ │ │ │ ├── ettus-nrr.conf │ │ │ │ ├── virtual-nrr.conf │ │ │ │ ├── virtual-rr.conf │ │ │ │ └── rr.conf │ │ │ ├── UERANSIM │ │ │ │ └── gnb.yaml │ │ │ └── open5gs │ │ │ │ └── smf.yaml │ │ ├── srsRAN │ │ │ └── scripts │ │ │ │ ├── start_srsue.sh │ │ │ │ ├── run_rfn_enb.sh │ │ │ │ └── add_default_route.sh │ │ ├── UERANSIM │ │ │ ├── scripts │ │ │ │ ├── run_ue.sh │ │ │ │ ├── run_rfn_gnb.sh │ │ │ │ └── add_default_route.sh │ │ │ └── Dockerfile │ │ ├── open5gs │ │ │ └── scripts │ │ │ │ ├── mmehc.sh │ │ │ │ ├── run_smf.sh │ │ │ │ ├── run_db.sh │ │ │ │ ├── run_upf.sh │ │ │ │ └── nrfhc.sh │ │ ├── SIMULATED │ │ │ ├── ueransim-ue.yml │ │ │ ├── ueransim-gnb.yml │ │ │ ├── srsran-gue.yml │ │ │ ├── srsran-gnb.yml │ │ │ └── srsran-enb.yml │ │ └── SDR │ │ │ ├── bladerf.yml │ │ │ ├── ettus.yml │ │ │ └── ettus-gnb.yml │ │ ├── __main__.py │ │ ├── __init__.py │ │ └── styles.py ├── setup.py ├── tests │ ├── dump_docker.sh │ ├── test_srsran_enb_ue.sh │ ├── uetuncheck.sh │ ├── test_ueransim_gnb_ue.sh │ └── install_test.sh ├── MANIFEST.in ├── README.md ├── release │ └── update_docker_compose.py └── pyproject.toml ├── .gitignore ├── renovate.json ├── .github └── workflows │ ├── config │ └── whispers-config.yml │ ├── stale.yml │ ├── pypi.yaml │ ├── secrets-scan.yml │ ├── docker-srsran.yaml │ ├── docker-open5gs.yaml │ └── docker-ueransim.yaml └── .pre-commit-config.yaml /red/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.coveragerc: -------------------------------------------------------------------------------- 1 | [report] 2 | -------------------------------------------------------------------------------- /environments/scenario1/host1/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /environments/scenario1/host2/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /environments/scenario1/host3/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /environments/scenario1/controller/README.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blue/nfsconfuser/confused/requirements.txt: -------------------------------------------------------------------------------- 1 | fusepy 2 | -------------------------------------------------------------------------------- /blue/sctp_tools/README.md: -------------------------------------------------------------------------------- 1 | Tools to test SCTP connections 2 | -------------------------------------------------------------------------------- /blue/generate_fs/requirements.txt: -------------------------------------------------------------------------------- 1 | essential_generators 2 | numpy 3 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/core/.env: -------------------------------------------------------------------------------- 1 | DB_USER=mongoadmin 2 | DB_PASS=secret 3 | -------------------------------------------------------------------------------- /environments/scenario2/.env: -------------------------------------------------------------------------------- 1 | DB_USER=mongoadmin 2 | DB_PASS=secret 3 | -------------------------------------------------------------------------------- /environments/scenario2/config/faucet.yaml: -------------------------------------------------------------------------------- 1 | include: 2 | - acls.yaml 3 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/faucet.yaml: -------------------------------------------------------------------------------- 1 | include: 2 | - acls.yaml 3 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/faucet.yaml: -------------------------------------------------------------------------------- 1 | include: 2 | - acls.yaml 3 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/configs/faucet/faucet.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | include: 3 | - acls.yaml 4 | -------------------------------------------------------------------------------- /blue/setup.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python 2 | from setuptools import setup 3 | 4 | setup() 5 | -------------------------------------------------------------------------------- /images/daedalus-grid-5g.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IQTLabs/Daedalus/HEAD/images/daedalus-grid-5g.png -------------------------------------------------------------------------------- /blue/5G/daedalus/__main__.py: -------------------------------------------------------------------------------- 1 | def main(): 2 | from daedalus.daedalus import Daedalus 3 | Daedalus().main() 4 | -------------------------------------------------------------------------------- /environments/scenario2/srsLTE/start_srsue.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | /root/add_default_route.sh & 4 | exec srsue $* 5 | -------------------------------------------------------------------------------- /environments/scenario1/host2/httpd_server/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM httpd 2 | RUN apt-get update && apt-get install -y nfs-common 3 | -------------------------------------------------------------------------------- /environments/scenario2/host2/srsLTE/start_srsue.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | /root/add_default_route.sh & 4 | exec srsue $* 5 | -------------------------------------------------------------------------------- /environments/scenario2/host3/srsLTE/start_srsue.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | /root/add_default_route.sh & 4 | exec srsue $* 5 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/srsRAN/scripts/start_srsue.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | /scripts/add_default_route.sh & 4 | exec srsue "$@" 5 | -------------------------------------------------------------------------------- /environments/scenario1/host2/ssh_server2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM maltyxx/sshd 2 | RUN apt-get update && apt-get install -y nfs-common 3 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/UERANSIM/scripts/run_ue.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | /scripts/add_default_route.sh & 4 | exec /usr/local/bin/nr-ue "$@" 5 | -------------------------------------------------------------------------------- /environments/scenario1/host2/tomcat_server_extra/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM vulhub/tomcat:9.0 2 | RUN apt-get update && apt-get install -y nfs-common 3 | -------------------------------------------------------------------------------- /environments/scenario1/host2/tomcat_vuln_server/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM vulhub/tomcat:8.0 2 | RUN apt-get update && apt-get install -y nfs-common 3 | -------------------------------------------------------------------------------- /environments/scenario2/host2/dovesnapviz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IQTLabs/Daedalus/HEAD/environments/scenario2/host2/dovesnapviz.png -------------------------------------------------------------------------------- /environments/scenario2/host3/dovesnapviz.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IQTLabs/Daedalus/HEAD/environments/scenario2/host3/dovesnapviz.png -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/open5gs/scripts/mmehc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | SS=$(ss -SOH state established) 3 | if [[ "${SS}" == "" ]] ; then exit 1 ; fi 4 | exit 0 5 | -------------------------------------------------------------------------------- /environments/scenario1/host2/tomcat_vuln_server/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/IQTLabs/Daedalus/HEAD/environments/scenario1/host2/tomcat_vuln_server/1.png -------------------------------------------------------------------------------- /environments/scenario1/host2/nfs_server/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM erichough/nfs-server 2 | RUN apk add sudo 3 | RUN echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/wheel 4 | -------------------------------------------------------------------------------- /environments/scenario1/host2/ssh_server/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM panubo/sshd 2 | RUN apk add sudo nfs-utils 3 | RUN echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/wheel 4 | -------------------------------------------------------------------------------- /environments/scenario2/shutdown_all_in_one.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker-compose -f docker-compose-5g-nsa.yml down 4 | docker volume rm scenario2_mongodb_data 5 | -------------------------------------------------------------------------------- /environments/scenario1/host2/nfs_server_extra/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM gists/nfs-server 2 | RUN apk add bash sudo 3 | RUN echo '%wheel ALL=(ALL) ALL' > /etc/sudoers.d/wheel 4 | -------------------------------------------------------------------------------- /environments/scenario2/host2/shutdown_all_in_one.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker-compose -f docker-compose-5g-nsa.yml down 4 | docker volume rm scenario2_mongodb_data 5 | -------------------------------------------------------------------------------- /environments/scenario2/host3/shutdown_all_in_one.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker-compose -f docker-compose-5g-nsa.yml down 4 | docker volume rm scenario2_mongodb_data 5 | -------------------------------------------------------------------------------- /blue/tests/dump_docker.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker ps -a 4 | 5 | for i in $(docker ps -aq) ; do 6 | docker ps -a -f id="$i" 7 | docker logs "$i" 8 | done 9 | exit 1 10 | -------------------------------------------------------------------------------- /blue/5G/daedalus/__init__.py: -------------------------------------------------------------------------------- 1 | import pkg_resources 2 | from importlib.metadata import version 3 | 4 | pkg_resources.declare_namespace(__name__) 5 | 6 | __version__ = version('daedalus-5g') 7 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | blue/5G/daedalus/5G/IQTLabs-dovesnap-* 2 | blue/AUTHORS 3 | blue/ChangeLog 4 | build 5 | dist 6 | .eggs 7 | *.egg-info 8 | __pycache__ 9 | IQTLabs-dovesnap-* 10 | .coverage 11 | -------------------------------------------------------------------------------- /blue/MANIFEST.in: -------------------------------------------------------------------------------- 1 | recursive-include 5G *.yml 2 | recursive-include 5G *.yaml 3 | recursive-include 5G *.conf 4 | recursive-include 5G *.sh 5 | recursive-include 5G *.json 6 | include 5G/core/.env 7 | -------------------------------------------------------------------------------- /renovate.json: -------------------------------------------------------------------------------- 1 | { 2 | "constraints": { 3 | "poetry": "==1.1.15" 4 | }, 5 | "extends": [ 6 | "config:base", 7 | "docker:enableMajor" 8 | ], 9 | "ignorePaths": [] 10 | } 11 | -------------------------------------------------------------------------------- /environments/scenario2/host3/dba/ssh_host_ecdsa_key.pub: -------------------------------------------------------------------------------- 1 | ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBBwhCmCXPwxYylG6ToVSrfsyuINiDzCG417SAVpDC1JpXbaHiPZw70nCPmN3zUL03jBjyhNrd6786W2zJ5iq++w= root@7625efe3a323 2 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/srsRAN/scripts/run_rfn_enb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | while [ "$(ip route show default)" = "" ] ; do 4 | sleep 1 5 | done 6 | 7 | ip route del default 8 | ip route add default via 192.168.29.1 9 | exec srsenb "$@" 10 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/configs/srsRAN/blade-rr.conf: -------------------------------------------------------------------------------- 1 | @include "/config/rr.conf" 2 | 3 | cell_list = 4 | ( 5 | { 6 | rf_port = 0; 7 | cell_id = 0x61; 8 | tac = 0x0001; 9 | pci = 0x61; 10 | dl_earfcn = 2700; 11 | } 12 | ); 13 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/configs/srsRAN/ettus-rr.conf: -------------------------------------------------------------------------------- 1 | @include "/config/rr.conf" 2 | 3 | cell_list = 4 | ( 5 | { 6 | rf_port = 0; 7 | cell_id = 0x62; 8 | tac = 0x0001; 9 | pci = 0x62; 10 | dl_earfcn = 1800; 11 | } 12 | ); 13 | -------------------------------------------------------------------------------- /environments/scenario2/config/run_smf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | mkdir -p /usr/local/var/log/open5gs 4 | touch /usr/local/var/log/open5gs/smf.log 5 | 6 | tail -f /usr/local/var/log/open5gs/smf.log & 7 | 8 | open5gs-smfd -c /usr/local/etc/open5gs/smf.yaml 9 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/UERANSIM/scripts/run_rfn_gnb.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | while [ "$(ip route show default)" = "" ] ; do 4 | sleep 1 5 | done 6 | 7 | ip route del default 8 | ip route add default via 192.168.29.1 9 | exec /usr/local/bin/nr-gnb "$@" 10 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/run_smf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | mkdir -p /usr/local/var/log/open5gs 4 | touch /usr/local/var/log/open5gs/smf.log 5 | 6 | tail -f /usr/local/var/log/open5gs/smf.log & 7 | 8 | open5gs-smfd -c /usr/local/etc/open5gs/smf.yaml 9 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/run_smf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | mkdir -p /usr/local/var/log/open5gs 4 | touch /usr/local/var/log/open5gs/smf.log 5 | 6 | tail -f /usr/local/var/log/open5gs/smf.log & 7 | 8 | open5gs-smfd -c /usr/local/etc/open5gs/smf.yaml 9 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/run_smf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | mkdir -p /usr/local/var/log/open5gs 4 | touch /usr/local/var/log/open5gs/smf.log 5 | 6 | tail -f /usr/local/var/log/open5gs/smf.log & 7 | 8 | open5gs-smfd -c /usr/local/etc/open5gs/smf.yaml 9 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/run_smf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | mkdir -p /usr/local/var/log/open5gs 4 | touch /usr/local/var/log/open5gs/smf.log 5 | 6 | tail -f /usr/local/var/log/open5gs/smf.log & 7 | 8 | open5gs-smfd -c /usr/local/etc/open5gs/smf.yaml 9 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/run_smf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | mkdir -p /usr/local/var/log/open5gs 4 | touch /usr/local/var/log/open5gs/smf.log 5 | 6 | tail -f /usr/local/var/log/open5gs/smf.log & 7 | 8 | open5gs-smfd -c /usr/local/etc/open5gs/smf.yaml 9 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/open5gs/scripts/run_smf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | touch /usr/local/var/log/open5gs/smf.log 4 | 5 | if [ -z "$1" ] 6 | then 7 | open5gs-smfd -c /usr/local/etc/open5gs/smf.yaml 8 | else 9 | open5gs-smfd -c /usr/local/etc/slice.yaml 10 | fi 11 | -------------------------------------------------------------------------------- /environments/scenario2/startup_all_in_one.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd srsLTE 4 | docker build -t srslte . 5 | cd .. 6 | 7 | docker build -t open5gs . 8 | docker-compose -f docker-compose-5g-nsa.yml up -d --build 9 | docker-compose -f docker-compose-5g-nsa.yml logs -f 10 | -------------------------------------------------------------------------------- /environments/scenario2/host2/startup_all_in_one.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd srsLTE 4 | docker build -t srslte . 5 | cd .. 6 | 7 | docker build -t open5gs . 8 | docker-compose -f docker-compose-5g-nsa.yml up -d --build 9 | docker-compose -f docker-compose-5g-nsa.yml logs -f 10 | -------------------------------------------------------------------------------- /environments/scenario2/host3/startup_all_in_one.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | cd srsLTE 4 | docker build -t srslte . 5 | cd .. 6 | 7 | docker build -t open5gs . 8 | docker-compose -f docker-compose-5g-nsa.yml up -d --build 9 | docker-compose -f docker-compose-5g-nsa.yml logs -f 10 | -------------------------------------------------------------------------------- /blue/generate_fs/gen.js: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env node 2 | 3 | var NaturalNameGenerator = require('natural-filename-generator'); 4 | 5 | var g = new NaturalNameGenerator(); 6 | 7 | for(var i = 0; i < 10000; i++){ 8 | var name = g.generate('foo'); 9 | console.log(name); 10 | } 11 | -------------------------------------------------------------------------------- /environments/scenario1/host2/tomcat_vuln_server/context.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /environments/scenario2/host3/dba/ssh_host_ecdsa_key: -------------------------------------------------------------------------------- 1 | -----BEGIN EC PRIVATE KEY----- 2 | MHcCAQEEIONncURsOlNsCPt5bJ45hf6TUrVuFPpF0akUoHA/v13NoAoGCCqGSM49 3 | AwEHoUQDQgAEHCEKYJc/DFjKUbpOhVKt+zK4g2IPMIbjXtIBWkMLUmldtoeI9nDv 4 | ScI+Y3fNQvTeMGPKE2t3rvzpbbMnmKr77A== 5 | -----END EC PRIVATE KEY----- 6 | -------------------------------------------------------------------------------- /environments/scenario2/config/run_mme.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Launching MME..." 4 | 5 | mkdir -p /usr/local/var/log/open5gs 6 | touch /usr/local/var/log/open5gs/mme.log 7 | 8 | tail -f /usr/local/var/log/open5gs/mme.log & 9 | 10 | open5gs-mmed -c /usr/local/etc/open5gs/mme.yaml 11 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/run_mme.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Launching MME..." 4 | 5 | mkdir -p /usr/local/var/log/open5gs 6 | touch /usr/local/var/log/open5gs/mme.log 7 | 8 | tail -f /usr/local/var/log/open5gs/mme.log & 9 | 10 | open5gs-mmed -c /usr/local/etc/open5gs/mme.yaml 11 | -------------------------------------------------------------------------------- /environments/scenario2/config_upn/open5gs/sgwu.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwu.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | sgwu: 9 | gtpu: 10 | addr: 192.168.27.31 11 | pfcp: 12 | addr: 192.168.27.31 13 | -------------------------------------------------------------------------------- /environments/scenario2/config_upn/open5gs/sgwu2.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwu2.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | sgwu: 9 | gtpu: 10 | addr: 192.168.27.32 11 | pfcp: 12 | addr: 192.168.27.32 13 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/run_mme.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Launching MME..." 4 | 5 | mkdir -p /usr/local/var/log/open5gs 6 | touch /usr/local/var/log/open5gs/mme.log 7 | 8 | tail -f /usr/local/var/log/open5gs/mme.log & 9 | 10 | open5gs-mmed -c /usr/local/etc/open5gs/mme.yaml 11 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/run_mme.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Launching MME..." 4 | 5 | mkdir -p /usr/local/var/log/open5gs 6 | touch /usr/local/var/log/open5gs/mme.log 7 | 8 | tail -f /usr/local/var/log/open5gs/mme.log & 9 | 10 | open5gs-mmed -c /usr/local/etc/open5gs/mme.yaml 11 | -------------------------------------------------------------------------------- /environments/scenario2/config/run_sgwc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-C..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwc.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwc.log & 10 | 11 | open5gs-sgwcd -c /usr/local/etc/open5gs/sgwc.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/config/run_sgwu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-U..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwu.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwu.log & 10 | 11 | open5gs-sgwud -c /usr/local/etc/open5gs/sgwu.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/run_mme.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Launching MME..." 4 | 5 | mkdir -p /usr/local/var/log/open5gs 6 | touch /usr/local/var/log/open5gs/mme.log 7 | 8 | tail -f /usr/local/var/log/open5gs/mme.log & 9 | 10 | open5gs-mmed -c /usr/local/etc/open5gs/mme.yaml 11 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/run_mme.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | echo "Launching MME..." 4 | 5 | mkdir -p /usr/local/var/log/open5gs 6 | touch /usr/local/var/log/open5gs/mme.log 7 | 8 | tail -f /usr/local/var/log/open5gs/mme.log & 9 | 10 | open5gs-mmed -c /usr/local/etc/open5gs/mme.yaml 11 | -------------------------------------------------------------------------------- /environments/scenario2/config/run_sgwu2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-U2..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwu2.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwu2.log & 10 | 11 | open5gs-sgwud -c /usr/local/etc/open5gs/sgwu2.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/run_sgwc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-C..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwc.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwc.log & 10 | 11 | open5gs-sgwcd -c /usr/local/etc/open5gs/sgwc.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/config_upn/run_sgwu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-U..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwu.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwu.log & 10 | 11 | open5gs-sgwud -c /usr/local/etc/open5gs/sgwu.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/run_sgwc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-C..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwc.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwc.log & 10 | 11 | open5gs-sgwcd -c /usr/local/etc/open5gs/sgwc.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/run_sgwu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-U..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwu.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwu.log & 10 | 11 | open5gs-sgwud -c /usr/local/etc/open5gs/sgwu.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/run_sgwc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-C..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwc.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwc.log & 10 | 11 | open5gs-sgwcd -c /usr/local/etc/open5gs/sgwc.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/run_sgwu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-U..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwu.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwu.log & 10 | 11 | open5gs-sgwud -c /usr/local/etc/open5gs/sgwu.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/config_upn/run_sgwu2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-U2..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwu2.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwu2.log & 10 | 11 | open5gs-sgwud -c /usr/local/etc/open5gs/sgwu2.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/run_sgwu2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-U2..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwu2.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwu2.log & 10 | 11 | open5gs-sgwud -c /usr/local/etc/open5gs/sgwu2.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/run_sgwc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-C..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwc.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwc.log & 10 | 11 | open5gs-sgwcd -c /usr/local/etc/open5gs/sgwc.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_upn/run_sgwu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-U..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwu.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwu.log & 10 | 11 | open5gs-sgwud -c /usr/local/etc/open5gs/sgwu.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/run_sgwu2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-U2..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwu2.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwu2.log & 10 | 11 | open5gs-sgwud -c /usr/local/etc/open5gs/sgwu2.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/run_sgwc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-C..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwc.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwc.log & 10 | 11 | open5gs-sgwcd -c /usr/local/etc/open5gs/sgwc.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_upn/run_sgwu.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-U..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwu.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwu.log & 10 | 11 | open5gs-sgwud -c /usr/local/etc/open5gs/sgwu.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/config/run_webui.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 4 | do 5 | sleep 5 6 | echo "Trying to connect to MongoDB" 7 | done 8 | 9 | echo "Launching WebUI..." 10 | 11 | npm run start --prefix /open5gs/webui 12 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_upn/run_sgwu2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-U2..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwu2.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwu2.log & 10 | 11 | open5gs-sgwud -c /usr/local/etc/open5gs/sgwu2.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_upn/run_sgwu2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | echo "Launching SGW-U2..." 5 | 6 | mkdir -p /usr/local/var/log/open5gs 7 | touch /usr/local/var/log/open5gs/sgwu2.log 8 | 9 | tail -f /usr/local/var/log/open5gs/sgwu2.log & 10 | 11 | open5gs-sgwud -c /usr/local/etc/open5gs/sgwu2.yaml 12 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/run_webui.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 4 | do 5 | sleep 5 6 | echo "Trying to connect to MongoDB" 7 | done 8 | 9 | echo "Launching WebUI..." 10 | 11 | npm run start --prefix /open5gs/webui 12 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/run_webui.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 4 | do 5 | sleep 5 6 | echo "Trying to connect to MongoDB" 7 | done 8 | 9 | echo "Launching WebUI..." 10 | 11 | npm run start --prefix /open5gs/webui 12 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/run_webui.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 4 | do 5 | sleep 5 6 | echo "Trying to connect to MongoDB" 7 | done 8 | 9 | echo "Launching WebUI..." 10 | 11 | npm run start --prefix /open5gs/webui 12 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/run_webui.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 4 | do 5 | sleep 5 6 | echo "Trying to connect to MongoDB" 7 | done 8 | 9 | echo "Launching WebUI..." 10 | 11 | npm run start --prefix /open5gs/webui 12 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/run_webui.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 4 | do 5 | sleep 5 6 | echo "Trying to connect to MongoDB" 7 | done 8 | 9 | echo "Launching WebUI..." 10 | 11 | npm run start --prefix /open5gs/webui 12 | -------------------------------------------------------------------------------- /environments/scenario2/srsLTE/add_default_route.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | TUN=tun_srsue 4 | 5 | while ! grep -q $TUN /proc/net/dev ; do 6 | sleep 1 7 | done 8 | 9 | ip route del default 10 | 11 | while [ "$(ip route show default)" = "" ] ; do 12 | ip route add default dev $TUN 13 | sleep 1 14 | done 15 | 16 | exit 0 17 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/UERANSIM/scripts/add_default_route.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | TUN=uesimtun0 4 | 5 | while ! grep -q $TUN /proc/net/dev ; do 6 | sleep 1 7 | done 8 | 9 | ip route del default 10 | 11 | while [ "$(ip route show default)" = "" ] ; do 12 | ip route add default dev $TUN 13 | sleep 1 14 | done 15 | 16 | exit 0 17 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/srsRAN/scripts/add_default_route.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | TUN=tun_srsue 4 | 5 | while ! grep -q $TUN /proc/net/dev ; do 6 | sleep 1 7 | done 8 | 9 | ip route del default 10 | 11 | while [ "$(ip route show default)" = "" ] ; do 12 | ip route add default dev $TUN 13 | sleep 1 14 | done 15 | 16 | exit 0 17 | -------------------------------------------------------------------------------- /environments/scenario2/host2/srsLTE/add_default_route.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | TUN=tun_srsue 4 | 5 | while ! grep -q $TUN /proc/net/dev ; do 6 | sleep 1 7 | done 8 | 9 | ip route del default 10 | 11 | while [ "$(ip route show default)" = "" ] ; do 12 | ip route add default dev $TUN 13 | sleep 1 14 | done 15 | 16 | exit 0 17 | -------------------------------------------------------------------------------- /environments/scenario2/host3/srsLTE/add_default_route.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | TUN=tun_srsue 4 | 5 | while ! grep -q $TUN /proc/net/dev ; do 6 | sleep 1 7 | done 8 | 9 | ip route del default 10 | 11 | while [ "$(ip route show default)" = "" ] ; do 12 | ip route add default dev $TUN 13 | sleep 1 14 | done 15 | 16 | exit 0 17 | -------------------------------------------------------------------------------- /environments/scenario2/config/open5gs/sgwu.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwu.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwu: 12 | gtpu: 13 | addr: 192.168.26.31 14 | pfcp: 15 | addr: 192.168.26.31 16 | -------------------------------------------------------------------------------- /environments/scenario2/config/open5gs/sgwu2.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwu2.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwu: 12 | gtpu: 13 | addr: 192.168.26.32 14 | pfcp: 15 | addr: 192.168.26.32 16 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/open5gs/sgwu.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwu.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwu: 12 | gtpu: 13 | addr: 192.168.26.31 14 | pfcp: 15 | addr: 192.168.26.31 16 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/open5gs/sgwu2.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwu2.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwu: 12 | gtpu: 13 | addr: 192.168.26.32 14 | pfcp: 15 | addr: 192.168.26.32 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/open5gs/sgwu.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwu.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwu: 12 | gtpu: 13 | addr: 192.168.26.31 14 | pfcp: 15 | addr: 192.168.26.31 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/open5gs/sgwu2.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwu2.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwu: 12 | gtpu: 13 | addr: 192.168.26.32 14 | pfcp: 15 | addr: 192.168.26.32 16 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_upn/open5gs/sgwu.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwu.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwu: 12 | gtpu: 13 | addr: 192.168.27.31 14 | pfcp: 15 | addr: 192.168.27.31 16 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_upn/open5gs/sgwu2.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwu2.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwu: 12 | gtpu: 13 | addr: 192.168.27.32 14 | pfcp: 15 | addr: 192.168.27.32 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_upn/open5gs/sgwu.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwu.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwu: 12 | gtpu: 13 | addr: 192.168.27.31 14 | pfcp: 15 | addr: 192.168.27.31 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_upn/open5gs/sgwu2.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwu2.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwu: 12 | gtpu: 13 | addr: 192.168.27.32 14 | pfcp: 15 | addr: 192.168.27.32 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/scenario-2-cpn.txt: -------------------------------------------------------------------------------- 1 | vlan: 2 | hostnames: rico locust 3 | usernames: asmith ssmith 4 | passwords: danielle katrina 5 | VNC external password: Pythris6 6 | started desktop entrypoint... hostname: rico username: asmith password: danielle vnc: Pythris6 7 | started dba... hostname: locust username: ssmith password: katrina vnc: Pythris6 8 | -------------------------------------------------------------------------------- /environments/scenario2/host3/scenario-4-cpn.txt: -------------------------------------------------------------------------------- 1 | vlan: 2 | hostnames: trinity elk 3 | usernames: mwilson ssharma 4 | passwords: amistad miller 5 | VNC external password: MadUbativ 6 | started desktop entrypoint... hostname: trinity username: mwilson password: amistad vnc: MadUbativ 7 | started dba... hostname: elk username: ssharma password: miller vnc: MadUbativ 8 | -------------------------------------------------------------------------------- /environments/scenario2/host3/scenario-7-cpn.txt: -------------------------------------------------------------------------------- 1 | vlan: 2 | hostnames: fallriver stump 3 | usernames: mtaylor ddavis 4 | passwords: brian javier 5 | VNC external password: Vohotfuc 6 | started desktop entrypoint... hostname: fallriver username: mtaylor password: brian vnc: Vohotfuc 7 | started dba... hostname: stump username: ddavis password: javier vnc: Vohotfuc 8 | -------------------------------------------------------------------------------- /environments/scenario2/host3/scenario-3-cpn.txt: -------------------------------------------------------------------------------- 1 | vlan: 2 | hostnames: saugatuck fairfax 3 | usernames: cjones sahmed 4 | passwords: marissa 54321 5 | VNC external password: MinwecIb 6 | started desktop entrypoint... hostname: saugatuck username: cjones password: marissa vnc: MinwecIb 7 | started dba... hostname: fairfax username: sahmed password: 54321 vnc: MinwecIb 8 | -------------------------------------------------------------------------------- /environments/scenario2/host3/scenario-5-cpn.txt: -------------------------------------------------------------------------------- 1 | vlan: 2 | hostnames: crystal holt 3 | usernames: jclark asingh 4 | passwords: roxana PASSWORD 5 | VNC external password: Bovgajyid4 6 | started desktop entrypoint... hostname: crystal username: jclark password: roxana vnc: Bovgajyid4 7 | started dba... hostname: holt username: asingh password: PASSWORD vnc: Bovgajyid4 8 | -------------------------------------------------------------------------------- /environments/scenario2/host3/scenario-6-cpn.txt: -------------------------------------------------------------------------------- 1 | vlan: 2 | hostnames: higgins shasta 3 | usernames: sjones alee 4 | passwords: hardcore lilmama 5 | VNC external password: VotsIckIsp 6 | started desktop entrypoint... hostname: higgins username: sjones password: hardcore vnc: VotsIckIsp 7 | started dba... hostname: shasta username: alee password: lilmama vnc: VotsIckIsp 8 | -------------------------------------------------------------------------------- /environments/scenario2/host2/mongoloader/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM vulhub/libssh:0.8.1 2 | RUN wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add - 3 | RUN echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.4 main" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list 4 | RUN apt-get update && apt-get install -y mongodb-org mongodb-org-tools 5 | -------------------------------------------------------------------------------- /environments/scenario2/host3/mongoloader/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM vulhub/libssh:0.8.1 2 | RUN wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add - 3 | RUN echo "deb http://repo.mongodb.org/apt/debian stretch/mongodb-org/4.4 main" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list 4 | RUN apt-get update && apt-get install -y mongodb-org mongodb-org-tools 5 | -------------------------------------------------------------------------------- /environments/scenario2/README.md: -------------------------------------------------------------------------------- 1 | # startup 2 | ``` 3 | ./startup.sh 4 | ``` 5 | 6 | # shutdown 7 | ``` 8 | ./shutdown.sh 9 | ``` 10 | 11 | # all in one scripts 12 | the all in one scripts can be used if it is desired to not use dovesnap and have the CPN and UPN run on the same network. 13 | 14 | # test UE connectivity 15 | ``` 16 | docker exec -it ue ping 8.8.8.8 17 | ``` 18 | -------------------------------------------------------------------------------- /environments/scenario2/host2/README.md: -------------------------------------------------------------------------------- 1 | # startup 2 | ``` 3 | ./startup.sh 4 | ``` 5 | 6 | # shutdown 7 | ``` 8 | ./shutdown.sh 9 | ``` 10 | 11 | # all in one scripts 12 | the all in one scripts can be used if it is desired to not use dovesnap and have the CPN and UPN run on the same network. 13 | 14 | # test UE connectivity 15 | ``` 16 | docker exec -it ue ping 8.8.8.8 17 | ``` 18 | -------------------------------------------------------------------------------- /environments/scenario2/host3/README.md: -------------------------------------------------------------------------------- 1 | # startup 2 | ``` 3 | ./startup.sh 4 | ``` 5 | 6 | # shutdown 7 | ``` 8 | ./shutdown.sh 9 | ``` 10 | 11 | # all in one scripts 12 | the all in one scripts can be used if it is desired to not use dovesnap and have the CPN and UPN run on the same network. 13 | 14 | # test UE connectivity 15 | ``` 16 | docker exec -it ue ping 8.8.8.8 17 | ``` 18 | -------------------------------------------------------------------------------- /environments/scenario2/config/open5gs/hss.yaml: -------------------------------------------------------------------------------- 1 | ### haven't found a way to pass in user/pass yet 2 | db_uri: mongodb://mongoadmin:secret@mongodb/open5gs?authSource=admin 3 | 4 | logger: 5 | file: /usr/local/var/log/open5gs/hss.log 6 | trace: 7 | app: 1 8 | diameter: 1 9 | 10 | parameter: 11 | 12 | hss: 13 | freeDiameter: /usr/local/etc/freeDiameter/hss.conf 14 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/open5gs/hss.yaml: -------------------------------------------------------------------------------- 1 | ### haven't found a way to pass in user/pass yet 2 | db_uri: mongodb://mongoadmin:secret@mongodb/open5gs?authSource=admin 3 | 4 | logger: 5 | file: /usr/local/var/log/open5gs/hss.log 6 | trace: 7 | app: 1 8 | diameter: 1 9 | 10 | parameter: 11 | 12 | hss: 13 | freeDiameter: /usr/local/etc/freeDiameter/hss.conf 14 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/open5gs/hss.yaml: -------------------------------------------------------------------------------- 1 | ### haven't found a way to pass in user/pass yet 2 | db_uri: mongodb://mongoadmin:secret@mongodb/open5gs?authSource=admin 3 | 4 | logger: 5 | file: /usr/local/var/log/open5gs/hss.log 6 | trace: 7 | app: 1 8 | diameter: 1 9 | 10 | parameter: 11 | 12 | hss: 13 | freeDiameter: /usr/local/etc/freeDiameter/hss.conf 14 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/open5gs/hss.yaml: -------------------------------------------------------------------------------- 1 | ### haven't found a way to pass in user/pass yet 2 | db_uri: mongodb://mongoadmin:secret@mongodb/open5gs?authSource=admin 3 | 4 | logger: 5 | file: /usr/local/var/log/open5gs/hss.log 6 | trace: 7 | app: 1 8 | diameter: 1 9 | 10 | parameter: 11 | 12 | hss: 13 | freeDiameter: /usr/local/etc/freeDiameter/hss.conf 14 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/open5gs/hss.yaml: -------------------------------------------------------------------------------- 1 | ### haven't found a way to pass in user/pass yet 2 | db_uri: mongodb://mongoadmin:Pybjootvicraigtevod6@mongodb/open5gs?authSource=admin 3 | 4 | logger: 5 | file: /usr/local/var/log/open5gs/hss.log 6 | trace: 7 | app: 1 8 | diameter: 1 9 | 10 | parameter: 11 | 12 | hss: 13 | freeDiameter: /usr/local/etc/freeDiameter/hss.conf 14 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/open5gs/hss.yaml: -------------------------------------------------------------------------------- 1 | ### haven't found a way to pass in user/pass yet 2 | db_uri: mongodb://mongoadmin:Pybjootvicraigtevod6@mongodb/open5gs?authSource=admin 3 | 4 | logger: 5 | file: /usr/local/var/log/open5gs/hss.log 6 | trace: 7 | app: 1 8 | diameter: 1 9 | 10 | parameter: 11 | 12 | hss: 13 | freeDiameter: /usr/local/etc/freeDiameter/hss.conf 14 | -------------------------------------------------------------------------------- /blue/nfsconfuser/serve.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | /sbin/rpcbind 3 | /sbin/rpc.statd --no-notify 4 | python3 /confused/confused.py /real /share /fake & 5 | echo checking /share has content 6 | while [[ "$(ls /share)" == "" ]] ; do 7 | echo waiting for /share 8 | sleep 1 9 | done 10 | echo starting ganesha 11 | strace -f -o /var/log/ganesha/strace.log /usr/bin/ganesha.nfsd -F -L /var/log/ganesha/ganesha.log -N NIV_DEBUG 12 | -------------------------------------------------------------------------------- /environments/scenario2/host2/shutdown.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker-compose -f docker-compose-5g-nsa-cpn.yml -f docker-compose-5g-nsa-upn.yml down 4 | docker network rm cpn 5 | docker network rm upn 6 | docker network rm rfn 7 | cd dovesnap 8 | docker-compose -f docker-compose.yml -f docker-compose-standalone.yml down 9 | cd .. 10 | docker volume rm scenario2_mongodb_data 11 | docker volume rm dovesnap_ovs-data 12 | -------------------------------------------------------------------------------- /environments/scenario2/host3/shutdown.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker-compose -f docker-compose-5g-nsa-cpn.yml -f docker-compose-5g-nsa-upn.yml down 4 | docker network rm cpn 5 | docker network rm upn 6 | docker network rm rfn 7 | cd dovesnap 8 | docker-compose -f docker-compose.yml -f docker-compose-standalone.yml down 9 | cd .. 10 | docker volume rm scenario2_mongodb_data 11 | docker volume rm dovesnap_ovs-data 12 | -------------------------------------------------------------------------------- /environments/scenario2/config_upn/open5gs/upf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/upf.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | upf: 12 | gtpu: 13 | addr: 14 | - 192.168.27.41 15 | pfcp: 16 | - addr: 192.168.27.41 17 | subnet: 18 | - addr: 10.10.0.1/16 19 | apn: internet 20 | -------------------------------------------------------------------------------- /blue/generate_fs/extensions.txt: -------------------------------------------------------------------------------- 1 | 5 2 | xlsx 3 | doc 4 | pdf 5 | docx 6 | pptx 7 | 8 | 5-6 9 | avi 10 | 3g2 11 | 3gp 12 | flv 13 | h264 14 | m4v 15 | mkv 16 | mov 17 | mp4 18 | mpg 19 | mpeg 20 | wmv 21 | 22 | 5 23 | tiff 24 | jpeg 25 | jpg 26 | gif 27 | 28 | 5-6 29 | bin 30 | db 31 | 32 | 4-6 33 | jar 34 | zip 35 | tar 36 | tar.gz 37 | rar 38 | 39 | 4-5 40 | wav 41 | wma 42 | ogg 43 | mpa 44 | aif 45 | cda 46 | 47 | 1 48 | txt 49 | -------------------------------------------------------------------------------- /blue/nfsconfuser/confused/README.md: -------------------------------------------------------------------------------- 1 | # confused 2 | A FUSE based filesystem confuser. 3 | 4 | Files under a specified "fake" tree, will appear preferentially in a real tree, via a FUSE mount. 5 | 6 | Usage 7 | ===== 8 | 9 | pip install -r requirements.txt 10 | ./confused.py /real/path /mount/point /fake/path 11 | 12 | Copy files to /fake/path (or subdirectories thereof). They will appear under /mount/point, overlaying /real/path. 13 | -------------------------------------------------------------------------------- /environments/scenario2/host3/dba/ssh_host_rsa_key.pub: -------------------------------------------------------------------------------- 1 | ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSdQ3Y/2p9lE4KOxVnnlZmnBnbVzdMbeSTpqHjRomiLFAvN2ibvIA6bM4IzA+1gZbmqj/nC15Q0EP7U49EMmRPCklquu6YTKTwzJTKql7qVEiKhkMNwSh7+pHi4Eve975swhsdncqhBkTeLREg7Q7emjhVxbgl92Q9HfFFHYa76b7p5BmjW44ZMGvWnOIg4WVOk5VSa6u8ZcPvnc4Z4EKpIkbLU3gNENIUQ4koeZmDgZs2iCYxuNFb/SQNrBOoPZKJ686cPfohBzSiwulDG0mxmHNHAJVT7fEAi+XC9mF9tPtj1njPjO2w3mbXrrxH9m4GszgAf+WLhvnMu+ij8dlv root@7625efe3a323 2 | -------------------------------------------------------------------------------- /environments/scenario2/config/open5gs/pcrf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | ### haven't found a way to pass in user/pass yet 4 | db_uri: mongodb://mongoadmin:secret@mongodb/open5gs?authSource=admin 5 | 6 | logger: 7 | file: /usr/local/var/log/open5gs/pcrf.log 8 | trace: 9 | app: 1 10 | diameter: 1 11 | 12 | parameter: 13 | no_ipv6: true 14 | 15 | pcrf: 16 | freeDiameter: /usr/local/etc/freeDiameter/pcrf.conf 17 | -------------------------------------------------------------------------------- /environments/scenario2/config/run_hss.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 4 | do 5 | sleep 5 6 | echo "Trying to connect to MongoDB" 7 | done 8 | 9 | echo "Launching HSS..." 10 | 11 | mkdir -p /usr/local/var/log/open5gs 12 | touch /usr/local/var/log/open5gs/hss.log 13 | 14 | tail -f /usr/local/var/log/open5gs/hss.log & 15 | 16 | open5gs-hssd -c /usr/local/etc/open5gs/hss.yaml 17 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/open5gs/pcrf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | ### haven't found a way to pass in user/pass yet 4 | db_uri: mongodb://mongoadmin:secret@mongodb/open5gs?authSource=admin 5 | 6 | logger: 7 | file: /usr/local/var/log/open5gs/pcrf.log 8 | trace: 9 | app: 1 10 | diameter: 1 11 | 12 | parameter: 13 | no_ipv6: true 14 | 15 | pcrf: 16 | freeDiameter: /usr/local/etc/freeDiameter/pcrf.conf 17 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/run_hss.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 4 | do 5 | sleep 5 6 | echo "Trying to connect to MongoDB" 7 | done 8 | 9 | echo "Launching HSS..." 10 | 11 | mkdir -p /usr/local/var/log/open5gs 12 | touch /usr/local/var/log/open5gs/hss.log 13 | 14 | tail -f /usr/local/var/log/open5gs/hss.log & 15 | 16 | open5gs-hssd -c /usr/local/etc/open5gs/hss.yaml 17 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/open5gs/pcrf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | ### haven't found a way to pass in user/pass yet 4 | db_uri: mongodb://mongoadmin:secret@mongodb/open5gs?authSource=admin 5 | 6 | logger: 7 | file: /usr/local/var/log/open5gs/pcrf.log 8 | trace: 9 | app: 1 10 | diameter: 1 11 | 12 | parameter: 13 | no_ipv6: true 14 | 15 | pcrf: 16 | freeDiameter: /usr/local/etc/freeDiameter/pcrf.conf 17 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/run_hss.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 4 | do 5 | sleep 5 6 | echo "Trying to connect to MongoDB" 7 | done 8 | 9 | echo "Launching HSS..." 10 | 11 | mkdir -p /usr/local/var/log/open5gs 12 | touch /usr/local/var/log/open5gs/hss.log 13 | 14 | tail -f /usr/local/var/log/open5gs/hss.log & 15 | 16 | open5gs-hssd -c /usr/local/etc/open5gs/hss.yaml 17 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/open5gs/pcrf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | ### haven't found a way to pass in user/pass yet 4 | db_uri: mongodb://mongoadmin:secret@mongodb/open5gs?authSource=admin 5 | 6 | logger: 7 | file: /usr/local/var/log/open5gs/pcrf.log 8 | trace: 9 | app: 1 10 | diameter: 1 11 | 12 | parameter: 13 | no_ipv6: true 14 | 15 | pcrf: 16 | freeDiameter: /usr/local/etc/freeDiameter/pcrf.conf 17 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/run_hss.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 4 | do 5 | sleep 5 6 | echo "Trying to connect to MongoDB" 7 | done 8 | 9 | echo "Launching HSS..." 10 | 11 | mkdir -p /usr/local/var/log/open5gs 12 | touch /usr/local/var/log/open5gs/hss.log 13 | 14 | tail -f /usr/local/var/log/open5gs/hss.log & 15 | 16 | open5gs-hssd -c /usr/local/etc/open5gs/hss.yaml 17 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/run_hss.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 4 | do 5 | sleep 5 6 | echo "Trying to connect to MongoDB" 7 | done 8 | 9 | echo "Launching HSS..." 10 | 11 | mkdir -p /usr/local/var/log/open5gs 12 | touch /usr/local/var/log/open5gs/hss.log 13 | 14 | tail -f /usr/local/var/log/open5gs/hss.log & 15 | 16 | open5gs-hssd -c /usr/local/etc/open5gs/hss.yaml 17 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/run_hss.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 4 | do 5 | sleep 5 6 | echo "Trying to connect to MongoDB" 7 | done 8 | 9 | echo "Launching HSS..." 10 | 11 | mkdir -p /usr/local/var/log/open5gs 12 | touch /usr/local/var/log/open5gs/hss.log 13 | 14 | tail -f /usr/local/var/log/open5gs/hss.log & 15 | 16 | open5gs-hssd -c /usr/local/etc/open5gs/hss.yaml 17 | -------------------------------------------------------------------------------- /environments/scenario2/config/open5gs/sgwc.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwc.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwc: 12 | gtpc: 13 | addr: 192.168.26.30 14 | pfcp: 15 | addr: 192.168.26.30 16 | 17 | sgwu: 18 | pfcp: 19 | - addr: 192.168.26.31 20 | apn: internet 21 | - addr: 192.168.26.32 22 | apn: internet2 23 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/configs/srsRAN/ettus-nrr.conf: -------------------------------------------------------------------------------- 1 | @include "/config/ettus-rr.conf" 2 | 3 | // https://docs.srsran.com/en/latest/app_notes/source/5g_nsa_cots/source/index.html 4 | nr_cell_list = 5 | ( 6 | { 7 | rf_port = 1; 8 | cell_id = 0x65; 9 | tac = 0x0001; 10 | pci = 500; 11 | root_seq_idx = 204; 12 | 13 | // TDD: 14 | //dl_arfcn = 634240; 15 | //band = 78; 16 | 17 | // FDD: 18 | dl_arfcn = 368500; 19 | band = 3; 20 | } 21 | ); 22 | -------------------------------------------------------------------------------- /environments/scenario2/config/run_pcrf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | 5 | mkdir -p /usr/local/var/log/open5gs 6 | touch /usr/local/var/log/open5gs/pcrf.log 7 | 8 | tail -f /usr/local/var/log/open5gs/pcrf.log & 9 | 10 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 11 | do 12 | sleep 5 13 | echo "Trying to connect to MongoDB" 14 | done 15 | 16 | echo "Launching PCRF..." 17 | 18 | open5gs-pcrfd -c /usr/local/etc/open5gs/pcrf.yaml 19 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/open5gs/sgwc.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwc.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwc: 12 | gtpc: 13 | addr: 192.168.26.30 14 | pfcp: 15 | addr: 192.168.26.30 16 | 17 | sgwu: 18 | pfcp: 19 | - addr: 192.168.26.31 20 | apn: internet 21 | - addr: 192.168.26.32 22 | apn: internet2 23 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/open5gs/pcrf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | ### haven't found a way to pass in user/pass yet 4 | db_uri: mongodb://mongoadmin:Pybjootvicraigtevod6@mongodb/open5gs?authSource=admin 5 | 6 | logger: 7 | file: /usr/local/var/log/open5gs/pcrf.log 8 | trace: 9 | app: 1 10 | diameter: 1 11 | 12 | parameter: 13 | no_ipv6: true 14 | 15 | pcrf: 16 | freeDiameter: /usr/local/etc/freeDiameter/pcrf.conf 17 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/open5gs/sgwc.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwc.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwc: 12 | gtpc: 13 | addr: 192.168.26.30 14 | pfcp: 15 | addr: 192.168.26.30 16 | 17 | sgwu: 18 | pfcp: 19 | - addr: 192.168.26.31 20 | apn: internet 21 | - addr: 192.168.26.32 22 | apn: internet2 23 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/open5gs/pcrf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | ### haven't found a way to pass in user/pass yet 4 | db_uri: mongodb://mongoadmin:Pybjootvicraigtevod6@mongodb/open5gs?authSource=admin 5 | 6 | logger: 7 | file: /usr/local/var/log/open5gs/pcrf.log 8 | trace: 9 | app: 1 10 | diameter: 1 11 | 12 | parameter: 13 | no_ipv6: true 14 | 15 | pcrf: 16 | freeDiameter: /usr/local/etc/freeDiameter/pcrf.conf 17 | -------------------------------------------------------------------------------- /environments/scenario2/config/run_upf2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ip tuntap add name ogstun mode tun 4 | ip addr add 10.11.0.1/16 dev ogstun 5 | ip link set ogstun up 6 | 7 | # masquerade 8 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 9 | iptables -I INPUT -i ogstun -j ACCEPT 10 | 11 | mkdir -p /usr/local/var/log/open5gs 12 | touch /usr/local/var/log/open5gs/upf2.log 13 | 14 | tail -f /usr/local/var/log/open5gs/upf2.log & 15 | 16 | open5gs-upfd -c /usr/local/etc/open5gs/upf2.yaml 17 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/run_pcrf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | 5 | mkdir -p /usr/local/var/log/open5gs 6 | touch /usr/local/var/log/open5gs/pcrf.log 7 | 8 | tail -f /usr/local/var/log/open5gs/pcrf.log & 9 | 10 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 11 | do 12 | sleep 5 13 | echo "Trying to connect to MongoDB" 14 | done 15 | 16 | echo "Launching PCRF..." 17 | 18 | open5gs-pcrfd -c /usr/local/etc/open5gs/pcrf.yaml 19 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/run_pcrf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | 5 | mkdir -p /usr/local/var/log/open5gs 6 | touch /usr/local/var/log/open5gs/pcrf.log 7 | 8 | tail -f /usr/local/var/log/open5gs/pcrf.log & 9 | 10 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 11 | do 12 | sleep 5 13 | echo "Trying to connect to MongoDB" 14 | done 15 | 16 | echo "Launching PCRF..." 17 | 18 | open5gs-pcrfd -c /usr/local/etc/open5gs/pcrf.yaml 19 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/run_pcrf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | 5 | mkdir -p /usr/local/var/log/open5gs 6 | touch /usr/local/var/log/open5gs/pcrf.log 7 | 8 | tail -f /usr/local/var/log/open5gs/pcrf.log & 9 | 10 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 11 | do 12 | sleep 5 13 | echo "Trying to connect to MongoDB" 14 | done 15 | 16 | echo "Launching PCRF..." 17 | 18 | open5gs-pcrfd -c /usr/local/etc/open5gs/pcrf.yaml 19 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/run_upf2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ip tuntap add name ogstun mode tun 4 | ip addr add 10.11.0.1/16 dev ogstun 5 | ip link set ogstun up 6 | 7 | # masquerade 8 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 9 | iptables -I INPUT -i ogstun -j ACCEPT 10 | 11 | mkdir -p /usr/local/var/log/open5gs 12 | touch /usr/local/var/log/open5gs/upf2.log 13 | 14 | tail -f /usr/local/var/log/open5gs/upf2.log & 15 | 16 | open5gs-upfd -c /usr/local/etc/open5gs/upf2.yaml 17 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/run_pcrf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | 5 | mkdir -p /usr/local/var/log/open5gs 6 | touch /usr/local/var/log/open5gs/pcrf.log 7 | 8 | tail -f /usr/local/var/log/open5gs/pcrf.log & 9 | 10 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 11 | do 12 | sleep 5 13 | echo "Trying to connect to MongoDB" 14 | done 15 | 16 | echo "Launching PCRF..." 17 | 18 | open5gs-pcrfd -c /usr/local/etc/open5gs/pcrf.yaml 19 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/run_upf2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ip tuntap add name ogstun mode tun 4 | ip addr add 10.11.0.1/16 dev ogstun 5 | ip link set ogstun up 6 | 7 | # masquerade 8 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 9 | iptables -I INPUT -i ogstun -j ACCEPT 10 | 11 | mkdir -p /usr/local/var/log/open5gs 12 | touch /usr/local/var/log/open5gs/upf2.log 13 | 14 | tail -f /usr/local/var/log/open5gs/upf2.log & 15 | 16 | open5gs-upfd -c /usr/local/etc/open5gs/upf2.yaml 17 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/run_pcrf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | 4 | 5 | mkdir -p /usr/local/var/log/open5gs 6 | touch /usr/local/var/log/open5gs/pcrf.log 7 | 8 | tail -f /usr/local/var/log/open5gs/pcrf.log & 9 | 10 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 11 | do 12 | sleep 5 13 | echo "Trying to connect to MongoDB" 14 | done 15 | 16 | echo "Launching PCRF..." 17 | 18 | open5gs-pcrfd -c /usr/local/etc/open5gs/pcrf.yaml 19 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/open5gs/sgwc.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwc.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwc: 12 | gtpc: 13 | addr: 192.168.26.30 14 | pfcp: 15 | addr: 192.168.26.30 16 | 17 | sgwu: 18 | pfcp: 19 | - addr: 192.168.27.31 20 | apn: internet 21 | - addr: 192.168.27.32 22 | apn: [internet2, internet3] 23 | -------------------------------------------------------------------------------- /environments/scenario2/config_upn/open5gs/upf2.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/upf2.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | upf: 12 | gtpu: 13 | addr: 14 | - 192.168.27.42 15 | pfcp: 16 | - addr: 192.168.27.42 17 | subnet: 18 | - addr: 10.11.0.1/16 19 | apn: internet2 20 | - addr: 10.12.0.1/16 21 | apn: internet3 22 | dev: ogstun2 23 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/open5gs/sgwc.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwc.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwc: 12 | gtpc: 13 | addr: 192.168.26.30 14 | pfcp: 15 | addr: 192.168.26.30 16 | 17 | sgwu: 18 | pfcp: 19 | - addr: 192.168.27.31 20 | apn: internet 21 | - addr: 192.168.27.32 22 | apn: [internet2, internet3] 23 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/open5gs/sgwc.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/sgwc.log 3 | trace: 4 | app: 1 5 | gtpv2: 1 6 | gtp: 1 7 | 8 | parameter: 9 | no_ipv6: true 10 | 11 | sgwc: 12 | gtpc: 13 | addr: 192.168.26.30 14 | pfcp: 15 | addr: 192.168.26.30 16 | 17 | sgwu: 18 | pfcp: 19 | - addr: 192.168.27.31 20 | apn: internet 21 | - addr: 192.168.27.32 22 | apn: [internet2, internet3] 23 | -------------------------------------------------------------------------------- /blue/nfsconfuser/ganesha.conf: -------------------------------------------------------------------------------- 1 | 2 | NFS_CORE_PARAM { 3 | mount_path_pseudo = true; 4 | Protocols = 4; 5 | } 6 | 7 | EXPORT_DEFAULTS { 8 | Access_Type = RO; 9 | } 10 | 11 | CLIENT 12 | { 13 | Clients = 0.0.0.0/0; 14 | Protocols = 4; 15 | Squash = None; 16 | } 17 | 18 | EXPORT 19 | { 20 | Export_Id = 1; 21 | Path = /share; 22 | Pseudo = /share; 23 | Protocols = 4; 24 | Access_Type = RO; 25 | Squash = None; 26 | Sectype = sys; 27 | Transports = "TCP"; 28 | FSAL { 29 | Name = VFS; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /environments/scenario2/host3/desktop/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | networks: 3 | desktops: 4 | external: 5 | name: desktops 6 | services: 7 | desktop: 8 | image: dorowu/ubuntu-desktop-lxde-vnc 9 | hostname: "${CONTAINER_NAME}" 10 | environment: 11 | - "VNC_PASSWORD=${VNC_PASSWORD}" 12 | - RESOLUTION=1280x800 13 | - "USER=${SYSTEM_USER}" 14 | - "PASSWORD=${USER_PW}" 15 | networks: 16 | - desktops 17 | labels: 18 | - "dovesnap.faucet.mirror=true" 19 | -------------------------------------------------------------------------------- /blue/tests/test_srsran_enb_ue.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | UETEST=$(dirname "$0")/uetuncheck.sh 6 | UETEST=$(realpath "${UETEST}") 7 | 8 | echo "starting services..." 9 | cd blue/5G/daedalus/5G 10 | CLI=('-f' 'core/epc.yml' '-f' 'core/upn.yml' '-f' 'core/db.yml' '-f' 'SIMULATED/srsran-enb.yml' '-f' 'SIMULATED/srsran-ue.yml') 11 | 12 | SMF='' docker compose "${CLI[@]}" down -v 13 | SMF='' docker compose "${CLI[@]}" up -d --build 14 | 15 | ${UETEST} ue tun_srsue 16 | 17 | docker compose "${CLI[@]}" down -v 18 | -------------------------------------------------------------------------------- /environments/scenario2/host3/dba/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | networks: 3 | desktops: 4 | external: 5 | name: desktops 6 | services: 7 | dba: 8 | image: dba 9 | build: 10 | context: . 11 | hostname: "${CONTAINER_NAME}" 12 | environment: 13 | - "VNC_PASSWORD=${VNC_PASSWORD}" 14 | - RESOLUTION=1280x800 15 | - "USER=${SYSTEM_USER}" 16 | - "PASSWORD=${USER_PW}" 17 | networks: 18 | - desktops 19 | labels: 20 | - "dovesnap.faucet.mirror=true" 21 | -------------------------------------------------------------------------------- /environments/scenario1/host3/down.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # stop all desktops 4 | cd desktop 5 | docker-compose -p 0 down 6 | docker-compose -p 1 down 7 | docker-compose -p 2 down 8 | docker-compose -p 3 down 9 | docker-compose -p 4 down 10 | cd .. 11 | 12 | # delete desktops network 13 | docker network rm desktops 14 | 15 | # stop dovesnap and ovs 16 | cd dovesnap 17 | docker-compose down 18 | cd .. 19 | 20 | # remove docker networks 21 | docker network prune 22 | 23 | # remove docker volumes 24 | docker volume prune 25 | -------------------------------------------------------------------------------- /environments/scenario2/config/run_upf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ip tuntap add name ogstun mode tun 4 | ip addr add 10.10.0.1/16 dev ogstun 5 | #ip addr add cafe::1/16 dev ogstun 6 | ip link set ogstun up 7 | 8 | # masquerade 9 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 10 | iptables -I INPUT -i ogstun -j ACCEPT 11 | 12 | mkdir -p /usr/local/var/log/open5gs 13 | touch /usr/local/var/log/open5gs/upf.log 14 | 15 | tail -f /usr/local/var/log/open5gs/upf.log & 16 | 17 | open5gs-upfd -c /usr/local/etc/open5gs/upf.yaml 18 | -------------------------------------------------------------------------------- /environments/scenario2/host3/srsLTE/patch.txt: -------------------------------------------------------------------------------- 1 | --- a/lib/include/srslte/adt/bounded_bitset.h 2 | +++ b/lib/include/srslte/adt/bounded_bitset.h 3 | @@ -43,7 +43,7 @@ class bounded_bitset 4 | public: 5 | constexpr bounded_bitset() : buffer(), cur_size(0) {} 6 | 7 | - constexpr explicit bounded_bitset(size_t cur_size_) : buffer(), cur_size(cur_size_) {} 8 | + explicit bounded_bitset(size_t cur_size_) : buffer(), cur_size(cur_size_) { sanitize_(); } 9 | 10 | constexpr size_t max_size() const noexcept { return N; } 11 | -------------------------------------------------------------------------------- /blue/tests/uetuncheck.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | UECON=$1 4 | UETUN=$2 5 | 6 | echo "waiting for ${UECON} tunnel to come up..." 7 | i=0 8 | OUT="" 9 | while [ "$OUT" == "" ] && [ "$i" != 300 ] ; do 10 | echo -n . 11 | OUT=$(docker exec "${UECON}" ip link|grep "${UETUN}") 12 | ((i=i+1)) 13 | sleep 1 14 | done 15 | docker logs "${UECON}" 16 | 17 | if [ "$OUT" == "" ] ; then 18 | echo no "${UETUN}" 19 | exit 1 20 | fi 21 | 22 | echo "checking ${UECON} connectivity..." 23 | docker exec "${UECON}" wget -q -O- bing.com || exit 1 24 | -------------------------------------------------------------------------------- /environments/scenario2/config/open5gs/upf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/upf.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | upf: 15 | gtpu: 16 | addr: 17 | - 192.168.26.41 18 | #- ::1 19 | pfcp: 20 | - addr: 192.168.26.41 21 | #- addr: ::1 22 | subnet: 23 | - addr: 10.10.0.1/16 24 | apn: internet 25 | #- addr: cafe::1/64 26 | -------------------------------------------------------------------------------- /environments/scenario2/config_upn/run_upf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ip tuntap add name ogstun mode tun 4 | ip addr add 10.10.0.1/16 dev ogstun 5 | #ip addr add cafe::1/16 dev ogstun 6 | ip link set ogstun up 7 | 8 | # masquerade 9 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 10 | iptables -I INPUT -i ogstun -j ACCEPT 11 | 12 | mkdir -p /usr/local/var/log/open5gs 13 | touch /usr/local/var/log/open5gs/upf.log 14 | 15 | tail -f /usr/local/var/log/open5gs/upf.log & 16 | 17 | open5gs-upfd -c /usr/local/etc/open5gs/upf.yaml 18 | -------------------------------------------------------------------------------- /environments/scenario2/config/open5gs/upf2.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/upf2.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | upf: 15 | gtpu: 16 | addr: 17 | - 192.168.26.42 18 | #- ::1 19 | pfcp: 20 | - addr: 192.168.26.42 21 | #- addr: ::1 22 | subnet: 23 | - addr: 10.11.0.1/16 24 | apn: internet2 25 | #- addr: cafe::1/64 26 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/open5gs/upf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/upf.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | upf: 15 | gtpu: 16 | addr: 17 | - 192.168.26.41 18 | #- ::1 19 | pfcp: 20 | - addr: 192.168.26.41 21 | #- addr: ::1 22 | pdn: 23 | - addr: 10.10.0.1/16 24 | apn: internet 25 | #- addr: cafe::1/64 26 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/open5gs/upf2.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/upf2.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | upf: 15 | gtpu: 16 | addr: 17 | - 192.168.26.42 18 | #- ::1 19 | pfcp: 20 | - addr: 192.168.26.42 21 | #- addr: ::1 22 | pdn: 23 | - addr: 10.11.0.1/16 24 | apn: internet2 25 | #- addr: cafe::1/64 26 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/run_upf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ip tuntap add name ogstun mode tun 4 | ip addr add 10.10.0.1/16 dev ogstun 5 | #ip addr add cafe::1/16 dev ogstun 6 | ip link set ogstun up 7 | 8 | # masquerade 9 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 10 | iptables -I INPUT -i ogstun -j ACCEPT 11 | 12 | mkdir -p /usr/local/var/log/open5gs 13 | touch /usr/local/var/log/open5gs/upf.log 14 | 15 | tail -f /usr/local/var/log/open5gs/upf.log & 16 | 17 | open5gs-upfd -c /usr/local/etc/open5gs/upf.yaml 18 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_upn/run_upf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ip tuntap add name ogstun mode tun 4 | ip addr add 10.10.0.1/16 dev ogstun 5 | #ip addr add cafe::1/16 dev ogstun 6 | ip link set ogstun up 7 | 8 | # masquerade 9 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 10 | iptables -I INPUT -i ogstun -j ACCEPT 11 | 12 | mkdir -p /usr/local/var/log/open5gs 13 | touch /usr/local/var/log/open5gs/upf.log 14 | 15 | tail -f /usr/local/var/log/open5gs/upf.log & 16 | 17 | open5gs-upfd -c /usr/local/etc/open5gs/upf.yaml 18 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/open5gs/upf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/upf.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | upf: 15 | gtpu: 16 | addr: 17 | - 192.168.26.41 18 | #- ::1 19 | pfcp: 20 | - addr: 192.168.26.41 21 | #- addr: ::1 22 | pdn: 23 | - addr: 10.10.0.1/16 24 | apn: internet 25 | #- addr: cafe::1/64 26 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/open5gs/upf2.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/upf2.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | upf: 15 | gtpu: 16 | addr: 17 | - 192.168.26.42 18 | #- ::1 19 | pfcp: 20 | - addr: 192.168.26.42 21 | #- addr: ::1 22 | pdn: 23 | - addr: 10.11.0.1/16 24 | apn: internet2 25 | #- addr: cafe::1/64 26 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/run_upf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ip tuntap add name ogstun mode tun 4 | ip addr add 10.10.0.1/16 dev ogstun 5 | #ip addr add cafe::1/16 dev ogstun 6 | ip link set ogstun up 7 | 8 | # masquerade 9 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 10 | iptables -I INPUT -i ogstun -j ACCEPT 11 | 12 | mkdir -p /usr/local/var/log/open5gs 13 | touch /usr/local/var/log/open5gs/upf.log 14 | 15 | tail -f /usr/local/var/log/open5gs/upf.log & 16 | 17 | open5gs-upfd -c /usr/local/etc/open5gs/upf.yaml 18 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_upn/run_upf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ip tuntap add name ogstun mode tun 4 | ip addr add 10.10.0.1/16 dev ogstun 5 | #ip addr add cafe::1/16 dev ogstun 6 | ip link set ogstun up 7 | 8 | # masquerade 9 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 10 | iptables -I INPUT -i ogstun -j ACCEPT 11 | 12 | mkdir -p /usr/local/var/log/open5gs 13 | touch /usr/local/var/log/open5gs/upf.log 14 | 15 | tail -f /usr/local/var/log/open5gs/upf.log & 16 | 17 | open5gs-upfd -c /usr/local/etc/open5gs/upf.yaml 18 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_upn/open5gs/upf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/upf.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | upf: 15 | gtpu: 16 | addr: 17 | - 192.168.27.41 18 | #- ::1 19 | pfcp: 20 | - addr: 192.168.27.41 21 | #- addr: ::1 22 | pdn: 23 | - addr: 10.10.0.1/16 24 | apn: internet 25 | #- addr: cafe::1/64 26 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_upn/open5gs/upf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/upf.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | upf: 15 | gtpu: 16 | addr: 17 | - 192.168.27.41 18 | #- ::1 19 | pfcp: 20 | - addr: 192.168.27.41 21 | #- addr: ::1 22 | pdn: 23 | - addr: 10.10.0.1/16 24 | apn: internet 25 | #- addr: cafe::1/64 26 | -------------------------------------------------------------------------------- /environments/scenario2/shutdown.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | docker-compose -f docker-compose-5g-nsa-cpn.yml -f docker-compose-5g-nsa-upn.yml -f docker-compose-5g-nsa-upn-bladerf-enb.yml -f docker-compose-5g-nsa-upn-enb.yml -f docker-compose-5g-nsa-rfn-ue.yml down --remove-orphans 4 | docker network rm cpn 5 | docker network rm upn 6 | docker network rm rfn 7 | cd dovesnap 8 | docker-compose -f docker-compose.yml -f docker-compose-standalone.yml down 9 | cd .. 10 | docker volume rm scenario2_mongodb_data 11 | docker volume rm dovesnap_ovs-data 12 | -------------------------------------------------------------------------------- /blue/tests/test_ueransim_gnb_ue.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | UETEST=$(dirname "$0")/uetuncheck.sh 6 | UETEST=$(realpath "${UETEST}") 7 | 8 | echo "starting services..." 9 | cd blue/5G/daedalus/5G 10 | CLI=('-f' 'core/epc.yml' '-f' 'core/upn.yml' '-f' 'core/db.yml' '-f' 'core/core.yml' '-f' 'SIMULATED/ueransim-gnb.yml' '-f' 'SIMULATED/ueransim-ue.yml') 11 | 12 | SMF='core' docker compose "${CLI[@]}" down -v 13 | SMF='core' docker compose "${CLI[@]}" up -d --build 14 | 15 | ${UETEST} ue1 uesimtun0 16 | 17 | CMD='core' docker compose "${CLI[@]}" down -v 18 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_upn/open5gs/upf2.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/upf2.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | upf: 15 | gtpu: 16 | addr: 17 | - 192.168.27.42 18 | #- ::1 19 | pfcp: 20 | - addr: 192.168.27.42 21 | #- addr: ::1 22 | pdn: 23 | - addr: 10.11.0.1/16 24 | apn: internet2 25 | - addr: 10.12.0.1/16 26 | apn: internet3 27 | dev: ogstun2 28 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_upn/open5gs/upf2.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/upf2.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | upf: 15 | gtpu: 16 | addr: 17 | - 192.168.27.42 18 | #- ::1 19 | pfcp: 20 | - addr: 192.168.27.42 21 | #- addr: ::1 22 | pdn: 23 | - addr: 10.11.0.1/16 24 | apn: internet2 25 | - addr: 10.12.0.1/16 26 | apn: internet3 27 | dev: ogstun2 28 | -------------------------------------------------------------------------------- /environments/scenario2/host3/dba/ssh_server_fork.patch: -------------------------------------------------------------------------------- 1 | --- ssh_server_fork.c»»»2018-08-10 17:06:03.000000000 +0800 2 | +++ ssh_server_fork_patch.c»2018-10-19 13:44:07.000000000 +0800 3 | @@ -531,7 +531,7 @@ 4 | ssh_event_add_session(event, session); 5 | 6 | n = 0; 7 | - while (sdata.authenticated == 0 || sdata.channel == NULL) { 8 | + while (sdata.channel == NULL) { 9 | /* If the user has used up all attempts, or if he hasn't been able to 10 | * authenticate in 10 seconds (n * 100ms), disconnect. */ 11 | if (sdata.auth_attempts >= 3 || n >= 100) { 12 | -------------------------------------------------------------------------------- /environments/scenario1/host2/down.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | # stop vuln tomcat 4 | 5 | # stop all other servers 6 | cd server 7 | docker-compose -p 0 down 8 | docker-compose -p 1 down 9 | docker-compose -p 2 down 10 | docker-compose -p 3 down 11 | docker-compose -p 4 down 12 | cd .. 13 | 14 | # stop nfs 15 | 16 | # delete servers network 17 | docker network rm servers 18 | 19 | # stop dovesnap and ovs 20 | cd dovesnap 21 | docker-compose down 22 | cd .. 23 | 24 | # remove docker networks 25 | docker network prune 26 | 27 | # remove docker volumes 28 | docker volume prune 29 | 30 | sudo service docker restart 31 | -------------------------------------------------------------------------------- /environments/scenario2/config_upn/run_upf2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ip tuntap add name ogstun mode tun 4 | ip addr add 10.11.0.1/16 dev ogstun 5 | ip link set ogstun up 6 | ip tuntap add name ogstun2 mode tun 7 | ip addr add 10.12.0.1/16 dev ogstun2 8 | ip link set ogstun2 up 9 | 10 | # masquerade 11 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 12 | iptables -I INPUT -i ogstun -j ACCEPT 13 | iptables -I INPUT -i ogstun2 -j ACCEPT 14 | 15 | mkdir -p /usr/local/var/log/open5gs 16 | touch /usr/local/var/log/open5gs/upf2.log 17 | 18 | tail -f /usr/local/var/log/open5gs/upf2.log & 19 | 20 | open5gs-upfd -c /usr/local/etc/open5gs/upf2.yaml 21 | -------------------------------------------------------------------------------- /environments/scenario2/host3/dba/ssh_host_dsa_key.pub: -------------------------------------------------------------------------------- 1 | ssh-dss AAAAB3NzaC1kc3MAAACBAIYaID9ugXZ4ePYEKNFdmj7v9+qXgq+vnibOwIik06/5FEnMoUlZ6sHGF8IvI4oiAMZK9P4B0Ft1/xQV4gzJUp2iK5xRs0pLR375Z665kukNrcQF9jysbVmhDZqETN0/bbJc8ks/n+hPzlcoqNLUKZRJm96dTGnC+mGyePvViBGrAAAAFQCZUuF94EEYcAy/HJy/hTwkk7OEAQAAAIB3b5mWS8RwtYBdxWBtzI9Pz4+Ifmv7s0vw9wlgm5MwsFOMOj38tmfClVFKsMe0dRH68Y3bhz4cB+c7g/pbCsbhbO2Id1tcX5Bn/CyzOvObuHxrjpoEspKM4gFmkPa4uUh2Ql4ulid2a78aA0AkMbzFroJx36zGULYPbVK8KgpPFAAAAIBWfVbX+uBnmAgR/15iW7Lsemjz/8lJQ41PlLu3mLwPdbGxWg/kpsEEFf7PPPJb15/xcsG/OEdgsUil1+kqXiVXUxcB1DsrxYBQ/qJtoAXKBcgFIVRZ2ghKrJJvOBCx9FrzkfbtrHBssQKJmQ3hSkpx3IzWzrj4+RGucp40FuvurA== root@7625efe3a323 2 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_upn/run_upf2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ip tuntap add name ogstun mode tun 4 | ip addr add 10.11.0.1/16 dev ogstun 5 | ip link set ogstun up 6 | ip tuntap add name ogstun2 mode tun 7 | ip addr add 10.12.0.1/16 dev ogstun2 8 | ip link set ogstun2 up 9 | 10 | # masquerade 11 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 12 | iptables -I INPUT -i ogstun -j ACCEPT 13 | iptables -I INPUT -i ogstun2 -j ACCEPT 14 | 15 | mkdir -p /usr/local/var/log/open5gs 16 | touch /usr/local/var/log/open5gs/upf2.log 17 | 18 | tail -f /usr/local/var/log/open5gs/upf2.log & 19 | 20 | open5gs-upfd -c /usr/local/etc/open5gs/upf2.yaml 21 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_upn/run_upf2.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | ip tuntap add name ogstun mode tun 4 | ip addr add 10.11.0.1/16 dev ogstun 5 | ip link set ogstun up 6 | ip tuntap add name ogstun2 mode tun 7 | ip addr add 10.12.0.1/16 dev ogstun2 8 | ip link set ogstun2 up 9 | 10 | # masquerade 11 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 12 | iptables -I INPUT -i ogstun -j ACCEPT 13 | iptables -I INPUT -i ogstun2 -j ACCEPT 14 | 15 | mkdir -p /usr/local/var/log/open5gs 16 | touch /usr/local/var/log/open5gs/upf2.log 17 | 18 | tail -f /usr/local/var/log/open5gs/upf2.log & 19 | 20 | open5gs-upfd -c /usr/local/etc/open5gs/upf2.yaml 21 | -------------------------------------------------------------------------------- /environments/scenario1/host3/desktop/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | networks: 3 | desktops: 4 | external: 5 | name: desktops 6 | services: 7 | desktop: 8 | image: dorowu/ubuntu-desktop-lxde-vnc 9 | hostname: "${CONTAINER_NAME}" 10 | security_opt: 11 | - apparmor:erichough-nfs 12 | cap_add: 13 | - SYS_ADMIN 14 | volumes: 15 | - /dev/shm:/dev/shm 16 | environment: 17 | - "VNC_PASSWORD=${VNC_PASSWORD}" 18 | - RESOLUTION=1920x1080 19 | - "USER=${SYSTEM_USER}" 20 | - "PASSWORD=${USER_PW}" 21 | networks: 22 | - desktops 23 | labels: 24 | - "dovesnap.faucet.mirror=true" 25 | -------------------------------------------------------------------------------- /environments/scenario2/host2/docker-compose-desktops.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | networks: 3 | desktops: 4 | external: 5 | name: desktops 6 | services: 7 | desktop: 8 | image: dorowu/ubuntu-desktop-lxde-vnc 9 | hostname: "${CONTAINER_NAME}" 10 | security_opt: 11 | - apparmor:erichough-nfs 12 | cap_add: 13 | - SYS_ADMIN 14 | volumes: 15 | - /dev/shm:/dev/shm 16 | environment: 17 | - "VNC_PASSWORD=${VNC_PASSWORD}" 18 | - RESOLUTION=1280x800 19 | - "USER=${SYSTEM_USER}" 20 | - "PASSWORD=${USER_PW}" 21 | networks: 22 | - desktops 23 | labels: 24 | - "dovesnap.faucet.mirror=true" 25 | -------------------------------------------------------------------------------- /environments/scenario2/host3/docker-compose-desktops.yml: -------------------------------------------------------------------------------- 1 | version: '3' 2 | networks: 3 | desktops: 4 | external: 5 | name: desktops 6 | services: 7 | desktop: 8 | image: dorowu/ubuntu-desktop-lxde-vnc 9 | hostname: "${CONTAINER_NAME}" 10 | security_opt: 11 | - apparmor:erichough-nfs 12 | cap_add: 13 | - SYS_ADMIN 14 | volumes: 15 | - /dev/shm:/dev/shm 16 | environment: 17 | - "VNC_PASSWORD=${VNC_PASSWORD}" 18 | - RESOLUTION=1280x800 19 | - "USER=${SYSTEM_USER}" 20 | - "PASSWORD=${USER_PW}" 21 | networks: 22 | - desktops 23 | labels: 24 | - "dovesnap.faucet.mirror=true" 25 | -------------------------------------------------------------------------------- /.github/workflows/config/whispers-config.yml: -------------------------------------------------------------------------------- 1 | include: 2 | files: 3 | - "**/*" 4 | 5 | exclude: 6 | files: 7 | - __pycache__|\.eggs|build|dev|\.vscode|\.git|\.github 8 | - .*/(locale|spec|test|mock)s?/ 9 | - integration|node_modules 10 | - (package(-lock)?|npm-shrinkwrap)\.json 11 | - environments/scenario[0-9]+/.* 12 | - blue/5g/(core/\.env|configs/.*\.y[a]?ml) 13 | 14 | keys: 15 | - .*(public|project).* 16 | 17 | values: 18 | - ^(true|false|yes|no|1|0)$ 19 | - .*_(user|password|token|key|placeholder|name)$ 20 | - ^aws_(access_key_id|secret_access_key|session_token)$ 21 | - ^arn:aws:.* 22 | - ^((cn?trl|alt|shift|del|ins|esc|tab|f[\d]+) ?[\+_\-\\/] ?)+[\w]+$ -------------------------------------------------------------------------------- /.pre-commit-config.yaml: -------------------------------------------------------------------------------- 1 | default_language_version: 2 | python: python3 3 | repos: 4 | - repo: https://github.com/pre-commit/pre-commit-hooks 5 | rev: v4.0.1 6 | hooks: 7 | - id: trailing-whitespace 8 | - id: end-of-file-fixer 9 | - id: check-case-conflict 10 | - id: check-json 11 | - id: pretty-format-json 12 | args: ['--autofix'] 13 | - id: double-quote-string-fixer 14 | - id: check-yaml 15 | - repo: https://github.com/asottile/reorder_python_imports 16 | rev: v2.6.0 17 | hooks: 18 | - id: reorder-python-imports 19 | - repo: https://github.com/pre-commit/mirrors-autopep8 20 | rev: v1.5.7 21 | hooks: 22 | - id: autopep8 23 | -------------------------------------------------------------------------------- /environments/scenario1/host2/tomcat_vuln_server/docker-compose.yml: -------------------------------------------------------------------------------- 1 | version: '2' 2 | services: 3 | tomcat: 4 | image: vulhub/tomcat:8.0 5 | build: 6 | context: . 7 | hostname: "${CONTAINER_NAME}" 8 | security_opt: 9 | - apparmor:erichough-nfs 10 | cap_add: 11 | - SYS_ADMIN 12 | volumes: 13 | - ./tomcat-users.xml:/usr/local/tomcat/conf/tomcat-users.xml 14 | - ./context.xml:/usr/local/tomcat/webapps/manager/META-INF/context.xml 15 | - ./context.xml:/usr/local/tomcat/webapps/host-manager/META-INF/context.xml 16 | networks: [servers] 17 | labels: 18 | - "dovesnap.faucet.mirror=true" 19 | networks: 20 | servers: 21 | external: 22 | name: servers 23 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/SIMULATED/ueransim-ue.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway option with ipam 2 | version: '2' 3 | 4 | networks: 5 | rfn: 6 | external: 7 | name: rfn 8 | services: 9 | ue1: 10 | image: iqtlabs/ueransim:latest 11 | container_name: ue1 12 | depends_on: 13 | - gnb 14 | cap_add: 15 | - NET_ADMIN 16 | - SYS_NICE 17 | devices: 18 | - /dev/net/tun 19 | networks: 20 | rfn: 21 | ipv4_address: 192.168.28.101 22 | volumes: 23 | - "../configs/UERANSIM:/config:z" 24 | labels: 25 | - "daedalus.namespace=primary" 26 | entrypoint: 27 | - /scripts/run_ue.sh 28 | command: 29 | - -c 30 | - /config/ue.yaml 31 | -------------------------------------------------------------------------------- /environments/scenario1/host2/tomcat_vuln_server/tomcat-users.xml: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/dba/ssh_host_dsa_key: -------------------------------------------------------------------------------- 1 | -----BEGIN DSA PRIVATE KEY----- 2 | MIIBugIBAAKBgQCGGiA/boF2eHj2BCjRXZo+7/fql4Kvr54mzsCIpNOv+RRJzKFJ 3 | WerBxhfCLyOKIgDGSvT+AdBbdf8UFeIMyVKdoiucUbNKS0d++WeuuZLpDa3EBfY8 4 | rG1ZoQ2ahEzdP22yXPJLP5/oT85XKKjS1CmUSZvenUxpwvphsnj71YgRqwIVAJlS 5 | 4X3gQRhwDL8cnL+FPCSTs4QBAoGAd2+ZlkvEcLWAXcVgbcyPT8+PiH5r+7NL8PcJ 6 | YJuTMLBTjDo9/LZnwpVRSrDHtHUR+vGN24c+HAfnO4P6WwrG4WztiHdbXF+QZ/ws 7 | szrzm7h8a46aBLKSjOIBZpD2uLlIdkJeLpYndmu/GgNAJDG8xa6Ccd+sxlC2D21S 8 | vCoKTxQCgYBWfVbX+uBnmAgR/15iW7Lsemjz/8lJQ41PlLu3mLwPdbGxWg/kpsEE 9 | Ff7PPPJb15/xcsG/OEdgsUil1+kqXiVXUxcB1DsrxYBQ/qJtoAXKBcgFIVRZ2ghK 10 | rJJvOBCx9FrzkfbtrHBssQKJmQ3hSkpx3IzWzrj4+RGucp40FuvurAIUXHMznp++ 11 | f30TrhLTGIj56scpUJM= 12 | -----END DSA PRIVATE KEY----- 13 | -------------------------------------------------------------------------------- /environments/scenario1/host2/tomcat_vuln_server/tomcat-users.xml.orig: -------------------------------------------------------------------------------- 1 | 2 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /environments/scenario2/provisioning/db/run_db.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # database export reference 4 | #mongoexport --host ${DB_HOST} --db open5gs --collection subscribers -o /tmp/imsi1.json --jsonArray 5 | 6 | if [ -n "${DB_HOST}" ]; then 7 | echo "Database variable found" 8 | else 9 | echo "Database variable not found, using default one" 10 | DB_HOST=mongodb 11 | fi 12 | 13 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 14 | do 15 | sleep 5 16 | echo "Trying to connect to MongoDB" 17 | done 18 | 19 | mongoimport --host ${DB_HOST} --db open5gs --authenticationDatabase admin --username ${DB_USER} --password ${DB_PASS} --collection subscribers --file /tmp/imsi1.json --type json --jsonArray 20 | sleep infinity 21 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/configs/srsRAN/virtual-nrr.conf: -------------------------------------------------------------------------------- 1 | @include "/config/rr.conf" 2 | 3 | cell_list = 4 | ( 5 | { 6 | rf_port = 0; 7 | cell_id = 0x01; 8 | tac = 0x0001; 9 | pci = 1; 10 | root_seq_idx = 204; 11 | dl_earfcn = 2850; 12 | ho_active = false; 13 | 14 | // CA cells 15 | #scell_list = ( 16 | # {cell_id = 0x02; cross_carrier_scheduling = false; scheduling_cell_id = 0x01; ul_allowed = true} 17 | #) 18 | } 19 | ); 20 | 21 | nr_cell_list = 22 | ( 23 | { 24 | rf_port = 1; 25 | cell_id = 0x02; 26 | tac = 0x0001; 27 | pci = 500; 28 | root_seq_idx = 205; 29 | 30 | // TDD: 31 | //dl_arfcn = 634240; 32 | //band = 78; 33 | 34 | // FDD: 35 | dl_arfcn = 368500; 36 | band = 3; 37 | } 38 | ); 39 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/open5gs/scripts/run_db.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # database export reference 4 | #mongoexport --host ${DB_HOST} --db open5gs --collection subscribers -o /tmp/imsis.json --jsonArray 5 | 6 | if [ -n "${DB_HOST}" ]; then 7 | echo "Database variable found" 8 | else 9 | echo "Database variable not found, using default one" 10 | DB_HOST=mongodb 11 | fi 12 | 13 | until mongosh --host "${DB_HOST}" --eval "print(\"waited for connection\")" 2>&1 >/dev/null 14 | do 15 | sleep 5 16 | echo "Trying to connect to MongoDB" 17 | done 18 | 19 | mongoimport --host "${DB_HOST}" --db open5gs --authenticationDatabase admin --username "${DB_USER}" --password "${DB_PASS}" --collection subscribers --file /tmp/imsis.json --type json --jsonArray 20 | date > /importdone 21 | sleep infinity 22 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/open5gs/mme.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/mme.log 3 | trace: 4 | app: 1 5 | s1ap: 1 6 | nas: 1 7 | diameter: 1 8 | gtpv2: 1 9 | 10 | mme: 11 | freeDiameter: /usr/local/etc/freeDiameter/mme.conf 12 | s1ap: 13 | addr: 192.168.26.20 14 | gtpc: 15 | addr: 192.168.26.20 16 | gummei: 17 | plmn_id: 18 | mcc: 001 19 | mnc: 01 20 | mme_gid: 2 21 | mme_code: 1 22 | tai: 23 | plmn_id: 24 | mcc: 001 25 | mnc: 01 26 | tac: 1 27 | security: 28 | integrity_order : [ EIA1, EIA2, EIA0 ] 29 | ciphering_order : [ EEA0, EEA1, EEA2 ] 30 | network_name: 31 | full: Open5GS 32 | 33 | sgwc: 34 | gtpc: 35 | addr: 192.168.26.30 36 | 37 | smf: 38 | gtpc: 39 | - addr: 192.168.26.40 40 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/configs/UERANSIM/gnb.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | mcc: '001' # Mobile Country Code value 3 | mnc: '01' # Mobile Network Code value (2 or 3 digits) 4 | 5 | nci: '0x000000010' # NR Cell Identity (36-bit) 6 | idLength: 32 # NR gNB ID length in bits [22...32] 7 | tac: 1 # Tracking Area Code 8 | 9 | # gNB's local IP address for Radio Link Simulation 10 | linkIp: 192.168.28.100 11 | # gNB's local IP address for N2 Interface 12 | ngapIp: 192.168.29.65 13 | # gNB's local IP address for N3 Interface 14 | gtpIp: 192.168.29.65 15 | 16 | # List of AMF address information 17 | amfConfigs: 18 | - address: 192.168.26.60 19 | port: 38412 20 | 21 | # List of supported S-NSSAIs by this gNB 22 | slices: 23 | - sst: 1 24 | sd: 000000 25 | 26 | # Indicates whether or not SCTP stream number errors should be ignored. 27 | ignoreStreamIds: true 28 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/core/ui.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway option with ipam 2 | version: '2' 3 | 4 | networks: 5 | cpn: 6 | external: 7 | name: cpn 8 | 9 | services: 10 | webui: 11 | image: iqtlabs/open5gs:latest 12 | depends_on: 13 | mongodb: 14 | condition: service_healthy 15 | environment: 16 | - NODE_ENV=dev 17 | - 'DB_URI=mongodb://${DB_USER}:${DB_PASS}@mongodb/open5gs?authSource=admin' 18 | - DB_HOST=mongodb 19 | container_name: webui 20 | hostname: webui 21 | ports: 22 | - "3000:3000" 23 | entrypoint: 24 | - npm 25 | command: 26 | - run 27 | - dev 28 | - --prefix 29 | - /webui 30 | networks: 31 | cpn: 32 | ipv4_address: 192.168.26.6 33 | labels: 34 | - "dovesnap.faucet.mirror=true" 35 | - "daedalus.namespace=primary" 36 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/SIMULATED/ueransim-gnb.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway option with ipam 2 | version: '2' 3 | 4 | networks: 5 | rfn: 6 | external: 7 | name: rfn 8 | ran: 9 | external: 10 | name: ran 11 | services: 12 | gnb: 13 | image: iqtlabs/ueransim:latest 14 | container_name: gnb 15 | depends_on: 16 | nrf: 17 | condition: service_healthy 18 | mme: 19 | condition: service_healthy 20 | cap_add: 21 | - SYS_NICE 22 | - NET_ADMIN 23 | networks: 24 | ran: 25 | ipv4_address: 192.168.29.65 26 | rfn: 27 | ipv4_address: 192.168.28.100 28 | volumes: 29 | - "../configs/UERANSIM:/config:z" 30 | labels: 31 | - "daedalus.namespace=primary" 32 | entrypoint: 33 | - /scripts/run_rfn_gnb.sh 34 | command: 35 | - -c 36 | - /config/gnb.yaml 37 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/open5gs/smf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/smf.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | smf: 12 | freeDiameter: /usr/local/etc/freeDiameter/smf.conf 13 | gtpc: 14 | - addr: 192.168.26.40 15 | gtpu: 16 | - addr: 192.168.26.40 17 | pfcp: 18 | - addr: 192.168.26.40 19 | subnet: 20 | - addr: 10.10.0.1/16 21 | apn: internet 22 | dev: ogstun 23 | - addr: 10.11.0.1/16 24 | apn: internet2 25 | dev: ogstun 26 | - addr: 10.12.0.1/16 27 | apn: internet3 28 | dev: ogstun2 29 | dns: 30 | - 8.8.8.8 31 | - 8.8.4.4 32 | 33 | upf: 34 | pfcp: 35 | - addr: 192.168.27.41 36 | apn: internet 37 | - addr: 192.168.27.42 38 | apn: [internet2, internet3] 39 | -------------------------------------------------------------------------------- /environments/scenario2/config/open5gs/mme.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/mme.log 3 | trace: 4 | app: 1 5 | s1ap: 1 6 | nas: 1 7 | diameter: 1 8 | gtpv2: 1 9 | 10 | parameter: 11 | no_ipv6: true 12 | 13 | mme: 14 | freeDiameter: /usr/local/etc/freeDiameter/mme.conf 15 | s1ap: 16 | addr: 192.168.26.20 17 | gtpc: 18 | addr: 192.168.26.20 19 | gummei: 20 | plmn_id: 21 | mcc: 001 22 | mnc: 01 23 | mme_gid: 2 24 | mme_code: 1 25 | tai: 26 | plmn_id: 27 | mcc: 001 28 | mnc: 01 29 | tac: 1 30 | security: 31 | integrity_order : [ EIA1, EIA2, EIA0 ] 32 | ciphering_order : [ EEA0, EEA1, EEA2 ] 33 | network_name: 34 | full: Open5GS 35 | 36 | sgwc: 37 | gtpc: 38 | addr: 192.168.26.30 39 | 40 | smf: 41 | gtpc: 42 | - addr: 192.168.26.40 43 | # #- ::1 44 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/open5gs/mme.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/mme.log 3 | trace: 4 | app: 1 5 | s1ap: 1 6 | nas: 1 7 | diameter: 1 8 | gtpv2: 1 9 | 10 | parameter: 11 | no_ipv6: true 12 | 13 | mme: 14 | freeDiameter: /usr/local/etc/freeDiameter/mme.conf 15 | s1ap: 16 | addr: 192.168.26.20 17 | gtpc: 18 | addr: 192.168.26.20 19 | gummei: 20 | plmn_id: 21 | mcc: 001 22 | mnc: 01 23 | mme_gid: 2 24 | mme_code: 1 25 | tai: 26 | plmn_id: 27 | mcc: 001 28 | mnc: 01 29 | tac: 1 30 | security: 31 | integrity_order : [ EIA1, EIA2, EIA0 ] 32 | ciphering_order : [ EEA0, EEA1, EEA2 ] 33 | network_name: 34 | full: Open5GS 35 | 36 | sgwc: 37 | gtpc: 38 | addr: 192.168.26.30 39 | 40 | smf: 41 | gtpc: 42 | - addr: 192.168.26.40 43 | # #- ::1 44 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/open5gs/mme.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/mme.log 3 | trace: 4 | app: 1 5 | s1ap: 1 6 | nas: 1 7 | diameter: 1 8 | gtpv2: 1 9 | 10 | parameter: 11 | no_ipv6: true 12 | 13 | mme: 14 | freeDiameter: /usr/local/etc/freeDiameter/mme.conf 15 | s1ap: 16 | addr: 192.168.26.20 17 | gtpc: 18 | addr: 192.168.26.20 19 | gummei: 20 | plmn_id: 21 | mcc: 001 22 | mnc: 01 23 | mme_gid: 2 24 | mme_code: 1 25 | tai: 26 | plmn_id: 27 | mcc: 001 28 | mnc: 01 29 | tac: 1 30 | security: 31 | integrity_order : [ EIA1, EIA2, EIA0 ] 32 | ciphering_order : [ EEA0, EEA1, EEA2 ] 33 | network_name: 34 | full: Open5GS 35 | 36 | sgwc: 37 | gtpc: 38 | addr: 192.168.26.30 39 | 40 | smf: 41 | gtpc: 42 | - addr: 192.168.26.40 43 | # #- ::1 44 | -------------------------------------------------------------------------------- /blue/nfsconfuser/Dockerfile: -------------------------------------------------------------------------------- 1 | # TODO: alpine apparently doesn't have ganesha 2 | FROM debian:stable 3 | 4 | RUN apt-get update && apt-get install -y --no-install-recommends netbase python3-pip python3-dev python3-setuptools python3-wheel git libfuse-dev 5 | RUN apt-get update && apt-get install -y --no-install-recommends nfs-ganesha nfs-ganesha-vfs 6 | COPY confused /confused 7 | RUN python3 -m pip install ".[confuser]" 8 | RUN apt-get update && apt-get install -y --no-install-recommends procps net-tools tcpdump strace 9 | RUN mkdir -p /real /fake /share && rm -f /etc/ganesha/* 10 | COPY serve.sh /serve.sh 11 | COPY ganesha.conf /etc/ganesha 12 | ENTRYPOINT ["/serve.sh"] 13 | 14 | # docker build -f Dockerfile . -t nfsconfuser && docker run --device /dev/fuse --cap-add SYS_ADMIN --cap-add DAC_READ_SEARCH --security-opt apparmor:unconfined -p 0.0.0.0:2049:2049 -v /fake:/fake -v /real:/real -ti nfsconfuser 15 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/open5gs/mme.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/mme.log 3 | trace: 4 | app: 1 5 | s1ap: 1 6 | nas: 1 7 | diameter: 1 8 | gtpv2: 1 9 | 10 | parameter: 11 | no_ipv6: true 12 | 13 | mme: 14 | freeDiameter: /usr/local/etc/freeDiameter/mme.conf 15 | s1ap: 16 | addr: 192.168.26.20 17 | gtpc: 18 | addr: 192.168.26.20 19 | gummei: 20 | plmn_id: 21 | mcc: 001 22 | mnc: 01 23 | mme_gid: 2 24 | mme_code: 1 25 | tai: 26 | plmn_id: 27 | mcc: 001 28 | mnc: 01 29 | tac: 1 30 | security: 31 | integrity_order : [ EIA1, EIA2, EIA0 ] 32 | ciphering_order : [ EEA0, EEA1, EEA2 ] 33 | network_name: 34 | full: Open5GS 35 | 36 | sgwc: 37 | gtpc: 38 | addr: 192.168.26.30 39 | 40 | smf: 41 | gtpc: 42 | - addr: 192.168.26.40 43 | # #- ::1 44 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/open5gs/mme.yaml: -------------------------------------------------------------------------------- 1 | logger: 2 | file: /usr/local/var/log/open5gs/mme.log 3 | trace: 4 | app: 1 5 | s1ap: 1 6 | nas: 1 7 | diameter: 1 8 | gtpv2: 1 9 | 10 | parameter: 11 | no_ipv6: true 12 | 13 | mme: 14 | freeDiameter: /usr/local/etc/freeDiameter/mme.conf 15 | s1ap: 16 | addr: 192.168.26.20 17 | gtpc: 18 | addr: 192.168.26.20 19 | gummei: 20 | plmn_id: 21 | mcc: 001 22 | mnc: 01 23 | mme_gid: 2 24 | mme_code: 1 25 | tai: 26 | plmn_id: 27 | mcc: 001 28 | mnc: 01 29 | tac: 1 30 | security: 31 | integrity_order : [ EIA1, EIA2, EIA0 ] 32 | ciphering_order : [ EEA0, EEA1, EEA2 ] 33 | network_name: 34 | full: Open5GS 35 | 36 | sgwc: 37 | gtpc: 38 | addr: 192.168.26.30 39 | 40 | smf: 41 | gtpc: 42 | - addr: 192.168.26.40 43 | # #- ::1 44 | -------------------------------------------------------------------------------- /environments/scenario2/config/open5gs/smf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/smf.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | smf: 15 | freeDiameter: /usr/local/etc/freeDiameter/smf.conf 16 | gtpc: 17 | addr: 18 | - 192.168.26.40 19 | #- ::1 20 | pfcp: 21 | - addr: 192.168.26.40 22 | #- addr: ::1 23 | subnet: 24 | - addr: 10.10.0.1/16 25 | apn: internet 26 | dev: ogstun 27 | - addr: 10.11.0.1/16 28 | apn: internet2 29 | dev: ogstun 30 | #- addr: cafe::1/64 31 | dns: 32 | - 8.8.8.8 33 | - 8.8.4.4 34 | #- 2001:4860:4860::8888 35 | #- 2001:4860:4860::8844 36 | 37 | upf: 38 | pfcp: 39 | - addr: 192.168.26.41 40 | apn: internet 41 | - addr: 192.168.26.42 42 | apn: internet2 43 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/open5gs/smf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/smf.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | smf: 15 | freeDiameter: /usr/local/etc/freeDiameter/smf.conf 16 | gtpc: 17 | addr: 18 | - 192.168.26.40 19 | #- ::1 20 | pfcp: 21 | - addr: 192.168.26.40 22 | #- addr: ::1 23 | pdn: 24 | - addr: 10.10.0.1/16 25 | apn: internet 26 | dev: ogstun 27 | - addr: 10.11.0.1/16 28 | apn: internet2 29 | dev: ogstun 30 | #- addr: cafe::1/64 31 | dns: 32 | - 8.8.8.8 33 | - 8.8.4.4 34 | #- 2001:4860:4860::8888 35 | #- 2001:4860:4860::8844 36 | 37 | upf: 38 | pfcp: 39 | - addr: 192.168.26.41 40 | apn: internet 41 | - addr: 192.168.26.42 42 | apn: internet2 43 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/open5gs/smf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/smf.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | smf: 15 | freeDiameter: /usr/local/etc/freeDiameter/smf.conf 16 | gtpc: 17 | addr: 18 | - 192.168.26.40 19 | #- ::1 20 | pfcp: 21 | - addr: 192.168.26.40 22 | #- addr: ::1 23 | pdn: 24 | - addr: 10.10.0.1/16 25 | apn: internet 26 | dev: ogstun 27 | - addr: 10.11.0.1/16 28 | apn: internet2 29 | dev: ogstun 30 | #- addr: cafe::1/64 31 | dns: 32 | - 8.8.8.8 33 | - 8.8.4.4 34 | #- 2001:4860:4860::8888 35 | #- 2001:4860:4860::8844 36 | 37 | upf: 38 | pfcp: 39 | - addr: 192.168.26.41 40 | apn: internet 41 | - addr: 192.168.26.42 42 | apn: internet2 43 | -------------------------------------------------------------------------------- /environments/scenario2/host2/provisioning/db/run_db.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # database export reference 4 | #mongoexport --host ${DB_HOST} --db open5gs --collection subscribers -o /tmp/imsi1.json --jsonArray 5 | 6 | if [ -n "${DB_HOST}" ]; then 7 | echo "Database variable found" 8 | else 9 | echo "Database variable not found, using default one" 10 | DB_HOST=mongodb 11 | fi 12 | 13 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 14 | do 15 | sleep 5 16 | echo "Trying to connect to MongoDB" 17 | done 18 | 19 | mongoimport --host ${DB_HOST} --db open5gs --authenticationDatabase admin --username ${DB_USER} --password ${DB_PASS} --collection subscribers --file /tmp/imsi1.json --type json --jsonArray 20 | /usr/src/build/examples/ssh_server_fork --hostkey=/etc/ssh/ssh_host_rsa_key --ecdsakey=/etc/ssh/ssh_host_ecdsa_key --dsakey=/etc/ssh/ssh_host_dsa_key --rsakey=/etc/ssh/ssh_host_rsa_key -p 22 0.0.0.0 21 | -------------------------------------------------------------------------------- /environments/scenario2/host3/provisioning/db/run_db.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # database export reference 4 | #mongoexport --host ${DB_HOST} --db open5gs --collection subscribers -o /tmp/imsi1.json --jsonArray 5 | 6 | if [ -n "${DB_HOST}" ]; then 7 | echo "Database variable found" 8 | else 9 | echo "Database variable not found, using default one" 10 | DB_HOST=mongodb 11 | fi 12 | 13 | until mongo --host ${DB_HOST} --eval "print(\"waited for connection\")" 2>&1 >/dev/null 14 | do 15 | sleep 5 16 | echo "Trying to connect to MongoDB" 17 | done 18 | 19 | mongoimport --host ${DB_HOST} --db open5gs --authenticationDatabase admin --username ${DB_USER} --password ${DB_PASS} --collection subscribers --file /tmp/imsi1.json --type json --jsonArray 20 | /usr/src/build/examples/ssh_server_fork --hostkey=/etc/ssh/ssh_host_rsa_key --ecdsakey=/etc/ssh/ssh_host_ecdsa_key --dsakey=/etc/ssh/ssh_host_dsa_key --rsakey=/etc/ssh/ssh_host_rsa_key -p 22 0.0.0.0 21 | -------------------------------------------------------------------------------- /blue/5G/daedalus/styles.py: -------------------------------------------------------------------------------- 1 | from blessed import Terminal 2 | from inquirer.themes import Theme 3 | 4 | term = Terminal() 5 | 6 | class custom_style(Theme): 7 | def __init__(self): 8 | super().__init__() 9 | self.Question.mark_color = term.darkorange + term.bold 10 | self.Question.brackets_color = term.darkorange + term.bold 11 | self.Question.default_color = term.darkorange + term.bold 12 | self.Checkbox.selection_color = term.lightskyblue4 13 | self.Checkbox.selection_icon = "❯" 14 | self.Checkbox.selected_icon = "◉" 15 | self.Checkbox.selected_color = term.lightskyblue4 16 | self.Checkbox.unselected_color = term.normal 17 | self.Checkbox.unselected_icon = "◯" 18 | self.List.selection_color = term.lightskyblue4 19 | self.List.selection_cursor = "❯" 20 | self.List.unselected_color = term.normal 21 | self.Editor.opening_prompt_color = term.lightskyblue4 22 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/open5gs/scripts/run_upf.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | set -e 4 | 5 | /etc/init.d/openvswitch-switch start 6 | 7 | i=0 8 | for ip in $* ; do 9 | i=$((i+1)) 10 | ifname=ogstap${i} 11 | if [ "$i" -eq 1 ] ; then 12 | ifname=ogstap 13 | fi 14 | echo "${ifname}": "${ip}" 15 | ip tuntap add name "$ifname" mode tap 16 | br="${ifname}"br 17 | ovs-vsctl add-br "$br" 18 | ovs-vsctl add-port "$br" "$ifname" 19 | brmac=$(ovs-ofctl dump-ports-desc "$br"|grep LOCAL|grep -Eo '([a-f0-9:]{17,17})$') 20 | ovs-ofctl del-flows "$br" 21 | ovs-ofctl add-flow "$br" "in_port=$br,actions=output:$ifname" 22 | ovs-ofctl add-flow "$br" "in_port=$ifname,actions=set_field:$brmac->eth_dst,output:$br" 23 | ip addr add "$ip" dev "$br" 24 | ip link set "$ifname" up 25 | ip link set "$br" up 26 | iptables -I INPUT -i "$br" -j ACCEPT 27 | done 28 | 29 | ovs-vsctl show 30 | iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE 31 | 32 | open5gs-upfd -c /usr/local/etc/slice.yaml 33 | -------------------------------------------------------------------------------- /environments/scenario2/config/freeDiameter/hss.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDT57ptFGWv35DlSlNWofaJLsvuztZzn0i2lnhnp4cYuKvDCzGz 3 | ApJI7UmsQMETOxNYUMwuWUTpfjECFPAYgpUQ5DeyXRQZHUuP6R9Fdc8K4I974XB7 4 | q+SvK3xNfwDY68/zlqv8BE8hrdjElAUC//MSSIiezs83KeAoOTdiBe1tXQIDAQAB 5 | AoGBAM7ShI2Ec/9lSInSsmaC7BpW12p87KirFZBIarpYs634SIS0v0xFvTt6hgae 6 | qRO4/BedvLucG3t91B2BDBoQEaZELCjJ9kCUtzphW+u8/SUvPUCfb5xiLLeDQCVR 7 | oU45JuqlF+ro9XM0x7f1REuTza1Xr20O5n5TzaCzQkdTlMdtAkEA+Yk9aS589D2c 8 | TAj7H5nQMFai/z0JKM7kuBmXaqbsPtnYjdNvVYsCRPcjbhyfIjN88o/QGuUuInpb 9 | PyzUZh3x2wJBANlk8d5ZVco+UE1NX0KzpEXHMY+z8kE4f8IMy0KN1V+An0ZbdxJE 10 | X0aUMz9/K0+V6n0rlpY4QdOnTnbIEg2hTycCQDXBUM9lylk7JH5kuORX2Ddxkm91 11 | kJGP8EmQicPZ7a6kczgqQiOlbHm625EO7WEKwnHmdSg2Ergur5VubNsKvF0CQQCc 12 | sbv8rpu9qOisr2ZIZ7+yY/9/Ow8Un6rGrf4cPKtdqRIk3myXCB08fDnsPLd1J/Pa 13 | wP5LzMT10BQoXdFVbb3lAkBpNXUkts8O1YxSG5zTruvygjU2n4Lova31icJ8HFaG 14 | pfKHJpqDGPooupFxeCsPVPBZIRtxW70CZcr77eW/XKXv 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/config/freeDiameter/mme.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQC1OjHtv/7N51DMlLo9/S/my4MlPYKTJle0L2sp2f2AyMWCnAkX 3 | FDiRV6xysIbUb71r+rlgUZura2g3Fcfei73o2lpJdQMzCY5J5NlbPC/KR5uV1W8W 4 | 5I05tDndURpVJ2i5oCStHBhIu0lUrgOjC7jl2rTCfwmkEo6XCFgkakv0hwIDAQAB 5 | AoGBALL3ID1H/8m4Z9tP+EelEzvYt8772kmUcMHYnfw7cJNQMXQUwQlQh7hIG107 6 | JDr/idDrTUtn69GxhL35PWJxH3z7b9nPQCcPZQ3PZWW8lDXNqNCjV5j+2zDAXqkc 7 | IyxLQuPnTyn9kcB/OIjNGrr86/6JKS1ipbT9AIllV+br5OMhAkEA7KMLbiAI03JH 8 | wBhtnHdtj7NETXDnZd0Plj3ATpa7SOtxmBtqVVOH/1ghAqJ0YScrqa9+eEqcn6mv 9 | sHoJ10wVVwJBAMQOdR6b6H3Swy5dZNYzSKDsWRf4cNK5Kz8HJ8UOLbHTjzcDHNsD 10 | n09McdcnWgNAxV6J0YJzu4LWQjT4b1e77FECQAd+8rG+Wgk4qYUwQOif79yJdTRu 11 | yyWy5vd/ZUQYCj65FpQW6jthtgEkrYcD1mPtdbieUodE9cko+uPAOeeUBWkCQQCt 12 | lL9NImxtOjVkz3t/ylf7YkZfWq9JYnhPjV5AsZTzZIPgCPl7T3G1G9GO1GB1kNsu 13 | IIdGIIFcDacAjxTFcLSBAkA1Bl7gARE2XZR9iVVJ/On2hWFZhtG9RId+k0pVUxKs 14 | KXYnYSiD/WIeVZ6IBswqL2AnEV+kBBuZ7D9aEiDYbXQ/ 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/config/freeDiameter/pcrf.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDEY5W4spnKTd2suOJ4KUMDit5rBZmXt5A5+Pa4IHdESxuVbK3h 3 | XyxIoorSlXIO+eHPcE5FbnF+KkEpk3oSAXMLECB6OGafdXYh1n0M6jVHFtbDn0Hs 4 | 6Zg2FoSfQzgrssjZ82wHguTOyKPzw2AT80ZE+vDuqUhAj4A+YHP/bVkDLwIDAQAB 5 | AoGBAJG6b+RhK3uSMjcz7mFKBP9A8fCqdCG/xdcu5i0VcksMDMjhn1mIXPz9GFRR 6 | LxTr2eMrK/mbjb4YLshiNgfcaXdzpZGauK15PNEHemygI4et9b0iE3ZfGM3dGEGi 7 | UmWzXgO347S8CNmm6JX/gtAaCafeapmyms6E4teYFp1UMRIBAkEA7zrq9HZT1CZu 8 | fWN9DraOUVrgMdV8Q/qdKzAqMsTf95r43aRxxe8ZkXpQuf1X0kBDH8cIeOAVu96/ 9 | hmfxCcVZAQJBANIn3YU7xCnUbdK29tYuxAzEw7j4pdfjHEPgkvjV1xsGVwM+DQkF 10 | /yrSgAujxR70uGfBcUF/M9XRniBWg+FRrC8CQBXJ5vZnBJGRAoU3F3/Mjr/IKB1B 11 | 1XSXkdMKKv2+wqtZmQsO3DHr6gc+/bVC5snGgpaVWScxOamHyyfhtalvKQECQG+w 12 | PCyo3NIWUd+g2YJvDEZ09EgD7a/UxZrVaYbRryZvsiLJAYiAJWKOyPpmqUaQbMjH 13 | p/dVMSk75Dvvfttq2oUCQQDuEO0xY0gHxzFYH1K82Yw5aDdRsryEQYpb5e+jduH1 14 | EHACfc2H4Oc3/a39q7On+HnZgxK7gFMpGW+D0MdDDoL6 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/config/freeDiameter/smf.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXAIBAAKBgQC/vJQ49AOlI4whuk5eUfd29eEeQ/wEoPm5n0fd07Wqg+jL0DxW 3 | Dk393raT+uujlEp5aB2EYc+30KzQQe9m4IpA7LTSW87MLM19fodzsEtNeVQ7pEi7 4 | GU+ffjDnrxcyo5WvxKUZj1M8Fs1UnTiYKw+3zTOR8O+40p8O/o53nei68wIDAQAB 5 | AoGAarZPHH+aw79MD718PnyKKVhhqZGW4xCgzFG9EtXwpu1xlHXaDt85QxFANo4R 6 | teIjrPxoaTRzAlAOzn3T+0L/TnhU67WUOvSQEhGzS1liNNw024NekOy3rrqAvB3D 7 | esmOtR5+LtadCb2CuJdL0XALUp+F/g25CoryXsKMIg4Eg9ECQQD9fbT7n3GurBlF 8 | s1E+Ah1+fpD2qOvyFrK4Yzs/CYn5s1yEO0AMwLavO71Y+SIGzFnuIASbyEX4Adl/ 9 | hxSvDp5ZAkEAwaJmOzgLsLvSf5RkYzaX+/IO/DBYowDknalMobDplaOlK5LLFNiM 10 | naEH6A6UV981OnIr6ScU8knC0HyDmmTyKwJAfu3jIdvE4OHsBaq0k4gbnKtjix8q 11 | hh43f3ywve/Y1t+pA81nVPtqfnQ7a8HT9/N7VHFT3W17G6RRdDn/cWiwgQJAOuD+ 12 | 5RLtuxfhshmVTPXU0S+Rju3EhgxHeAl628/Ht1DDcLR6PCR83ZGRreaBBRdCQDtn 13 | TsYrgGEdc/forJH1cQJBAMzBcACt51/OuHtPF+kxeRqgLINji82EQOGmZBvtWySI 14 | cRFndLh6N8OOkDnP2MwGY7j0jWveKE8mVA12ymMWZuU= 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/freeDiameter/hss.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDT57ptFGWv35DlSlNWofaJLsvuztZzn0i2lnhnp4cYuKvDCzGz 3 | ApJI7UmsQMETOxNYUMwuWUTpfjECFPAYgpUQ5DeyXRQZHUuP6R9Fdc8K4I974XB7 4 | q+SvK3xNfwDY68/zlqv8BE8hrdjElAUC//MSSIiezs83KeAoOTdiBe1tXQIDAQAB 5 | AoGBAM7ShI2Ec/9lSInSsmaC7BpW12p87KirFZBIarpYs634SIS0v0xFvTt6hgae 6 | qRO4/BedvLucG3t91B2BDBoQEaZELCjJ9kCUtzphW+u8/SUvPUCfb5xiLLeDQCVR 7 | oU45JuqlF+ro9XM0x7f1REuTza1Xr20O5n5TzaCzQkdTlMdtAkEA+Yk9aS589D2c 8 | TAj7H5nQMFai/z0JKM7kuBmXaqbsPtnYjdNvVYsCRPcjbhyfIjN88o/QGuUuInpb 9 | PyzUZh3x2wJBANlk8d5ZVco+UE1NX0KzpEXHMY+z8kE4f8IMy0KN1V+An0ZbdxJE 10 | X0aUMz9/K0+V6n0rlpY4QdOnTnbIEg2hTycCQDXBUM9lylk7JH5kuORX2Ddxkm91 11 | kJGP8EmQicPZ7a6kczgqQiOlbHm625EO7WEKwnHmdSg2Ergur5VubNsKvF0CQQCc 12 | sbv8rpu9qOisr2ZIZ7+yY/9/Ow8Un6rGrf4cPKtdqRIk3myXCB08fDnsPLd1J/Pa 13 | wP5LzMT10BQoXdFVbb3lAkBpNXUkts8O1YxSG5zTruvygjU2n4Lova31icJ8HFaG 14 | pfKHJpqDGPooupFxeCsPVPBZIRtxW70CZcr77eW/XKXv 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/freeDiameter/mme.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQC1OjHtv/7N51DMlLo9/S/my4MlPYKTJle0L2sp2f2AyMWCnAkX 3 | FDiRV6xysIbUb71r+rlgUZura2g3Fcfei73o2lpJdQMzCY5J5NlbPC/KR5uV1W8W 4 | 5I05tDndURpVJ2i5oCStHBhIu0lUrgOjC7jl2rTCfwmkEo6XCFgkakv0hwIDAQAB 5 | AoGBALL3ID1H/8m4Z9tP+EelEzvYt8772kmUcMHYnfw7cJNQMXQUwQlQh7hIG107 6 | JDr/idDrTUtn69GxhL35PWJxH3z7b9nPQCcPZQ3PZWW8lDXNqNCjV5j+2zDAXqkc 7 | IyxLQuPnTyn9kcB/OIjNGrr86/6JKS1ipbT9AIllV+br5OMhAkEA7KMLbiAI03JH 8 | wBhtnHdtj7NETXDnZd0Plj3ATpa7SOtxmBtqVVOH/1ghAqJ0YScrqa9+eEqcn6mv 9 | sHoJ10wVVwJBAMQOdR6b6H3Swy5dZNYzSKDsWRf4cNK5Kz8HJ8UOLbHTjzcDHNsD 10 | n09McdcnWgNAxV6J0YJzu4LWQjT4b1e77FECQAd+8rG+Wgk4qYUwQOif79yJdTRu 11 | yyWy5vd/ZUQYCj65FpQW6jthtgEkrYcD1mPtdbieUodE9cko+uPAOeeUBWkCQQCt 12 | lL9NImxtOjVkz3t/ylf7YkZfWq9JYnhPjV5AsZTzZIPgCPl7T3G1G9GO1GB1kNsu 13 | IIdGIIFcDacAjxTFcLSBAkA1Bl7gARE2XZR9iVVJ/On2hWFZhtG9RId+k0pVUxKs 14 | KXYnYSiD/WIeVZ6IBswqL2AnEV+kBBuZ7D9aEiDYbXQ/ 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/freeDiameter/pcrf.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDEY5W4spnKTd2suOJ4KUMDit5rBZmXt5A5+Pa4IHdESxuVbK3h 3 | XyxIoorSlXIO+eHPcE5FbnF+KkEpk3oSAXMLECB6OGafdXYh1n0M6jVHFtbDn0Hs 4 | 6Zg2FoSfQzgrssjZ82wHguTOyKPzw2AT80ZE+vDuqUhAj4A+YHP/bVkDLwIDAQAB 5 | AoGBAJG6b+RhK3uSMjcz7mFKBP9A8fCqdCG/xdcu5i0VcksMDMjhn1mIXPz9GFRR 6 | LxTr2eMrK/mbjb4YLshiNgfcaXdzpZGauK15PNEHemygI4et9b0iE3ZfGM3dGEGi 7 | UmWzXgO347S8CNmm6JX/gtAaCafeapmyms6E4teYFp1UMRIBAkEA7zrq9HZT1CZu 8 | fWN9DraOUVrgMdV8Q/qdKzAqMsTf95r43aRxxe8ZkXpQuf1X0kBDH8cIeOAVu96/ 9 | hmfxCcVZAQJBANIn3YU7xCnUbdK29tYuxAzEw7j4pdfjHEPgkvjV1xsGVwM+DQkF 10 | /yrSgAujxR70uGfBcUF/M9XRniBWg+FRrC8CQBXJ5vZnBJGRAoU3F3/Mjr/IKB1B 11 | 1XSXkdMKKv2+wqtZmQsO3DHr6gc+/bVC5snGgpaVWScxOamHyyfhtalvKQECQG+w 12 | PCyo3NIWUd+g2YJvDEZ09EgD7a/UxZrVaYbRryZvsiLJAYiAJWKOyPpmqUaQbMjH 13 | p/dVMSk75Dvvfttq2oUCQQDuEO0xY0gHxzFYH1K82Yw5aDdRsryEQYpb5e+jduH1 14 | EHACfc2H4Oc3/a39q7On+HnZgxK7gFMpGW+D0MdDDoL6 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/freeDiameter/smf.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXAIBAAKBgQC/vJQ49AOlI4whuk5eUfd29eEeQ/wEoPm5n0fd07Wqg+jL0DxW 3 | Dk393raT+uujlEp5aB2EYc+30KzQQe9m4IpA7LTSW87MLM19fodzsEtNeVQ7pEi7 4 | GU+ffjDnrxcyo5WvxKUZj1M8Fs1UnTiYKw+3zTOR8O+40p8O/o53nei68wIDAQAB 5 | AoGAarZPHH+aw79MD718PnyKKVhhqZGW4xCgzFG9EtXwpu1xlHXaDt85QxFANo4R 6 | teIjrPxoaTRzAlAOzn3T+0L/TnhU67WUOvSQEhGzS1liNNw024NekOy3rrqAvB3D 7 | esmOtR5+LtadCb2CuJdL0XALUp+F/g25CoryXsKMIg4Eg9ECQQD9fbT7n3GurBlF 8 | s1E+Ah1+fpD2qOvyFrK4Yzs/CYn5s1yEO0AMwLavO71Y+SIGzFnuIASbyEX4Adl/ 9 | hxSvDp5ZAkEAwaJmOzgLsLvSf5RkYzaX+/IO/DBYowDknalMobDplaOlK5LLFNiM 10 | naEH6A6UV981OnIr6ScU8knC0HyDmmTyKwJAfu3jIdvE4OHsBaq0k4gbnKtjix8q 11 | hh43f3ywve/Y1t+pA81nVPtqfnQ7a8HT9/N7VHFT3W17G6RRdDn/cWiwgQJAOuD+ 12 | 5RLtuxfhshmVTPXU0S+Rju3EhgxHeAl628/Ht1DDcLR6PCR83ZGRreaBBRdCQDtn 13 | TsYrgGEdc/forJH1cQJBAMzBcACt51/OuHtPF+kxeRqgLINji82EQOGmZBvtWySI 14 | cRFndLh6N8OOkDnP2MwGY7j0jWveKE8mVA12ymMWZuU= 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/freeDiameter/hss.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDT57ptFGWv35DlSlNWofaJLsvuztZzn0i2lnhnp4cYuKvDCzGz 3 | ApJI7UmsQMETOxNYUMwuWUTpfjECFPAYgpUQ5DeyXRQZHUuP6R9Fdc8K4I974XB7 4 | q+SvK3xNfwDY68/zlqv8BE8hrdjElAUC//MSSIiezs83KeAoOTdiBe1tXQIDAQAB 5 | AoGBAM7ShI2Ec/9lSInSsmaC7BpW12p87KirFZBIarpYs634SIS0v0xFvTt6hgae 6 | qRO4/BedvLucG3t91B2BDBoQEaZELCjJ9kCUtzphW+u8/SUvPUCfb5xiLLeDQCVR 7 | oU45JuqlF+ro9XM0x7f1REuTza1Xr20O5n5TzaCzQkdTlMdtAkEA+Yk9aS589D2c 8 | TAj7H5nQMFai/z0JKM7kuBmXaqbsPtnYjdNvVYsCRPcjbhyfIjN88o/QGuUuInpb 9 | PyzUZh3x2wJBANlk8d5ZVco+UE1NX0KzpEXHMY+z8kE4f8IMy0KN1V+An0ZbdxJE 10 | X0aUMz9/K0+V6n0rlpY4QdOnTnbIEg2hTycCQDXBUM9lylk7JH5kuORX2Ddxkm91 11 | kJGP8EmQicPZ7a6kczgqQiOlbHm625EO7WEKwnHmdSg2Ergur5VubNsKvF0CQQCc 12 | sbv8rpu9qOisr2ZIZ7+yY/9/Ow8Un6rGrf4cPKtdqRIk3myXCB08fDnsPLd1J/Pa 13 | wP5LzMT10BQoXdFVbb3lAkBpNXUkts8O1YxSG5zTruvygjU2n4Lova31icJ8HFaG 14 | pfKHJpqDGPooupFxeCsPVPBZIRtxW70CZcr77eW/XKXv 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/freeDiameter/mme.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQC1OjHtv/7N51DMlLo9/S/my4MlPYKTJle0L2sp2f2AyMWCnAkX 3 | FDiRV6xysIbUb71r+rlgUZura2g3Fcfei73o2lpJdQMzCY5J5NlbPC/KR5uV1W8W 4 | 5I05tDndURpVJ2i5oCStHBhIu0lUrgOjC7jl2rTCfwmkEo6XCFgkakv0hwIDAQAB 5 | AoGBALL3ID1H/8m4Z9tP+EelEzvYt8772kmUcMHYnfw7cJNQMXQUwQlQh7hIG107 6 | JDr/idDrTUtn69GxhL35PWJxH3z7b9nPQCcPZQ3PZWW8lDXNqNCjV5j+2zDAXqkc 7 | IyxLQuPnTyn9kcB/OIjNGrr86/6JKS1ipbT9AIllV+br5OMhAkEA7KMLbiAI03JH 8 | wBhtnHdtj7NETXDnZd0Plj3ATpa7SOtxmBtqVVOH/1ghAqJ0YScrqa9+eEqcn6mv 9 | sHoJ10wVVwJBAMQOdR6b6H3Swy5dZNYzSKDsWRf4cNK5Kz8HJ8UOLbHTjzcDHNsD 10 | n09McdcnWgNAxV6J0YJzu4LWQjT4b1e77FECQAd+8rG+Wgk4qYUwQOif79yJdTRu 11 | yyWy5vd/ZUQYCj65FpQW6jthtgEkrYcD1mPtdbieUodE9cko+uPAOeeUBWkCQQCt 12 | lL9NImxtOjVkz3t/ylf7YkZfWq9JYnhPjV5AsZTzZIPgCPl7T3G1G9GO1GB1kNsu 13 | IIdGIIFcDacAjxTFcLSBAkA1Bl7gARE2XZR9iVVJ/On2hWFZhtG9RId+k0pVUxKs 14 | KXYnYSiD/WIeVZ6IBswqL2AnEV+kBBuZ7D9aEiDYbXQ/ 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/freeDiameter/smf.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXAIBAAKBgQC/vJQ49AOlI4whuk5eUfd29eEeQ/wEoPm5n0fd07Wqg+jL0DxW 3 | Dk393raT+uujlEp5aB2EYc+30KzQQe9m4IpA7LTSW87MLM19fodzsEtNeVQ7pEi7 4 | GU+ffjDnrxcyo5WvxKUZj1M8Fs1UnTiYKw+3zTOR8O+40p8O/o53nei68wIDAQAB 5 | AoGAarZPHH+aw79MD718PnyKKVhhqZGW4xCgzFG9EtXwpu1xlHXaDt85QxFANo4R 6 | teIjrPxoaTRzAlAOzn3T+0L/TnhU67WUOvSQEhGzS1liNNw024NekOy3rrqAvB3D 7 | esmOtR5+LtadCb2CuJdL0XALUp+F/g25CoryXsKMIg4Eg9ECQQD9fbT7n3GurBlF 8 | s1E+Ah1+fpD2qOvyFrK4Yzs/CYn5s1yEO0AMwLavO71Y+SIGzFnuIASbyEX4Adl/ 9 | hxSvDp5ZAkEAwaJmOzgLsLvSf5RkYzaX+/IO/DBYowDknalMobDplaOlK5LLFNiM 10 | naEH6A6UV981OnIr6ScU8knC0HyDmmTyKwJAfu3jIdvE4OHsBaq0k4gbnKtjix8q 11 | hh43f3ywve/Y1t+pA81nVPtqfnQ7a8HT9/N7VHFT3W17G6RRdDn/cWiwgQJAOuD+ 12 | 5RLtuxfhshmVTPXU0S+Rju3EhgxHeAl628/Ht1DDcLR6PCR83ZGRreaBBRdCQDtn 13 | TsYrgGEdc/forJH1cQJBAMzBcACt51/OuHtPF+kxeRqgLINji82EQOGmZBvtWySI 14 | cRFndLh6N8OOkDnP2MwGY7j0jWveKE8mVA12ymMWZuU= 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/freeDiameter/hss.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDT57ptFGWv35DlSlNWofaJLsvuztZzn0i2lnhnp4cYuKvDCzGz 3 | ApJI7UmsQMETOxNYUMwuWUTpfjECFPAYgpUQ5DeyXRQZHUuP6R9Fdc8K4I974XB7 4 | q+SvK3xNfwDY68/zlqv8BE8hrdjElAUC//MSSIiezs83KeAoOTdiBe1tXQIDAQAB 5 | AoGBAM7ShI2Ec/9lSInSsmaC7BpW12p87KirFZBIarpYs634SIS0v0xFvTt6hgae 6 | qRO4/BedvLucG3t91B2BDBoQEaZELCjJ9kCUtzphW+u8/SUvPUCfb5xiLLeDQCVR 7 | oU45JuqlF+ro9XM0x7f1REuTza1Xr20O5n5TzaCzQkdTlMdtAkEA+Yk9aS589D2c 8 | TAj7H5nQMFai/z0JKM7kuBmXaqbsPtnYjdNvVYsCRPcjbhyfIjN88o/QGuUuInpb 9 | PyzUZh3x2wJBANlk8d5ZVco+UE1NX0KzpEXHMY+z8kE4f8IMy0KN1V+An0ZbdxJE 10 | X0aUMz9/K0+V6n0rlpY4QdOnTnbIEg2hTycCQDXBUM9lylk7JH5kuORX2Ddxkm91 11 | kJGP8EmQicPZ7a6kczgqQiOlbHm625EO7WEKwnHmdSg2Ergur5VubNsKvF0CQQCc 12 | sbv8rpu9qOisr2ZIZ7+yY/9/Ow8Un6rGrf4cPKtdqRIk3myXCB08fDnsPLd1J/Pa 13 | wP5LzMT10BQoXdFVbb3lAkBpNXUkts8O1YxSG5zTruvygjU2n4Lova31icJ8HFaG 14 | pfKHJpqDGPooupFxeCsPVPBZIRtxW70CZcr77eW/XKXv 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/freeDiameter/mme.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQC1OjHtv/7N51DMlLo9/S/my4MlPYKTJle0L2sp2f2AyMWCnAkX 3 | FDiRV6xysIbUb71r+rlgUZura2g3Fcfei73o2lpJdQMzCY5J5NlbPC/KR5uV1W8W 4 | 5I05tDndURpVJ2i5oCStHBhIu0lUrgOjC7jl2rTCfwmkEo6XCFgkakv0hwIDAQAB 5 | AoGBALL3ID1H/8m4Z9tP+EelEzvYt8772kmUcMHYnfw7cJNQMXQUwQlQh7hIG107 6 | JDr/idDrTUtn69GxhL35PWJxH3z7b9nPQCcPZQ3PZWW8lDXNqNCjV5j+2zDAXqkc 7 | IyxLQuPnTyn9kcB/OIjNGrr86/6JKS1ipbT9AIllV+br5OMhAkEA7KMLbiAI03JH 8 | wBhtnHdtj7NETXDnZd0Plj3ATpa7SOtxmBtqVVOH/1ghAqJ0YScrqa9+eEqcn6mv 9 | sHoJ10wVVwJBAMQOdR6b6H3Swy5dZNYzSKDsWRf4cNK5Kz8HJ8UOLbHTjzcDHNsD 10 | n09McdcnWgNAxV6J0YJzu4LWQjT4b1e77FECQAd+8rG+Wgk4qYUwQOif79yJdTRu 11 | yyWy5vd/ZUQYCj65FpQW6jthtgEkrYcD1mPtdbieUodE9cko+uPAOeeUBWkCQQCt 12 | lL9NImxtOjVkz3t/ylf7YkZfWq9JYnhPjV5AsZTzZIPgCPl7T3G1G9GO1GB1kNsu 13 | IIdGIIFcDacAjxTFcLSBAkA1Bl7gARE2XZR9iVVJ/On2hWFZhtG9RId+k0pVUxKs 14 | KXYnYSiD/WIeVZ6IBswqL2AnEV+kBBuZ7D9aEiDYbXQ/ 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/freeDiameter/smf.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXAIBAAKBgQC/vJQ49AOlI4whuk5eUfd29eEeQ/wEoPm5n0fd07Wqg+jL0DxW 3 | Dk393raT+uujlEp5aB2EYc+30KzQQe9m4IpA7LTSW87MLM19fodzsEtNeVQ7pEi7 4 | GU+ffjDnrxcyo5WvxKUZj1M8Fs1UnTiYKw+3zTOR8O+40p8O/o53nei68wIDAQAB 5 | AoGAarZPHH+aw79MD718PnyKKVhhqZGW4xCgzFG9EtXwpu1xlHXaDt85QxFANo4R 6 | teIjrPxoaTRzAlAOzn3T+0L/TnhU67WUOvSQEhGzS1liNNw024NekOy3rrqAvB3D 7 | esmOtR5+LtadCb2CuJdL0XALUp+F/g25CoryXsKMIg4Eg9ECQQD9fbT7n3GurBlF 8 | s1E+Ah1+fpD2qOvyFrK4Yzs/CYn5s1yEO0AMwLavO71Y+SIGzFnuIASbyEX4Adl/ 9 | hxSvDp5ZAkEAwaJmOzgLsLvSf5RkYzaX+/IO/DBYowDknalMobDplaOlK5LLFNiM 10 | naEH6A6UV981OnIr6ScU8knC0HyDmmTyKwJAfu3jIdvE4OHsBaq0k4gbnKtjix8q 11 | hh43f3ywve/Y1t+pA81nVPtqfnQ7a8HT9/N7VHFT3W17G6RRdDn/cWiwgQJAOuD+ 12 | 5RLtuxfhshmVTPXU0S+Rju3EhgxHeAl628/Ht1DDcLR6PCR83ZGRreaBBRdCQDtn 13 | TsYrgGEdc/forJH1cQJBAMzBcACt51/OuHtPF+kxeRqgLINji82EQOGmZBvtWySI 14 | cRFndLh6N8OOkDnP2MwGY7j0jWveKE8mVA12ymMWZuU= 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/freeDiameter/pcrf.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDEY5W4spnKTd2suOJ4KUMDit5rBZmXt5A5+Pa4IHdESxuVbK3h 3 | XyxIoorSlXIO+eHPcE5FbnF+KkEpk3oSAXMLECB6OGafdXYh1n0M6jVHFtbDn0Hs 4 | 6Zg2FoSfQzgrssjZ82wHguTOyKPzw2AT80ZE+vDuqUhAj4A+YHP/bVkDLwIDAQAB 5 | AoGBAJG6b+RhK3uSMjcz7mFKBP9A8fCqdCG/xdcu5i0VcksMDMjhn1mIXPz9GFRR 6 | LxTr2eMrK/mbjb4YLshiNgfcaXdzpZGauK15PNEHemygI4et9b0iE3ZfGM3dGEGi 7 | UmWzXgO347S8CNmm6JX/gtAaCafeapmyms6E4teYFp1UMRIBAkEA7zrq9HZT1CZu 8 | fWN9DraOUVrgMdV8Q/qdKzAqMsTf95r43aRxxe8ZkXpQuf1X0kBDH8cIeOAVu96/ 9 | hmfxCcVZAQJBANIn3YU7xCnUbdK29tYuxAzEw7j4pdfjHEPgkvjV1xsGVwM+DQkF 10 | /yrSgAujxR70uGfBcUF/M9XRniBWg+FRrC8CQBXJ5vZnBJGRAoU3F3/Mjr/IKB1B 11 | 1XSXkdMKKv2+wqtZmQsO3DHr6gc+/bVC5snGgpaVWScxOamHyyfhtalvKQECQG+w 12 | PCyo3NIWUd+g2YJvDEZ09EgD7a/UxZrVaYbRryZvsiLJAYiAJWKOyPpmqUaQbMjH 13 | p/dVMSk75Dvvfttq2oUCQQDuEO0xY0gHxzFYH1K82Yw5aDdRsryEQYpb5e+jduH1 14 | EHACfc2H4Oc3/a39q7On+HnZgxK7gFMpGW+D0MdDDoL6 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/freeDiameter/hss.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDT57ptFGWv35DlSlNWofaJLsvuztZzn0i2lnhnp4cYuKvDCzGz 3 | ApJI7UmsQMETOxNYUMwuWUTpfjECFPAYgpUQ5DeyXRQZHUuP6R9Fdc8K4I974XB7 4 | q+SvK3xNfwDY68/zlqv8BE8hrdjElAUC//MSSIiezs83KeAoOTdiBe1tXQIDAQAB 5 | AoGBAM7ShI2Ec/9lSInSsmaC7BpW12p87KirFZBIarpYs634SIS0v0xFvTt6hgae 6 | qRO4/BedvLucG3t91B2BDBoQEaZELCjJ9kCUtzphW+u8/SUvPUCfb5xiLLeDQCVR 7 | oU45JuqlF+ro9XM0x7f1REuTza1Xr20O5n5TzaCzQkdTlMdtAkEA+Yk9aS589D2c 8 | TAj7H5nQMFai/z0JKM7kuBmXaqbsPtnYjdNvVYsCRPcjbhyfIjN88o/QGuUuInpb 9 | PyzUZh3x2wJBANlk8d5ZVco+UE1NX0KzpEXHMY+z8kE4f8IMy0KN1V+An0ZbdxJE 10 | X0aUMz9/K0+V6n0rlpY4QdOnTnbIEg2hTycCQDXBUM9lylk7JH5kuORX2Ddxkm91 11 | kJGP8EmQicPZ7a6kczgqQiOlbHm625EO7WEKwnHmdSg2Ergur5VubNsKvF0CQQCc 12 | sbv8rpu9qOisr2ZIZ7+yY/9/Ow8Un6rGrf4cPKtdqRIk3myXCB08fDnsPLd1J/Pa 13 | wP5LzMT10BQoXdFVbb3lAkBpNXUkts8O1YxSG5zTruvygjU2n4Lova31icJ8HFaG 14 | pfKHJpqDGPooupFxeCsPVPBZIRtxW70CZcr77eW/XKXv 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/freeDiameter/mme.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQC1OjHtv/7N51DMlLo9/S/my4MlPYKTJle0L2sp2f2AyMWCnAkX 3 | FDiRV6xysIbUb71r+rlgUZura2g3Fcfei73o2lpJdQMzCY5J5NlbPC/KR5uV1W8W 4 | 5I05tDndURpVJ2i5oCStHBhIu0lUrgOjC7jl2rTCfwmkEo6XCFgkakv0hwIDAQAB 5 | AoGBALL3ID1H/8m4Z9tP+EelEzvYt8772kmUcMHYnfw7cJNQMXQUwQlQh7hIG107 6 | JDr/idDrTUtn69GxhL35PWJxH3z7b9nPQCcPZQ3PZWW8lDXNqNCjV5j+2zDAXqkc 7 | IyxLQuPnTyn9kcB/OIjNGrr86/6JKS1ipbT9AIllV+br5OMhAkEA7KMLbiAI03JH 8 | wBhtnHdtj7NETXDnZd0Plj3ATpa7SOtxmBtqVVOH/1ghAqJ0YScrqa9+eEqcn6mv 9 | sHoJ10wVVwJBAMQOdR6b6H3Swy5dZNYzSKDsWRf4cNK5Kz8HJ8UOLbHTjzcDHNsD 10 | n09McdcnWgNAxV6J0YJzu4LWQjT4b1e77FECQAd+8rG+Wgk4qYUwQOif79yJdTRu 11 | yyWy5vd/ZUQYCj65FpQW6jthtgEkrYcD1mPtdbieUodE9cko+uPAOeeUBWkCQQCt 12 | lL9NImxtOjVkz3t/ylf7YkZfWq9JYnhPjV5AsZTzZIPgCPl7T3G1G9GO1GB1kNsu 13 | IIdGIIFcDacAjxTFcLSBAkA1Bl7gARE2XZR9iVVJ/On2hWFZhtG9RId+k0pVUxKs 14 | KXYnYSiD/WIeVZ6IBswqL2AnEV+kBBuZ7D9aEiDYbXQ/ 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/freeDiameter/pcrf.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDEY5W4spnKTd2suOJ4KUMDit5rBZmXt5A5+Pa4IHdESxuVbK3h 3 | XyxIoorSlXIO+eHPcE5FbnF+KkEpk3oSAXMLECB6OGafdXYh1n0M6jVHFtbDn0Hs 4 | 6Zg2FoSfQzgrssjZ82wHguTOyKPzw2AT80ZE+vDuqUhAj4A+YHP/bVkDLwIDAQAB 5 | AoGBAJG6b+RhK3uSMjcz7mFKBP9A8fCqdCG/xdcu5i0VcksMDMjhn1mIXPz9GFRR 6 | LxTr2eMrK/mbjb4YLshiNgfcaXdzpZGauK15PNEHemygI4et9b0iE3ZfGM3dGEGi 7 | UmWzXgO347S8CNmm6JX/gtAaCafeapmyms6E4teYFp1UMRIBAkEA7zrq9HZT1CZu 8 | fWN9DraOUVrgMdV8Q/qdKzAqMsTf95r43aRxxe8ZkXpQuf1X0kBDH8cIeOAVu96/ 9 | hmfxCcVZAQJBANIn3YU7xCnUbdK29tYuxAzEw7j4pdfjHEPgkvjV1xsGVwM+DQkF 10 | /yrSgAujxR70uGfBcUF/M9XRniBWg+FRrC8CQBXJ5vZnBJGRAoU3F3/Mjr/IKB1B 11 | 1XSXkdMKKv2+wqtZmQsO3DHr6gc+/bVC5snGgpaVWScxOamHyyfhtalvKQECQG+w 12 | PCyo3NIWUd+g2YJvDEZ09EgD7a/UxZrVaYbRryZvsiLJAYiAJWKOyPpmqUaQbMjH 13 | p/dVMSk75Dvvfttq2oUCQQDuEO0xY0gHxzFYH1K82Yw5aDdRsryEQYpb5e+jduH1 14 | EHACfc2H4Oc3/a39q7On+HnZgxK7gFMpGW+D0MdDDoL6 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/freeDiameter/smf.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXAIBAAKBgQC/vJQ49AOlI4whuk5eUfd29eEeQ/wEoPm5n0fd07Wqg+jL0DxW 3 | Dk393raT+uujlEp5aB2EYc+30KzQQe9m4IpA7LTSW87MLM19fodzsEtNeVQ7pEi7 4 | GU+ffjDnrxcyo5WvxKUZj1M8Fs1UnTiYKw+3zTOR8O+40p8O/o53nei68wIDAQAB 5 | AoGAarZPHH+aw79MD718PnyKKVhhqZGW4xCgzFG9EtXwpu1xlHXaDt85QxFANo4R 6 | teIjrPxoaTRzAlAOzn3T+0L/TnhU67WUOvSQEhGzS1liNNw024NekOy3rrqAvB3D 7 | esmOtR5+LtadCb2CuJdL0XALUp+F/g25CoryXsKMIg4Eg9ECQQD9fbT7n3GurBlF 8 | s1E+Ah1+fpD2qOvyFrK4Yzs/CYn5s1yEO0AMwLavO71Y+SIGzFnuIASbyEX4Adl/ 9 | hxSvDp5ZAkEAwaJmOzgLsLvSf5RkYzaX+/IO/DBYowDknalMobDplaOlK5LLFNiM 10 | naEH6A6UV981OnIr6ScU8knC0HyDmmTyKwJAfu3jIdvE4OHsBaq0k4gbnKtjix8q 11 | hh43f3ywve/Y1t+pA81nVPtqfnQ7a8HT9/N7VHFT3W17G6RRdDn/cWiwgQJAOuD+ 12 | 5RLtuxfhshmVTPXU0S+Rju3EhgxHeAl628/Ht1DDcLR6PCR83ZGRreaBBRdCQDtn 13 | TsYrgGEdc/forJH1cQJBAMzBcACt51/OuHtPF+kxeRqgLINji82EQOGmZBvtWySI 14 | cRFndLh6N8OOkDnP2MwGY7j0jWveKE8mVA12ymMWZuU= 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/freeDiameter/pcrf.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDEY5W4spnKTd2suOJ4KUMDit5rBZmXt5A5+Pa4IHdESxuVbK3h 3 | XyxIoorSlXIO+eHPcE5FbnF+KkEpk3oSAXMLECB6OGafdXYh1n0M6jVHFtbDn0Hs 4 | 6Zg2FoSfQzgrssjZ82wHguTOyKPzw2AT80ZE+vDuqUhAj4A+YHP/bVkDLwIDAQAB 5 | AoGBAJG6b+RhK3uSMjcz7mFKBP9A8fCqdCG/xdcu5i0VcksMDMjhn1mIXPz9GFRR 6 | LxTr2eMrK/mbjb4YLshiNgfcaXdzpZGauK15PNEHemygI4et9b0iE3ZfGM3dGEGi 7 | UmWzXgO347S8CNmm6JX/gtAaCafeapmyms6E4teYFp1UMRIBAkEA7zrq9HZT1CZu 8 | fWN9DraOUVrgMdV8Q/qdKzAqMsTf95r43aRxxe8ZkXpQuf1X0kBDH8cIeOAVu96/ 9 | hmfxCcVZAQJBANIn3YU7xCnUbdK29tYuxAzEw7j4pdfjHEPgkvjV1xsGVwM+DQkF 10 | /yrSgAujxR70uGfBcUF/M9XRniBWg+FRrC8CQBXJ5vZnBJGRAoU3F3/Mjr/IKB1B 11 | 1XSXkdMKKv2+wqtZmQsO3DHr6gc+/bVC5snGgpaVWScxOamHyyfhtalvKQECQG+w 12 | PCyo3NIWUd+g2YJvDEZ09EgD7a/UxZrVaYbRryZvsiLJAYiAJWKOyPpmqUaQbMjH 13 | p/dVMSk75Dvvfttq2oUCQQDuEO0xY0gHxzFYH1K82Yw5aDdRsryEQYpb5e+jduH1 14 | EHACfc2H4Oc3/a39q7On+HnZgxK7gFMpGW+D0MdDDoL6 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/freeDiameter/hss.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDT57ptFGWv35DlSlNWofaJLsvuztZzn0i2lnhnp4cYuKvDCzGz 3 | ApJI7UmsQMETOxNYUMwuWUTpfjECFPAYgpUQ5DeyXRQZHUuP6R9Fdc8K4I974XB7 4 | q+SvK3xNfwDY68/zlqv8BE8hrdjElAUC//MSSIiezs83KeAoOTdiBe1tXQIDAQAB 5 | AoGBAM7ShI2Ec/9lSInSsmaC7BpW12p87KirFZBIarpYs634SIS0v0xFvTt6hgae 6 | qRO4/BedvLucG3t91B2BDBoQEaZELCjJ9kCUtzphW+u8/SUvPUCfb5xiLLeDQCVR 7 | oU45JuqlF+ro9XM0x7f1REuTza1Xr20O5n5TzaCzQkdTlMdtAkEA+Yk9aS589D2c 8 | TAj7H5nQMFai/z0JKM7kuBmXaqbsPtnYjdNvVYsCRPcjbhyfIjN88o/QGuUuInpb 9 | PyzUZh3x2wJBANlk8d5ZVco+UE1NX0KzpEXHMY+z8kE4f8IMy0KN1V+An0ZbdxJE 10 | X0aUMz9/K0+V6n0rlpY4QdOnTnbIEg2hTycCQDXBUM9lylk7JH5kuORX2Ddxkm91 11 | kJGP8EmQicPZ7a6kczgqQiOlbHm625EO7WEKwnHmdSg2Ergur5VubNsKvF0CQQCc 12 | sbv8rpu9qOisr2ZIZ7+yY/9/Ow8Un6rGrf4cPKtdqRIk3myXCB08fDnsPLd1J/Pa 13 | wP5LzMT10BQoXdFVbb3lAkBpNXUkts8O1YxSG5zTruvygjU2n4Lova31icJ8HFaG 14 | pfKHJpqDGPooupFxeCsPVPBZIRtxW70CZcr77eW/XKXv 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/freeDiameter/mme.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQC1OjHtv/7N51DMlLo9/S/my4MlPYKTJle0L2sp2f2AyMWCnAkX 3 | FDiRV6xysIbUb71r+rlgUZura2g3Fcfei73o2lpJdQMzCY5J5NlbPC/KR5uV1W8W 4 | 5I05tDndURpVJ2i5oCStHBhIu0lUrgOjC7jl2rTCfwmkEo6XCFgkakv0hwIDAQAB 5 | AoGBALL3ID1H/8m4Z9tP+EelEzvYt8772kmUcMHYnfw7cJNQMXQUwQlQh7hIG107 6 | JDr/idDrTUtn69GxhL35PWJxH3z7b9nPQCcPZQ3PZWW8lDXNqNCjV5j+2zDAXqkc 7 | IyxLQuPnTyn9kcB/OIjNGrr86/6JKS1ipbT9AIllV+br5OMhAkEA7KMLbiAI03JH 8 | wBhtnHdtj7NETXDnZd0Plj3ATpa7SOtxmBtqVVOH/1ghAqJ0YScrqa9+eEqcn6mv 9 | sHoJ10wVVwJBAMQOdR6b6H3Swy5dZNYzSKDsWRf4cNK5Kz8HJ8UOLbHTjzcDHNsD 10 | n09McdcnWgNAxV6J0YJzu4LWQjT4b1e77FECQAd+8rG+Wgk4qYUwQOif79yJdTRu 11 | yyWy5vd/ZUQYCj65FpQW6jthtgEkrYcD1mPtdbieUodE9cko+uPAOeeUBWkCQQCt 12 | lL9NImxtOjVkz3t/ylf7YkZfWq9JYnhPjV5AsZTzZIPgCPl7T3G1G9GO1GB1kNsu 13 | IIdGIIFcDacAjxTFcLSBAkA1Bl7gARE2XZR9iVVJ/On2hWFZhtG9RId+k0pVUxKs 14 | KXYnYSiD/WIeVZ6IBswqL2AnEV+kBBuZ7D9aEiDYbXQ/ 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/freeDiameter/pcrf.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXQIBAAKBgQDEY5W4spnKTd2suOJ4KUMDit5rBZmXt5A5+Pa4IHdESxuVbK3h 3 | XyxIoorSlXIO+eHPcE5FbnF+KkEpk3oSAXMLECB6OGafdXYh1n0M6jVHFtbDn0Hs 4 | 6Zg2FoSfQzgrssjZ82wHguTOyKPzw2AT80ZE+vDuqUhAj4A+YHP/bVkDLwIDAQAB 5 | AoGBAJG6b+RhK3uSMjcz7mFKBP9A8fCqdCG/xdcu5i0VcksMDMjhn1mIXPz9GFRR 6 | LxTr2eMrK/mbjb4YLshiNgfcaXdzpZGauK15PNEHemygI4et9b0iE3ZfGM3dGEGi 7 | UmWzXgO347S8CNmm6JX/gtAaCafeapmyms6E4teYFp1UMRIBAkEA7zrq9HZT1CZu 8 | fWN9DraOUVrgMdV8Q/qdKzAqMsTf95r43aRxxe8ZkXpQuf1X0kBDH8cIeOAVu96/ 9 | hmfxCcVZAQJBANIn3YU7xCnUbdK29tYuxAzEw7j4pdfjHEPgkvjV1xsGVwM+DQkF 10 | /yrSgAujxR70uGfBcUF/M9XRniBWg+FRrC8CQBXJ5vZnBJGRAoU3F3/Mjr/IKB1B 11 | 1XSXkdMKKv2+wqtZmQsO3DHr6gc+/bVC5snGgpaVWScxOamHyyfhtalvKQECQG+w 12 | PCyo3NIWUd+g2YJvDEZ09EgD7a/UxZrVaYbRryZvsiLJAYiAJWKOyPpmqUaQbMjH 13 | p/dVMSk75Dvvfttq2oUCQQDuEO0xY0gHxzFYH1K82Yw5aDdRsryEQYpb5e+jduH1 14 | EHACfc2H4Oc3/a39q7On+HnZgxK7gFMpGW+D0MdDDoL6 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/freeDiameter/smf.key.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN RSA PRIVATE KEY----- 2 | MIICXAIBAAKBgQC/vJQ49AOlI4whuk5eUfd29eEeQ/wEoPm5n0fd07Wqg+jL0DxW 3 | Dk393raT+uujlEp5aB2EYc+30KzQQe9m4IpA7LTSW87MLM19fodzsEtNeVQ7pEi7 4 | GU+ffjDnrxcyo5WvxKUZj1M8Fs1UnTiYKw+3zTOR8O+40p8O/o53nei68wIDAQAB 5 | AoGAarZPHH+aw79MD718PnyKKVhhqZGW4xCgzFG9EtXwpu1xlHXaDt85QxFANo4R 6 | teIjrPxoaTRzAlAOzn3T+0L/TnhU67WUOvSQEhGzS1liNNw024NekOy3rrqAvB3D 7 | esmOtR5+LtadCb2CuJdL0XALUp+F/g25CoryXsKMIg4Eg9ECQQD9fbT7n3GurBlF 8 | s1E+Ah1+fpD2qOvyFrK4Yzs/CYn5s1yEO0AMwLavO71Y+SIGzFnuIASbyEX4Adl/ 9 | hxSvDp5ZAkEAwaJmOzgLsLvSf5RkYzaX+/IO/DBYowDknalMobDplaOlK5LLFNiM 10 | naEH6A6UV981OnIr6ScU8knC0HyDmmTyKwJAfu3jIdvE4OHsBaq0k4gbnKtjix8q 11 | hh43f3ywve/Y1t+pA81nVPtqfnQ7a8HT9/N7VHFT3W17G6RRdDn/cWiwgQJAOuD+ 12 | 5RLtuxfhshmVTPXU0S+Rju3EhgxHeAl628/Ht1DDcLR6PCR83ZGRreaBBRdCQDtn 13 | TsYrgGEdc/forJH1cQJBAMzBcACt51/OuHtPF+kxeRqgLINji82EQOGmZBvtWySI 14 | cRFndLh6N8OOkDnP2MwGY7j0jWveKE8mVA12ymMWZuU= 15 | -----END RSA PRIVATE KEY----- 16 | -------------------------------------------------------------------------------- /.github/workflows/stale.yml: -------------------------------------------------------------------------------- 1 | name: 'Close stale issues and PRs' 2 | on: 3 | schedule: 4 | - cron: '30 1 * * *' 5 | 6 | jobs: 7 | stale: 8 | runs-on: ubuntu-latest 9 | steps: 10 | - uses: actions/stale@v9 11 | with: 12 | stale-issue-message: 'This issue is stale because it has been open 30 days with no activity. Remove stale label or comment or this will be closed in 5 days.' 13 | stale-pr-message: 'This PR is stale because it has been open 45 days with no activity. Remove stale label or comment or this will be closed in 10 days.' 14 | close-issue-message: 'This issue was closed because it has been stalled for 5 days with no activity.' 15 | close-pr-message: 'This PR was closed because it has been stalled for 10 days with no activity.' 16 | days-before-issue-stale: 30 17 | days-before-pr-stale: 45 18 | days-before-issue-close: 5 19 | days-before-pr-close: 10 20 | exempt-issue-labels: 'dependencies' 21 | -------------------------------------------------------------------------------- /environments/scenario1/host2/scenario-3-servers.txt: -------------------------------------------------------------------------------- 1 | vlan: 171 2 | hostnames: spirit shasta zoar travis okeechobee pontchartrain redfish sinclair liberty elk sevuer peck 3 | usernames: mmiller dbrown bjohnson mjones mwilson msmith rjones mkhan dwilson jsingh aahmed cmiller 4 | passwords: heaven babyboy leanne sammie happy julian angela jorge cupcake nikita samantha bandit 5 | started nfs server... hostname: spirit username: mmiller password: heaven 6 | started vulnerable tomcat server... hostname: shasta username: dbrown password: babyboy 7 | tomcat server manager... username: tomcat password: babyboy 8 | started panubo/sshd server 1... hostname: zoar username: bjohnson password: leanne 9 | started maltyxx/sshd server... hostname: okeechobee username: mwilson password: happy 10 | started httpd server... hostname: redfish username: rjones password: angela 11 | started tomcat:9.0 server... hostname: liberty username: dwilson password: cupcake 12 | started gists/nfs-server server... hostname: peck username: cmiller password: bandit 13 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/UERANSIM/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:22.04 as builder 2 | LABEL maintainer="Charlie Lewis " 3 | ENV DEBIAN_FRONTEND noninteractive 4 | RUN apt-get update && apt-get install --no-install-recommends -yq \ 5 | build-essential \ 6 | ca-certificates \ 7 | cmake \ 8 | git \ 9 | g++ \ 10 | libsctp-dev \ 11 | make 12 | 13 | WORKDIR /src 14 | RUN git clone https://github.com/aligungr/UERANSIM -b v3.2.6 15 | WORKDIR /src/UERANSIM 16 | RUN make -j "$(nproc)" 17 | WORKDIR /usr/local/bin 18 | RUN cp /src/UERANSIM/build/* . 19 | 20 | FROM ubuntu:22.04 21 | ENV DEBIAN_FRONTEND noninteractive 22 | RUN apt-get update && apt-get install --no-install-recommends -yq \ 23 | ca-certificates \ 24 | iproute2 \ 25 | libsctp1 \ 26 | lksctp-tools \ 27 | tcpdump \ 28 | iputils-ping \ 29 | wget 30 | COPY --from=builder /usr/local /usr/local 31 | COPY scripts /scripts 32 | RUN ldd /usr/local/bin/nr-gnb 33 | RUN ldd /usr/local/bin/nr-ue 34 | ENTRYPOINT ["/bin/sh"] 35 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/open5gs/smf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/smf.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | smf: 15 | freeDiameter: /usr/local/etc/freeDiameter/smf.conf 16 | gtpc: 17 | addr: 18 | - 192.168.26.40 19 | #- ::1 20 | pfcp: 21 | - addr: 192.168.26.40 22 | #- addr: ::1 23 | pdn: 24 | - addr: 10.10.0.1/16 25 | apn: internet 26 | dev: ogstun 27 | - addr: 10.11.0.1/16 28 | apn: internet2 29 | dev: ogstun 30 | - addr: 10.12.0.1/16 31 | apn: internet3 32 | dev: ogstun2 33 | #- addr: cafe::1/64 34 | dns: 35 | - 8.8.8.8 36 | - 8.8.4.4 37 | #- 2001:4860:4860::8888 38 | #- 2001:4860:4860::8844 39 | 40 | upf: 41 | pfcp: 42 | - addr: 192.168.27.41 43 | apn: internet 44 | - addr: 192.168.27.42 45 | apn: [internet2, internet3] 46 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/open5gs/smf.yaml: -------------------------------------------------------------------------------- 1 | ### For reference, see `nextepc.conf` 2 | 3 | logger: 4 | file: /usr/local/var/log/open5gs/smf.log 5 | trace: 6 | app: 1 7 | diameter: 1 8 | gtpv2: 1 9 | gtp: 1 10 | 11 | parameter: 12 | no_ipv6: true 13 | 14 | smf: 15 | freeDiameter: /usr/local/etc/freeDiameter/smf.conf 16 | gtpc: 17 | addr: 18 | - 192.168.26.40 19 | #- ::1 20 | pfcp: 21 | - addr: 192.168.26.40 22 | #- addr: ::1 23 | pdn: 24 | - addr: 10.10.0.1/16 25 | apn: internet 26 | dev: ogstun 27 | - addr: 10.11.0.1/16 28 | apn: internet2 29 | dev: ogstun 30 | - addr: 10.12.0.1/16 31 | apn: internet3 32 | dev: ogstun2 33 | #- addr: cafe::1/64 34 | dns: 35 | - 8.8.8.8 36 | - 8.8.4.4 37 | #- 2001:4860:4860::8888 38 | #- 2001:4860:4860::8844 39 | 40 | upf: 41 | pfcp: 42 | - addr: 192.168.27.41 43 | apn: internet 44 | - addr: 192.168.27.42 45 | apn: [internet2, internet3] 46 | -------------------------------------------------------------------------------- /environments/scenario2/config/freeDiameter/cacert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICrDCCAhWgAwIBAgIUPoUbKXRTWQbrJYUIvyHdacCzw9cwDQYJKoZIhvcNAQEL 3 | BQAwaDEXMBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYD 4 | VQQIDAVTZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAM 5 | BgNVBAsMBVRlc3RzMB4XDTE5MTAyMDA2NDM1OFoXDTI5MTAxNzA2NDM1OFowaDEX 6 | MBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYDVQQIDAVT 7 | ZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAMBgNVBAsM 8 | BVRlc3RzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2sDnWMj9oXpIw+vcm 9 | 9k/WidMyhSbImINLe9YgibFfozoxZt51Hvi/aAxlqyq7akGtvpL8yVZD6j7o74z7 10 | 6dlnUFDGC4M0WGEkcxqf5NIWe0QplCsXkEOMYHrXLQisAuUk81DNcsXlZr74bmDI 11 | B0dUM0xJ2JrA5mx1LzTFHSesIwIDAQABo1MwUTAdBgNVHQ4EFgQUxTjcug/DKW49 12 | mQeW0IcS/bhIzDcwHwYDVR0jBBgwFoAUxTjcug/DKW49mQeW0IcS/bhIzDcwDwYD 13 | VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQB533IwIPOEE1w2RLBF9EKX 14 | UxaDnUYW05t9eZFLsUtOLFiR84xhCawGEWNtaLvoJE42E17qEjnX4+KGOc6/sa6q 15 | bLskf7BK7496dQrVY5DO9vdSpN1ep3j+1QKae23wYpjqt2UEU3QtIZpsDjUreYri 16 | YLVacMQydGgizNQrY3iCvQ== 17 | -----END CERTIFICATE----- 18 | -------------------------------------------------------------------------------- /environments/scenario2/docker-compose-5g-nsa-upn-ettus-enb.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway optiono with ipam 2 | version: '2' 3 | 4 | networks: 5 | upn: 6 | external: 7 | name: upn 8 | services: 9 | ettus-enb: 10 | image: srslte:latest 11 | container_name: ettus-enb 12 | depends_on: 13 | - mme 14 | cap_add: 15 | - SYS_NICE 16 | networks: 17 | upn: 18 | ipv4_address: 192.168.27.62 19 | volumes: 20 | - ./config_upn/srsLTE:/config:z 21 | entrypoint: 22 | - srsenb 23 | privileged: true 24 | devices: 25 | - "/dev/bus/usb:/dev/bus/usb" 26 | command: 27 | - /config/enb.conf 28 | - --enb.name=ettus-ENB01 29 | - --enb.n_prb=50 30 | - --enb.enb_id=0x62 31 | - --enb.mme_addr=192.168.26.20 32 | - --enb.gtp_bind_addr=192.168.27.62 33 | - --enb.s1c_bind_addr=192.168.27.62 34 | - --enb_files.rr_config=/config/ettus/rr.conf 35 | - --enb_files.sib_config=/config/sib.conf 36 | - --enb_files.drb_config=/config/drb.conf 37 | - --rf.device_name=UHD 38 | -------------------------------------------------------------------------------- /environments/scenario2/config_cpn/freeDiameter/cacert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICrDCCAhWgAwIBAgIUPoUbKXRTWQbrJYUIvyHdacCzw9cwDQYJKoZIhvcNAQEL 3 | BQAwaDEXMBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYD 4 | VQQIDAVTZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAM 5 | BgNVBAsMBVRlc3RzMB4XDTE5MTAyMDA2NDM1OFoXDTI5MTAxNzA2NDM1OFowaDEX 6 | MBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYDVQQIDAVT 7 | ZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAMBgNVBAsM 8 | BVRlc3RzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2sDnWMj9oXpIw+vcm 9 | 9k/WidMyhSbImINLe9YgibFfozoxZt51Hvi/aAxlqyq7akGtvpL8yVZD6j7o74z7 10 | 6dlnUFDGC4M0WGEkcxqf5NIWe0QplCsXkEOMYHrXLQisAuUk81DNcsXlZr74bmDI 11 | B0dUM0xJ2JrA5mx1LzTFHSesIwIDAQABo1MwUTAdBgNVHQ4EFgQUxTjcug/DKW49 12 | mQeW0IcS/bhIzDcwHwYDVR0jBBgwFoAUxTjcug/DKW49mQeW0IcS/bhIzDcwDwYD 13 | VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQB533IwIPOEE1w2RLBF9EKX 14 | UxaDnUYW05t9eZFLsUtOLFiR84xhCawGEWNtaLvoJE42E17qEjnX4+KGOc6/sa6q 15 | bLskf7BK7496dQrVY5DO9vdSpN1ep3j+1QKae23wYpjqt2UEU3QtIZpsDjUreYri 16 | YLVacMQydGgizNQrY3iCvQ== 17 | -----END CERTIFICATE----- 18 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/freeDiameter/cacert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICrDCCAhWgAwIBAgIUPoUbKXRTWQbrJYUIvyHdacCzw9cwDQYJKoZIhvcNAQEL 3 | BQAwaDEXMBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYD 4 | VQQIDAVTZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAM 5 | BgNVBAsMBVRlc3RzMB4XDTE5MTAyMDA2NDM1OFoXDTI5MTAxNzA2NDM1OFowaDEX 6 | MBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYDVQQIDAVT 7 | ZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAMBgNVBAsM 8 | BVRlc3RzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2sDnWMj9oXpIw+vcm 9 | 9k/WidMyhSbImINLe9YgibFfozoxZt51Hvi/aAxlqyq7akGtvpL8yVZD6j7o74z7 10 | 6dlnUFDGC4M0WGEkcxqf5NIWe0QplCsXkEOMYHrXLQisAuUk81DNcsXlZr74bmDI 11 | B0dUM0xJ2JrA5mx1LzTFHSesIwIDAQABo1MwUTAdBgNVHQ4EFgQUxTjcug/DKW49 12 | mQeW0IcS/bhIzDcwHwYDVR0jBBgwFoAUxTjcug/DKW49mQeW0IcS/bhIzDcwDwYD 13 | VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQB533IwIPOEE1w2RLBF9EKX 14 | UxaDnUYW05t9eZFLsUtOLFiR84xhCawGEWNtaLvoJE42E17qEjnX4+KGOc6/sa6q 15 | bLskf7BK7496dQrVY5DO9vdSpN1ep3j+1QKae23wYpjqt2UEU3QtIZpsDjUreYri 16 | YLVacMQydGgizNQrY3iCvQ== 17 | -----END CERTIFICATE----- 18 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_cpn/freeDiameter/cacert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICrDCCAhWgAwIBAgIUPoUbKXRTWQbrJYUIvyHdacCzw9cwDQYJKoZIhvcNAQEL 3 | BQAwaDEXMBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYD 4 | VQQIDAVTZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAM 5 | BgNVBAsMBVRlc3RzMB4XDTE5MTAyMDA2NDM1OFoXDTI5MTAxNzA2NDM1OFowaDEX 6 | MBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYDVQQIDAVT 7 | ZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAMBgNVBAsM 8 | BVRlc3RzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2sDnWMj9oXpIw+vcm 9 | 9k/WidMyhSbImINLe9YgibFfozoxZt51Hvi/aAxlqyq7akGtvpL8yVZD6j7o74z7 10 | 6dlnUFDGC4M0WGEkcxqf5NIWe0QplCsXkEOMYHrXLQisAuUk81DNcsXlZr74bmDI 11 | B0dUM0xJ2JrA5mx1LzTFHSesIwIDAQABo1MwUTAdBgNVHQ4EFgQUxTjcug/DKW49 12 | mQeW0IcS/bhIzDcwHwYDVR0jBBgwFoAUxTjcug/DKW49mQeW0IcS/bhIzDcwDwYD 13 | VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQB533IwIPOEE1w2RLBF9EKX 14 | UxaDnUYW05t9eZFLsUtOLFiR84xhCawGEWNtaLvoJE42E17qEjnX4+KGOc6/sa6q 15 | bLskf7BK7496dQrVY5DO9vdSpN1ep3j+1QKae23wYpjqt2UEU3QtIZpsDjUreYri 16 | YLVacMQydGgizNQrY3iCvQ== 17 | -----END CERTIFICATE----- 18 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/freeDiameter/cacert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICrDCCAhWgAwIBAgIUPoUbKXRTWQbrJYUIvyHdacCzw9cwDQYJKoZIhvcNAQEL 3 | BQAwaDEXMBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYD 4 | VQQIDAVTZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAM 5 | BgNVBAsMBVRlc3RzMB4XDTE5MTAyMDA2NDM1OFoXDTI5MTAxNzA2NDM1OFowaDEX 6 | MBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYDVQQIDAVT 7 | ZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAMBgNVBAsM 8 | BVRlc3RzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2sDnWMj9oXpIw+vcm 9 | 9k/WidMyhSbImINLe9YgibFfozoxZt51Hvi/aAxlqyq7akGtvpL8yVZD6j7o74z7 10 | 6dlnUFDGC4M0WGEkcxqf5NIWe0QplCsXkEOMYHrXLQisAuUk81DNcsXlZr74bmDI 11 | B0dUM0xJ2JrA5mx1LzTFHSesIwIDAQABo1MwUTAdBgNVHQ4EFgQUxTjcug/DKW49 12 | mQeW0IcS/bhIzDcwHwYDVR0jBBgwFoAUxTjcug/DKW49mQeW0IcS/bhIzDcwDwYD 13 | VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQB533IwIPOEE1w2RLBF9EKX 14 | UxaDnUYW05t9eZFLsUtOLFiR84xhCawGEWNtaLvoJE42E17qEjnX4+KGOc6/sa6q 15 | bLskf7BK7496dQrVY5DO9vdSpN1ep3j+1QKae23wYpjqt2UEU3QtIZpsDjUreYri 16 | YLVacMQydGgizNQrY3iCvQ== 17 | -----END CERTIFICATE----- 18 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_cpn/freeDiameter/cacert.pem: -------------------------------------------------------------------------------- 1 | -----BEGIN CERTIFICATE----- 2 | MIICrDCCAhWgAwIBAgIUPoUbKXRTWQbrJYUIvyHdacCzw9cwDQYJKoZIhvcNAQEL 3 | BQAwaDEXMBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYD 4 | VQQIDAVTZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAM 5 | BgNVBAsMBVRlc3RzMB4XDTE5MTAyMDA2NDM1OFoXDTI5MTAxNzA2NDM1OFowaDEX 6 | MBUGA1UEAwwOY2EubG9jYWxkb21haW4xCzAJBgNVBAYTAktPMQ4wDAYDVQQIDAVT 7 | ZW91bDEOMAwGA1UEBwwFTm93b24xEDAOBgNVBAoMB09wZW41R1MxDjAMBgNVBAsM 8 | BVRlc3RzMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC2sDnWMj9oXpIw+vcm 9 | 9k/WidMyhSbImINLe9YgibFfozoxZt51Hvi/aAxlqyq7akGtvpL8yVZD6j7o74z7 10 | 6dlnUFDGC4M0WGEkcxqf5NIWe0QplCsXkEOMYHrXLQisAuUk81DNcsXlZr74bmDI 11 | B0dUM0xJ2JrA5mx1LzTFHSesIwIDAQABo1MwUTAdBgNVHQ4EFgQUxTjcug/DKW49 12 | mQeW0IcS/bhIzDcwHwYDVR0jBBgwFoAUxTjcug/DKW49mQeW0IcS/bhIzDcwDwYD 13 | VR0TAQH/BAUwAwEB/zANBgkqhkiG9w0BAQsFAAOBgQB533IwIPOEE1w2RLBF9EKX 14 | UxaDnUYW05t9eZFLsUtOLFiR84xhCawGEWNtaLvoJE42E17qEjnX4+KGOc6/sa6q 15 | bLskf7BK7496dQrVY5DO9vdSpN1ep3j+1QKae23wYpjqt2UEU3QtIZpsDjUreYri 16 | YLVacMQydGgizNQrY3iCvQ== 17 | -----END CERTIFICATE----- 18 | -------------------------------------------------------------------------------- /environments/scenario2/docker-compose-5g-nsa-upn-bladerf-enb.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway optiono with ipam 2 | version: '2' 3 | 4 | networks: 5 | upn: 6 | external: 7 | name: upn 8 | services: 9 | bladerf-enb: 10 | image: srslte:latest 11 | container_name: bladerf-enb 12 | depends_on: 13 | - mme 14 | cap_add: 15 | - SYS_NICE 16 | networks: 17 | upn: 18 | ipv4_address: 192.168.27.61 19 | volumes: 20 | - ./config_upn/srsLTE:/config:z 21 | entrypoint: 22 | - srsenb 23 | privileged: true 24 | devices: 25 | - "/dev/bus/usb:/dev/bus/usb" 26 | command: 27 | - /config/enb.conf 28 | - --enb.name=bladerf-ENB01 29 | - --enb.n_prb=50 30 | - --enb.enb_id=0x61 31 | - --enb.mme_addr=192.168.26.20 32 | - --enb.gtp_bind_addr=192.168.27.61 33 | - --enb.s1c_bind_addr=192.168.27.61 34 | - --enb_files.rr_config=/config/bladeRF/rr.conf 35 | - --enb_files.sib_config=/config/sib.conf 36 | - --enb_files.drb_config=/config/drb.conf 37 | - --rf.device_name=bladeRF 38 | -------------------------------------------------------------------------------- /.github/workflows/pypi.yaml: -------------------------------------------------------------------------------- 1 | name: release 2 | 3 | on: 4 | push: 5 | branches: main 6 | tags: 'v*' 7 | 8 | jobs: 9 | release: 10 | 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 15 | with: 16 | fetch-depth: 0 17 | - name: Build core package 18 | id: build_core_package 19 | run: | 20 | sudo apt-get update && \ 21 | sudo apt-get install -yq --no-install-recommends python3-pip python3-dev python3-setuptools && \ 22 | pip3 install wheel build && \ 23 | cd blue && python3 -m build --sdist --wheel 24 | if: github.repository == 'iqtlabs/daedalus' && github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') 25 | - name: Publish package 26 | if: github.repository == 'iqtlabs/daedalus' && github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags') 27 | uses: pypa/gh-action-pypi-publish@master 28 | with: 29 | user: ${{ secrets.PYPI_USERNAME }} 30 | password: ${{ secrets.PYPI_TOKEN }} 31 | packages_dir: blue/dist 32 | -------------------------------------------------------------------------------- /blue/README.md: -------------------------------------------------------------------------------- 1 | # Blue Team 2 | The following directory has a series of tools that are used for defending and building out environments for running scenarios in. 3 | 4 | # 4G/5G Environment Creation Tool 5 | 6 | ## Dependencies 7 | - Linux with a recent kernel 8 | - Docker 9 | - python3 and pip3 10 | - uhd-host (`sudo apt-get install -y uhd-host`) 11 | 12 | ## Installation 13 | The main tool in this directory is called `daedalus` and can be installed with easily with pip: 14 | 15 | ``` 16 | pip3 install daedalus-5g 17 | ``` 18 | 19 | or locally: 20 | 21 | ``` 22 | git clone https://github.com/IQTLabs/Daedalus 23 | cd Daedalus/blue 24 | sudo python3 setup.py install 25 | ``` 26 | 27 | Once installed, you can simply execute `daedalus` and you will be prompted for the 4G/5G environments you'd like it to create. 28 | 29 | ** Note ** 30 | ``` 31 | AMD64 CPUs must support SSE4.1, AVX, AVX2, and FMA. If you don't have those, you can alternatively try starting daedalus with -b which will build the images locally and might work. 32 | 33 | ARM64 CPUs don't have those requirements, but you will need g++ when pip installing for grpc. 34 | ``` 35 | -------------------------------------------------------------------------------- /environments/scenario1/host2/scenario-6-servers.txt: -------------------------------------------------------------------------------- 1 | vlan: 253 2 | hostnames: stump geneva pyramid bantam ozarks superior holt redfish sawtooth emporia pontchartrain storm texoma 3 | usernames: mmartinez ajones msingh sdavis ljohnson bjones sali sjones sshah mjones ssharma ataylor rsmith 4 | passwords: linkinpark 444444 donald 456789 ihateyou iloveu kitty ashton cristian mexico 232323 aaron superstar 5 | started nfs server... hostname: stump username: mmartinez password: linkinpark 6 | started vulnerable tomcat server... hostname: geneva username: ajones password: 444444 7 | tomcat server manager... username: tomcat password: 444444 8 | started panubo/sshd server 1... hostname: pyramid username: msingh password: donald 9 | started maltyxx/sshd server... hostname: ozarks username: ljohnson password: ihateyou 10 | started httpd server... hostname: holt username: sali password: kitty 11 | started tomcat:9.0 server... hostname: sawtooth username: sshah password: cristian 12 | started tomcat:9.0 server 2... hostname: emporia username: mjones password: mexico 13 | started gists/nfs-server server... hostname: storm username: ataylor password: aaron 14 | -------------------------------------------------------------------------------- /environments/scenario1/host2/scenario-5-servers.txt: -------------------------------------------------------------------------------- 1 | vlan: 133 2 | hostnames: kissimmee degray cumberland rico meade harding emporia crater eagle elk ute hauser cypress 3 | usernames: bbrown rsharma awilliams jthomas sthomas amartinez jwalker twilliams mwilson jrodriguez aahmed kmiller smiller 4 | passwords: james iubire michelle tokiohotel jeremy letmein justin familia 999999999 susana shakira 212121 242424 5 | started nfs server... hostname: kissimmee username: bbrown password: james 6 | started vulnerable tomcat server... hostname: degray username: rsharma password: iubire 7 | tomcat server manager... username: tomcat password: iubire 8 | started panubo/sshd server 1... hostname: cumberland username: awilliams password: michelle 9 | started maltyxx/sshd server... hostname: meade username: sthomas password: jeremy 10 | started httpd server... hostname: emporia username: jwalker password: justin 11 | started tomcat:9.0 server... hostname: eagle username: mwilson password: 999999999 12 | started tomcat:9.0 server 2... hostname: elk username: jrodriguez password: susana 13 | started gists/nfs-server server... hostname: hauser username: kmiller password: 212121 14 | -------------------------------------------------------------------------------- /environments/scenario1/host2/scenario-4-servers.txt: -------------------------------------------------------------------------------- 1 | vlan: 193 2 | hostnames: sinclair sardis caddo bluestone merritt harding greenbo bluewater degray shasta emporia okeechobee crater 3 | usernames: bjones jdavis mmiller sahmed athomas kmiller psmith mtaylor psingh ssharma mmartinez jmiller smiller 4 | passwords: destiny september williams ashley1 tintin sweetpea hawaii musica alexander alberto 147852 jenny jackass 5 | started nfs server... hostname: sinclair username: bjones password: destiny 6 | started vulnerable tomcat server... hostname: sardis username: jdavis password: september 7 | tomcat server manager... username: tomcat password: september 8 | started panubo/sshd server 1... hostname: caddo username: mmiller password: williams 9 | started maltyxx/sshd server... hostname: merritt username: athomas password: tintin 10 | started httpd server... hostname: greenbo username: psmith password: hawaii 11 | started tomcat:9.0 server... hostname: degray username: psingh password: alexander 12 | started tomcat:9.0 server 2... hostname: shasta username: ssharma password: alberto 13 | started gists/nfs-server server... hostname: okeechobee username: jmiller password: jenny 14 | -------------------------------------------------------------------------------- /blue/tests/install_test.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export DEBIAN_FRONTEND=noninteractive && \ 4 | echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections && \ 5 | sudo apt-get update && \ 6 | sudo apt-get purge docker docker-engine docker.io containerd runc python3-yaml && \ 7 | sudo apt-get install apt-transport-https ca-certificates curl gnupg-agent software-properties-common && \ 8 | curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add - && \ 9 | sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" && \ 10 | sudo apt-get update && sudo apt-get install docker-ce docker-ce-cli containerd.io && \ 11 | sudo apt-get install nftables && sudo nft flush ruleset && sudo apt-get purge nftables && sudo apt-get --reinstall install iptables && \ 12 | sudo update-alternatives --set iptables /usr/sbin/iptables-legacy && \ 13 | sudo /etc/init.d/docker restart && \ 14 | sudo apt-get update && sudo apt-get install python3-setuptools python3-dev uhd-host && \ 15 | sudo python3 -m pip install -U pip && \ 16 | sudo python3 -m pip install "./blue[generate_fs,confuser,test]" 17 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/SDR/bladerf.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway option with ipam 2 | version: '2' 3 | 4 | networks: 5 | ran: 6 | external: 7 | name: ran 8 | services: 9 | bladerf-enb: 10 | image: iqtlabs/srsran:latest 11 | container_name: bladerf-enb 12 | depends_on: 13 | mme: 14 | condition: service_healthy 15 | cap_add: 16 | - SYS_NICE 17 | networks: 18 | ran: 19 | ipv4_address: 192.168.29.61 20 | volumes: 21 | - "../configs/srsRAN:/config:z" 22 | entrypoint: 23 | - srsenb 24 | devices: 25 | - "/dev/bus/usb:/dev/bus/usb" 26 | labels: 27 | - "daedalus.namespace=primary" 28 | command: 29 | - /config/enb.conf 30 | - --enb_files.rr_config=/config/blade-rr.conf 31 | - --enb.name=bladerf-ENB01 32 | - --enb.n_prb=${BLADERF_PRB} 33 | - --enb.enb_id=0x61 34 | - --enb.mme_addr=192.168.26.20 35 | - --enb.gtp_bind_addr=192.168.29.61 36 | - --enb.s1c_bind_addr=192.168.29.61 37 | - --rf.device_name=bladeRF 38 | - --rf.dl_earfcn=${BLADERF_EARFCN} 39 | - --rf.tx_gain=${BLADERF_TXGAIN} 40 | - --rf.rx_gain=${BLADERF_RXGAIN} 41 | -------------------------------------------------------------------------------- /environments/scenario2/config/srsLTE/drb.conf: -------------------------------------------------------------------------------- 1 | 2 | // All times are in ms. Use -1 for infinity, where available 3 | 4 | qci_config = ( 5 | 6 | { 7 | qci=7; 8 | pdcp_config = { 9 | discard_timer = 100; 10 | pdcp_sn_size = 12; 11 | } 12 | rlc_config = { 13 | ul_um = { 14 | sn_field_length = 10; 15 | }; 16 | dl_um = { 17 | sn_field_length = 10; 18 | t_reordering = 45; 19 | }; 20 | }; 21 | logical_channel_config = { 22 | priority = 13; 23 | prioritized_bit_rate = -1; 24 | bucket_size_duration = 100; 25 | log_chan_group = 2; 26 | }; 27 | }, 28 | { 29 | qci=9; 30 | pdcp_config = { 31 | discard_timer = -1; 32 | status_report_required = true; 33 | } 34 | rlc_config = { 35 | ul_am = { 36 | t_poll_retx = 120; 37 | poll_pdu = 64; 38 | poll_byte = 750; 39 | max_retx_thresh = 16; 40 | }; 41 | dl_am = { 42 | t_reordering = 50; 43 | t_status_prohibit = 50; 44 | }; 45 | }; 46 | logical_channel_config = { 47 | priority = 11; 48 | prioritized_bit_rate = -1; 49 | bucket_size_duration = 100; 50 | log_chan_group = 3; 51 | }; 52 | } 53 | 54 | ); 55 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/SDR/ettus.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway optiono with ipam 2 | version: '2' 3 | 4 | networks: 5 | ran: 6 | external: 7 | name: ran 8 | services: 9 | ettus-enb: 10 | image: iqtlabs/srsran:latest 11 | container_name: ettus-enb 12 | depends_on: 13 | mme: 14 | condition: service_healthy 15 | cap_add: 16 | - SYS_NICE 17 | - SYS_RAWIO 18 | networks: 19 | ran: 20 | ipv4_address: 192.168.29.62 21 | volumes: 22 | - "../configs/srsRAN:/config:z" 23 | entrypoint: 24 | - srsenb 25 | devices: 26 | - "/dev/bus/usb:/dev/bus/usb" 27 | labels: 28 | - "daedalus.namespace=primary" 29 | command: 30 | - /config/enb.conf 31 | - --enb_files.rr_config=/config/ettus-rr.conf 32 | - --enb.name=ettus-ENB01 33 | - --enb.n_prb=${ETTUS_PRB} 34 | - --enb.enb_id=0x62 35 | - --enb.mme_addr=192.168.26.20 36 | - --enb.gtp_bind_addr=192.168.29.62 37 | - --enb.s1c_bind_addr=192.168.29.62 38 | - --rf.device_name=UHD 39 | - --rf.dl_earfcn=${ETTUS_EARFCN} 40 | - --rf.tx_gain=${ETTUS_TXGAIN} 41 | - --rf.rx_gain=${ETTUS_RXGAIN} 42 | -------------------------------------------------------------------------------- /environments/scenario2/config_upn/srsLTE/drb.conf: -------------------------------------------------------------------------------- 1 | 2 | // All times are in ms. Use -1 for infinity, where available 3 | 4 | qci_config = ( 5 | 6 | { 7 | qci=7; 8 | pdcp_config = { 9 | discard_timer = 100; 10 | pdcp_sn_size = 12; 11 | } 12 | rlc_config = { 13 | ul_um = { 14 | sn_field_length = 10; 15 | }; 16 | dl_um = { 17 | sn_field_length = 10; 18 | t_reordering = 45; 19 | }; 20 | }; 21 | logical_channel_config = { 22 | priority = 13; 23 | prioritized_bit_rate = -1; 24 | bucket_size_duration = 100; 25 | log_chan_group = 2; 26 | }; 27 | }, 28 | { 29 | qci=9; 30 | pdcp_config = { 31 | discard_timer = -1; 32 | status_report_required = true; 33 | } 34 | rlc_config = { 35 | ul_am = { 36 | t_poll_retx = 120; 37 | poll_pdu = 64; 38 | poll_byte = 750; 39 | max_retx_thresh = 16; 40 | }; 41 | dl_am = { 42 | t_reordering = 50; 43 | t_status_prohibit = 50; 44 | }; 45 | }; 46 | logical_channel_config = { 47 | priority = 11; 48 | prioritized_bit_rate = -1; 49 | bucket_size_duration = 100; 50 | log_chan_group = 3; 51 | }; 52 | } 53 | 54 | ); 55 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config/srsLTE/drb.conf: -------------------------------------------------------------------------------- 1 | 2 | // All times are in ms. Use -1 for infinity, where available 3 | 4 | qci_config = ( 5 | 6 | { 7 | qci=7; 8 | pdcp_config = { 9 | discard_timer = 100; 10 | pdcp_sn_size = 12; 11 | } 12 | rlc_config = { 13 | ul_um = { 14 | sn_field_length = 10; 15 | }; 16 | dl_um = { 17 | sn_field_length = 10; 18 | t_reordering = 45; 19 | }; 20 | }; 21 | logical_channel_config = { 22 | priority = 13; 23 | prioritized_bit_rate = -1; 24 | bucket_size_duration = 100; 25 | log_chan_group = 2; 26 | }; 27 | }, 28 | { 29 | qci=9; 30 | pdcp_config = { 31 | discard_timer = -1; 32 | status_report_required = true; 33 | } 34 | rlc_config = { 35 | ul_am = { 36 | t_poll_retx = 120; 37 | poll_pdu = 64; 38 | poll_byte = 750; 39 | max_retx_thresh = 16; 40 | }; 41 | dl_am = { 42 | t_reordering = 50; 43 | t_status_prohibit = 50; 44 | }; 45 | }; 46 | logical_channel_config = { 47 | priority = 11; 48 | prioritized_bit_rate = -1; 49 | bucket_size_duration = 100; 50 | log_chan_group = 3; 51 | }; 52 | } 53 | 54 | ); 55 | -------------------------------------------------------------------------------- /environments/scenario2/host2/srsLTE/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:18.04 2 | MAINTAINER Charlie Lewis 3 | ENV DEBIAN_FRONTEND noninteractive 4 | RUN apt-get update && apt-get install --no-install-recommends -yq \ 5 | cmake \ 6 | libuhd-dev \ 7 | uhd-host \ 8 | libboost-program-options-dev \ 9 | #libvolk2-dev \ 10 | libfftw3-dev \ 11 | libmbedtls-dev \ 12 | libsctp-dev \ 13 | libconfig++-dev \ 14 | curl \ 15 | unzip \ 16 | libzmq3-dev \ 17 | build-essential \ 18 | git \ 19 | ca-certificates \ 20 | iproute2 \ 21 | libpcsclite-dev \ 22 | lksctp-tools \ 23 | wget \ 24 | tcpdump \ 25 | net-tools \ 26 | iputils-ping \ 27 | iperf \ 28 | iperf3 29 | WORKDIR /root 30 | COPY add_default_route.sh /root/add_default_route.sh 31 | COPY start_srsue.sh /root/start_srsue.sh 32 | 33 | # pin all srsLTE stack reproducibility 34 | RUN git clone https://github.com/srsLTE/srsLTE.git -b release_20_10_1 35 | 36 | RUN mkdir -p /root/srsLTE/build 37 | RUN mkdir /config 38 | WORKDIR /root/srsLTE/build 39 | RUN cmake ../ && make -j `nproc` && make install && ldconfig 40 | 41 | ENTRYPOINT ["/bin/sh"] 42 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config/srsLTE/drb.conf: -------------------------------------------------------------------------------- 1 | 2 | // All times are in ms. Use -1 for infinity, where available 3 | 4 | qci_config = ( 5 | 6 | { 7 | qci=7; 8 | pdcp_config = { 9 | discard_timer = 100; 10 | pdcp_sn_size = 12; 11 | } 12 | rlc_config = { 13 | ul_um = { 14 | sn_field_length = 10; 15 | }; 16 | dl_um = { 17 | sn_field_length = 10; 18 | t_reordering = 45; 19 | }; 20 | }; 21 | logical_channel_config = { 22 | priority = 13; 23 | prioritized_bit_rate = -1; 24 | bucket_size_duration = 100; 25 | log_chan_group = 2; 26 | }; 27 | }, 28 | { 29 | qci=9; 30 | pdcp_config = { 31 | discard_timer = -1; 32 | status_report_required = true; 33 | } 34 | rlc_config = { 35 | ul_am = { 36 | t_poll_retx = 120; 37 | poll_pdu = 64; 38 | poll_byte = 750; 39 | max_retx_thresh = 16; 40 | }; 41 | dl_am = { 42 | t_reordering = 50; 43 | t_status_prohibit = 50; 44 | }; 45 | }; 46 | logical_channel_config = { 47 | priority = 11; 48 | prioritized_bit_rate = -1; 49 | bucket_size_duration = 100; 50 | log_chan_group = 3; 51 | }; 52 | } 53 | 54 | ); 55 | -------------------------------------------------------------------------------- /environments/scenario2/host2/config_upn/srsLTE/drb.conf: -------------------------------------------------------------------------------- 1 | 2 | // All times are in ms. Use -1 for infinity, where available 3 | 4 | qci_config = ( 5 | 6 | { 7 | qci=7; 8 | pdcp_config = { 9 | discard_timer = 100; 10 | pdcp_sn_size = 12; 11 | } 12 | rlc_config = { 13 | ul_um = { 14 | sn_field_length = 10; 15 | }; 16 | dl_um = { 17 | sn_field_length = 10; 18 | t_reordering = 45; 19 | }; 20 | }; 21 | logical_channel_config = { 22 | priority = 13; 23 | prioritized_bit_rate = -1; 24 | bucket_size_duration = 100; 25 | log_chan_group = 2; 26 | }; 27 | }, 28 | { 29 | qci=9; 30 | pdcp_config = { 31 | discard_timer = -1; 32 | status_report_required = true; 33 | } 34 | rlc_config = { 35 | ul_am = { 36 | t_poll_retx = 120; 37 | poll_pdu = 64; 38 | poll_byte = 750; 39 | max_retx_thresh = 16; 40 | }; 41 | dl_am = { 42 | t_reordering = 50; 43 | t_status_prohibit = 50; 44 | }; 45 | }; 46 | logical_channel_config = { 47 | priority = 11; 48 | prioritized_bit_rate = -1; 49 | bucket_size_duration = 100; 50 | log_chan_group = 3; 51 | }; 52 | } 53 | 54 | ); 55 | -------------------------------------------------------------------------------- /environments/scenario2/host3/config_upn/srsLTE/drb.conf: -------------------------------------------------------------------------------- 1 | 2 | // All times are in ms. Use -1 for infinity, where available 3 | 4 | qci_config = ( 5 | 6 | { 7 | qci=7; 8 | pdcp_config = { 9 | discard_timer = 100; 10 | pdcp_sn_size = 12; 11 | } 12 | rlc_config = { 13 | ul_um = { 14 | sn_field_length = 10; 15 | }; 16 | dl_um = { 17 | sn_field_length = 10; 18 | t_reordering = 45; 19 | }; 20 | }; 21 | logical_channel_config = { 22 | priority = 13; 23 | prioritized_bit_rate = -1; 24 | bucket_size_duration = 100; 25 | log_chan_group = 2; 26 | }; 27 | }, 28 | { 29 | qci=9; 30 | pdcp_config = { 31 | discard_timer = -1; 32 | status_report_required = true; 33 | } 34 | rlc_config = { 35 | ul_am = { 36 | t_poll_retx = 120; 37 | poll_pdu = 64; 38 | poll_byte = 750; 39 | max_retx_thresh = 16; 40 | }; 41 | dl_am = { 42 | t_reordering = 50; 43 | t_status_prohibit = 50; 44 | }; 45 | }; 46 | logical_channel_config = { 47 | priority = 11; 48 | prioritized_bit_rate = -1; 49 | bucket_size_duration = 100; 50 | log_chan_group = 3; 51 | }; 52 | } 53 | 54 | ); 55 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/SIMULATED/srsran-gue.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway option with ipam 2 | version: '2' 3 | 4 | networks: 5 | rfn: 6 | external: 7 | name: rfn 8 | 9 | services: 10 | ue-nsa: 11 | image: iqtlabs/srsran:latest 12 | container_name: ue-nsa 13 | cap_add: 14 | - NET_ADMIN 15 | - SYS_NICE 16 | devices: 17 | - /dev/net/tun 18 | networks: 19 | rfn: 20 | ipv4_address: 192.168.28.81 21 | depends_on: 22 | - gnb-nsa 23 | volumes: 24 | - "../configs/srsRAN:/config:z" 25 | labels: 26 | - "daedalus.namespace=primary" 27 | entrypoint: 28 | - /scripts/start_srsue.sh 29 | command: 30 | - /config/ue.conf 31 | - --usim.imsi=001010000000001 32 | - --usim.k=c8eba87c1074edd06885cb0486718341 33 | - --usim.algo=milenage 34 | - --usim.opc=17b6c0157895bcaa1efc1cef55033f5f 35 | - --nas.apn=internet 36 | - --rf.device_args=tx_port0=tcp://*:5554,rx_port0=tcp://192.168.28.70:5555,tx_port1=tcp://*:5564,rx_port1=tcp://192.168.28.70:5565,id=gue,base_srate=23.04e6 37 | - --rrc.release=15 38 | - --rat.eutra.dl_earfcn=2850 39 | - --rat.nr.bands=3,78 40 | - --rat.nr.nof_carriers=1 41 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/SIMULATED/srsran-gnb.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway option with ipam 2 | version: '2' 3 | 4 | networks: 5 | ran: 6 | external: 7 | name: ran 8 | rfn: 9 | external: 10 | name: rfn 11 | services: 12 | gnb-nsa: 13 | image: iqtlabs/srsran:latest 14 | container_name: gnb-nsa 15 | depends_on: 16 | mme: 17 | condition: service_healthy 18 | cap_add: 19 | - SYS_NICE 20 | networks: 21 | rfn: 22 | ipv4_address: 192.168.28.70 23 | ran: 24 | ipv4_address: 192.168.29.70 25 | volumes: 26 | - "../configs/srsRAN:/config:z" 27 | labels: 28 | - "daedalus.namespace=primary" 29 | entrypoint: 30 | - /scripts/run_rfn_enb.sh 31 | command: 32 | - /config/enb.conf 33 | - --enb_files.rr_config=/config/virtual-nrr.conf 34 | - --enb.name=dummyENB01 35 | - --enb.enb_id=0x70 36 | - --enb.n_prb=50 37 | - --enb.mme_addr=192.168.26.20 38 | - --enb.gtp_bind_addr=192.168.29.70 39 | - --enb.s1c_bind_addr=192.168.29.70 40 | - --rf.device_name=zmq 41 | - --rf.device_args=tx_port0=tcp://*:5555,rx_port0=tcp://192.168.28.81:5554,tx_port1=tcp://*:5565,rx_port1=tcp://192.168.28.81:5564,id=gnb0,base_srate=23.04e6 42 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/open5gs/scripts/nrfhc.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | NRFSBI=192.168.26.61:7777 4 | ALLREG="AMF AUSF BSF NSSF PCF SMF UDM UDR" 5 | 6 | instances=$(curl -s --http2-prior-knowledge --header "User-Agent: NRF" "$NRFSBI"/nnrf-nfm/v1/nf-instances| jq -r "._links.items[].href") 7 | registered="" 8 | for instance in $instances ; do 9 | nfmeta=$(curl -s --http2-prior-knowledge --header "User-Agent: NRF" "$instance" |jq -r ".nfType,.nfStatus") 10 | # Read nftype and nfstatus into an array (from space delimited string). 11 | # We can't use the (VAR) format to array-ize due to shellcheck, requirements for quoting. 12 | read -r -d " " -a nfmeta <<< "${nfmeta}" 13 | nftype=${nfmeta[0]} 14 | nfstatus=${nfmeta[1]} 15 | if [ "$nfstatus" != "REGISTERED" ] ; then 16 | # this service not registered 17 | continue 18 | fi 19 | if [[ "$ALLREG" != *"$nftype"* ]]; then 20 | # this service not required 21 | continue 22 | fi 23 | echo "${nftype}": "${nfstatus}" 24 | registered="${nftype}\n${registered}" 25 | done 26 | registered=$(echo -e "${registered}"|sort|xargs) 27 | 28 | if [ "$registered" == "$ALLREG" ] ; then 29 | echo OK 30 | exit 0 31 | fi 32 | 33 | echo not all present: "${registered}" need "${ALLREG}" 34 | exit 1 35 | -------------------------------------------------------------------------------- /environments/scenario2/host3/srsLTE/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:20.04 2 | MAINTAINER Charlie Lewis 3 | ENV DEBIAN_FRONTEND noninteractive 4 | RUN apt-get update && apt-get install --no-install-recommends -yq \ 5 | cmake \ 6 | libuhd-dev \ 7 | uhd-host \ 8 | libboost-program-options-dev \ 9 | libvolk2-dev \ 10 | libfftw3-dev \ 11 | libmbedtls-dev \ 12 | libsctp-dev \ 13 | libconfig++-dev \ 14 | curl \ 15 | unzip \ 16 | libzmq3-dev \ 17 | build-essential \ 18 | git \ 19 | ca-certificates \ 20 | iproute2 \ 21 | libpcsclite-dev \ 22 | lksctp-tools \ 23 | wget \ 24 | tcpdump \ 25 | net-tools \ 26 | iputils-ping \ 27 | iperf \ 28 | iperf3 29 | WORKDIR /root 30 | COPY add_default_route.sh /root/add_default_route.sh 31 | COPY start_srsue.sh /root/start_srsue.sh 32 | 33 | # pin all srsLTE stack reproducibility 34 | RUN git clone https://github.com/srsLTE/srsLTE.git -b release_20_10_1 35 | COPY patch.txt patch.txt 36 | WORKDIR /root/srsLTE 37 | RUN patch -p1 < /root/patch.txt 38 | 39 | RUN mkdir -p /root/srsLTE/build 40 | RUN mkdir /config 41 | WORKDIR /root/srsLTE/build 42 | RUN cmake ../ && make -j `nproc` && make install && ldconfig 43 | 44 | ENTRYPOINT ["/bin/sh"] 45 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/SDR/ettus-gnb.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway optiono with ipam 2 | version: '2' 3 | 4 | networks: 5 | ran: 6 | external: 7 | name: ran 8 | services: 9 | ettus-enb-nsa: 10 | image: iqtlabs/srsran:latest 11 | container_name: ettus-enb-nsa 12 | depends_on: 13 | mme: 14 | condition: service_healthy 15 | cap_add: 16 | - SYS_NICE 17 | - SYS_RAWIO 18 | networks: 19 | ran: 20 | ipv4_address: 192.168.29.64 21 | volumes: 22 | - "../configs/srsRAN:/config:z" 23 | entrypoint: 24 | - srsenb 25 | devices: 26 | - "/dev/bus/usb:/dev/bus/usb" 27 | labels: 28 | - "daedalus.namespace=primary" 29 | command: 30 | - /config/enb.conf 31 | - --enb_files.rr_config=/config/ettus-nrr.conf 32 | - --enb.name=ettus-ENB-NSA01 33 | - --enb.n_prb=${ETTUS_PRB} 34 | - --enb.enb_id=0x64 35 | - --enb.mme_addr=192.168.26.20 36 | - --enb.gtp_bind_addr=192.168.29.64 37 | - --enb.s1c_bind_addr=192.168.29.64 38 | - --rf.device_name=UHD 39 | - --rf.device_args=device_args=type=b210,sampling_rate=11.52e6,lo_freq_offset_hz=11.52e6 40 | - --rf.dl_earfcn=${ETTUS_EARFCN} 41 | - --rf.tx_gain=${ETTUS_TXGAIN} 42 | - --rf.rx_gain=${ETTUS_RXGAIN} 43 | -------------------------------------------------------------------------------- /environments/scenario2/docker-compose-5g-nsa-upn-enb.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway optiono with ipam 2 | version: '2' 3 | 4 | networks: 5 | upn: 6 | external: 7 | name: upn 8 | rfn: 9 | external: 10 | name: rfn 11 | services: 12 | enb: 13 | image: srslte:latest 14 | container_name: enb 15 | depends_on: 16 | - mme 17 | cap_add: 18 | - SYS_NICE 19 | networks: 20 | upn: 21 | ipv4_address: 192.168.27.60 22 | rfn: 23 | ipv4_address: 192.168.28.60 24 | volumes: 25 | - ./config_upn/srsLTE:/config:z 26 | entrypoint: 27 | - srsenb 28 | command: 29 | - /config/enb.conf 30 | - --enb.name=dummyENB01 31 | - --enb.enb_id=0x60 32 | - --enb.n_prb=6 33 | - --enb.mme_addr=192.168.26.20 34 | - --enb.gtp_bind_addr=192.168.27.60 35 | - --enb.s1c_bind_addr=192.168.27.60 36 | - --enb_files.rr_config=/config/rr.conf 37 | - --enb_files.sib_config=/config/sib.conf 38 | - --enb_files.drb_config=/config/drb.conf 39 | - --rf.device_name=zmq 40 | - --rf.device_args=tx_port0=tcp://*:5555,rx_port0=tcp://192.168.28.61:5554,tx_port1=tcp://*:5565,rx_port1=tcp://192.168.28.62:5564,tx_port2=tcp://*:5575,rx_port2=tcp://192.168.28.63:5574,tx_port3=tcp://*:5585,rx_port3=tcp://192.168.28.64:5584,id=enb0,base_srate=1.92e6 41 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/SIMULATED/srsran-enb.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway option with ipam 2 | version: '2' 3 | 4 | networks: 5 | ran: 6 | external: 7 | name: ran 8 | rfn: 9 | external: 10 | name: rfn 11 | services: 12 | enb: 13 | image: iqtlabs/srsran:latest 14 | container_name: enb 15 | depends_on: 16 | mme: 17 | condition: service_healthy 18 | cap_add: 19 | - SYS_NICE 20 | networks: 21 | rfn: 22 | ipv4_address: 192.168.28.60 23 | ran: 24 | ipv4_address: 192.168.29.60 25 | volumes: 26 | - "../configs/srsRAN:/config:z" 27 | labels: 28 | - "daedalus.namespace=primary" 29 | entrypoint: 30 | - /scripts/run_rfn_enb.sh 31 | command: 32 | - /config/enb.conf 33 | - --enb_files.rr_config=/config/virtual-rr.conf 34 | - --enb.name=dummyENB01 35 | - --enb.enb_id=0x60 36 | - --enb.n_prb=6 37 | - --enb.mme_addr=192.168.26.20 38 | - --enb.gtp_bind_addr=192.168.29.60 39 | - --enb.s1c_bind_addr=192.168.29.60 40 | - --rf.device_name=zmq 41 | - --rf.device_args=tx_port0=tcp://*:5555,rx_port0=tcp://192.168.28.61:5554,tx_port1=tcp://*:5565,rx_port1=tcp://192.168.28.62:5564,tx_port2=tcp://*:5575,rx_port2=tcp://192.168.28.63:5574,tx_port3=tcp://*:5585,rx_port3=tcp://192.168.28.64:5584,id=enb0,base_srate=1.92e6 42 | -------------------------------------------------------------------------------- /environments/scenario2/host2/up.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | SCENARIO=$1 4 | echo "vlan: $VLAN" > scenario-"$SCENARIO"-cpn.txt 5 | 6 | cd dovesnap 7 | MIRROR_BRIDGE_OUT=enp4s0 MIRROR_BRIDGE_IN=enp3s0 FAUCETCONFRPC_IP=192.168.199.1 STACK_OFCONTROLLERS=tcp:192.168.199.1:6653,tcp:192.168.199.1:6654 docker-compose -f docker-compose.yml up -d --build 8 | cd .. 9 | 10 | docker network create -o ovs.bridge.dpid=0x600 -o ovs.bridge.mode=nat --subnet 192.168.26.0/24 --gateway 192.168.26.1 --ipam-opt com.docker.network.bridge.name=cpn -o ovs.bridge.nat_acl=protectcpn -o ovs.bridge.add_ports=VLAN26/1 -o ovs.bridge.vlan=26 -o ovs.bridge.controller=tcp:192.168.199.1:6653,tcp:192.168.199.1:6654 -o ovs.bridge.add_copro_ports=enp2s0/999 -o ovs.bridge.mtu=9000 --ipam-opt com.docker.network.driver.mtu=9000 --internal -d ovs cpn 11 | 12 | docker network create -o ovs.bridge.dpid=0x610 -o ovs.bridge.mode=flat -o ovs.bridge.add_ports=VLAN29/1 -o ovs.bridge.vlan=29 -o ovs.bridge.dhcp=true -o ovs.bridge.controller=tcp:192.168.199.1:6653,tcp:192.168.199.1:6654 -o ovs.bridge.add_copro_ports=enp2s0/999 --ipam-driver null --internal -d ovs desktops 13 | 14 | cd mongoloader && docker build -t mongoloader . && cd .. 15 | 16 | docker build -t open5gs . && docker-compose -f docker-compose-5g-nsa-cpn.yml up -d --build 17 | 18 | docker-compose -f docker-compose-5g-nsa-cpn.yml -f docker-compose-5g-nsa-upn.yml logs -f 19 | -------------------------------------------------------------------------------- /.github/workflows/secrets-scan.yml: -------------------------------------------------------------------------------- 1 | name: secrets 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | scan: 7 | runs-on: ubuntu-latest 8 | steps: 9 | - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 10 | - name: scan 11 | run: | 12 | export DEBIAN_FRONTEND=noninteractive && \ 13 | echo 'debconf debconf/frontend select Noninteractive' | sudo debconf-set-selections && \ 14 | sudo apt-get update && \ 15 | python3 -m pip install --upgrade pip && \ 16 | pip3 install whispers && \ 17 | mkdir /home/runner/reports/ && \ 18 | whispers --severity BLOCKER,CRITICAL -o /home/runner/reports/whispers.json -c ${GITHUB_WORKSPACE}/.github/workflows/config/whispers-config.yml ${GITHUB_WORKSPACE} && \ 19 | echo "::set-output name=found-count::$(wc -l /home/runner/reports/whispers.json | cut -d' ' -f1)" 20 | - name: Fail if found 21 | if: steps.scan.outputs.found-count != 0 22 | uses: actions/github-script@v7 23 | with: 24 | script: | 25 | echo {{steps.scan.outputs.found-count}} && \ 26 | core.setFailed('Secrets found. Please check the uploaded report') 27 | - name: Upload scan reports 28 | uses: actions/upload-artifact@v4.3.1 29 | if: failure() 30 | with: 31 | name: whispers-report 32 | path: /home/runner/reports/whispers.json -------------------------------------------------------------------------------- /blue/release/update_docker_compose.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env python3 2 | # update docker-compose files with a release version or latest. 3 | import json 4 | import sys 5 | import urllib.request 6 | from collections import OrderedDict 7 | 8 | import ruamel.yaml 9 | 10 | if len(sys.argv) != 2: 11 | print("supply release version or 'latest' as an argument") 12 | sys.exit(1) 13 | 14 | version = sys.argv[1] 15 | compose_files = ['../5G/daedalus/5G/core/core.yml', '../5G/daedalus/5G/core/ui.yml', '../5G/daedalus/5G/core/epc.yml', 16 | '../5G/daedalus/5G/core/upn.yml', '../5G/daedalus/5G/core/db.yml', '../5G/daedalus/5G/SIMULATED/ueransim-gnb.yml', 17 | '../5G/daedalus/5G/SIMULATED/ueransim-ue.yml', '../5G/daedalus/5G/SIMULATED/srsran-ue.yml', 18 | '../5G/daedalus/5G/SIMULATED/srsran-enb.yml', '../5G/daedalus/5G/SDR/ettus.yml', '../5G/daedalus/5G/SDR/bladerf.yml'] 19 | 20 | for compose_file in compose_files: 21 | # Broadly preserves formatting. 22 | yaml = ruamel.yaml.YAML() 23 | yaml.indent(mapping=2, sequence=2, offset=2) 24 | dc = ruamel.yaml.round_trip_load( 25 | open(compose_file).read(), preserve_quotes=True) 26 | for service, service_config in dc['services'].items(): 27 | image, _ = service_config['image'].split(':') 28 | if 'iqtlabs' in image: 29 | service_config['image'] = ':'.join((image, version)) 30 | yaml.dump(dc, open(compose_file, 'w')) 31 | -------------------------------------------------------------------------------- /environments/scenario2/host2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:20.04 2 | MAINTAINER Charlie Lewis 3 | ENV DEBIAN_FRONTEND noninteractive 4 | RUN apt-get update && \ 5 | apt-get install -y --no-install-recommends \ 6 | libmicrohttpd-dev \ 7 | libnghttp2-dev \ 8 | libcurl4-gnutls-dev \ 9 | python3-pip \ 10 | python3-setuptools \ 11 | python3-wheel \ 12 | ninja-build \ 13 | build-essential \ 14 | flex \ 15 | bison \ 16 | git \ 17 | libsctp-dev \ 18 | libgnutls28-dev \ 19 | libgcrypt-dev \ 20 | libssl-dev \ 21 | libidn11-dev \ 22 | libmongoc-dev \ 23 | libbson-dev \ 24 | libyaml-dev \ 25 | iproute2 \ 26 | ca-certificates \ 27 | netbase \ 28 | tshark \ 29 | iptables \ 30 | net-tools \ 31 | mongodb-clients \ 32 | curl \ 33 | gnupg \ 34 | pkg-config \ 35 | tcpdump \ 36 | iputils-ping \ 37 | lksctp-tools && \ 38 | apt-get clean 39 | RUN python3 -m pip install meson 40 | RUN git clone https://github.com/open5gs/open5gs.git -b v2.1.7 41 | WORKDIR /open5gs 42 | RUN meson build && ninja -C build install 43 | WORKDIR / 44 | 45 | RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - 46 | RUN apt-get -y install nodejs 47 | 48 | RUN cd /open5gs/webui && npm install && npm run build 49 | 50 | ENTRYPOINT ["/bin/sh"] 51 | -------------------------------------------------------------------------------- /environments/scenario2/host3/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:20.04 2 | MAINTAINER Charlie Lewis 3 | ENV DEBIAN_FRONTEND noninteractive 4 | RUN apt-get update && \ 5 | apt-get install -y --no-install-recommends \ 6 | libmicrohttpd-dev \ 7 | libnghttp2-dev \ 8 | libcurl4-gnutls-dev \ 9 | python3-pip \ 10 | python3-setuptools \ 11 | python3-wheel \ 12 | ninja-build \ 13 | build-essential \ 14 | flex \ 15 | bison \ 16 | git \ 17 | libsctp-dev \ 18 | libgnutls28-dev \ 19 | libgcrypt-dev \ 20 | libssl-dev \ 21 | libidn11-dev \ 22 | libmongoc-dev \ 23 | libbson-dev \ 24 | libyaml-dev \ 25 | iproute2 \ 26 | ca-certificates \ 27 | netbase \ 28 | tshark \ 29 | iptables \ 30 | net-tools \ 31 | mongodb-clients \ 32 | curl \ 33 | gnupg \ 34 | pkg-config \ 35 | tcpdump \ 36 | iputils-ping \ 37 | lksctp-tools && \ 38 | apt-get clean 39 | RUN python3 -m pip install meson 40 | RUN git clone https://github.com/open5gs/open5gs.git -b v2.1.7 41 | WORKDIR /open5gs 42 | RUN meson build && ninja -C build install 43 | WORKDIR / 44 | 45 | RUN curl -sL https://deb.nodesource.com/setup_10.x | bash - 46 | RUN apt-get -y install nodejs 47 | 48 | RUN cd /open5gs/webui && npm install && npm run build 49 | 50 | ENTRYPOINT ["/bin/sh"] 51 | -------------------------------------------------------------------------------- /blue/pyproject.toml: -------------------------------------------------------------------------------- 1 | [project] 2 | name = "daedalus-5g" 3 | version = "0.11.8" 4 | description = "A tool for creating 4G/5G environments both with SDRs and virtual simulation to run experiments in" 5 | authors = [ 6 | { name = "cglewis", email = "clewis@iqt.org" } 7 | ] 8 | license = { file = "LICENSE" } 9 | readme = "README.md" 10 | requires-python = ">=3.8" 11 | 12 | classifiers = [ 13 | "Development Status :: 2 - Pre-Alpha", 14 | "License :: OSI Approved :: Apache Software License", 15 | "Programming Language :: Python" 16 | ] 17 | # Requirements 18 | dependencies = [ 19 | "docker ==7.0.0", 20 | "dovesnap ==1.1.23", 21 | "plumbum ==1.8.2", 22 | "inquirer ==3.2.4", 23 | ] 24 | 25 | [project.optional-dependencies] 26 | test = [ 27 | "attrs==23.2.0", 28 | "codecov==2.1.13", 29 | "pylint==3.1.0", 30 | "pytype==2024.3.19", 31 | "pytest==8.1.1", 32 | "pytest-cov==5.0.0", 33 | "ruamel.yaml~=0.17" 34 | ] 35 | generate_fs = [ 36 | "essential_generators", 37 | "numpy" 38 | ] 39 | confuser = [ 40 | "fusepy" 41 | ] 42 | 43 | [project.scripts] 44 | daedalus = "daedalus.__main__:main" 45 | 46 | [build-system] 47 | requires = [ 48 | "setuptools >= 62.0.0", 49 | ] 50 | build-backend = "setuptools.build_meta" 51 | 52 | [tool.setuptools] 53 | packages = [ "daedalus" ] 54 | package-dir = {"daedalus" = "5G/daedalus"} 55 | include-package-data = true 56 | 57 | [tool.setuptools.package-data] 58 | daedalus = ["5G/*",] 59 | 60 | -------------------------------------------------------------------------------- /environments/scenario1/host2/hostnames.txt: -------------------------------------------------------------------------------- 1 | action 2 | enid 3 | marion 4 | sawtooth 5 | alturas 6 | erie 7 | meade 8 | seeley 9 | bantam 10 | fairfax 11 | merritt 12 | seminole 13 | baron 14 | fallriver 15 | michigan 16 | sevuer 17 | beaver 18 | fenton 19 | minnetonkas 20 | shasta 21 | beshear 22 | geneva 23 | mono 24 | sinclair 25 | bluestone 26 | george 27 | navajo 28 | spirit 29 | bluewater 30 | greenbo 31 | okeechobee 32 | storm 33 | burke 34 | greers 35 | ontario 36 | stump 37 | caddo 38 | greeson 39 | ozarks 40 | summer 41 | candlewood 42 | gull 43 | patoka 44 | sunapee 45 | cedar 46 | harding 47 | peck 48 | superior 49 | champlain 50 | harris 51 | perry 52 | sutton 53 | claytor 54 | hartwell 55 | placid 56 | tahoe 57 | como 58 | hauser 59 | pleasant 60 | texoma 61 | cowan 62 | heron 63 | pontchartrain 64 | travis 65 | crater 66 | higgins 67 | powell 68 | trinity 69 | crescent 70 | holt 71 | pyramid 72 | tule 73 | crystal 74 | horsehead 75 | redfish 76 | tupper 77 | cumberland 78 | houghton 79 | rend 80 | tygart 81 | cypress 82 | huron 83 | rico 84 | ute 85 | degray 86 | isabella 87 | rush 88 | verret 89 | delta 90 | kickapoo 91 | sabbatia 92 | walker 93 | donner 94 | kissimmee 95 | sabine 96 | walloon 97 | eagle 98 | leech 99 | sakakawea 100 | wheeler 101 | elk 102 | liberty 103 | salton 104 | wilson 105 | elwell 106 | locust 107 | sardis 108 | zoar 109 | emporia 110 | lurleen 111 | saugatuck 112 | -------------------------------------------------------------------------------- /environments/scenario1/host3/hostnames.txt: -------------------------------------------------------------------------------- 1 | action 2 | enid 3 | marion 4 | sawtooth 5 | alturas 6 | erie 7 | meade 8 | seeley 9 | bantam 10 | fairfax 11 | merritt 12 | seminole 13 | baron 14 | fallriver 15 | michigan 16 | sevuer 17 | beaver 18 | fenton 19 | minnetonkas 20 | shasta 21 | beshear 22 | geneva 23 | mono 24 | sinclair 25 | bluestone 26 | george 27 | navajo 28 | spirit 29 | bluewater 30 | greenbo 31 | okeechobee 32 | storm 33 | burke 34 | greers 35 | ontario 36 | stump 37 | caddo 38 | greeson 39 | ozarks 40 | summer 41 | candlewood 42 | gull 43 | patoka 44 | sunapee 45 | cedar 46 | harding 47 | peck 48 | superior 49 | champlain 50 | harris 51 | perry 52 | sutton 53 | claytor 54 | hartwell 55 | placid 56 | tahoe 57 | como 58 | hauser 59 | pleasant 60 | texoma 61 | cowan 62 | heron 63 | pontchartrain 64 | travis 65 | crater 66 | higgins 67 | powell 68 | trinity 69 | crescent 70 | holt 71 | pyramid 72 | tule 73 | crystal 74 | horsehead 75 | redfish 76 | tupper 77 | cumberland 78 | houghton 79 | rend 80 | tygart 81 | cypress 82 | huron 83 | rico 84 | ute 85 | degray 86 | isabella 87 | rush 88 | verret 89 | delta 90 | kickapoo 91 | sabbatia 92 | walker 93 | donner 94 | kissimmee 95 | sabine 96 | walloon 97 | eagle 98 | leech 99 | sakakawea 100 | wheeler 101 | elk 102 | liberty 103 | salton 104 | wilson 105 | elwell 106 | locust 107 | sardis 108 | zoar 109 | emporia 110 | lurleen 111 | saugatuck 112 | -------------------------------------------------------------------------------- /environments/scenario2/host3/hostnames.txt: -------------------------------------------------------------------------------- 1 | action 2 | enid 3 | marion 4 | sawtooth 5 | alturas 6 | erie 7 | meade 8 | seeley 9 | bantam 10 | fairfax 11 | merritt 12 | seminole 13 | baron 14 | fallriver 15 | michigan 16 | sevuer 17 | beaver 18 | fenton 19 | minnetonkas 20 | shasta 21 | beshear 22 | geneva 23 | mono 24 | sinclair 25 | bluestone 26 | george 27 | navajo 28 | spirit 29 | bluewater 30 | greenbo 31 | okeechobee 32 | storm 33 | burke 34 | greers 35 | ontario 36 | stump 37 | caddo 38 | greeson 39 | ozarks 40 | summer 41 | candlewood 42 | gull 43 | patoka 44 | sunapee 45 | cedar 46 | harding 47 | peck 48 | superior 49 | champlain 50 | harris 51 | perry 52 | sutton 53 | claytor 54 | hartwell 55 | placid 56 | tahoe 57 | como 58 | hauser 59 | pleasant 60 | texoma 61 | cowan 62 | heron 63 | pontchartrain 64 | travis 65 | crater 66 | higgins 67 | powell 68 | trinity 69 | crescent 70 | holt 71 | pyramid 72 | tule 73 | crystal 74 | horsehead 75 | redfish 76 | tupper 77 | cumberland 78 | houghton 79 | rend 80 | tygart 81 | cypress 82 | huron 83 | rico 84 | ute 85 | degray 86 | isabella 87 | rush 88 | verret 89 | delta 90 | kickapoo 91 | sabbatia 92 | walker 93 | donner 94 | kissimmee 95 | sabine 96 | walloon 97 | eagle 98 | leech 99 | sakakawea 100 | wheeler 101 | elk 102 | liberty 103 | salton 104 | wilson 105 | elwell 106 | locust 107 | sardis 108 | zoar 109 | emporia 110 | lurleen 111 | saugatuck 112 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/core/upn.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway option with ipam 2 | version: '2' 3 | 4 | networks: 5 | upn: 6 | external: 7 | name: upn 8 | 9 | services: 10 | sgwu: 11 | image: iqtlabs/open5gs:latest 12 | container_name: sgwu 13 | hostname: sgwu 14 | depends_on: 15 | smf: 16 | condition: service_started 17 | entrypoint: 18 | - /usr/local/bin/open5gs-sgwud 19 | command: 20 | - -c 21 | - /usr/local/etc/slice.yaml 22 | volumes: 23 | - "../configs:/usr/local/etc:z" 24 | networks: 25 | upn: 26 | ipv4_address: 192.168.27.31 27 | labels: 28 | - "dovesnap.faucet.mirror=true" 29 | - "daedalus.namespace=primary" 30 | upf: 31 | image: iqtlabs/open5gs:latest 32 | container_name: upf 33 | hostname: upf 34 | depends_on: 35 | sgwu: 36 | condition: service_started 37 | command: 38 | - "/scripts/run_upf.sh" 39 | - "10.10.0.1/16" 40 | - "10.11.0.1/16" 41 | - "10.12.0.1/16" 42 | volumes: 43 | - "../configs:/usr/local/etc:z" 44 | cap_add: 45 | - NET_ADMIN 46 | - SYS_NICE 47 | devices: 48 | - /dev/net/tun 49 | sysctls: 50 | - net.ipv4.conf.all.send_redirects=0 51 | - net.ipv4.conf.default.send_redirects=0 52 | networks: 53 | upn: 54 | ipv4_address: 192.168.27.41 55 | labels: 56 | - "dovesnap.faucet.mirror=true" 57 | - "daedalus.namespace=primary" 58 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/configs/srsRAN/virtual-rr.conf: -------------------------------------------------------------------------------- 1 | @include "/config/rr.conf" 2 | 3 | cell_list = 4 | ( 5 | { 6 | rf_port = 0; 7 | cell_id = 0x01; 8 | tac = 0x0001; 9 | pci = 1; 10 | root_seq_idx = 204; 11 | dl_earfcn = 2850; 12 | ho_active = false; 13 | 14 | // CA cells 15 | #scell_list = ( 16 | # {cell_id = 0x02; cross_carrier_scheduling = false; scheduling_cell_id = 0x01; ul_allowed = true} 17 | #) 18 | }, 19 | { 20 | rf_port = 1; 21 | cell_id = 0x02; 22 | tac = 0x0001; 23 | pci = 4; 24 | root_seq_idx = 205; 25 | dl_earfcn = 3050; 26 | ho_active = false; 27 | 28 | // CA cells 29 | # scell_list = ( 30 | # {cell_id = 0x01; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true} 31 | # ) 32 | }, 33 | { 34 | rf_port = 2; 35 | cell_id = 0x03; 36 | tac = 0x0001; 37 | pci = 7; 38 | root_seq_idx = 206; 39 | dl_earfcn = 3250; 40 | ho_active = false; 41 | 42 | // CA cells 43 | # scell_list = ( 44 | # {cell_id = 0x01; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true} 45 | # ) 46 | }, 47 | { 48 | rf_port = 3; 49 | cell_id = 0x04; 50 | tac = 0x0001; 51 | pci = 10; 52 | root_seq_idx = 207; 53 | dl_earfcn = 3450; 54 | 55 | // CA cells 56 | # scell_list = ( 57 | # {cell_id = 0x01; cross_carrier_scheduling = false; scheduling_cell_id = 0x02; ul_allowed = true} 58 | # ) 59 | } 60 | ); 61 | -------------------------------------------------------------------------------- /environments/scenario2/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM ubuntu:20.04 2 | MAINTAINER Charlie Lewis 3 | ENV DEBIAN_FRONTEND noninteractive 4 | RUN apt-get update && \ 5 | apt-get install -y --no-install-recommends \ 6 | libmicrohttpd-dev \ 7 | libnghttp2-dev \ 8 | libcurl4-gnutls-dev \ 9 | python3-pip \ 10 | python3-setuptools \ 11 | python3-wheel \ 12 | ninja-build \ 13 | build-essential \ 14 | flex \ 15 | bison \ 16 | git \ 17 | libsctp-dev \ 18 | libgnutls28-dev \ 19 | libgcrypt-dev \ 20 | libssl-dev \ 21 | libidn11-dev \ 22 | libmongoc-dev \ 23 | libbson-dev \ 24 | libyaml-dev \ 25 | iproute2 \ 26 | ca-certificates \ 27 | netbase \ 28 | tshark \ 29 | iptables \ 30 | net-tools \ 31 | mongodb-clients \ 32 | curl \ 33 | gnupg \ 34 | pkg-config \ 35 | tcpdump \ 36 | iputils-ping \ 37 | lksctp-tools && \ 38 | apt-get clean 39 | RUN python3 -m pip install meson 40 | RUN curl -sL https://deb.nodesource.com/setup_14.x | bash - 41 | RUN apt-get -y install nodejs 42 | 43 | RUN git clone https://github.com/open5gs/open5gs.git -b v2.2.9 44 | WORKDIR /open5gs 45 | RUN meson build && ninja -C build install 46 | RUN ldconfig 47 | WORKDIR /open5gs/webui 48 | RUN npm install && npm run build 49 | RUN ln -s /usr/local/lib/*/freeDiameter /freeDiameter 50 | 51 | ENTRYPOINT ["/bin/sh"] 52 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/configs/srsRAN/rr.conf: -------------------------------------------------------------------------------- 1 | mac_cnfg = 2 | { 3 | phr_cnfg = 4 | { 5 | dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY 6 | periodic_phr_timer = 50; 7 | prohibit_phr_timer = 0; 8 | }; 9 | ulsch_cnfg = 10 | { 11 | max_harq_tx = 4; 12 | periodic_bsr_timer = 20; // in ms 13 | retx_bsr_timer = 320; // in ms 14 | }; 15 | 16 | time_alignment_timer = -1; // -1 is infinity 17 | }; 18 | 19 | phy_cnfg = 20 | { 21 | phich_cnfg = 22 | { 23 | duration = "Normal"; 24 | resources = "1/6"; 25 | }; 26 | 27 | pusch_cnfg_ded = 28 | { 29 | beta_offset_ack_idx = 6; 30 | beta_offset_ri_idx = 6; 31 | beta_offset_cqi_idx = 6; 32 | }; 33 | 34 | // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. 35 | sched_request_cnfg = 36 | { 37 | dsr_trans_max = 64; 38 | period = 20; // in ms 39 | //subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all) 40 | nof_prb = 1; // number of PRBs on each extreme used for SR (total prb is twice this number) 41 | }; 42 | cqi_report_cnfg = 43 | { 44 | mode = "periodic"; 45 | simultaneousAckCQI = true; 46 | period = 40; // in ms 47 | //subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all) 48 | nof_prb = 1; 49 | m_ri = 8; // RI period in CQI period 50 | }; 51 | }; 52 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/configs/open5gs/smf.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | ### For reference, see `nextepc.conf` 3 | 4 | logger: 5 | file: /usr/local/var/log/open5gs/smf.log 6 | trace: 7 | app: 1 8 | diameter: 1 9 | gtpv2: 1 10 | gtp: 1 11 | 12 | sbi: 13 | server: 14 | no_tls: true 15 | client: 16 | no_tls: true 17 | 18 | smf: 19 | freeDiameter: 20 | identity: smf.localdomain 21 | realm: localdomain 22 | listen_on: 192.168.26.40 23 | no_fwd: true 24 | load_extension: 25 | - module: /freeDiameter/dbg_msg_dumps.fdx 26 | conf: 0x8888 27 | - module: /freeDiameter/dict_rfc5777.fdx 28 | - module: /freeDiameter/dict_mip6i.fdx 29 | - module: /freeDiameter/dict_nasreq.fdx 30 | - module: /freeDiameter/dict_nas_mipv6.fdx 31 | - module: /freeDiameter/dict_dcca.fdx 32 | - module: /freeDiameter/dict_dcca_3gpp.fdx 33 | connect: 34 | - identity: pcrf.localdomain 35 | addr: 192.168.26.50 36 | gtpc: 37 | - addr: 192.168.26.40 38 | gtpu: 39 | - addr: 192.168.26.40 40 | pfcp: 41 | - addr: 192.168.26.40 42 | subnet: 43 | - addr: 10.10.0.1/16 44 | apn: internet 45 | dev: ogstap 46 | - addr: 10.11.0.1/16 47 | apn: internet2 48 | dev: ogstap2 49 | - addr: 10.12.0.1/16 50 | apn: iot.nb 51 | dev: ogstap3 52 | - addr: 10.50.0.1/16 # FALLBACK SUBNET 53 | dns: 54 | - 8.8.8.8 55 | - 8.8.4.4 56 | 57 | upf: 58 | pfcp: 59 | - addr: 192.168.27.41 60 | apn: [internet, internet2, iot.nb] 61 | -------------------------------------------------------------------------------- /environments/scenario2/host3/dba/Dockerfile: -------------------------------------------------------------------------------- 1 | FROM dorowu/ubuntu-desktop-lxde-vnc 2 | RUN apt-get update && apt-get install -y mongodb 3 | RUN mkdir -p /data/db 4 | COPY ssh_server_fork.patch /ssh_server_fork.patch 5 | COPY supervisord.conf /etc/supervisor/conf.d/supervisord.conf 6 | COPY ssh_host_dsa_key /etc/ssh/ssh_host_dsa_key 7 | COPY ssh_host_dsa_key.pub /etc/ssh/ssh_host_dsa_key.pub 8 | COPY ssh_host_rsa_key /etc/ssh/ssh_host_rsa_key 9 | COPY ssh_host_rsa_key.pub /etc/ssh/ssh_host_rsa_key.pub 10 | COPY ssh_host_ecdsa_key /etc/ssh/ssh_host_ecdsa_key 11 | COPY ssh_host_ecdsa_key.pub /etc/ssh/ssh_host_ecdsa_key.pub 12 | COPY imsi1.json /root/imsi1.json 13 | 14 | RUN set -ex \ 15 | && BUILDDEP="gcc g++ make pkg-config cmake xz-utils patch" \ 16 | && apt-get update \ 17 | && apt-get install --no-install-recommends -y \ 18 | ca-certificates \ 19 | wget \ 20 | libc6-dev \ 21 | zlib1g-dev \ 22 | libgcrypt20-dev \ 23 | libgpg-error-dev \ 24 | $BUILDDEP \ 25 | && wget -qO- https://www.libssh.org/files/0.8/libssh-0.8.1.tar.xz \ 26 | | xz -c -d | tar x -C /usr/src --strip-components=1 \ 27 | && mkdir -p /usr/src/build \ 28 | && patch /usr/src/examples/ssh_server_fork.c < /ssh_server_fork.patch \ 29 | && cd /usr/src/build \ 30 | && cmake \ 31 | -DCMAKE_INSTALL_PREFIX=/usr \ 32 | -DWITH_SERVER=ON \ 33 | -DWITH_STATIC_LIB=ON \ 34 | -DWITH_GSSAPI=ON \ 35 | -DWITH_GCRYPT=ON \ 36 | -DWITH_SFTP=ON \ 37 | -DWITH_THREADS=ON \ 38 | .. \ 39 | && make && make install \ 40 | && apt-get purge -y --auto-remove $BUILDDEP 41 | -------------------------------------------------------------------------------- /.github/workflows/docker-srsran.yaml: -------------------------------------------------------------------------------- 1 | name: buildx-srsran 2 | 3 | on: 4 | push: 5 | branches: main 6 | tags: 'v*' 7 | 8 | jobs: 9 | srsran: 10 | 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 15 | with: 16 | fetch-depth: 0 17 | - name: Get the version 18 | id: get_version 19 | run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3) 20 | - name: Change for main 21 | id: change_version 22 | run: if [ "${{ steps.get_version.outputs.VERSION }}" == "main" ]; then echo ::set-output name=VERSION::latest; else echo ::set-output name=VERSION::${{ steps.get_version.outputs.VERSION }}; fi 23 | - name: Set up qemu 24 | uses: docker/setup-qemu-action@v3 25 | with: 26 | platforms: all 27 | - name: Set up Docker Buildx 28 | id: buildx 29 | uses: docker/setup-buildx-action@v3 30 | with: 31 | version: latest 32 | - name: Docker Login 33 | env: 34 | DOCKER_PASSWORD: ${{ secrets.DOCKER_TOKEN }} 35 | run: | 36 | echo "${DOCKER_PASSWORD}" | docker login --username "${{ secrets.DOCKER_USERNAME }}" --password-stdin 37 | if: github.repository == 'iqtlabs/daedalus' && github.event_name == 'push' 38 | - name: Build and push 39 | uses: docker/build-push-action@v5 40 | with: 41 | context: blue/5G/daedalus/5G/srsRAN 42 | platforms: linux/amd64,linux/arm64 43 | push: true 44 | tags: iqtlabs/srsran:${{ steps.change_version.outputs.VERSION }} 45 | if: github.repository == 'iqtlabs/daedalus' && github.event_name == 'push' 46 | -------------------------------------------------------------------------------- /.github/workflows/docker-open5gs.yaml: -------------------------------------------------------------------------------- 1 | name: buildx-open5gs 2 | 3 | on: 4 | push: 5 | branches: main 6 | tags: 'v*' 7 | 8 | jobs: 9 | open5gs: 10 | 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 15 | with: 16 | fetch-depth: 0 17 | - name: Get the version 18 | id: get_version 19 | run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3) 20 | - name: Change for main 21 | id: change_version 22 | run: if [ "${{ steps.get_version.outputs.VERSION }}" == "main" ]; then echo ::set-output name=VERSION::latest; else echo ::set-output name=VERSION::${{ steps.get_version.outputs.VERSION }}; fi 23 | - name: Set up qemu 24 | uses: docker/setup-qemu-action@v3 25 | with: 26 | platforms: all 27 | - name: Set up Docker Buildx 28 | id: buildx 29 | uses: docker/setup-buildx-action@v3 30 | with: 31 | version: latest 32 | - name: Docker Login 33 | env: 34 | DOCKER_PASSWORD: ${{ secrets.DOCKER_TOKEN }} 35 | run: | 36 | echo "${DOCKER_PASSWORD}" | docker login --username "${{ secrets.DOCKER_USERNAME }}" --password-stdin 37 | if: github.repository == 'iqtlabs/daedalus' && github.event_name == 'push' 38 | 39 | - name: Build and push platforms 40 | uses: docker/build-push-action@v5 41 | with: 42 | context: blue/5G/daedalus/5G/open5gs 43 | platforms: linux/amd64,linux/arm64 44 | push: true 45 | tags: iqtlabs/open5gs:${{ steps.change_version.outputs.VERSION }} 46 | if: github.repository == 'iqtlabs/daedalus' && github.event_name == 'push' 47 | -------------------------------------------------------------------------------- /.github/workflows/docker-ueransim.yaml: -------------------------------------------------------------------------------- 1 | name: buildx-ueransim 2 | 3 | on: 4 | push: 5 | branches: main 6 | tags: 'v*' 7 | 8 | jobs: 9 | ueransim: 10 | 11 | runs-on: ubuntu-latest 12 | 13 | steps: 14 | - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4 15 | with: 16 | fetch-depth: 0 17 | - name: Get the version 18 | id: get_version 19 | run: echo ::set-output name=VERSION::$(echo $GITHUB_REF | cut -d / -f 3) 20 | - name: Change for main 21 | id: change_version 22 | run: if [ "${{ steps.get_version.outputs.VERSION }}" == "main" ]; then echo ::set-output name=VERSION::latest; else echo ::set-output name=VERSION::${{ steps.get_version.outputs.VERSION }}; fi 23 | - name: Set up qemu 24 | uses: docker/setup-qemu-action@v3 25 | with: 26 | platforms: all 27 | - name: Set up Docker Buildx 28 | id: buildx 29 | uses: docker/setup-buildx-action@v3 30 | with: 31 | version: latest 32 | - name: Docker Login 33 | env: 34 | DOCKER_PASSWORD: ${{ secrets.DOCKER_TOKEN }} 35 | run: | 36 | echo "${DOCKER_PASSWORD}" | docker login --username "${{ secrets.DOCKER_USERNAME }}" --password-stdin 37 | if: github.repository == 'iqtlabs/daedalus' && github.event_name == 'push' 38 | - name: Build and push platforms 39 | uses: docker/build-push-action@v5 40 | with: 41 | context: blue/5G/daedalus/5G/UERANSIM 42 | platforms: linux/amd64,linux/arm64 43 | push: true 44 | tags: iqtlabs/ueransim:${{ steps.change_version.outputs.VERSION }} 45 | if: github.repository == 'iqtlabs/daedalus' && github.event_name == 'push' 46 | -------------------------------------------------------------------------------- /environments/scenario1/host2/tomcat_vuln_server/README.zh-cn.md: -------------------------------------------------------------------------------- 1 | # Tomcat7+ 弱口令 && 后台getshell漏洞 2 | 3 | Tomcat版本:8.0 4 | 5 | ## 环境说明 6 | 7 | Tomcat支持在后台部署war文件,可以直接将webshell部署到web目录下。其中,欲访问后台,需要对应用户有相应权限。 8 | 9 | Tomcat7+权限分为: 10 | 11 | - manager(后台管理) 12 | - manager-gui 拥有html页面权限 13 | - manager-status 拥有查看status的权限 14 | - manager-script 拥有text接口的权限,和status权限 15 | - manager-jmx 拥有jmx权限,和status权限 16 | - host-manager(虚拟主机管理) 17 | - admin-gui 拥有html页面权限 18 | - admin-script 拥有text接口权限 19 | 20 | 这些权限的究竟有什么作用,详情阅读 http://tomcat.apache.org/tomcat-8.5-doc/manager-howto.html 21 | 22 | 在`conf/tomcat-users.xml`文件中配置用户的权限: 23 | 24 | ```xml 25 | 26 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | ``` 41 | 42 | 可见,用户tomcat拥有上述所有权限,密码是`tomcat`。 43 | 44 | 正常安装的情况下,tomcat8中默认没有任何用户,且manager页面只允许本地IP访问。只有管理员手工修改了这些属性的情况下,才可以进行攻击。 45 | 46 | ## 漏洞测试 47 | 48 | 无需编译,直接启动整个环境: 49 | 50 | ``` 51 | docker-compose up -d 52 | ``` 53 | 54 | 打开tomcat管理页面`http://your-ip:8080/manager/html`,输入弱密码`tomcat:tomcat`,即可访问后台: 55 | 56 | ![](1.png) 57 | 58 | 上传war包即可直接getshell。 59 | -------------------------------------------------------------------------------- /environments/scenario2/config_upn/srsLTE/ettus/rr.conf: -------------------------------------------------------------------------------- 1 | mac_cnfg = 2 | { 3 | phr_cnfg = 4 | { 5 | dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY 6 | periodic_phr_timer = 50; 7 | prohibit_phr_timer = 0; 8 | }; 9 | ulsch_cnfg = 10 | { 11 | max_harq_tx = 4; 12 | periodic_bsr_timer = 20; // in ms 13 | retx_bsr_timer = 320; // in ms 14 | }; 15 | 16 | time_alignment_timer = -1; // -1 is infinity 17 | }; 18 | 19 | phy_cnfg = 20 | { 21 | phich_cnfg = 22 | { 23 | duration = "Normal"; 24 | resources = "1/6"; 25 | }; 26 | 27 | pusch_cnfg_ded = 28 | { 29 | beta_offset_ack_idx = 6; 30 | beta_offset_ri_idx = 6; 31 | beta_offset_cqi_idx = 6; 32 | }; 33 | 34 | // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. 35 | sched_request_cnfg = 36 | { 37 | dsr_trans_max = 64; 38 | period = 20; // in ms 39 | //subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all) 40 | nof_prb = 1; // number of PRBs on each extreme used for SR (total prb is twice this number) 41 | }; 42 | cqi_report_cnfg = 43 | { 44 | mode = "periodic"; 45 | simultaneousAckCQI = true; 46 | period = 40; // in ms 47 | //subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all) 48 | nof_prb = 1; 49 | m_ri = 8; // RI period in CQI period 50 | }; 51 | }; 52 | 53 | cell_list = 54 | ( 55 | { 56 | rf_port = 0; 57 | cell_id = 0x01; 58 | tac = 0x0001; 59 | pci = 1; 60 | root_seq_idx = 204; 61 | dl_earfcn = 900; 62 | } 63 | ); 64 | -------------------------------------------------------------------------------- /environments/scenario2/config_upn/srsLTE/bladeRF/rr.conf: -------------------------------------------------------------------------------- 1 | mac_cnfg = 2 | { 3 | phr_cnfg = 4 | { 5 | dl_pathloss_change = "dB3"; // Valid: 1, 3, 6 or INFINITY 6 | periodic_phr_timer = 50; 7 | prohibit_phr_timer = 0; 8 | }; 9 | ulsch_cnfg = 10 | { 11 | max_harq_tx = 4; 12 | periodic_bsr_timer = 20; // in ms 13 | retx_bsr_timer = 320; // in ms 14 | }; 15 | 16 | time_alignment_timer = -1; // -1 is infinity 17 | }; 18 | 19 | phy_cnfg = 20 | { 21 | phich_cnfg = 22 | { 23 | duration = "Normal"; 24 | resources = "1/6"; 25 | }; 26 | 27 | pusch_cnfg_ded = 28 | { 29 | beta_offset_ack_idx = 6; 30 | beta_offset_ri_idx = 6; 31 | beta_offset_cqi_idx = 6; 32 | }; 33 | 34 | // PUCCH-SR resources are scheduled on time-frequeny domain first, then multiplexed in the same resource. 35 | sched_request_cnfg = 36 | { 37 | dsr_trans_max = 64; 38 | period = 20; // in ms 39 | //subframe = [1, 11]; // Optional vector of subframe indices allowed for SR transmissions (default uses all) 40 | nof_prb = 1; // number of PRBs on each extreme used for SR (total prb is twice this number) 41 | }; 42 | cqi_report_cnfg = 43 | { 44 | mode = "periodic"; 45 | simultaneousAckCQI = true; 46 | period = 40; // in ms 47 | //subframe = [0, 10, 20, 30]; // Optional vector of subframe indices every period where CQI resources will be allocated (default uses all) 48 | nof_prb = 1; 49 | m_ri = 8; // RI period in CQI period 50 | }; 51 | }; 52 | 53 | cell_list = 54 | ( 55 | { 56 | rf_port = 0; 57 | cell_id = 0x01; 58 | tac = 0x0001; 59 | pci = 1; 60 | root_seq_idx = 204; 61 | dl_earfcn = 900; 62 | } 63 | ); 64 | -------------------------------------------------------------------------------- /blue/5G/daedalus/5G/core/db.yml: -------------------------------------------------------------------------------- 1 | # using version 2 for the gateway option with ipam 2 | version: '2' 3 | 4 | volumes: 5 | mongodb_data: 6 | 7 | networks: 8 | cpn: 9 | external: 10 | name: cpn 11 | 12 | services: 13 | mongodb: 14 | image: mongo:jammy 15 | container_name: "mongodb" 16 | volumes: 17 | - mongodb_data:/data/db 18 | environment: 19 | - 'MONGO_INITDB_ROOT_USERNAME=${DB_USER}' 20 | - 'MONGO_INITDB_ROOT_PASSWORD=${DB_PASS}' 21 | command: 22 | - mongod 23 | - --bind_ip 24 | - 0.0.0.0 25 | hostname: mongodb 26 | healthcheck: 27 | test: mongosh mongodb:27017/test --quiet --eval 'db.runCommand("ping").ok' 28 | interval: 30s 29 | timeout: 10s 30 | retries: 5 31 | start_period: 40s 32 | networks: 33 | cpn: 34 | ipv4_address: 192.168.26.5 35 | labels: 36 | - "dovesnap.faucet.mirror=true" 37 | - "daedalus.namespace=primary" 38 | mongodbloader: 39 | image: mongo:jammy 40 | depends_on: 41 | mongodb: 42 | condition: service_healthy 43 | environment: 44 | - DB_HOST=mongodb 45 | - 'DB_USER=${DB_USER}' 46 | - 'DB_PASS=${DB_PASS}' 47 | volumes: 48 | - "../configs/imsis.json:/tmp/imsis.json:z" 49 | - "../open5gs/scripts/run_db.sh:/scripts/run_db.sh:z" 50 | entrypoint: 51 | - /bin/sh 52 | - /scripts/run_db.sh 53 | 54 | healthcheck: 55 | test: /bin/cat /importdone 56 | interval: 30s 57 | timeout: 10s 58 | retries: 10 59 | start_period: 40s 60 | networks: 61 | cpn: 62 | ipv4_address: 192.168.26.19 63 | labels: 64 | - "dovesnap.faucet.mirror=true" 65 | - "daedalus.namespace=primary" 66 | --------------------------------------------------------------------------------