반응형
청춘고양이
배움을 기록하는 곳
청춘고양이
전체 방문자
오늘
어제
  • Hello World (119)
    • JQuery (5)
    • In my opinion (4)
    • HTML&CSS (8)
    • JS (9)
    • JAVA (21)
    • Spring Boot (21)
    • Node.js (1)
    • Linux (7)
    • Git (2)
    • Kotlin (4)
    • Fluttor (4)
    • 정보처리기사 (19)
    • AWS (1)
    • Oracle (8)
    • MySQL (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • spring 기본설정
  • 쉬프트 연산
  • css
  • js 패스워드 변경
  • 객체 안의 함수
  • 초보개발
  • 가위바위보js
  • 청춘고양이
  • 스크롤js
  • js 로또 번호
  • 제이쿼리 비밀번호
  • js 비밀번호
  • 자바
  • ScrollEffectJs
  • js
  • 중복 제거 로또
  • 제이쿼리 패스워드 변경
  • 제이쿼리
  • 자바db연동
  • 제이쿼리 버튼클릭시 색 변경

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
청춘고양이

배움을 기록하는 곳

Linux

방화벽 관통 테스트

2025. 3. 18. 15:01
반응형

리눅스에서 방화벽 관통 테스트 방법

1. 방화벽 관통 테스트란?

방화벽 관통 테스트는 외부에서 방화벽을 우회하여 내부 네트워크에 접근할 수 있는지를 점검하는 작업입니다. 방화벽은 네트워크 트래픽을 필터링하여 불법적인 접근을 차단하지만, 방화벽 규칙을 우회할 수 있는 취약점이 있을 수 있습니다. 방화벽 관통 테스트는 네트워크 보안 전문가가 이러한 취약점을 찾아내고, 시스템을 강화하는 데 도움을 주는 테스트입니다.

리눅스에서는 다양한 도구와 기법을 사용하여 방화벽을 테스트할 수 있습니다.


2. 방화벽 관통 테스트를 위한 주요 도구

1) Nmap (네트워크 스캐너)

nmap은 네트워크 포트 스캔을 통해 방화벽 규칙을 우회하거나 숨겨진 포트를 찾아낼 수 있는 강력한 도구입니다. nmap은 TCP 및 UDP 포트를 스캔하고, 방화벽 뒤에 숨겨진 서비스나 애플리케이션을 식별하는 데 사용됩니다.

Nmap을 이용한 기본 포트 스캔

nmap -p 1-65535 <목표 IP>
  • -p 1-65535: 1번부터 65535번까지의 모든 포트를 스캔합니다.
  • 방화벽 뒤에 열려 있는 포트를 찾아낼 수 있습니다.

방화벽을 우회한 스캔

nmap -Pn -p 80,443 <목표 IP>

 

  • -Pn: 방화벽이 ICMP 패킷을 차단하는 경우, 호스트가 살아 있는지 확인하지 않고 스캔을 시도합니다.
  • -p 80,443: HTTP(포트 80) 및 HTTPS(포트 443) 포트에 대한 스캔을 실행합니다.

서비스 버전 및 운영 체제 감지

nmap -sV -O <목표 IP>

 

  • -sV: 서비스 버전 스캔
  • -O: 운영 체제 감지
  • 방화벽을 우회하여 어떤 서비스와 운영 체제가 동작하고 있는지 파악할 수 있습니다.

2) Hping3 (TCP/IP 패킷 생성 도구)

hping3는 TCP/IP 패킷을 생성하고 보내는 도구로, 방화벽을 우회할 수 있는 다양한 테스트를 수행할 수 있습니다. 이 도구는 TCP, UDP, ICMP 패킷을 생성하여 방화벽 규칙을 우회하는 데 유용합니다.

기본적인 SYN 스캔

sudo hping3 -S -p 80 <목표 IP>
  • -S: SYN 플래그를 설정하여 TCP 연결 요청을 보냅니다.
  • -p 80: 포트 80을 대상으로 합니다.
  • 방화벽에서 SYN 스캔을 차단하는 경우, 다른 방법으로 포트를 우회하여 스캔할 수 있습니다.

스푸핑된 패킷 보내기

sudo hping3 --spoof <위조할 IP> -S -p 80 <목표 IP>
  • --spoof: 패킷의 출발지 IP를 위조하여 방화벽을 우회할 수 있습니다.

3) Netcat (nc)

Netcat은 TCP/UDP 연결을 열고 데이터를 전송할 수 있는 도구로, 방화벽 테스트에서 매우 유용하게 사용할 수 있습니다. Netcat은 포트를 열거나, 방화벽을 우회하는 간단한 방법을 제공합니다.

간단한 리버스 쉘을 통한 포트 스캔

nc -zv <목표 IP> 1-65535

 

  • -z: 포트 스캔을 수행하며, 연결만 테스트합니다.
  • -v: 자세한 출력을 제공합니다.

Netcat을 이용한 연결 우회

nc -l -p 12345
  • -l: 리스닝 모드로 들어가 포트 12345에서 대기합니다.

3. 방화벽 규칙 우회 기법

1) Fragmentation 공격

방화벽은 큰 패킷을 필터링할 수 있지만, 작은 패킷으로 나누어 보내면 이를 통과시킬 수 있습니다. 패킷을 여러 조각으로 분할하여 방화벽을 우회하는 기법을 패킷 분할(Fragmentation) 공격이라고 합니다.

Nmap을 이용한 Fragmentation 공격

nmap -f -p 80 <목표 IP>

 

  • -f: 패킷을 작게 나누어 스캔합니다.
  • -p 80: HTTP 포트에 대해 스캔을 실행합니다.

2) 우회 프로토콜 사용

일부 방화벽은 특정 프로토콜을 차단하지만, 다른 프로토콜을 사용하는 패킷을 허용할 수 있습니다. 예를 들어, HTTP 트래픽을 우회하여 특정 포트에 연결하거나, DNS, ICMP, HTTPS 등을 활용하여 방화벽을 우회할 수 있습니다.

hping3로 HTTP 우회

sudo hping3 --http "GET / HTTP/1.0" -p 80 <목표 IP>
  • HTTP GET 요청을 통해 포트 80에서 방화벽을 우회합니다.

3) 암호화된 터널링 (SSH, VPN)

일부 경우, 방화벽은 암호화된 터널링을 통해 외부와의 연결을 우회할 수 있습니다. SSH나 VPN을 사용하여 방화벽을 우회하는 방법도 존재합니다. SSH 포트 포워딩을 통해 방화벽을 우회할 수 있습니다.

SSH 터널링

ssh -L 8080:localhost:80 user@<목표 IP>
  • 8080: 로컬 포트
  • localhost:80: 목표 서버의 포트 80
  • SSH 터널을 통해 내부 웹 서버에 접근할 수 있습니다.

4. 방화벽 관통 테스트 시 주의사항

  1. 합법적인 테스트: 방화벽 관통 테스트는 반드시 허가된 환경에서 수행해야 합니다. 무단으로 방화벽을 우회하거나 테스트를 수행하면 법적인 문제가 발생할 수 있습니다.
  2. 테스트 계획 수립: 테스트 전에 목표 시스템에 대한 명확한 이해를 바탕으로 테스트 계획을 세워야 합니다. 각 도구와 기법의 적용 범위와 위험을 고려해야 합니다.
  3. 정기적인 보안 점검: 방화벽은 네트워크 보안의 중요한 부분이므로, 정기적으로 보안 점검을 수행하고, 패치와 업데이트를 적용하여 보안을 강화해야 합니다.

결론

리눅스를 활용한 방화벽 관통 테스트는 네트워크 보안을 강화하고, 방화벽을 우회할 수 있는 취약점을 찾아내는 데 중요한 역할을 합니다. nmap, hping3, netcat 등의 도구를 사용하면 다양한 방식으로 방화벽을 우회하거나 숨겨진 포트를 찾아낼 수 있습니다. 이러한 도구들을 사용하여 방화벽의 취약점을 점검하고, 보안 강화 조치를 취하는 것이 중요합니다.

반응형
저작자표시 변경금지 (새창열림)

'Linux' 카테고리의 다른 글

리눅스에서 네트워크 패킷 테스트: 네트워크 성능과 보안 점검  (0) 2025.03.18
tail 명령어 활용법  (0) 2024.07.16
백그라운드에서 Java 애플리케이션(WAR 파일) 실행하기  (0) 2024.06.26
#Linux 3  (2) 2022.11.08
#Linux 2  (0) 2022.11.07
    'Linux' 카테고리의 다른 글
    • 리눅스에서 네트워크 패킷 테스트: 네트워크 성능과 보안 점검
    • tail 명령어 활용법
    • 백그라운드에서 Java 애플리케이션(WAR 파일) 실행하기
    • #Linux 3
    청춘고양이
    청춘고양이
    신입개발자

    티스토리툴바