

최근에 리눅스 마스터 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인 상태에서의 데이터 삽입 시도를 탐지함으로써 동기화 오류를 사전에 포착할 수 있습니다.
'시큐리티아카데미 7기 - sk쉴더스트랙 > 프로젝트' 카테고리의 다른 글
| [시큐리티 아카데미 7기 - sk쉴더스 트랙] 프로젝트 13일차 - 2026.04.29 (0) | 2026.05.04 |
|---|---|
| [시큐리티 아카데미 7기 - sk쉴더스 트랙] 프로젝트 12일차 - 2026.04.28 (0) | 2026.04.30 |
| [시큐리티 아카데미 7기 - sk쉴더스 트랙] 프로젝트 11일차 - 2026.04.27 (0) | 2026.04.28 |
| [시큐리티 아카데미 7기 - sk쉴더스 트랙] 프로젝트 10일차 - 2026.04.22 (0) | 2026.04.24 |
| [시큐리티 아카데미 7기 - sk쉴더스 트랙] 프로젝트 9일차 - 2026.04.21 (0) | 2026.04.21 |



