실습 환경 세팅
192.168.0.15/17/18 이미지
vmware에서 vmx 확장자를 실행한다.
네트워크 스캐닝 공격
스캔을 통해 서비스를 제공하는 서버의 작동 여부와 제공하고 있는 서비스를 확인할 수 있다. 스캐닝에 사용하는 프로토콜은 ICMP, TCP, UDP로 나눌 수 있다.
개요
- 정의
- 스캐닝은 네트워크를 통해 제공하고 있는 서비스, 포트, HOST 정보 등을 알아내는 것을 의미
- TCP 기반의 프로토콜의 질의(Request) 응답(Response) 메커니즘
- 대표적인 스캔 프로그램으로는 nmap이 있음
- 목적
- 열려 있는 포트 확인
- 제공하는 서비스 확인
- 동작중인 Daemon의 버전
- 운영체제 종류 및 버전
- 취약점
- Scanning 시 사용 프로토콜: ICMP, TCP, UDP
절차
- 활동 범위 결정
- 회사에 대한 정보: 위치, 네트워크 주소 등
- 직원에 대한 정보: 연락처, email 등
- 협력사에 관한 정보: 업무 연계 정보 등
- 공개 되어 있는 정보 수집 => OSINT
- 네트워크 목록 수집
- 서비스를 제공하는 네트워크 대역: Web Server, DB Server
- ping 명령어를 사용함
- 내부 네트워크 대역: 내부에서 사용중인 IP 대역, 인트라넷 주소
- Nmap을 이용한 네트워크 정보 수집
- 서비스를 제공하는 네트워크 대역: Web Server, DB Server
- DNS 질의
- DNS Query를 통한 정보 수집: 관리자 정보, 레코드 업데이트 시기, DNS 정보
- DNS 역 질의: 서버 리다이렉트 여부
- nslookup [도메인명]으로 네임서버를 통해 원하는 도메인의 IP를 찾아준다.
- dig [도메인명]으로 DNS 쿼리 (nslookup에 대비 유연성, 편의성, 출력의 명료성을 가진 DNS 쿼리 도구 / 별도 설치 필요)
- whois.co.kr으로 동록자 및 도메인 이름, 관리자 연락처, 레코드 생성시기와 업데이트 시기, 주DNS서버와 보조DNS서버 확인 가능
- dnshistory.com으로 도메인 레코드 정보를 조회할 수 있다.
- Maltego 연관검색
- 네트워크 정찰
- 경로 추적: 보안장비 존재 여부
- 도달 가능한 네트워크
- 경로 추적
- Tracert(windows), Traceroute(Linux/Unix)
- 명령어는 7계층, 안에서 사용하는 프로토콜인 ICMP는 3계층이다.
- 거쳐가는 장비의 IP 주소가 출력되고 있는 것이다.
- Visual Route
- traceroute, tracert보다 속도가 빠르고 알아보기 쉬움
- Tracert(windows), Traceroute(Linux/Unix)
종류
스캔의 종류로는 Ping&ICMP 스캔, TCP와 UDP를 이용한 스캔이 있다. 그중 TCP와 UDP를 이용한 스캔에는 오픈 스캔, 하프 오픈 스캔 등이 있다.
- TCP 프로토콜의 6개 플래그를 살펴보기.
- URG, ACK, PSH, RST, SYN, FIN
- Ping & ICMP 스캔
- Ping은 네트워크와 시스템이 정상적으로 작동하는지 확인
- Echo Request와 Echo Reply를 이용한 방법
- ICMP(Internet Control Messaging Protocol)를 사용
- 오픈 스캔(Open Scan)
- TCP 3-Way-Handshake를 이용해 정상적인 연결을 바탕으로 Open된 포트 정보를 추출
- TCP connect 스캔
- Open된 포트의 경우 target 시스템에서 SYN/ACK 패킷이 응답
- Close된 포트의 경우 target 시스템에서 RST/ACK 패킷이 응답
- 하프 오픈 스캔(Half-Open Scan)
- TCP 3-Way-Handshake 방식의 연결을 비정상적으로 종료하는 방식
- 표적 시스템 로그에 기록되는 것을 피할 수 있으나 방화벽이나 IDS에는 탐지
- TCP 하프 오픈 스캔
- SYN을 보낸 후 표적에서 SYN/ACK 응답이 오면 표적 HOST가 살아있다고 추측
- 응답으로 ACK를 보내는 대신 RST를 보내 세션을 성립하지 않아 로그를 남기지 않음
- TCP 3-Way-Handshake 방식의 연결을 비정상적으로 종료하는 방식
- 스텔스 스캔 (Stealth Scan)
- 세션을 완전히 성립하지 않고 공격 대상 시스템의 포트 활성화 여부를 알아내는 스캔
- 시스템 세션 연결 관련된 로그가 남지 않음
- ACK, NULL, X-MAS 스캔 등이 존재
- X-MAS 스캔
- 모든 flag를 보내거나 FIN, PSH, URG 플래그를 보내는 스캔
- ACK or FIN 스캔
- ACK 또는 FIN 플래그만 보내는 스캔
- NULL 스캔
- flag를 하나도 포함하지 않는 패킷을 보내는 스캔
- UDP 스캔
- 대상 HOST에 UDP 패킷을 보냈을 때 닫힌 포트는 ICMP_PORT_UNREACHABLE 응답
- 열린 포트는 아무 응답이 없는 방법을 이용
- (+) QUIC 프로토콜
- 유튜브 packet
- TCP처럼 신뢰성이 높고 UDP처럼 빠르다
Nmap Option
Nmap은 스캐닝에 있어 대표적인 도구 중 하나이다. 각 옵션들은 사용자에게 여러 가지 이점을 주며, 옵션 활용에 따라 사용자가 획득할 수 있는 정보의 질이 달라진다.
- Nmap 활용
- 활성화 된 host 검색
- 옵션: -sP
- Ex) nmap -sP 192.168.0.0/24
- 24-> 255.255.255.0 -> 192.168.0.0~255까지 ip 전부 검색해보겠다
- Wireshark를 통해 nmap 명령 시 패킷의 변화를 살펴보기
- 가장 많이 쓰는 상위 N개의 포트 스캐닝
- 옵션: --top-ports N(개수)
- Ex) nmap --top-ports 5 [IP]
- Scripts를 이용한 스캐닝
- 옵션: --script
- Ex) nmap -p 139, 445 --script=smb-vuln-ms17-010 [IP]
- smb-vuln-ms17-010 스크립트를 이용한 MS17-010 취약점 및 Eternalblue 감염 여부 확인
- 보내고 받은 모든 패킷 표시하며 스캐닝 수행
- 옵션: --packet-trace
- Ex) nmap -ST --packet-trace 192.168.0.17
- Banner Grabbing
- 운영체제 버전과 커널 버전 확인 가능
- 21, 23, 25, 110, 143 포트에서도 가능
- nc/telnet [ip] [port]
- 운영체제 버전과 커널 버전 확인 가능
- SYN 스캔
- hping3 명령어를 이용하여 아래와 같이 명령어를 입력
- -c: 보낼 패킷 수 / -p: 포트 / -S: SYN 패킷 Flag
- Wireshark를 통한 스캔 결과 확인
- Ex) hping3 -S www.naver.com -p 80 -c 2
- (+) yum install -y httpd -> 웹서버 설치
- Kali Linux에서 실행
- hping3 명령어를 이용하여 아래와 같이 명령어를 입력
- 활성화 된 host 검색
대응 방안
OS 설치 시 기본적으로 탑재되어 실행되는 서비스 중에는 보안에 취약한 서비스들이 있다. 그러한 서비스를 중지하는 것만으로도 어느정도 방어가 가능하다.
- 네트워크 장비에 의한 필터링
- Router/Switch에서 ACL을 이용하여 허용하지 않은 사용자의 네트워크 접근 차단
- 서버에서 실행중인 불필요한 서비스 중지
- 불필요한 Port 닫기
- 침입담지시스템(IDS) 및 침입차단시스템(IPS) 연동
- syslog를 점검하더라도 스캔이 끝난 상황이라면 대응이 늦어질 수 있음
- 침입탐지 시스템을 이용하여 침입자를 감지하고 침입차단 시스템에서 공격자의 IP를 차단
- syslog를 점검하더라도 스캔이 끝난 상황이라면 대응이 늦어질 수 있음
근거리 네트워크 위협
근거리 네트워크(LAN) 내부에서 일어날 수 있는 위협은 외부와 크게 다르지는 않지만 OSI 7 Layer에서 2계층에 해당하는 MAC 주소 또는 프로토콜을 이용한 공격이 수행되는 것이 특징이다.
- 근거리 네트워크 공격 종류
- LAN 범위 내에서 수행될 수 있는 공격에 한정하여 OSI 7 Layer 중 2계층에서 이루어지는 공격을 의미
- 주요 공격
- ARP를 이용한 MITM 공격
- Main In The Middle의 약자로 중간자 공격이라 불림
- 통신하는 두 단말 사이에 중간자가 침입하여 양단의 통신을 도청하거나 조작
- 중간자 공격을 막기 위해 TLS/SSL 프로토콜을 이용한 공개 키 기반 인증을 사용
- 2계층에서 주로 활용하는 공격으로는 ARP 스푸핑을 이용한 연계 공격이 존재
- STP(Spanning Tree Protocol) 공격
- STP는 스위치 네트워크 환경에서 사용되는 프로토콜
- 루핑(정상적인 연결을 수행하지 못하고 통신이 쳇바퀴처럼 도는 현상) 공격을 방지하는 프로토콜
- STP를 이용하여 스위치의 연결 흐름을 제어하여 악의적인 목적의 스위치로의 연결을 전환 가능
- MAC 스푸핑 공격
- 연결되어 있는 MAC 주소를 변조하는 공격
- 특정 장치로 위장하거나 해당 장치의 서비스를 거부하는 공격으로 활용
- CAM(Content Addressable Memory) 테이블 오버플로우
- MAC 주소 테이블은 스위치에서 연결되어 있는 장치로의 데이터 송수신을 위하여 Mac 주소별 특정 경로 선택을 위한 IP 또는 포트를 매칭하고 저장하고 있는 공간
- 스위치 전원이 올라왔을 때 Mac 테이블을 임의로 과도하게 늘려 저장하도록 수행
- 저장된 테이블 수가 다량이면 정상적인 연결이 새로 들어올 경우 이미 잡혀 있는 메모리의 한계가 존재하기 때문에 정상 연결이 불가하도록 DoS 유형의 공격
- DHCP Starvation 공격
- DHCP 서버에 DoS 공격을 수행하여 새로운 클라이언트가 IP를 자동으로 할당받지 않도록 하는 공격
- DHCP 서비스에서 과정 중 DISCOVER 단계의 패킷을 지속적으로 보내 DHCP 서비스를 이용한 IP 자동할당이 되지 않도록 함
- DHCP => 동적 IP 할당. Static은 IP, Subnet을 할당해야 하고, Dynamic은 게이트에서 불러와서 자동으로 할당됨.
- DISCOVER 단계는 IP를 요청하고 할당하는 단계이다. 제대로된 MAC 주소인지 확인하는 단계가 없다. 잘못된 MAC 주소에 계속할당 하면 더 이상 할당 가능한 IP 주소가 없다.
- ARP는 대상의 IP=> 대상의 MAC로 변환 / RARP는 자신의 MAC => 자신의 IP로 변환
- static IP: HDD에 저장, Dynamic: Memory에 저장
- HDD: 비휘발성, Mem: 휘발성
- ARP를 이용한 MITM 공격
ARP 스푸핑을 이용한 MITM 공격
ARP 스푸핑은 근거리 네트워크에서 사용되는 대표적인 중간자 공격으로 두 단말 간의 통신을 속여 자신을 통해 통신하도록 만들어 중간에서 네트워크 통신 내용을 스니핑 또는 스푸핑하도록 하는 기술이다.
- ARP 스푸핑?
- 근거리 네트워크(LAN) 환경에서 중간자 공격에 사용되는 기술로 활용
- IP에서 MAC 주소로 변환하는 과정에서 발생하는 ARP Reply 패킷을 변조하여 공격하는 방식
- ARP 스푸핑을 이용한 MITM 공격 원리
- 두 단말 간의 통신 사이에서 정상 통신으로 속여 데이터가 공격자를 경유하도록 유도하는 기술
- 두 단말 간은 정상적 통신을 하는 것으로 알고 있지만 실제로는 공격자를 통해 패킷을 전달
- 공격자는 두 단말 간의 통신 내용을 스니핑(Sniffing) 또는 스푸핑(Spoofing)하여 전달 가능
- ARP 스푸핑 공격 과정
- 공격자(IP:x.x.x.40)은 B 사용자 PC에게 연결하고자 하는 A사용자 IP에 자신의 MAC 주소를 포함하는 ARP reply 패킷을 지속적으로 보냄
- B사용자 PC는 x.x.x.10에 해당하는 IP를 자신의 ARP 테이블 내 공격자의 MAC 주소로 기억
- 공격자는 두번째로 A 사용자 PC에게 연결하고자 하는 B사용자 IP에 자신의 MAC 주소를 포함하는 ARP reply 패킷을 지속적으로 보냄
- A 사용자 PC는 x.x.x.20에 해당하는 IP를 자신의 ARP 테이블 내 공격자의 MAC 주소로 기억
- 서로 연결하고자 하는 사용자 A,B PC들은 공격자의 MAC 주솔 통신, 즉 공격자를 통해 서로 연결
- 각 사용자 A,B PC는 정상 연결로 인지하므로 공격자가 어떤 행위를 하던 정상 패킷으로 간주
- ARP 스푸핑을 이용한 위협들
- Shiff 기능
- 도청, 감청 등과 같이 서로 간의 통신을 살펴볼 수 있음
- 스푸핑 기능
- 중간자 공격으로 서로 간의 Packet을 원하는 것으로 수정하여 서로에게 전달할 수 있음
- Shiff 기능
ARP 스푸핑 공격 실습
// 게이트웨이를 대상으로 공격
$ arpspoof -i eht0 -t [GATEWAY_IP] [TARGET_IP]
// 피해자를 대상으로 공격 상태 유지 및 새창에서 작업
$ arpspoof -i eho0 -t [TARGET_IP] [GATEWAY_IP]
// 네트워크 연결을 위해 포워딩을 해주는 명령 실행
// fragrouter를 이용한 IP 포워딩
$ fragrouter -B1
// ARP 스푸핑 공격 실습
// 피해자 PC에서 arp-a 명령을 활용해 공격자와 게이트웨이가 동일한 MAC 주소임을 확인
// 피해자 PC(클라이언트)에서 서버로 로그인 시 노출된 ID, PW를 공격자의 wireshark에서 확인
ARP 스푸핑 대응방안
- 시스템 내 대응방안
- 정적인 ARP table 관리
- 재부팅 시에도 항상 정적인 ARP table이 관리될 수 있도록 설정
- 보안 수준 강화
- 공격자가 설치한 프로그램으로 수행될 수 있으므로 서버 내의 보안 수준 강화
- 중요 패킷 암호화
- 네트워크를 통해 중요한 데이터가 송수신 될 경우 유출 및 변조되지 않도록 조치
- 정적인 ARP table 관리
- 네트워크 장비 내 대응방안
- 정적인 MAC 주소 관리
- 사설 VLAN 활용
- 보안 스위치 활용
'🍀 Cloud Architect > Security' 카테고리의 다른 글
보안 컨설팅, 취약점 분석 관리, 모의해킹 (0) | 2023.07.31 |
---|---|
실무에서 TTPs 활용하기 (0) | 2023.07.31 |
웹 서비스 공격 위협 (0) | 2023.07.31 |
기업 IT 인프라 구성의 이해 (0) | 2023.07.29 |
보안 용어 (0) | 2023.07.29 |