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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2019-1663-Binary-Analysis — CVE-2019-1663의 바이너리 분석 및 익스플로잇: Cisco 라우터 웹 관리의 버퍼 오버플로우로, 근본 원인, 익스플로잇 단계, ROP 가젯 발견을 포함합니다. | Kitploit
도구/GitHubGitHub/wolffcorentin/cve-2019-1663-binary-analysis
Embedded Systems SecurityVulnerability AnalysisExploitationReverse EngineeringBinary AnalysisPapers & ResearchLearning & EducationBinary Exploitation

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
wolffcorentin/cve-2019-1663-binary-analysis

CVE-2019-1663-Binary-Analysis

CVE-2019-1663의 바이너리 분석 및 익스플로잇: Cisco 라우터 웹 관리의 버퍼 오버플로우로, 근본 원인, 익스플로잇 단계, ROP 가젯 발견을 포함합니다.

저장소 보기
21년 전아직 검토되지 않음

CVE-2019-1663의 바이너리 분석

저자: Corentin Wolff


취약점의 기원

취약점의 출처

이 취약점은 0x0002BF64 함수에서 비롯되며, strcpy 함수를 잘못 사용하여 버퍼 오버플로우 공격에 취약하게 만듭니다. 명확성을 위해 이 함수는 Login으로 이름이 변경되었습니다. 아래는 문제를 보여주는 코드 조각입니다.

root@kitploit:~
undefined4 Login(char *param_1, char *param_2, char *param_3, int param_4) { ... }

이 조각에서 strcpy 함수가 부적절하게 사용되어 버퍼 오버플로우 취약점이 발생합니다.

root@kitploit:~
if (param_4 == 0) {  
    iVar2 = strncmp(acStack_fa, "enc=", 4);  
    if (iVar2 != 0) {  
        strcpy(acStack_15e, acStack_fa);  
        strcpy(acStack_1c2, param_2);  
        goto LAB_0002c264;  
    }  
}

사용자 이름 식별

이 코드 부분은 사용자 이름을 확인합니다:

root@kitploit:~
if (iVar2 != 0) {  
    syslog(6, "Web management login failed, user=%s\n", param_1);  
}

매개변수 param_1은 사용자 이름 필드로 식별됩니다.

비밀번호 검증

마찬가지로, param_2는 비밀번호에 해당하고, param_3은 httpd_user로 식별됩니다.

로그인 플래그

login_flag 변수는 연결 상태를 나타냅니다:

root@kitploit:~
0 → 로그인 오류
1 → 관리자 로그인 성공
2 → 기존 세션으로 인해 관리자 로그인 거부됨
3 → 관리자 로그인 강제 로그아웃

취약점 유형

버퍼 오버플로우와 strcpy

이 취약점은 strcpy 함수의 부적절한 사용으로 인해 발생하는 버퍼 오버플로우입니다.

strcpy 실패 방식

strcpy 함수는 소스 문자열의 크기를 대상 버퍼의 용량과 비교하지 않습니다. 이로 인해 인접한 메모리 영역이 덮어쓰여질 수 있습니다.

악용 컨텍스트

CVE-2019-1663은 특정 Cisco 라우터 모델에서 입력 크기 검증 부족을 악용합니다.

악용 단계

root@kitploit:~
a. 길이 미확인: 정제되지 않은 사용자 입력이 strcpy로 전달됩니다.
b. 메모리 오버플로우: 초과 데이터가 중요한 메모리 영역을 덮어씁니다.
c. 임의 코드 실행: 공격자가 악성 코드를 주입하고 실행합니다.
d. 악용 요구사항: 라우터의 웹 구성 서버에 접근해야 합니다.
e. 영향: 권한 있는 접근을 통해 네트워크 스파이 활동, 트래픽 리디렉션, 악성코드 설치 또는 백도어가 가능합니다.

취약점의 원격 악용

  1. 원격 악용 조건 악용을 위해서는 라우터의 웹 구성 서버에 접근해야 합니다. 서버가 WAN에 노출되지 않은 경우 악용은 LAN 접근으로 제한됩니다.
  2. 공격 절차 접근 권한을 얻은 후, 공격자는 요청을 가로채 수정하여 다음과 같은 악성 페이로드를 추가합니다:
    root@kitploit:~
    &enc=1&user=cisco&pwd=AAAA...AAAAZZZZ&sel_lang=EN  
    

이로 인해 세그멘테이션 오류가 발생합니다. 최적의 버퍼 크기를 결정함으로써 공격자는 악성 코드를 주입하고 실행할 수 있습니다.

악용 | Gadgets : Ropper

root@kitploit:~
ibc.so.0/ELF/ARM)> disasm_address 0x00034410
Instructions
============
0x00034410: pop {r0, pc}

(libc.so.0/ELF/ARM)> disasm_address 0x00041304
Instructions
============
0x00041304: mov r2, r0

(libc.so.0/ELF/ARM)> search %mov r2, r0%
[INFO] Searching for gadgets: %mov r2, r0%
[INFO] File: libc.so.0
0x00041304: mov r2, r0; mov r0, sp; blx r2;

참고 문헌

  1. MITRE CWE-120: 입력 크기를 확인하지 않는 버퍼 복사
    https://cwe.mitre.org/data/definitions/120.html

  2. MITRE CWE-787: 경계를 벗어난 쓰기
    https://cwe.mitre.org/data/definitions/787.html

  3. OWASP 버퍼 오버플로우 개요
    https://owasp.org/www-community/vulnerabilities/Buffer_Overflow

  4. "버퍼 오버플로우" on Microsoft Learn
    https://learn.microsoft.com/en-us/cpp/security/security-best-practices-for-c-cpp

  5. CERT 안전 코딩 표준 - STR31-C
    https://wiki.sei.cmu.edu/confluence/display/c/STR31-C.+Guarantee+that+storage+for+strings+has+sufficient+space+for+character+data+and+the+null+terminator

  6. CVE-2019-1663 악용 - Quentin Kaiser의 분석 글
    https://quentinkaiser.be/exploitdev/2019/08/30/exploit-cve-2019-1663

도구 다운로드