[Network] Foot-printing, Port Scan, Open Scan, TCP Scan, UDP Scan, Stealth Scan, Half Open Scan, FIN Scan, Xmas Scan, Null Scan

공부한 내용 정리하는 공간입니다.

틀린 내용이 있을 수 있습니다.

모든 지적, 첨언 환영합니다.

Foot-printing

공격 전에 공격 대상에 대한 정보를 수집하는 방법

사회 공학 기법, IT 기술 기반 기법

공격 대상의 이름, 계정, 전화번호 등을 수집

 


Port Scan

공격 방법을 결정하거나 공격에 이용할 수 있는 네트워크, 서비스의 정보를 얻기 위한 방법

서비스 종류, 플랫폼 형태, 운영체제 등을 알 수 있음

개방된 포트를 찾는 작업

Nmap : 포트 스캔 도구, 관제사들이 많이 사용, GUI 버전으로 zenmap이 있음

단시간에 수신포트가 바뀌며 SYN을 받는다면 포트스캔 의심

관제사는 취약점 점검을 위해 포트 스캔 진행

포트가 개방되어 있다고 무조건 타겟으로 선정되는것은 아님

    >공격자의 프로그램과 포트의 취약점을 고려함

포트 스캔 자체도 공격으로 판단 (수동적 공격)

    >함부로 시도했다가 법적 조치를 받을 수 있음

 


Open Scan

시스템의 서비스 활성화 여부 확인 용도

종류 : TCP Open Scan, UDP Open Scan

 


TCP Full Open Scan

3WHS 이용한 방법

타겟의 포트에 SYN 전송, 응답을 보고 포트 개방여부 확인

열려있는 포트 응답 : SYN, ACK > 공격자 응답 : ACK

닫혀있는 포트 응답 : RST, ACK

방화벽이 설치된 포트 응답 : 응답 없음

공격자들은 full open scan을 많이 사용하지 않음

    >열려있는 포트에서 보낸 RST, ACK를 받으면 공격자도 ACK를 보내기 때문에 로그가 남게 됨

ex) 192.168.10.20의 포트 스캔

nmap -sT 192.168.10.20

TCP Full Open Scan 패킷분석 (Wireshark)

113 포트에 SYN을 보내고 응답으로 RST, ACK 받음

    >192.168.10.20에서 113 포트는 닫혀 있음

21 포트에 SYN을 보내고 응답으로 SYN, ACK 받음

    >192.168.10.20에서 21 포트는 열려 있음

열려있는 포트에서 보낸 패킷 필터링 : (tcp.flags.ack == True) && (tcp.flags.syn == True)

 


UDP Scan

UDP는 3WHS 절차가 없음

타겟의 포트에 UDP 전송, 응답을 보고 포트 개방여부 확인

열려있는 포트 응답 : UDP

닫혀있는 포트 응답 : ICMP Unreachable

ex) 192.168.10.20의 포트 스캔

nmap -sU 192.168.10.20

UDP Scan 패킷분석 (Wireshark)

53 포트에 UDP(DNS)를 보내고 응답으로 UDP(DNS) 받음

    >192.168.10.20에서 53 포트는 열려 있음

    >포트 번호는 UDP 상세정보 에서 확인 가능

17338 포트에 UDP를 보내고 응답으로 ICMP Unreachable 받음

    >192.168.10.20에서 17338 포트는 닫혀 있음

ICMP에서 공격자 IP, UDP 확인할 수 있음

 


Stealth Scan

3WHS 이용한 것 아님

TCP 헤더를 조작하여 특수 패킷을 만들어서 사용

세션을 성립하지 않아 타겟에 로그를 남기지 않음

 


TCP Half Open Scan

타겟의 포트에 SYN 전송, 응답을 보고 포트 개방여부 확인

열려있는 포트 응답 : SYN, ACK > 공격자 응답 : RST

닫혀있는 포트 응답 : RST, ACK

ex) 192.168.10.20의 포트 스캔

nmap -sS 192.168.10.20

TCP Half Open Scan 패킷분석 (Wireshark)

21 포트에 SYN을 보내고 응답으로 SYN, ACK 받음

공격자가 RST로 응답

    >192.168.10.20에서 21 포트는 열려 있음

RST, ACK가 아닌 RST 단독 패킷만 필터링 : tcp.flags.str == "·········R··" (또는 연산자 활용)

 


FIN Scan

이전에 세션이 이루어진 적이 없지만 타겟의 포트에 FIN 전송, 응답을 보고 포트 개방여부 확인

열려있는 포트 응답 : 응답 없음

닫혀있는 포트 응답 : RST, ACK

ex) 192.168.10.20의 포트 스캔

nmap -sF 192.168.10.20

FIN Scan 패킷분석 (Wireshark)

113 포트에 FIN을 보내고 응답으로 RST, ACK 받음

    >192.168.10.20에서 113 포트는 닫혀 있음

 


Xmas Scan

UGR, PSH는 데이터 전송 중에 사용하는 Flags

FIN은 데이터 전송 종료에 사용하는 Flags

문법적으로는 같이 사용할 수 없음

타겟의 포트에 FIN, PSH, URG 전송, 응답을 보고 포트 개방여부 확인

열려있는 포트 응답 : 응답 없음

닫혀있는 포트 응답 : RST, ACK

ex) 192.168.10.20의 포트 스캔

nmap -sX 192.168.10.20

Xmas Scan 패킷분석 (Wireshark)

113 포트에 FIN, PSH, URG를 보내고 응답으로 RST, ACK 받음

    >192.168.10.20에서 113 포트는 닫혀 있음

 


Null Scan

TCP 헤더 내 Flags에 아무런 값도 설정하지 않고 전송

열려있는 포트 응답 : 응답 없음

닫혀있는 포트 응답 : RST, ACK

 


Switch Jamming (MAC Floding Attack)

공격자의 sniffing 방법

스위치를 허브화 시켜서 모든 데이터를 플러딩 방식으로 전송

스위치의 MAC 주소 테이블을 공격하는 것이 목적

1 공격자가 가짜 MAC 주소 생성
2 가짜 MAC 주소를 스위치로 전송
3 스위치의 MAC 주소 테이블에 가짜 주소가 저장됨
4 공격 반복으로 MAC 주소 테이블 용량 초과, 추가로 저장하지 못함
5 데이터 전송할 때 스위치에 목적지 MAC 주소가 없어서 데이터를 플러딩 전송
6 공격자에게 데이터가 전송됨