공격자 서버 : kali 192.168.200.30
방어자 서버 : red hat 192.168.200.23
-sn: 포트 스캔을 하지 않고 호스트가 살아있는지만 확인합니다.
-sS (SYN 스캔): '스텔스 스캔'이라고도 불리며, TCP 연결을 완전히 맺지 않아 로그를 덜 남기면서도 빠르고 정확합니다. (sudo 권한 필요)

-sV: 서비스 버전 정보 탐지 (예: Apache 2.4 등)
-O: 운영체제 추측



-서비스 버전부터 OS 종류까지 한꺼번에 긁어옴
인증서 정보: ssl-cert 항목을 보면 아까 우리가 입력한 Default Company Ltd라는 정보가 보입니다. 공격자는 이를 통해 서버의 발급 기관 정보를 알 수 있습니다.
22/tcp (SSH): 서버 원격 접속용 포트입니다.
53/tcp (Domain): DNS 서버(BIND)가 돌아가고 있네요.
139, 445/tcp (Samba): 윈도우와 파일 공유를 하기 위한 서비스입니다.
2049/tcp (NFS): 리눅스 간 파일 공유 서비스입니다.
9090/tcp: 아마도 Red Hat의 웹 관리 콘솔인 Cockpit 포트일 가능성이 높습니다.
OS 정보: 커널 4.15~5.19 버전 사이의 리눅스로 추측하고 있네요. Red Hat Enterprise Linux 환경임을 정확히 짚어냈습니다.
공격
kali에서 red hat서버에 80포트와 443포트가 열려있는지 확인합니다.
443포트가 열려있는것을 확인하고 ssl 인증서 보는것을 시도합니다.

1. 발견된 취약점: CVE-2011-3192 (Apache byterange DoS)
결과를 보면 80번(HTTP)과 443번(HTTPS) 포트에서 공통적으로 이 취약점이 발견되었습니다.
취약점 명칭: Apache byterange filter DoS (서비스 거부 공격)
작동 원리: 공격자가 서버에 데이터의 아주 작은 조각(Byte Range)을 수없이 많이 요청해서 서버의 메모리와 CPU를 마비시키는 공격입니다.
상태 (State): VULNERABLE. 즉, 지금 Red Hat 서버는 이 공격에 취약한 상태라는 뜻입니다.
현재 Nginx 1.26.3 버전을 사용 중인데, Nmap 스크립트가 Apache용 취약점을 탐지한 것은 Nginx가 해당 요청을 처리하는 방식에서 유사한 패턴이 감지되었거나, 기본 테스트 페이지의 응답 방식 때문일수도있다.
항목 : stored-xss
결과 : Couldn't find
의미 : 서버에 악성 스크립트를 저장하는 방식의 공격이 어렵습니다.
항목 : csrf
결과 : Couldn't find
의미 : 사용자의 의사와 상관없이 요청을 보내는 공격이 감지되지 않았습니다.
항목 : dombased-xss
결과 : Couldn't find
의미 : 브라우저의 DOM 환경을 이용한 XSS 공격에 대해 안전합니다.
Nmap 스캔: 열린 포트 확인 (22, 53, 80, 139, 443 등)
배너 그래빙: Nginx 1.26.3 버전 확인
스크립트 진단 (--script vuln): 알려진 취약점(CVE-2011-3192) 매칭 성공
방어
방금 Nmap 스캔 결과에서 확인된 CVE-2011-3192(Apache byterange DoS) 취약점은 해커가 과도한 범위 요청을 보내 서버의 자원을 고갈시키는 공격입니다.
sudo vi /etc/nginx/nginx.conf

공격자는 수백, 수천 개의 범위(range)를 한꺼번에 요청해서 서버를 괴롭힙니다. 이를 1로 제한하면, 정상적인 요청은 허용하면서도 공격자가 시도하는 과도한 중복 요청은 Nginx가 알아서 거절하게 됩니다.
적용하는 순서
파일 저장 후 나오기 (Esc 누른 후 :wq! 입력)
설정 확인: sudo nginx -t (오타가 나면 여기서 알려줍니다)
서버 반영: sudo systemctl restart nginx
보안 업데이트 (패치) 수행
Nmap 결과에 해당 CVE가 뜬다는 것은 시스템 라이브러리나 패키지가 구버전의 취약한 로직을 포함하고 있을 가능성을 의미합니다. Red Hat 계열(RHEL) 시스템을 최신 상태로 유지하는 것이 기본입니다.
방화벽 및 IPS(침입 방지 시스템) 활용
Nmap 스캔 자체를 어렵게 만들거나, 반복적인 DoS 패턴을 보이는 IP를 차단하는 것도 좋은 방법입니다.
Firewalld 설정: 불필요한 포트를 닫고 허용된 IP에서만 접속하게 제한합니다.
Fail2Ban 도입: 단시간에 과도한 요청을 보내는 공격자 IP를 자동으로 차단하도록 설정할 수 있습니다.
저는 1번으로 조치했습니다.
결과 확인
조치 전: STATE: VULNERABLE 표시됨
kali에서 다시 명령어 입력 : sudo nmap --script vuln 192.168.200.23
조치 후: 해당 취약점 내용이 결과에서 사라지거나 VULNERABLE 문구가 나오지 않아야 합니다.

VULNERABLE이 사라졌기 때문에 방어에 성공했습니다.