PSH (Push) flag in pcap

agnusdei·2025년 11월 23일

CTF

목록 보기
176/185
post-thumbnail

네, PSH (Push) 플래그가 일반적인 트래픽에서 얼마나 자주 나타나는지에 대한 질문은 매우 중요하며, 이는 패킷 분석의 핵심적인 휴리스틱(Heuristic, 발견법) 중 하나입니다.

결론부터 말씀드리자면, PSH 플래그는 TCP 통신에서 자주 사용되지만, 보안 분석 관점에서는 특정 상황에서 가장 먼저 의심해야 하는 중요한 단서가 됩니다.


1. PSH 플래그의 일반적인 역할

PSH 플래그는 TCP 헤더의 6개 플래그 중 하나이며, 애플리케이션 계층이 데이터 전송에 대해 가지는 특별한 요구사항을 나타냅니다.

🔍 기술적 의미

  • 즉시 전송 요청: 송신자 측에서 PSH 플래그를 설정하면, 이는 애플리케이션 계층이 "버퍼를 무시하고 이 데이터를 즉시 수신자의 애플리케이션으로 밀어 넣어(Push) 달라"고 운영 체제에 요청하는 것을 의미합니다.
  • 즉시 처리 요청: 수신자 측에서 PSH 플래그를 받은 경우, 이는 "버퍼에 데이터를 쌓아두지 말고 이 데이터를 즉시 애플리케이션으로 전달하라"는 신호로 해석될 수 있습니다.

🌐 일반적인 발생 빈도

PSH 플래그는 실제 애플리케이션 데이터가 전송될 때마다 나타나는 경우가 많으므로 자주 발생합니다.

  • 웹 브라우징 (HTTP):
    • 요청: 브라우저가 서버에 GET /index.html HTTP/1.1 같은 요청을 보낼 때, 이 요청의 끝 패킷에 PSH 플래그가 붙습니다. (요청을 끝내고 응답을 기다린다는 의미)
    • 응답: 서버가 HTML 데이터 전송을 마무리할 때, 마지막 패킷에 PSH 플래그를 붙여 브라우저가 즉시 렌더링하도록 유도할 수 있습니다.
  • Telnet/SSH: 사용자가 키보드 한 글자를 입력할 때마다 PSH 플래그를 설정하여 서버에 즉시 전달합니다.

2. 🚨 PSH 플래그가 의심스러운 이유 (보안 분석 관점)

PSH 플래그는 흔하지만, 수동 펜테스팅보안 트래픽 분석(포렌식)에서는 특정 패턴으로 나타날 때 '비정상적인 상호작용'의 강력한 힌트가 됩니다.

① 빠른 상호작용 (Interactive Traffic)

공격자가 웹 셸을 통해 ls 명령어를 입력하고 그 결과를 화면에 바로 출력받는 일련의 과정은 인터랙티브(Interactive, 상호작용)한 통신에 가깝습니다.

  • 명령어 전송 (공격자 → 서버): 작은 크기의 명령어를 보낼 때 PSH를 설정하여 지연 없이 명령을 실행하게 합니다.
  • 결과 수신 (서버 → 공격자): 서버는 명령어 실행 결과가 나오자마자 이를 PSH 플래그와 함께 공격자에게 보냅니다.
  • 논리: 일반적인 대용량 파일 다운로드(스트리밍)는 PSH 플래그 없이 데이터를 쭉 밀어 넣는 경우가 많습니다. 반면, 작은 명령과 작은 결과가 반복되는 통신은 PSH 플래그가 연속적으로 나타나며, 이는 셸(Shell)이나 C2(Command and Control) 통신처럼 실시간 상호작용이 일어났음을 암시합니다.

② 비정상적인 길이와 PSH의 조합

단순히 PSH 플래그만으로는 부족하며, 이전에 확인하셨듯이 '긴 길이'와 조합될 때 의미가 커집니다.

  • GET 요청이 매우 길 때 PSH: 웹 셸은 명령어를 GET 파라미터(cmd=...)에 인코딩해서 보냅니다. 요청이 일반적인 웹 페이지 URL보다 훨씬 길면서 PSH가 붙어 있다면, 이는 데이터를 담아 즉시 처리하려는 의도가 명확합니다.
  • HTTP 응답이 긴데 PSH: 서버가 ls -la /etc/의 결과 전체를 HTTP 응답 본문에 담아 보낼 때, 이 데이터 패킷들의 끝에 PSH가 붙어 있다면, 이는 데이터의 전송이 마무리되었음을 알리는 중요한 신호가 됩니다.

③ 프로토콜/포트와 PSH의 조합

프로토콜/포트PSH의 의미
HTTP (포트 80)웹 셸 통신에서 PSH는 명령어 및 결과를 포함할 가능성이 매우 높습니다.
Telnet/RDP/VNC이는 정상적인 인터랙티브 세션이므로 PSH가 자주 나타납니다.
대용량 파일 전송파일 전송 중간에 PSH가 자주 나타난다면, 이는 파일 안에 숨겨진 명령어통신 종료 신호일 수 있습니다.

결론적으로, PSH 플래그는 흔하지만, "웹 셸 경로를 포함하고, 길이가 길거나 짧은 데이터가 빠르게 반복되는" 통신에서 PSH 플래그가 나타난다면, 그것은 공격자가 시스템과 상호작용하고 있다는 강력한 증거이므로 가장 먼저 Follow TCP Stream을 해야 하는 대상이 됩니다.

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글