Dieser Artikel ist der 15. Tagesartikel von NTT Communications Adventskalender 2019. Gestern war @ Mahitos Artikel Geschichte über den Vorschlag von Chaos Engineering für den Kindergarten.
Wie in dem kürzlich veröffentlichten NTT Communications Developer Blog-Artikel, der NTT Communications Group, erwähnt Wir veranstalten einen Sicherheitswettbewerb "ComCTF" für Gruppenmitarbeiter.
Ich habe die Frage "Pentest" gestellt, die im Finale gestellt wurde. Pentest ist eine Abkürzung für Sicherheitstest, der als Penetrationstest bezeichnet wird und überprüft, ob ein Angreifer mit einer klaren Absicht seinen Zweck erreichen kann. [^ 1]
Das Problem besteht darin, dass es in ein virtuelles Unternehmensnetzwerk einbricht, Schwachstellen auf mehreren Servern ausnutzt und schließlich fragt, ob Informationen von dem Server abgerufen werden können, auf dem wichtige Daten gespeichert sind. Es war ein Problem, einen Penetrationstest durchzuführen, um zu überprüfen, ob der Zweck des Erhaltens wichtiger Daten erreichbar war.
Um den Grundstein für dieses Problem zu legen, haben wir dieses Mal ein OSS namens ** Naumachia ** verwendet, mit dem wir eine Trainingsumgebung für Penetrationstests mit Docker erstellen können.
https://github.com/nategraf/Naumachia
In diesem Artikel werden wir einen Überblick über Naumachia geben, wie man es baut und wie man eine Trainingsumgebung für Penetrationstests auf dieser Grundlage baut.
Naumachia ist ein OSS, mit dem Sie mit Docker geschlossene Netzwerke und anfällige Server erstellen können.
Der Grund, warum ich von diesem OSS erfahren habe, war eine CTF namens TAMUctf 19, die von der Texas A & M University gesponsert wurde. Diese Naumachia dient als Grundlage für Probleme im Genre "NetworkPentest".
Bitte beachten Sie, dass diese CTF-Ausgabe auf GitHub veröffentlicht wird. Wenn Sie also interessiert sind, schauen Sie bitte.
https://github.com/tamuctf/TAMUctf-2019
Die folgenden Funktionen sind in Naumachia implementiert.
Auf diese Weise können Sie eine dedizierte Schulungsumgebung erstellen, auf die nur Benutzer mit VPN-Verbindungsinformationen aus dem Internet zugreifen können, z.
Wenn Sie beispielsweise versuchen, ein Problem zu erstellen, das versucht, mithilfe der Sicherheitsanfälligkeit von Drupal gegen willkürliche Codeausführung (CVE-2018-7600) in das System einzudringen, und wenn Sie versuchen, einen Problemserver zu erstellen, auf den über das Internet zugegriffen werden kann, handelt es sich um eine Sicherheitsanfälligkeit im Internet. Im schlimmsten Fall kann der Server als Sprungbrett verwendet werden, indem er in einen Sex-Scan verwickelt wird. Mit Naumachia können nur Benutzer mit VPN-Verbindungsinformationen das Problem über das Internet herausfordern, sodass Sie Fragen ohne dieses Risiko stellen können.
Es bietet auch Zugriff auf L2-Ebene, sodass Sie Probleme wie das Testen von Angriffsmethoden, die im selben LAN stattfinden, wie z. B. ARP-Spuffing, verursachen können.
Detaillierte Funktionen und Mechanismen sind in Naumachias README beschrieben. Lesen Sie diese daher.
Von hier aus werde ich das Verfahren zum Bau von Naumachia vorstellen.
Liesmich
Obtain a Linux server (tested on Ubuntu 16.04 and 18.04)
Es heißt, dass ** Ubuntu 18.04 ** das beste Betriebssystem ist.
Da ich CentOS 7 jedoch aus verschiedenen Gründen in diesem Wettbewerb verwendet habe, werde ich das mit CentOS 7 verifizierte Konstruktionsverfahren aufschreiben. Die Betriebssysteminformationen, die das Konstruktionsverfahren überprüft haben, lauten wie folgt.
# uname -a
Linux localhost.localdomain 3.10.0-957.21.3.el7.x86_64 #1 SMP Tue Jun 18 16:35:19 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
# cat /etc/redhat-release
CentOS Linux release 7.6.1810 (Core)
Um Naumachia zu erstellen, benötigen Sie "Docker", "Docker-Compose", "Python3", "Pip3", also müssen Sie sie zuerst installieren.
Klonen Sie danach den Quellcode aus dem Naumachia-Repository auf GitHub und installieren Sie die Python3-Bibliothek, die in require.txt
beschrieben ist.
# yum install -y yum-utils device-mapper-persistent-data lvm2
# yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
# yum install -y docker-ce docker-ce-cli containerd.io
# systemctl start docker
# systemctl enable docker
# curl -L https://github.com/docker/compose/releases/download/1.22.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# chmod +x /usr/local/bin/docker-compose
# yum install -y https://centos7.iuscommunity.org/ius-release.rpm
# yum install python36u python36u-libs python36u-devel python36u-pip
# git clone https://github.com/nategraf/Naumachia.git
# cat requirements.txt
jinja2==2.10.1
PyYAML==4.2b4
requests==2.21.0
nose2==0.8.0
pytest==4.5.0
hypothesis==4.23.5
# pip3 install -r requirements.txt
Der Docker-Schulungscontainer und das Netzwerk, die Naumachia den Benutzern zur Verfügung stellt, sind in "docker-compose.yml" definiert. Wenn nach dem Start von Naumachia ein Benutzer eine Verbindung zu OpenVPN herstellt, wird Docker-Compose automatisch basierend auf dieser "Docker-Compose.yml" ausgeführt und eine Trainingsumgebung erstellt.
In dieser Erklärung werde ich das Herausforderungsbeispiel aus Naumachia-Problem-Sammlung (nategraf / Naumachia-Herausforderungen) verschieben.
Klonen Sie das GitHub-Repository der Fragensammlung und kopieren Sie die für die Beispiel-Challenge erforderlichen Dateien in das Challenge-Verzeichnis im Naumachia-Verzeichnis.
# git clone https://github.com/nategraf/Naumachia-challenges
# mkdir Naumachia/challenges
# cp -r Naumachia-challenges/example Naumachia/challenges
Übrigens ist die "docker-compose.yml" von "example" wie folgt. Sie können sehen, dass zwei Container, "Bob" und "Alice", und ein Netzwerk, "Standard", erstellt werden.
docker-compose.yml
version: '2.4'
# The file defines the configuration for simple Nauachia challenge where a
# sucessful man-in-the-middle (MTIM) attack (such as ARP poisoning) provides a
# solution
# If you are unfamiliar with docker-compose this might be helpful:
# * https://docs.docker.com/compose/
# * https://docs.docker.com/compose/compose-file/
#
# But the gist is that the services block below specifies two containers, which
# act as parties in a vulnerable communication
services:
bob:
build: ./bob
image: naumachia/example.bob
environment:
- CTF_FLAG=fOOBaR
restart: unless-stopped
networks:
default:
ipv4_address: 172.30.0.2
alice:
build: ./alice
image: naumachia/example.alice
depends_on:
- bob
environment:
- CTF_FLAG=fOOBaR
restart: unless-stopped
networks:
default:
ipv4_address: 172.30.0.3
networks:
default:
driver: l2bridge
ipam:
driver: static
config:
- subnet: 172.30.0.0/28
Wenn Sie sich den Treiber ansehen, der in der Beispiel-Challenge unter "Netzwerke" in "docker-compose.yml" angegeben ist, werden Sie feststellen, dass die ungewöhnlichen Treiber "l2bridge" und "static" angegeben sind.
Bei der obigen Naumachia-Herausforderung wird ein angepasster Docker libnetowrk-Treiber verwendet, um allen Benutzern dieselbe Umgebung bereitzustellen und eine sichere Trainingsumgebung zu erstellen.
https://github.com/nategraf/l2bridge-driver https://github.com/nategraf/static-ipam-driver
Damit können Sie die folgenden Dinge tun, die der Standard-Docker libnetowrk-Treiber nicht kann:
Wenn es sich um Ubuntu oder Debian handelt, wird hier die Methode zum Installieren von Driver as a Service vorgestellt. Diesmal war es jedoch CentOS. Daher habe ich das folgende Skript erstellt und das Treiberprogramm zwangsweise verschoben. (Ich konnte es mir nicht leisten, sysv.sh für RedHat OS neu zu schreiben ...
driver_start.sh
# Download the static-ipam driver to usr/local/bin
if [ ! -e /usr/local/bin/l2bridge ]; then
echo "[!] l2bridge driver is not installed"
echo "[+] Download the l2bridge driver to usr/local/bin"
curl -L https://github.com/nategraf/l2bridge-driver/releases/latest/download/l2bridge-driver.linux.amd64 -o /usr/local/bin/l2bridge
chmod +x /usr/local/bin/l2bridge
else
echo "[*] l2bridge driver is installed"
fi
# Download the static-ipam driver to usr/local/bin
if [ ! -e /usr/local/bin/static-ipam ]; then
echo "[!] static-ipam driver is not installed"
echo "[+] Download the static-ipam driver to usr/local/bin"
curl -L https://github.com/nategraf/static-ipam-driver/releases/latest/download/static-ipam-driver.linux.amd64 -o /usr/local/bin/static-ipam
chmod +x /usr/local/bin/static-ipam
else
echo "[*] static-ipam driver is installed"
fi
# Activate the service
echo "[+] Startup the servicies"
if [ ! -e /run/docker/plugins/l2bridge.sock ]; then
nohup /usr/local/bin/l2bridge > /dev/null 2>&1 &
echo "[*] Done: l2bridge"
else
echo "[!] Started l2bridge driver"
fi
if [ ! -e /run/docker/plugins/static.sock ]; then
nohup /usr/local/bin/static-ipam > /dev/null 2>&1 &
echo "[*] Done: static-ipam"
else
echo "[!] Started static-ipam driver"
fi
sleep 0.5
# Verify that it is running
echo "[+] Verify that it is running"
echo ""
echo "[*] stat /run/docker/plugins/l2bridge.sock"
stat /run/docker/plugins/l2bridge.sock
# File: /run/docker/plugins/l2bridge.sock
# Size: 0 Blocks: 0 IO Block: 4096 socket
# ...
echo ""
echo "[*] stat /run/docker/plugins/static.sock"
stat /run/docker/plugins/static.sock
# File: /run/docker/plugins/static.sock
# Size: 0 Blocks: 0 IO Block: 4096 socket
# ...
echo ""
echo "[*] Complete!!"
Wenn Sie das Programm herunterfahren, wird das Treiberprogramm gestoppt und beim Neustart nicht gestartet. Sie müssen dies daher beim Neustart ausführen.
Führen Sie "disable-bridge-nf-iptables.sh" aus, da es den Anschein hat, dass Pakete, die die Bridge passieren, möglicherweise nicht gut funktionieren, wenn sie gefiltert werden.
disable-bridge-nf-iptables.sh
echo 0 > /proc/sys/net/bridge/bridge-nf-call-iptables
echo 0 > /proc/sys/net/bridge/bridge-nf-call-ip6tables
Kopieren Sie config.example.yml
nach config.yml
und schreiben Sie einen Teil davon neu.
Der Teil, der umgeschrieben werden muss, sind die "Herausforderungen".
Die zu ändernden Punkte sind wie folgt.
files:
den Speicherort der docker-compose.yml
-Datei, die unter "Vorbereiten des Docker-Containers und des Netzwerks für das Training" erstellt wurde.commonname:
# [required] Configurations for each challenge
challenges:
# [required] An indiviual challenge config. The key is the challenge name
# This should be a valid unix filename and preferably short
example:
# [default: 1194] The exposed external port for this challenges OpenVPN server
port: 2000
# [default: [{challenge name}/docker-compose.yml] ] The compose files to which define this challenge
# Paths should be relative to the challenges directory
files:
- example/docker-compose.yml
# [default: {challenge name}.{domain}] The commonname used for the OpenVPN's certificates
# This should be the domain name or ip that directs to this challenge
commonname: 192.168.91.130
# [default: None] If set, the OpenVPN management interface will be opened on localhost and the given port
openvpn_management_port: null
# [default: None] If set, the OpenVPN server will inform the client what IPv4 address and mask to apply to their tap0 interface
ifconfig_push: 172.30.0.14/28
Wenn Sie configure.py
ausführen, wird Naumachia basierend auf den Angaben in config.yml
erstellt.
Dadurch werden automatisch Naumachias "docker-compose.yml" - und OpenVPN-Schlüssel-, Zertifikat- und Konfigurationsdateien generiert.
# ./configure.py
[INFO] Using config from /root/Naumachia/config.yml
[INFO] Using easyrsa installation at /root/Naumachia/tools/EasyRSA-v3.0.6/easyrsa
[INFO] Rendered /root/Naumachia/docker-compose.yml from /root/Naumachia/templates/docker-compose.yml.j2
[INFO] Configuring 'example'
[INFO] Created new openvpn config directory /root/Naumachia/openvpn/config/example
[INFO] Initializing public key infrastructure (PKI)
[INFO] Building certificiate authority (CA)
[INFO] Generating Diffie-Hellman (DH) parameters
[INFO] Building server certificiate
[INFO] Generating certificate revocation list (CRL)
[INFO] Rendered /root/Naumachia/openvpn/config/example/ovpn_env.sh from /root/Naumachia/templates/ovpn_env.sh.j2
[INFO] Rendered /root/Naumachia/openvpn/config/example/openvpn.conf from /root/Naumachia/templates/openvpn.conf.j2
Bauen Sie auch einen Container für die Konkurrenz.
# docker-compose -f ./challenges/example/docker-compose.yml build
Nach der bisherigen Arbeit sollte "docker-compose.yml" automatisch generiert werden, also aufbauen und aufbauen.
# docker-compose build
# docker-compose up -d
Wenn Sie sich die Container ansehen, die mit "Docker ps -a" in diesem Zustand gestartet wurden, sollten die folgenden Container gestartet werden.
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
dd9e858277bd naumachia/manager "python -m app" 27 seconds ago Up 25 seconds build_manager_1
f80057d9dc2e naumachia/openvpn "/scripts/naumachia-…" 27 seconds ago Up 25 seconds 0.0.0.0:2000->1194/udp build_openvpn-example_1
86fc3709d4e3 redis:alpine "docker-entrypoint.s…" 27 seconds ago Up 26 seconds build_redis_1
a0f45e1f292a naumachia/registrar "gunicorn -c python:…" 27 seconds ago Up 26 seconds 0.0.0.0:3960->3960/tcp build_registrar_1
9d1ef7902351 alpine "/bin/true" 27 seconds ago Exited (0) 27 seconds ago build_bootstrapper_1
Eine Konfigurationsdatei ist erforderlich, damit Benutzer eine Verbindung zum OpenVPN-Server herstellen und auf die Trainingsumgebung zugreifen können. Dies wird auch automatisch von Naumachia generiert.
Es gibt zwei Möglichkeiten, es zu generieren.
3960 / tcp
wartet, ist soDieses Mal verwenden wir das Python-Skript der Registrar-CLI, um die Konfigurationsdatei zu erstellen und abzurufen. Wenn Sie registrar-cli wie folgt ausführen, können Sie eine OpenVPN-Konfigurationsdatei erstellen, die den OpenVPN-Schlüssel, das Serverzertifikat und das Zertifizierungsstellenzertifikat enthält, und diese an Benutzer verteilen.
# ./registrar-cli example add user1
# ./registrar-cli example get user1 > user1.ovpn
# cat user1.ovpn
client
nobind
dev tap
remote-cert-tls server
float
explicit-exit-notify
remote 192.168.91.130 2000 udp
<key>
-----BEGIN PRIVATE KEY-----
(Kürzung)
-----END PRIVATE KEY-----
</key>
<cert>
-----BEGIN CERTIFICATE-----
(Kürzung)
-----END CERTIFICATE-----
</cert>
<ca>
-----BEGIN CERTIFICATE-----
(Kürzung)
-----END CERTIFICATE-----
</ca>
key-direction 1
cipher AES-256-CBC
auth SHA256
comp-lzo
Lassen Sie uns nun auf die von uns erstellte Trainingsumgebung zugreifen und damit spielen.
Diesmal verwendet der Benutzer "Kali Linux", auf dem standardmäßig der OpenVPN-Client und Tools für Penetrationstests installiert sind.
# grep VERSION /etc/os-release
VERSION="2018.1"
VERSION_ID="2018.1"
Verwenden Sie die generierte OpenVPN-Konfigurationsdatei, um auf die Trainingsumgebung in Naumachia zuzugreifen. Wenn Sie "Initialisierungssequenz abgeschlossen" erhalten, sind Sie erfolgreich!
# openvpn user1.ovpn
Sun Dec 15 06:33:45 2019 OpenVPN 2.4.5 x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] built on Mar 4 2018
Sun Dec 15 06:33:45 2019 library versions: OpenSSL 1.1.0h 27 Mar 2018, LZO 2.08
Sun Dec 15 06:33:45 2019 TCP/UDP: Preserving recently used remote address: [AF_INET]192.168.91.130:2000
Sun Dec 15 06:33:45 2019 UDP link local: (not bound)
Sun Dec 15 06:33:45 2019 UDP link remote: [AF_INET]192.168.91.130:2000
Sun Dec 15 06:33:45 2019 [192.168.91.130] Peer Connection Initiated with [AF_INET]192.168.91.130:2000
Sun Dec 15 06:33:46 2019 Options error: Unrecognized option or missing or extra parameter(s) in [PUSH-OPTIONS]:1: dhcp-renew (2.4.5)
Sun Dec 15 06:33:46 2019 TUN/TAP device tap0 opened
Sun Dec 15 06:33:46 2019 do_ifconfig, tt->did_ifconfig_ipv6_setup=0
Sun Dec 15 06:33:46 2019 /sbin/ip link set dev tap0 up mtu 1500
Sun Dec 15 06:33:46 2019 /sbin/ip addr add dev tap0 172.30.0.14/28 broadcast 172.30.0.15
Sun Dec 15 06:33:46 2019 WARNING: this configuration may cache passwords in memory -- use the auth-nocache option to prevent this
Sun Dec 15 06:33:46 2019 Initialization Sequence Completed
Wenn ich mir den Status der Schnittstelle mit ifconfig anschaue, denke ich, dass eine Schnittstelle namens "tap0" erstellt und eine IP-Adresse von "172.30.0.14" zugewiesen wird.
# ifconfig
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.91.129 netmask 255.255.255.0 broadcast 192.168.91.255
inet6 fe80::20c:29ff:fe18:a0c8 prefixlen 64 scopeid 0x20<link>
ether 00:0c:29:18:a0:c8 txqueuelen 1000 (Ethernet)
RX packets 14781 bytes 9483880 (9.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 6484 bytes 645921 (630.7 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10<host>
loop txqueuelen 1000 (Local Loopback)
RX packets 31612 bytes 10003030 (9.5 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 31612 bytes 10003030 (9.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
tap0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.30.0.14 netmask 255.255.255.240 broadcast 172.30.0.15
inet6 fe80::c0d8:eeff:fe38:d79b prefixlen 64 scopeid 0x20<link>
ether c2:d8:ee:38:d7:9b txqueuelen 100 (Ethernet)
RX packets 16 bytes 1272 (1.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 21 bytes 1622 (1.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Wenn Sie sich zu diesem Zeitpunkt den Status des Docker-Containers und -Netzwerks auf dem Naumachia-Server ansehen, sollten Sie feststellen, dass ein neuer Container und ein neues Netzwerk mit dem Präfix "user1_example_" erstellt wurden.
Dies ist ein benutzerspezifischer Schulungscontainer und ein Netzwerk. Mit zunehmender Anzahl von Benutzern steigt auch die Anzahl von Containern und Netzwerken.
# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
17c4ef2ccbb9 naumachia/example.alice "python /app/alice.py" About a minute ago Up About a minute user1_example_alice_1
ff271a01eba9 naumachia/example.bob "python /app/bob.py" About a minute ago Up About a minute user1_example_bob_1
dd9e858277bd naumachia/manager "python -m app" 32 minutes ago Up 32 minutes build_manager_1
f80057d9dc2e naumachia/openvpn "/scripts/naumachia-…" 32 minutes ago Up 32 minutes 0.0.0.0:2000->1194/udp build_openvpn-example_1
86fc3709d4e3 redis:alpine "docker-entrypoint.s…" 32 minutes ago Up 32 minutes build_redis_1
a0f45e1f292a naumachia/registrar "gunicorn -c python:…" 32 minutes ago Up 32 minutes 0.0.0.0:3960->3960/tcp build_registrar_1
9d1ef7902351 alpine "/bin/true" 32 minutes ago Exited (0) 32 minutes ago build_bootstrapper_1
# docker network ls
NETWORK ID NAME DRIVER SCOPE
743f747a01b3 bridge bridge local
7017ddd37ba8 build_default bridge local
dce5de7a2fa2 build_internal bridge local
de7c1746cc32 host host local
6dc0c89a9ccf none null local
b1649b2f2e93 user1_example_default l2bridge local
Bei diesem Problem handelt es sich um ein MITM-Problem (Intermediate Attack), z. B. ARP-Spuffing, wie im Beispiel in docker-compose.yml beschrieben.
The file defines the configuration for simple Nauachia challenge where a sucessful man-in-the-middle (MTIM) attack (such as ARP poisoning) provides a solution
Dieses Mal haben wir zwei Terminals mit den IP-Adressen "172.30.0.2" und "172.30.0.3", daher werden wir versuchen, die Kommunikation zu belauschen, die diese beiden Terminals durch ARP-Spoofing durchführen.
Der Mechanismus und die spezifische Methode des ARP-Spoofing werden hier nicht im Detail erläutert. Bei Erfolg wird die Kommunikation zwischen zwei Hosts, "172.30.0.2" und "172.3.0.3", durch Erfassen von Paketen wie unten gezeigt durchgeführt. Kann gesehen werden.
# tcpdump -i tap0
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on tap0, link-type EN10MB (Ethernet), capture size 262144 bytes
06:40:47.791591 ARP, Reply 172.30.0.2 is-at 3e:d6:f2:ca:92:81 (oui Unknown), length 28
06:40:48.042999 ARP, Reply 172.30.0.3 is-at 3e:d6:f2:ca:92:81 (oui Unknown), length 28
06:40:48.696193 IP 172.30.0.3.55672 > 172.30.0.2.5005: UDP, length 30
06:40:49.792320 ARP, Reply 172.30.0.2 is-at 3e:d6:f2:ca:92:81 (oui Unknown), length 28
06:40:50.044301 ARP, Reply 172.30.0.3 is-at 3e:d6:f2:ca:92:81 (oui Unknown), length 28
06:40:51.700769 IP 172.30.0.3.55672 > 172.30.0.2.5005: UDP, length 30
06:40:51.793616 ARP, Reply 172.30.0.2 is-at 3e:d6:f2:ca:92:81 (oui Unknown), length 28
06:40:52.044971 ARP, Reply 172.30.0.3 is-at 3e:d6:f2:ca:92:81 (oui Unknown), length 28
06:40:53.794367 ARP, Reply 172.30.0.2 is-at 3e:d6:f2:ca:92:81 (oui Unknown), length 28
06:40:54.045958 ARP, Reply 172.30.0.3 is-at 3e:d6:f2:ca:92:81 (oui Unknown), length 28
06:40:54.705584 IP 172.30.0.3.55672 > 172.30.0.2.5005: UDP, length 30
06:40:55.795642 ARP, Reply 172.30.0.2 is-at 3e:d6:f2:ca:92:81 (oui Unknown), length 28
06:40:56.047136 ARP, Reply 172.30.0.3 is-at 3e:d6:f2:ca:92:81 (oui Unknown), length 28
Sie sollten sich dieser Risiken bewusst sein, wenn Sie sich in demselben Netzwerk befinden, das über L2 verbunden ist.
In diesem Artikel habe ich vorgestellt, wie eine Trainingsumgebung für Penetrationstests mit OSS namens Naumachia erstellt wird.
Da der Penetrationstest tatsächlich ein Angriff ist, möchte das Training einen Angreifer trainieren? Sie könnten denken, aber es ist nicht.
Cyber-Angriffe sind in den letzten Jahren immer ausgefeilter geworden, und es wird immer schwieriger, sie nur aus der Sicht des Verteidigers zu schützen. Um sich vor solchen Angriffen zu schützen, ist es wichtig, die tatsächliche Angriffsmethode zu kennen und eine wirksame Verteidigungsmethode zu finden, die zu dieser passt. Ich denke, dass wir durch das Bewegen der Hände im Training und das Ausprobieren tatsächlicher Angriffsmethoden unser Verständnis der Angriffsmethoden verbessern und Humanressourcen entwickeln können, die effizienter verteidigen können.
Morgen werde ich für @nyakuo verantwortlich sein.
Ich wünsche dir ein schönes Jahr!
[^ 1]: Informationen zum Penetrationstest durch das Skill Map-Projekt des Vulnerability Diagnostician (https://github.com/ueno1000/about_PenetrationTest)
Recommended Posts