시스템 보안 · 취약점 › F. 비정상 프로세스 · 지속성 징후 · 30/50편 (전체 280/450)
학습 단계: 백도어·C2·은닉 징후
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
리버스 셸(F29)의 반대는 바인드 셸(bind shell)입니다. 피해 호스트가 포트를 열고 공격자 접속을 대기(리스닝)합니다. 방화벽이 인바운드를 허용하는 환경이나 내부망에서 쓰이며, 비정상 리스닝 포트로 탐지됩니다.
바인드 셸 백도어 원리
피해가 포트 열고 대기: nc -l -p 4444 (-e 셸 실행 옵션)
공격자가 그 포트로 접속 → 셸 획득
비정상 리스닝: 셸·임시 바이너리가 포트 리스닝
위장: 정상 포트(80·443) 흉내
지속성 결합: cron·systemd로 리스너 재기동(F19·20)
핵심: 비서비스 프로세스의 리스닝 포트
바인드 셸은 "비서비스 프로세스가 포트를 열고 대기"하는 것이 특징입니다. 정상 서비스가 아닌 셸·netcat·임시 바이너리의 리스닝이 신호입니다.
| 바인드 셸 요소 | 신호 | 위험 |
|---|---|---|
| 셸 리스닝 | nc -lvp -e sh | 매우 높음 |
| 비서비스 리스닝 | 임시 바이너리 포트 | 높음 |
| 비표준 포트 | 4444·1337 등 | 높음 |
| 정상 포트 위장 | 80·443 흉내 | 높음 |
| 정상 서비스 리스닝 | 정상 | 정상 |
# 바인드 셸 백도어 탐지 (분석 방법)
# 비서비스 프로세스의 리스닝 포트
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
$ (비서비스 리스닝) (없음 — 알려진 서비스만 리스닝)
$ (셸 리스너) (없음)
리스닝 포트가 알려진 서비스뿐이고, netcat·셸 리스너 실행이 없는 상태가 정상입니다.
$ (비서비스 리스닝)
0.0.0.0:4444 users:(("nc"))
0.0.0.0:1337 users:(("/tmp/.x"))
$ (셸 리스너)
proctitle="nc -l -p 4444 (-e 셸 실행 옵션)"
바인드 셸 백도어 분석입니다(가상의 예시).
[리스너] nc -l -p 4444 (-e 셸 실행 옵션) (포트 열고 대기)
↓
[접속] 공격자 → 피해:4444 → 셸 획득
↓ 지속성 결합
cron/systemd → nc 리스너 재기동 (F19·20)
↓
[제어] 공격자가 언제든 접속해 명령 실행
= 리스닝 백도어 + 지속성 = 영구 접근
| 요소 | 해석 |
|---|---|
| nc -lvp -e | 셸 리스너 |
| 비표준 포트 | 백도어 |
| 비서비스 | 악성 리스닝 |
| 지속성 결합 | 재기동 |
비서비스 프로세스의 리스닝+셸 결합이 바인드 셸의 지표입니다.
<!-- 실습 예시 룰: 적용 전 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) 결합을 상관합니다.
| 바인드 셸 요소 | 신호 |
|---|---|
| 셸 리스닝 | nc -lvp -e sh |
| 비서비스 리스닝 | 임시 바이너리 포트 |
| 비표준 포트 | 4444·1337 |
| 지속성 결합 | 리스너 재기동 |
| 면접 포인트 | "바인드 셸은 피해가 리스닝 — 비서비스 프로세스의 리스닝 포트가 핵심 지표" |
다음 편 281. 프로세스·지속성 — C2 비컨(beacon) 통신 패턴 탐지 에서는 C2 비컨 통신을 다루는 C2 비컨(beacon) 통신 패턴 탐지를 다룹니다.
이전 편: 279. 프로세스·지속성 — 리버스 셸(reverse shell) 징후 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점