280. 프로세스·지속성 — 백도어 리스너(bind shell) 탐지

changseop lee·2026년 10월 7일

시스템 보안 · 취약점

목록 보기
280/450

시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 30/50편 (전체 280/450)
학습 단계: 백도어·C2·은닉 징후
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

리버스 셸(F29)의 반대는 바인드 셸(bind shell)입니다. 피해 호스트가 포트를 열고 공격자 접속을 대기(리스닝)합니다. 방화벽이 인바운드를 허용하는 환경이나 내부망에서 쓰이며, 비정상 리스닝 포트로 탐지됩니다.

바인드 셸 백도어 원리
 피해가 포트 열고 대기: nc -l -p 4444 (-e 셸 실행 옵션)
   공격자가 그 포트로 접속 → 셸 획득
 비정상 리스닝: 셸·임시 바이너리가 포트 리스닝
 위장: 정상 포트(80·443) 흉내
 지속성 결합: cron·systemd로 리스너 재기동(F19·20)

핵심: 비서비스 프로세스의 리스닝 포트

바인드 셸은 "비서비스 프로세스가 포트를 열고 대기"하는 것이 특징입니다. 정상 서비스가 아닌 셸·netcat·임시 바이너리의 리스닝이 신호입니다.

2. 왜 중요한가

  • 바인드 셸은 피해가 리스닝하므로, 비정상 리스닝 포트가 핵심 탐지 지표입니다.
  • 인바운드 허용 환경·내부망·측면 이동(G영역) 후 거점에서 자주 쓰입니다.
  • 지속성(cron·systemd)과 결합해 리스너를 재기동하면 영구 백도어가 됩니다.

3. 핵심 명령어 / 설정

바인드 셸 요소신호위험
셸 리스닝nc -lvp -e sh매우 높음
비서비스 리스닝임시 바이너리 포트높음
비표준 포트4444·1337 등높음
정상 포트 위장80·443 흉내높음
정상 서비스 리스닝정상정상

4. 실습 (실습 예시)

# 바인드 셸 백도어 탐지 (분석 방법)
# 비서비스 프로세스의 리스닝 포트
ss -tlnp 2>/dev/null | grep -vE 'sshd|nginx|mysqld|systemd|master|rpcbind'
# netcat·셸 리스너 실행
sudo ausearch -k proc_exec -i --start recent 2>/dev/null | grep -E 'proctitle=.*(nc.*-l|ncat.*-l|socat.*LISTEN|-lvp)' | tail

5. 정상 상태

$ (비서비스 리스닝) (없음 — 알려진 서비스만 리스닝)
$ (셸 리스너) (없음)

리스닝 포트가 알려진 서비스뿐이고, netcat·셸 리스너 실행이 없는 상태가 정상입니다.

6. 이상 상태

$ (비서비스 리스닝)
0.0.0.0:4444 users:(("nc"))
0.0.0.0:1337 users:(("/tmp/.x"))
$ (셸 리스너)
proctitle="nc -l -p 4444 (-e 셸 실행 옵션)"
  • nc가 4444 포트 리스닝 + 셸 실행 옵션 → 바인드 셸 백도어
  • /tmp/.x가 1337 리스닝 → 임시 바이너리 리스너
  • 비서비스 프로세스의 리스닝+셸 연결 → 바인드 셸 → 정탐

7. 로그 분석 (분석 방법)

바인드 셸 백도어 분석입니다(가상의 예시).

[리스너] nc -l -p 4444 (-e 셸 실행 옵션) (포트 열고 대기)
   ↓
[접속] 공격자 → 피해:4444 → 셸 획득
   ↓ 지속성 결합
cron/systemd → nc 리스너 재기동 (F19·20)
   ↓
[제어] 공격자가 언제든 접속해 명령 실행
 = 리스닝 백도어 + 지속성 = 영구 접근
요소해석
nc -lvp -e셸 리스너
비표준 포트백도어
비서비스악성 리스닝
지속성 결합재기동

비서비스 프로세스의 리스닝+셸 결합이 바인드 셸의 지표입니다.

8. SOC 관제 포인트

  • 바인드 셸은 피해가 포트를 열고 공격자 접속을 대기하는 리스닝 백도어입니다.
  • 비서비스 프로세스(셸·netcat·임시 바이너리)의 리스닝이 핵심 탐지 지표입니다.
  • 지속성(cron·systemd)과 결합하면 리스너 재기동으로 영구 백도어가 됩니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_f,c2,">
  <rule id="105290" level="13">
    <if_sid>105010</if_sid>
    <field name="audit.proctitle" type="pcre2">(nc|ncat)\s+.*-l.*-e|socat\s+.*LISTEN.*exec|(nc|ncat)\s+-l.*(-p|vp)\s+[0-9]+</field>
    <description>바인드 셸 리스너 실행(리스닝 백도어)</description>
    <mitre><id>T1059.004</id><id>T1571</id></mitre>
  </rule>
</group>

비서비스 리스닝 포트는 ss 점검·네트워크 모니터링으로 보완합니다. 리스너+지속성(F19·20) 결합을 상관합니다.

10. 대응 방법

  1. 초기 확인 — 비서비스 프로세스의 리스닝 포트·리스너 프로세스·포트를 확인합니다.
  2. 범위 확인 — 셸 결합(-e)·비표준 포트·지속성 재기동을 확인합니다.
  3. 증거 확보 — 리스너 실행·리스닝 포트·지속성 로그를 보존합니다.
  4. 차단/조치 — 바인드 셸 정탐이면 리스너 종료·포트 차단·지속성 제거를 진행합니다.
  5. 재발 방지 — 비정상 리스닝 기반 바인드 셸 탐지를 운영합니다.

11. 핵심 정리

바인드 셸 요소신호
셸 리스닝nc -lvp -e sh
비서비스 리스닝임시 바이너리 포트
비표준 포트4444·1337
지속성 결합리스너 재기동
면접 포인트"바인드 셸은 피해가 리스닝 — 비서비스 프로세스의 리스닝 포트가 핵심 지표"

12. 다음 편 예고

다음 편 281. 프로세스·지속성 — C2 비컨(beacon) 통신 패턴 탐지 에서는 C2 비컨 통신을 다루는 C2 비컨(beacon) 통신 패턴 탐지를 다룹니다.


이전 편: 279. 프로세스·지속성 — 리버스 셸(reverse shell) 징후 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글