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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
DetectPacket-CVE-2017-8464 — 취약점 악용 및 취약점 예방 구현 | Kitploit
도구/GitHubGitHub/trg-1999/detectpacket-cve-2017-8464
Packet Sniffing & AnalysisStatic AnalysisVulnerability AnalysisExploitationForensicsNetwork SecurityMalware AnalysisIntrusion DetectionLearning & Education
GitHubtrg-1999/detectpacket-cve-2017-8464

DetectPacket-CVE-2017-8464

취약점 악용 및 취약점 예방 구현

2154년 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
저장소 보기
공유

CVE-2017-8464 취약점 탐지 애플리케이션 구축

소스 (여기 클릭)

목차:

제1부: CVE-2017-8464 개요

  1. LNK 파일 개념
  2. CVE-2017-8464 취약 시스템 구축
  3. CVE-2017-8464 취약점 공격 도구

제2부: Metasploit 도구를 사용한 CVE-2017-8464 악용

2.1. CVE-2017-8464 악용 모델

2.2. CVE-2017-8464 악용 실행

제3부: Python 언어 기반 CVE-2017-8464 탐지 도구 구축

3.1. 캡처한 네트워크 패킷 기반 CVE-2017-8464 시그니처 분석

3.2. 패킷 시그니처 분석 기반 CVE-2017-8464 악용 탐지 처리 함수

결론

**

제1부: CVE-2017-8464 개요

  1. LNK 파일 개념

LNK는 Microsoft가 개발한 Binary 형식의 System Files - Windows Shortcut입니다.

그림 1: Windows의 바로 가기 아이콘

LNK 파일은 Windows에서 파일, 폴더 또는 애플리케이션의 원본을 참조하는 데 사용하는 바로 가기 또는 "링크"로, Macintosh 플랫폼의 별칭과 유사합니다. 대상 유형, 위치, 파일 이름은 물론 대상 파일을 여는 프로그램과 선택적 바로 가기 키를 포함합니다. Windows에서 파일, 폴더 또는 실행 프로그램을 마우스 오른쪽 버튼으로 클릭한 다음 Create shortcut을 선택하면 이러한 파일을 만들 수 있습니다.

이 취약점은 Microsoft Windows에 존재하며, 특수하게 제작된 바로 가기(shortcut)의 아이콘을 통해 공격자가 원격으로 코드를 실행할 수 있게 합니다.

그림 2: .LNK 파일을 통해 공격 코드를 다운로드하고 실행하는 바로 가기를 수동으로 생성

취약한 구성 요소는 네트워크 스택과 연결되어 있습니다. 이러한 취약점은 일반적으로 "remotely exploitable"이라고 하며, 프로토콜 수준 또는 여러 네트워크 홉(예: 하나 이상의 라우터를 통과)에서 악용할 수 있는 공격으로 간주됩니다.

  1. CVE-2017-8464 취약 시스템 구축

CVE-2017-8464 취약점의 영향을 받는 시스템은 Microsoft Windows Server 2008 SP2 및 R2 SP1, Windows 7 SP1, Windows 8, Windows 8.1, Windows Server 2012 Gold 및 R2, Windows RT 8.1, Windows 10 Gold, 1511, 1607, 1703, Windows Server 2016의 Windows Shell입니다. Windows Explorer 또는 바로 가기 아이콘을 구문 분석하는 다른 응용 프로그램에서 아이콘을 표시할 때 수동으로 생성된 .LNK 파일이 올바르게 처리되지 않아 로컬 사용자나 원격 공격자가 임의의 코드를 실행할 수 있습니다. "LNK Remote Code Execution Vulnerability"라고도 합니다.

보안 업데이트는 바로 가기 아이콘 참조의 유효성을 올바르게 확인하도록 수정하여 취약점을 패치하며, Microsoft Windows는 2017년 6월에 이 취약점에 대한 업데이트를 제공했습니다. 이 취약점은 Windows XP 및 이전 Windows 버전에는 영향을 미치지 않습니다.

  1. CVE-2017-8464 취약점 공격 도구

Metasploit

Metasploit Framework는 명령줄 인터페이스에서 사용되는 서비스의 오류를 테스트, 공격 및 악용하기 위한 환경이며, VMware 버전의 Kali Linux에 포함되어 있습니다.

그림 3: Metasploit 도구

Armitage

Metasploit 프로젝트를 기반으로 하는 그래픽 인터페이스 도구입니다.

그림 4: Armitage 도구.

제2부: Metasploit 도구를 사용한 CVE-2017-8464 악용

2.1. CVE-2017-8464 악용 모델

피해자 시스템 – Windows 7 Pro

그림 5: 피해자의 운영체제 버전

그림 6: 피해자 시스템의 IP 주소

공격자 시스템 – Kali Linux – Metasploit 도구 사용.

그림 7: 공격자 시스템의 IP 주소

활성 네트워크 계층은 VMnet8 서브넷 192.168.169.0입니다.

2.2. CVE-2017-8464 악용 실행

  • reverse_tcp 페이로드를 생성하고 Kali로 들어오는 TCP 연결을 수신합니다.
  • LHOST는 공격자 시스템의 수신 주소입니다.

그림 8: 페이로드 생성 및 공격자 시스템으로의 TCP 연결 수신

  • 삽입된 reverse_tcp 페이로드를 자동으로 실행하도록 CVE-2017-8464 취약점이 포함된 바로 가기 파일을 생성합니다.

그림 9: 악성코드를 자동 실행하는 .lnk 파일 생성

그림 10: 페이로드 설정 정보

  • exploit 명령을 실행하여 페이로드 파일을 가리키는 취약한 바로 가기를 생성합니다.
  • 위 설명과 같이 FlashPlayerCPApp.cpl 페이로드 파일과 취약점이 포함된 바로 가기 파일이 페이로드 파일을 자동 실행합니다.
  • 필요한 모든 파일을 생성한 후 공격자 시스템의 /root/.msf4/local/ 폴더에 저장되며, 공격자는 해당 폴더의 모든 파일을 임의의 USB에 복사합니다.

그림 11: .lnk 파일 생성 및 악성코드 포함

그림 12: 모든 악성코드를 USB로 복사

  • 공격자가 피해자를 속여 USB를 컴퓨터에 연결하도록 합니다. 피해자가 USB 안의 어떤 응용 프로그램도 클릭할 필요가 없지만, .lnk(바로 가기 파일)의 취약점이 악성 페이로드를 자동으로 실행하여 원격 코드 실행 취약점을 악용합니다.

그림 13: 피해자가 악성코드가 포함된 취약한 .lnk 파일이 든 USB를 연결함

  • 공격자 시스템을 다시 확인하면 피해자 시스템이 공격자 시스템에 연결된 것을 볼 수 있습니다. 이때 공격자는 CVE-2017-8464를 기반으로 악용에 성공하여 피해자 시스템에서 원격으로 악성코드를 실행했습니다.

그림 14: 공격자가 악용에 성공하여 피해자 시스템에 침투함

**

제3부: Python 언어 기반 CVE-2017-8464 탐지 도구 구축

3.1. 캡처한 네트워크 패킷 기반 CVE-2017-8464 시그니처 분석

  • 패킷 캡처를 수행하면서 공격을 실행하면 .lnk 파일이 자동으로 실행될 때 피해자 시스템이 페이로드에 설정된 공격자 시스템 주소로 TCP 연결을 시도하는 것을 확인할 수 있습니다.

그림 15: CVE-2017-8464 취약점 공격 패킷이 캡처됨

  • PSH 플래그가 설정된 패킷은 임시 메모리에 넣는 대신 피해자 시스템으로 직접 보낼 수 있게 합니다.

그림 16: 공격자에게 TCP 연결이 성공한 후 PSH 플래그가 설정된 패킷

  • 다음으로, 의심스러운 "MZ" 시그니처가 있는 패킷은 피해자 시스템으로 전달되는 악성 PE 파일일 가능성이 있음을 나타냅니다.

그림 17: 공격자가 피해자에게 보낸 캡처 패킷에서 발견된 의심스러운 시그니처

PE 파일 형식(Portable Executable File Format)은 Win32 고유의 파일 형식입니다. *.EXE, *.DLL(32비트), *.COM, *.NET, *.CPL 등 Win32에서 실행 가능한 모든 파일은 PE 형식입니다. 단, VxDs 파일과 *.DLL(16비트) 파일은 예외입니다.

PE_File_Struct.png

그림 18: PE 파일 구조.

DOS MZ 헤더

모든 PE 파일은 간단한 DOS MZ 헤더로 시작합니다. 이 헤더는 처음 64바이트를 차지하며, 프로그램이 DOS 환경에서 실행될 때 사용됩니다.

e_magic: PE 파일의 시그니처로, 값은 4Dh, 5Ah(문자 "MZ", MS-DOS 창시자 Mark Zbikowsky의 이름에서 유래)입니다. 이 값은 유효한 DOS 헤더임을 나타내며 계속 실행할 수 있음을 표시합니다.

그림 19: 캡처된 패킷에서 확인된 PE 파일 시그니처

e_lfanew: DOS 헤더의 맨 끝에 있는 DWORD로, 파일 시작 위치를 기준으로 한 PE 헤더의 오프셋을 포함하는 필드입니다.

DOS 스텁

DOS 스텁은 오류 메시지를 표시하는 작은 DOS EXE 프로그램일 뿐이며, 16비트 Windows와의 호환성을 위한 부분입니다.

그림 20: 공격자가 피해자에게 보낸 패킷에서 캡처된 DOS 스텁 정보

PE 헤더

PE 헤더는 실제로 로더가 파일을 메모리에 로드하는 데 필요한 정보를 포함하는 IMAGE_NT_HEADERS 구조체입니다.

Signature: PE 헤더의 시작 부분에 있는 DWORD로, PE 시그니처 50h, 45h, 00h, 00을 포함합니다.

그림 21: e_lfanew 값이 가리키는 PE 헤더의 Signature 부분

섹션 테이블

섹션 테이블은 PE 헤더 바로 뒤에 오는 구성 요소로, IMAGE_SECTION_HEADER 구조체 배열로 구성됩니다.

그림 22: 캡처된 패킷에서 확인된 섹션 테이블 내용

  • 이후의 패킷들은 PE 파일의 SECTION 데이터 부분입니다.
  • 따라서 이 악성 PE 파일 구조에서 HEADER 부분만 추출하여 MD5 해시를 생성하고, 이를 해당 파일의 악성코드 탐지 시그니처로 사용합니다. 구체적으로 감지한 패킷에서 HEADER를 포함한 1024바이트 데이터를 가져옵니다. 그리고 악성코드와 관련해 알려진 정보는 CSV 파일에 저장하여 악성코드 탐지용 데이터셋으로 사용합니다.

그림 23: 시그니처 및 악성코드 관련 정보를 CSV 파일에 저장

3.2. 패킷 시그니처 분석 기반 CVE-2017-8464 악용 탐지 함수

  • 이 함수는 frame_info에서 관련 프로토콜 정보를 가져옵니다. data 필드가 있으면 data 필드와 가장 가까운 프로토콜을 가져옵니다.

그림 24: 패킷의 프로토콜 정보를 가져오는 함수

  • Get_info는 Wireshark의 info 필드와 매우 유사한 중요한 정보를 가져옵니다.

그림 25: 패킷의 info 필드 정보를 가져오는 함수

  • pcap 파일을 csv로 변환하는 함수는 먼저 pyshark를 사용하여 캡처된 임시 파일(temp.pcap)을 로드합니다. 그런 다음 Wireshark의 정보 필드와 유사한 정보를 가져와 임시 CSV 파일에 기록합니다. 이 함수는 IP&IPV6 계층 이상의 패킷만 가져옵니다.
  • 임시 CSV 파일로 변환한 후, 나중에 자료로 사용해야 하는 경우 packet 폴더에 복사본을 생성합니다.

그림 26: 패킷을 Pcap에서 CSV 파일로 변환하는 함수

  • 먼저 detectRemoteCode 함수는 이전에 수집하고 분석한 md5 시그니처가 포함된 샘플 파일의 정보를 확인합니다. 시그니처는 이 샘플 파일에 통합 저장되어 있습니다. 그런 다음 네트워크 트래픽에서 캡처한 임시 데이터가 저장된 CSV 파일을 열어 TCP 프로토콜의 data 필드에서 1024바이트(2048개의 16진수 문자)를 가져와 디코딩합니다. 디코딩한 데이터가 "MZ" 문자로 시작하면 해시하여 기존에 검증된 시그니처와 비교합니다. 일치하면 Antivirus 도구가 일반적으로 수행하는 정적 분석(Static Analysis)과 마찬가지로 경고를 발생시키고 로그에 기록합니다.

그림 27: 네트워크 트래픽에서 악성코드를 검사하는 함수

  • 주요 함수를 만든 후, 프로그램 끝부분인 88번 줄부터 109번 줄까지 트래픽을 모니터링하는 코드가 실행됩니다.
  • 첫 번째 줄은 폴더가 없으면 생성합니다.
  • 다음은 사용자가 Ctrl+C 키 조합을 눌러 프로그램을 중단할 때까지 반복되는 무한 루프입니다.
  • 루프의 첫 번째는 pyshark를 사용하여 패킷을 캡처하는 코드로, interface는 수신 대기하려는 네트워크 카드이며 출력 파일은 temp.pcap입니다.
  • 6초 동안 패킷을 캡처한 다음 pcap을 CSV로 변환하는 함수를 실행합니다.
  • CSV 파일이 준비되면 CVE-2017-8464 취약점 검사 함수를 실행합니다. 사용자가 프로그램을 중단할 때까지 이러한 작업을 주기적으로 반복합니다.

그림 28: 트래픽을 캡처하고 악성코드를 검사하는 루프

*악용 실행을 통한 프로그램 작동 테스트

  • Windows 10(실제 머신)에서 감시 프로그램을 실행하여 위 2부에서 수행한 것과 동일한 공격을 다시 수행할 네트워크 영역을 모니터링합니다.

그림 29: 실제 머신에서 감시 프로그램 실행

  • 다시 2개의 가상 머신으로 돌아가 2부와 동일한 공격을 수행합니다. 캡처된 네트워크 트래픽을 분석하여 공격자가 LNK 원격 코드 실행을 수행하고 있음을 감지하고 아래 그림과 같이 알림을 표시합니다.
  • 마지막으로 네트워크 트래픽 스캔을 종료하려면 Ctrl+C 키 조합을 누르면 프로그램이 중단됩니다.

그림 30: 네트워크 트래픽 수신 중 감지 및 경고

  • 감시 프로그램 폴더에서 각 위협을 스캔한 후, pyshark로 패킷을 캡처하여 csv로 변환된 파일들이 저장된 packet 폴더와, 감시 프로그램 실행 중 감지된 활동을 기록한 log.txt 파일이 생성된 것을 확인할 수 있습니다.
  • 또한 프로그램이 읽기 및 변환 분석에 사용하는 2개의 임시 파일이 생성됩니다. 이 두 파일은 자주 변경되므로 변환된 패킷은 packet 폴더에 저장됩니다.
  • 또한 위에서 설명한 sample-detect.csv 파일은 Antivirus 도구가 일반적으로 사용하는 정적 분석(Static Analysis) 방식으로 위협을 탐지하도록 프로그램에 제공하기 위해 분석한 시그니처를 저장하는 곳입니다.

그림 31: CVE-2017-8464 감시 프로그램 폴더

그림 32: 패킷 캡처 후 매 변환 시 패킷을 기록한 파일들이 있는 packet 폴더

  • 그런 다음 log.txt 파일을 확인하여 방금 전 활동에서 감지된 것이 있는지 검토합니다. CVE-2017-8464 기반 공격 탐지 내용은 프로그램 실행 시 알림과 마찬가지로 특정 시간과 IP와 함께 로그에 기록됩니다.

그림 33: 모든 경고가 로그에 저장됨

결론

CVE-2017-8464 취약점을 악용하고 이를 탐지하는 프로그램을 구축하는 과정을 통해 학생들은 취약점을 악용하는 방법을 이해하고, 이를 바탕으로 시그니처와 취약점에서 발생하는 악성코드의 동작을 분석할 수 있습니다. 이러한 행위 및 시그니처 분석 능력은 학생들이 네트워크 보안 모니터링 정보를 자동으로 수집, 분석, 처리하여 악성코드 탐지 경고를 제공하는 프로그램을 직접 작성할 수 있는 역량을 갖추게 해줍니다.

도구 다운로드