본문 바로가기
  • 이게 왜 되지...?
시큐리티아카데미 7기 - sk쉴더스트랙/프로젝트

[시큐리티 아카데미 7기 - sk쉴더스 트랙] 프로젝트 14일차 - 2026.04.30

by smisooth 2026. 5. 4.

최근에 리눅스 마스터 2급 1차를 봤는데용~

널널하게 합격을 했습니다.

다들 ㅎㅇㅌ

 

 

 

 

 

 

2.1 네트워크 공격

2.1.1 SNMP_InsecureConfig

. 공격 개요

onesixtyone으로 Community String을 탈취한 뒤, 시스템 및 네트워크 구성 정보를 수집하는 공격

 

. 공격 대상

구분 내용
공격 유형 정보 수집 및 취약점 스캐닝 (Reconnaissance)
세부 유형 SNMP Community String Brute-forcing / Enumeration
공격 방식 UDP 161 포트를 대상으로 onesixtyone을 이용한 문자열 대입 및 snmpwalk를 통한 MIB 정보 추출
관련 보안장비 IDS(Snort), SIEM(Wazuh), Firewall(pfSense)

다. 공격 페이로드

사진으로 대체

 

라. 공격 페이로드 작성 화면

구분 내용
공격 요청 화면

마. 공격 결과

구분 내용
공격 성공 여부 성공
웹 응답 결과 UDP 기반 통신으로 HTTP 응답은 존재하지 않음
주요 확인 사항 공격자가 서버의 시스템 설명(sysDescr) 및 네트워크 인터페이스 정보를 성공적으로 획득함
영향 인프라 구조 노출로 인한 취약점 분석 2 침투 경로 확보
 

바. 보안장비 증적 파일

구분 내용
패킷 캡처 파일 제목 NETWORK_Insecure SNMP Configuration.pcap
패킷 캡처 화면
탐지 로그 파일 로그 없음

 

. 보안장비 탐지 결과

보안장비 탐지 여부 탐지 내용 판정
Snort X - 미탐

 

. 탐지 로그

로그 없음 (해당 트래픽에 대한 탐지 정책 미설정)

 

자. 정탐 판단 근거

미탐

 

차. 미탐 또는 일부탐지 시 대안 룰

# 1. public 커뮤니티 이름 사용 탐지

alert udp $EXTERNAL_NET any -> $HOME_NET 161 (msg:"SNMP Brute Force Attempt - Community public"; content:"public"; nocase; metadata:service snmp; sid:1000001; rev:1;)

 

# 2. private 커뮤니티 이름 사용 탐지

alert udp $EXTERNAL_NET any -> $HOME_NET 161 (msg:"SNMP Brute Force Attempt - Community private"; content:"private"; nocase; metadata:service snmp; sid:1000002; rev:1;)

 

카. 대안 룰 탐지 근거

임계값(Threshold) 활용
-
단순히 문자열을 포함한다고 탐지하는 것이 아니라, 동일 출발지(track by_src)에서 60초 이내에 5회 이상 접근이 발생할 경우에만 이벤트가 발생하도록 설정하여 단순 관리자의 접속과 공격자의 스캐닝 행위를 구분합니다.

공격 도구의 특성 반영
- onesixtyone
과 같은 도구는 사전 파일(Dictionary)을 기반으로 빠른 속도로 대입을 시도하므로 시간당 발생 횟수를 제한하는 방식이 효과적입니다.

응답 기반 탐지(SID 1000003)
-
공격 성공 후 snmpwalk를 통해 대량의 시스템 정보가 유출될 경우, 응답 패킷의 크기가 평상시보다 커지는 특성(dsize:>1000)을 이용하여 정보 유출 정황을 추가로 포착할 수 있도록 설계했습니다.

평문 통신 취약성 이용
- SNMP v1/v2c
는 보안 기능이 결여되어 Community String이 암호화되지 않은 채 전송되므로, content 필드를 통한 시그니처 매칭이 매우 명확한 판단 근거가 됩니다.

 

 

 

 

2.1.1 TCP Session Hijacking

. 공격 개요

TCP Session Hijacking은 통신 중인 두 호스트 사이의 TCP 시퀀스 번호를 예측하거나 조작하여, 공격자가 기존 세션을 가로채고 자신의 패킷을 삽입하여 명령을 실행하는 공격

. 공격 대상

구분 내용
공격 유형 네트워크 공격 (Network Attack)
세부 유형 세션 하이재킹 (Session Hijacking)
공격 방식 시퀀스 번호 추측 및 위조 패킷 삽입 (SEQ/ACK Manipulation)
관련 보안장비 pfSense (Firewall), Snort (IDS)

. 공격 페이로드

sudo python3 -c 'from scapy.all import *; \

send(IP(src="[_IP]", dst="[서버_IP]") / \

TCP(sport=[_출발_포트], dport=[서버_포트], flags="PA", seq=[최신_Seq], ack=[최신_Ack]) / \

"GET [공격_경로] HTTP/1.1\r\nHost: [서버_IP]:[서버_포트]\r\n\r\n")'

. 공격 페이로드 작성 화면

구분 내용
공격 요청 화면

마. 공격 결과

구분 내용
공격 성공 여부 실패 (Failure)
웹 응답 결과 공격자의 패킷 삽입 후 세션 동기화 실패로 인한 연결 끊김 또는 무응답
주요 확인 사항 시퀀스 번호 불일치로 인한 ACK Storm 발생 및 IDS의 실시간 차단
영향 정상 사용자의 세션 가용성 침해 (DoS 효과)

바. 보안장비 증적파일

구분 내용
패킷 캡처 파일 제목 NETWORK_Session_Hijacking.pcap
패킷 캡처 화면
탐지 로그 파일 로그 없음

사. 보안장비 탐지 결과

보안장비 탐지 여부 탐지 내용 판정
Snort X - 미탐

. 탐지 로그

로그 없음 (해당 트래픽에 대한 탐지 정책 미설정)

 

. 정탐 판단 근거

미탐 

 

. 미탐 또는 일부탐지 시 대안 룰

alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"TCP Session Hijacking Attempt - High Sensitivity"; flags:A; ack:0; window:0; classtype:attempted-admin; sid:1000001; rev:1;)

 

. 대안 룰 탐지 근거

정상적인 세션에서는 발생할 수 없는 'Ack 번호가 0이면서 ACK 플래그가 설정된 패킷' 또는 윈도우 크기가 0인 상태에서의 데이터 삽입 시도를 탐지함으로써 동기화 오류를 사전에 포착할 수 있습니다.