Vulnhub dc-9 PortKnocking

Aus Xinux Wiki
Zur Navigation springen Zur Suche springen

Was ist das?

Portknocking ist ein Verfahren, um Server bzw. einzelne Serverdienste in TCP/IP-Netzwerken abzusichern, das heißt vor unbefugtem Zugriff zu schützen. Der Name kommt von engl. „to knock“ (klopfen) und „Port“ (Anschluss). Er soll versinnbildlichen, dass man zunächst in einer vorher vereinbarten Sequenz „anklopft“, bevor sich ein Port öffnet und man so Zugang zu einem bestimmten Serverdienst erhält.

Die Kommunikation auf dem gewünschten Port wird dabei zunächst von einer Firewall vollständig blockiert. Um diesen Port zu öffnen, sendet man mehrere SYN-Pakete mit zuvor vereinbartem Inhalt und in der richtigen zeitlichen Abfolge an den Server (der sogenannte „Knock“). Mit einem SYN-Paket wird im Transmission Control Protocol normalerweise der Verbindungsaufbau eingeleitet, aber die Firewall blockiert diese Verbindungsversuche zunächst und antwortet nicht auf die Kommunikationsversuche, oder sie sendet ein RST-Paket und weist damit die Verbindung zunächst ab. Ein Portknocking-Daemon hört aber mit, zum Beispiel indem er die Logdatei der Firewall auswertet, und öffnet bei korrekter Abfolge und Inhalt der SYN-Pakete den gewünschten Port in der Firewall.

Zur Einnerung

  • nmap -sS 10.0.10.58 130 ⨯
Starting Nmap 7.92 ( https://nmap.org ) at 2023-03-09 10:50 CET
Nmap scan report for 10.0.10.58
Host is up (0.00017s latency).
Not shown: 998 closed tcp ports (reset)
PORT   STATE    SERVICE
22/tcp filtered ssh
80/tcp open     http
MAC Address: 08:00:27:1D:02:EE (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.27 seconds
  • Port 22 ist offen aber durch eine Firewall geschützt.
  • Es könnte auf PortKnocking hinweisen.
  • Wir nutzen die zuvor erkannte DirectoryTraversal Lücke um weiter Erkenntniss zu gewinnen.

Directorytraversal

File does not exist
[options] UseSyslog [openSSH] sequence = 7469,8475,9842 seq_timeout = 25 command = /sbin/iptables -I INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn [closeSSH] sequence = 
9842,8475,7469 seq_timeout = 25 command = /sbin/iptables -D INPUT -s %IP% -p tcp --dport 22 -j ACCEPT tcpflags = syn
  • Erkenntniss
  • Die kombiantion der Ports 7469,8475,9842 sollte den SSH Port öffnen.

Öffnen von SSH

  • nmap -sS 10.0.10.58 -p 7469,8475,9842 ; nmap -sS 10.0.10.58 -p 22
Starting Nmap 7.92 ( https://nmap.org ) at 2023-03-09 10:54 CET
Nmap scan report for 10.0.10.58
Host is up (0.00055s latency).

PORT     STATE  SERVICE
7469/tcp closed unknown
8475/tcp closed unknown
9842/tcp closed unknown
MAC Address: 08:00:27:1D:02:EE (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.24 seconds
Starting Nmap 7.92 ( https://nmap.org ) at 2023-03-09 10:54 CET
Nmap scan report for 10.0.10.58
Host is up (0.00029s latency).

PORT   STATE SERVICE
22/tcp open  ssh
MAC Address: 08:00:27:1D:02:EE (Oracle VirtualBox virtual NIC)

Nmap done: 1 IP address (1 host up) scanned in 0.21 seconds