정보보호 Scanning 목차 Ⅳ. 스캐닝 (Scanning) 1. 활성화된호스트식별 ping 침투테스트범위에있는 IP주소만목록화 현재동작중인시스템확인 ping Echo request 메시지를강제종료전까지계속전송 Echo request 메시지를 4 개전송후, 자동으로종료 Ping - ICMP(Internet Control messaging Protocol) 패킷을사용 - echo request, echo reply 패킷 - target 시스템이 off상태이거나, ICMP패킷을차단하는경우 Destination Host Unreachable 메시지 - 유의점 ) 네트워크문제로인해이런메시자가보이기도함 - 신뢰성이떨어짐 권장하지않음 ( 차단하거나, 알려질수있음 )
Ping - ping ping Ping - 운영체제별 TTL값 Target 까지몇개의라우터를경유했는지알수있음 (TTL : 64 52 = 12 개 ) ping arping - ARP패킷을이용한 live호스트식별 ICMP프로토콜 ICMP - 인터넷제어메시지프로토콜 (Internet Control Message Protocol) - IP프로토콜의오류제어및지원, 통보메커니즘이없다는것을보완 TTL 필드가 0이되어라우터가 datagram을폐기할경우주어진시간내에 datagram의모든조각 ( 단편 ) 을수신하지못해, 목적지호스트가폐기한경우해당호스트가 off상태인경우등 알릴메커니즘이없다 - 네트워크계층프로토콜 - 데이터링크계층으로직접전달되지않음 (IP datagram내에캡슐화 )
ICMP 프로토콜 ICMP 프로토콜 ICMP 메시지 - 오류보고메시지 (Error-reporting) : 라우터 or 목적지호스트가 IP패킷을처리하는도중발견되는메시지보고 - 질의메시지 (Query) : 라우터 or 다른호스트의정보를획득하기위해사용하는메시지 ICMP 메시지 - Ping sweep ( 핑스윕 ) Ping sweep Ping sweep - 특정 IP주소범위안에있는모든장비에자동으로 ping 패킷을보내어활성화된시스템을찾는것 - 특정범위안에있는모든장비에따로따로 ping 패킷을보내는것 ( 매우비효율적 ) netenum - 살아있는 host 들을빠르게출력하는 ping sweep 도구 - ICMP echo request 패킷사용 - 위치 : /pentest/enumeration/irpas -실행: #./netenum < 스캔할네트워크대역 > <timeout> <verbosity> fping - 위치 : Information Gathering Network Analysis Identify Live Hosts - fping - 사용 : #fping -a -g 192.168.41.1 192.168.41.254 #fping -a -g 192.168.41.0/24 - timeout 을사용하지않으면, 오탐발생 ( 모든 host ip 출력 )
Ping sweep Nmap - sp : ping을이용한호스트활성화확인 스캔 TCP연결설정 -3way handshaking TCP연결종료 -4way handshaking SYN FIN ( 연결종료요청 ) SYN + ACK ACK ( 연결종료승인 ) FIN ( 연결종료요청 ) ACK ACK ( 연결종료승인 ) 스캔 스캔 TCP 연결리셋 (Connection Reset) (2) 비정상적인상황이므로연결중단 스캔순서 - 연결이파기되었음을의미 (1) 존재하지않은 Port로연결을요청한경우 - Target TCP는연결을파기하기위해 RST전송 비정상적상황발생 RST SYN TCP open 스캔 UDP 스캔 크리스마스트리스캔 NULL 스캔 ACK + RST 포트가 close상태이므로연결종료요청 (3) 다른쪽이긴시간동안휴지상태인경우, 연결종료요청 2 RST 1 장시간휴지상태
UDP스캔 - UDP를이용한포트스캔 - 모든서비스가 TCP프로토콜을사용하는것이아님 (UDP사용 : DHCP, DNS, SNMP, TFTP 등 ) - 매우느림 (-p-, -Pn 옵션을사용하지않음 ) UDP스캔 - UDP를이용한포트스캔 (-su옵션) - open filtered ( 오픈 차단 ) => UDP스캔할때, 응답을받지못한경우 ( 열려있는지, 방화벽으로차단되었는지구별하기어려움 ) (X) 모든포트가 open filtered 인경우 / 즉, 반응이없는경우 - 버전스캔 (-sv) 를통해응답이있는경우, open으로변경 빠른 UPD스캔 #nmap suv T4 F --version-intensity 0 192.168.41.129 TCP Open 스캔 - TCP를이용한포트스캔 - 3-way handshaking 과정으로 log기록이남는다. Nmap - 가장많이사용되는포트 1000개를스캔 => -p- 옵션사용 - 포트스캔하기전에직접어떤컴퓨터가작동중인지먼저확인하고, 응답하지않은컴퓨터에대하여포트스캔을하지않고건너뜀 => -Pn 옵션사용 TCP Open 스캔 -옵션:-sT 포트가닫혀있으므로 RST를보냄
스텔스 (Stealth) 스캔 - Log기록을남기지않는다 TCP half Open 스캔 (= SYN스캔 ) (Stealth scan) SYN - 완전한세션을성립하지않고, port 활성화여부확인 (log 가남지않음 ) SYN ( 재전송 ) 무응답포트 1. 방화벽에의해막혔거나 2. 호스트다운된경우 포트가살아있어연결설정을위해 SYN + ACK를보냄 포트가닫혀있으므로 RST를보냄 포트가살아있는것만확인한후연결을강제로종료하기위해 RST 를보냄 TCP half Open 스캔 (= SYN스캔 ) (Stealth scan) - 완전한세션을성립하지않고, port활성화여부확인 (log가남지않음 ) -ss옵션 - --packet-trace 옵션 : 송수신된패킷출력 - -p포트번호 : 해당포트번호에대하여스캔예 ) #nmap ss d packet-trace p22,80 192.168.41.129 FIN 스캔 (Stealth scan) FIN X 응답하지않음 FIN 세션연결이없었으므로 FIN 패킷을받으면무시해버림 Open filtered 열려있거나필터링당했다는의미구별못함 존재하지않은포트비정상적인상황이므로연결중단요청을위해 RST전송
X-mas 스캔 (Stealth scan) - TCP의 control 필드에서, FIN, URG, PSH플래그를 1로설정하여스캔 - 유닉스 / 리눅스시스템을대상으로사용가능 - 윈도우시스템을대상으로활용불가 X-mas 스캔 (Stealth scan) - 옵션 : -sx (-p- -Pn옵션함께사용 ) FIN, PSH, URG 무시해버림 FIN, PSH, URG X 응답하지않음 NULL 스캔 (Stealth scan) - TCP의 control 필드에플래그를모두 0로설정하여스캔 - 유닉스 / 리눅스시스템을대상으로사용가능 - 윈도우시스템을대상으로활용불가 NULL 스캔 (Stealth scan) -옵션:-sN(-p--Pn옵션함께사용) NULL 무시해버림 NULL X 응답하지않음
--scanflags 옵션 - 자신만의 TCP 플래그설정을통한스캔 - URG, ACK, PSH, RST, SYN, FIN 조합 - SYN/FIN스캔 / PSH스캔 ACK 스캔 - ACK 플래그를설정한패킷을송신하여스캔 - 방화벽이 SYN패킷을차단하는필터인지점검 - 포트가 Open인지 closed인지구별못함 -옵션:-sA 윈도우스캔 (Window Scan) - ACK 플래그를설정한패킷을송신하여스캔 (ACK스캔과같다 ) - 포트가 Open인지 closed인지구별 -옵션:-sW - 사용법 : #nmap -sw 192.168.41.129 마이몬스캔 (Maimon Scan) - FIN/ACK 플래그를설정한패킷을송신하여스캔 (NULL, FIN, Xmas 스캔과같다 ) - 많은 BSD 시스템은 open이경우, 이패킷을 drop시킴 (RFC 793) - 현대시스템은이버그를거의보여주지않음 -옵션:-sM - 사용법 : #nmap -sm 192.168.41.129
아이들스캔 (idle Scan) 아이들스캔 (idle Scan) - 1998 년보안연구자 Antirez - 공격자자신을숨긴채, 좀비시스템을활용하여스캔 - SYN에대하여, => open : SYN/ACK 공격자 3 SYN ( 좀비인것처럼 ) => closed : RST 응답 1SYN/ACK 2RST (IP ID : 100 노출 ) - SYN/ACK 패킷을수신한경우 6SYN/ACK 7RST => RST 로응답 (IP ID : 102 노출 ) -RST를받은경우 => 무시 좀비시스템 4SYN/ACK 5RST 타깃시스템 - IP 프로토콜의 ID (IP ID : 101) < 포트 OPEN > < 포트 Closed > < 포트 filtered > 아이들스캔 (idle Scan) - 좀비시스템찾기 -idle스캔 - 옵션 : si < 좀비호스트 > 2개이상의스캔을수행했을경우, 결과를조합하여판별 - FIN 스캔결과 : open filtered => 열려있는지, 필터링당한건지모름 ( 예- 10개가 open filtered) - ACK 스캔결과 : 2개가 filtered => 2개가 filtered 인경우 (10개중 2개가 filtered) 최종결과 : 10개중 2개 : filtered 10개중 8개 : open 상태 나머지 : closed 상태 여러개의스캔유형을시도하여, 검증필요
Protos - Target 시스템이사용중인 Protocol 확인 - IP와 ICMP프로토콜의 Unreachable메시지이용 - 위치 : /pentest/enumeration/irpas/ - 사용법 : #./protos [-옵션] [ 스캔하고자하는 IP] #./protos [-옵션] [ 스캔하고자하는네트워크대역 ] Protos -