
TwonkyMedia Server 7.0.11-8.5 디렉터리 트래버설 CVE-2018-7171
이 GitHub 저장소는 CVE-2018-7171에 관한 모든 관련 정보를 보관하고 있습니다. (그 이상도 포함)
CVE-2018-7171은 TwonkyMedia Server 버전 7.0.11-8.5(최신 버전)의 디렉터리/파일 트래버설 취약점입니다. 이 취약점을 악용하면 공격자는 TwonkyMedia Server를 실행 중인 장치의 플랫폼과 무관하게 해당 장치에 있는 모든 파일을 나열할 수 있습니다. 나아가 공격자는 이 취약점을 악용한 후 장치에서 모든 미디어 파일(사진, 동영상, 음악)을 다운로드할 수 있습니다. 이 취약점을 악용하려면 TwonkyMedia Server가 비밀번호로 보호되어 있지 않아야 합니다(기본 설정 상태).
약 24'000개의 TwonkyMedia Server 인스턴스가 비밀번호로 보호되는 경우가 드물고 인터넷을 통해 접근 가능하기 때문에, 연구자는 이 취약점을 공개하기로 결정했습니다.
혹시 여러분은 TwonkyMedia Server가 자신의 장치에서 실행 중인지, 또는 인터넷에 노출되어 있는지 모를 수도 있습니다. 이는 TwonkyMedia Server가 많은 NAS 장치에 사전 설치되어 있기 때문입니다. 라우터가 UPnP 포트(예: 9000)를 자동으로 포워딩할 수 있으며, 이로 인해 TwonkyMedia Server가 공개적으로 접근 가능해집니다.
이 취약점의 영향을 받는 장치가 있다면, 장치의 모든 파일이 더 이상 비공개가 아니라고 간주하십시오.
이 취약점에 대한 수정 패치가 제공되지 않으므로 TwonkyMedia Server를 끄거나 비밀번호로 보호하십시오.
이 저장소에 포함된 자료와 관련된 모든 행동 및 활동은 전적으로 사용자의 책임입니다. 이 저장소의 정보를 오용하면 해당 개인에 대해 형사 고발이 제기될 수 있습니다. 저자는 이 저장소의 정보를 불법적으로 오용하여 법을 위반하는 개인에게 형사 고발이 제기되는 어떠한 경우에도 책임을 지지 않습니다.
사전 상호 동의 없이 대상을 공격하기 위해 twonky.py를 실행하는 것은 불법입니다. 모든 관련 지방, 주, 연방 법률을 준수할 책임은 최종 사용자에게 있습니다.
2018-01-20 취약점 발견
2018-03-28 보안 권고 발표
twonky.py는 TwonkyMedia Server를 실행 중인 장치를 편리하게 탐색하는 데 사용할 수 있습니다. 또한 파일 및 디렉터리 이름을 내장된 확장 가능한 단어 목록과 대조하여 "wallet"과 같은 키워드를 검사하는 기능도 구현되어 있습니다. 그리고 흥미로운 시스템 정보를 요청하여 사용자에게 표시합니다. 또한 PHPSESSID 쿠키가 발견되면(보통 /tmp/ 디렉터리) Western Digital Api에 대한 확인이 자동으로 수행됩니다. 성공하면 이 쿠키 값을 사용하여 WD NAS 장치를 장악할 수 있습니다.
downloadFiles.py(실험적)는 TwonkyMedia Server가 인덱싱한 디렉터리를 대량 다운로드하는 데 사용할 수 있습니다.
"Lynx Technology의 Twonky를 사용하면 가정 내 디지털 비디오, 사진, 음악 미디어 라이브러리를 빠르게 발견하고, 모바일 기기에서 제어하며, 연결된 화면과 스피커에서 즐길 수 있습니다.
Twonky Server는 연결된 기기 간 미디어 콘텐츠 공유를 가능하게 하는 Lynx Technology의 업계 선도적인 DLNA/UPnP 미디어 서버입니다. Twonky Server는 전 세계적으로 사용되며 독립형 서버(최종 사용자 설치 가능, 예: PC/Mac) 또는 NAS, 라우터/게이트웨이, STB와 같은 기기용 임베디드 서버로 제공됩니다.
Twonky Server의 웹 UI는 다양한 방식으로 미디어 파일을 쉽고 안정적으로 제어하고 재생하며, 해당 미디어 파일을 다른 연결된 기기로 "전송(beam)"할 수 있는 최적의 기능을 제공합니다." -- https://twonky.com에서 발췌
$ git clone https://github.com/mechanico/sharingIsCaring.git
$ cd sharingIsCaring
$ sudo pip install -r requirements.txt
준비 완료!
twonky.py [IP ADRESS] [PORT]를 실행하면 TwonkyMedia Server의 contentbase 매개변수가 /../로 설정되어, 이후 장치와 연결된 주변 기기(예: USB 드라이브)에서 사용 가능한 모든 미디어 파일을 검색, 인덱싱, 다운로드할 수 있게 됩니다.

다음 스크린샷은 TwonkyMedia Server를 사용하여 /root 디렉터리 등 장치에서 사용 가능한 모든 미디어 파일에 접근할 수 있는 방법을 보여줍니다. TwonkyMedia Server는 Unix뿐만 아니라 Windows 설치 환경에서도 실행되며, 모든 데모는 여러 운영 체제에 적용 가능합니다.

1단계:
TwonkyMedia Server가 공유하는 파일의 대량 다운로드를 시작하려면 관심 있는 폴더의 URL을 복사하면 됩니다:

2단계: 다음으로 downloadFiles.py [PATH TO SAVE DOWNLOADS]를 실행합니다. path 매개변수는 다운로드한 파일이 저장될 위치를 지정합니다. 그런 다음 앞서 복사한 TwonkyMedia Server 폴더 URL을 스크립트에 제공합니다. 이제 스크립트는 IP 주소를 이름으로 하는 새 폴더를 만들고 폴더 안의 모든 파일 다운로드를 자동으로 시작합니다. 미디어 파일이 30개보다 많으면 스크립트는 발견된 미디어 파일의 총 개수를 표시하는 프롬프트를 보여줍니다. "Y"로 답하면 대량 다운로드가 시작됩니다.
