정보보호 Scanning 목차 Ⅳ. 스캐닝 (Scanning) 1. 활성화된호스트식별 3. 서비스및운영체제스캔 4. 프로토콜스캔 5. 기타스캔
스캔 TCP연결설정 -3way handshaking TCP연결종료 -4way handshaking SYN FIN ( 연결종료요청 ) SYN + ACK ACK ( 연결종료승인 ) FIN ( 연결종료요청 ) ACK ACK ( 연결종료승인 ) 스캔 TCP 연결리셋 (Connection Reset) (2) 비정상적인상황이므로연결중단 - 연결이파기되었음을의미 (1) 존재하지않은 Port로연결을요청한경우 - Target TCP는연결을파기하기위해 RST전송 SYN 비정상적상황발생 RST ACK + RST 포트가 close상태이므로연결종료요청 (3) 다른쪽이긴시간동안휴지상태인경우, 연결종료요청 2 RST 1 장시간휴지상태
스캔 스캔순서 TCP open 스캔 UDP 스캔 크리스마스트리스캔 NULL 스캔 Nmap Nmap 옵션 -
Nmap Nmap 옵션 Nmap Nmap 옵션
Nmap Nmap 포트상태 - 포트스캔결과에따른포트상태정보 UDP스캔 - UDP를이용한포트스캔 - 모든서비스가 TCP프로토콜을사용하는것이아님 (UDP사용 : DHCP, DNS, SNMP, TFTP 등 ) - 매우느림 (-p-, -Pn 옵션을사용하지않음 ) (X)
UDP스캔 - UDP를이용한포트스캔 (-su옵션) - open filtered ( 오픈 차단 ) => UDP스캔할때, 응답을받지못한경우 ( 열려있는지, 방화벽으로차단되었는지구별하기어려움 ) 모든포트가 open filtered 인경우 ( 즉, 반응이없는경우 ) - 버전스캔 (-sv) 를통해응답이있는경우, open으로변경 빠른 UPD스캔 #nmap suv T4 F --version-intensity 0 192.168.41.129 빠른 UDP스캔유니콘스캔 (Unicornscan) - 정보수집툴이면서, 상관관계엔지툴로, 속도가빠르고정확성우수함 - UDP스캔에소요되는시간을단축가능 - PPS (Packets Per Second) => 초당얼마나많은패킷을보낼것인가를정의할수있음 (PPS, 초당보내는패킷수 default PPS : 300) -r옵션으로변경가능 비동기적으로세션상태를유지하지않는 TCP 포트스캐닝 비동기적으로세션상태를유지하지않는 TCP 배너수집 비동기적으로 UDP 포트스캐닝 원격 OS와애플리케이션의능동및수동식별
빠른 UDP스캔유니콘스캔 (Unicornscan) - UDP스캔 (-m U) / 상세정보출력 (-Iv) / 1-65535 번포트까지스캔 빠른 UDP스캔유니콘스캔 (Unicornscan) - -r <PPS값 > ( 예 : -r 10000 )
TCP Open 스캔 - TCP를이용한포트스캔 - 3-way handshaking 과정으로 log기록이남는다. Nmap - 가장많이사용되는포트 1000개를스캔 => -p- 옵션사용하여모든포트스캔 - 포트스캔하기전에직접어떤컴퓨터가작동중인지먼저확인하고, 응답하지않은컴퓨터에대하여포트스캔을하지않고건너뜀 => -Pn 옵션사용하여건너뛰지않고스캔수행 포트가닫혀있으므로 RST를보냄 TCP Open 스캔 -옵션:-sT 가장많이사용하는포트 1000 개에대한스캔
TCP Open 스캔 -옵션:-p- -Pn 모든포트를대상으로스캔시도검색하지않았던 port 까지검색 (Unknown) 스텔스 (Stealth) 스캔 - Log기록을남기지않는다 TCP half Open 스캔 (= SYN스캔 ) (Stealth scan) - 완전한세션을성립하지않고, port활성화여부확인 (log가남지않음 ) 포트가살아있어연결설정을위해 SYN + ACK를보냄 포트가닫혀있으므로 RST를보냄 포트가살아있는것만확인한후연결을강제로종료하기위해 RST 를보냄
SYN 무응답포트 SYN ( 재전송 ) 1. 방화벽에의해막혔거나 2. 호스트다운된경우 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 패킷을받으면무시해버림 Open filtered 열려있거나필터링당했다는의미구별못함 FIN 존재하지않은포트비정상적인상황이므로연결중단요청을위해 RST전송 X-mas 스캔 (Stealth scan) - TCP의 control 필드에서, FIN, URG, PSH플래그를 1로설정하여스캔 - 유닉스 / 리눅스시스템을대상으로사용가능 - 윈도우시스템을대상으로활용불가 FIN, PSH, URG 무시해버림 FIN, PSH, URG X 응답하지않음
X-mas 스캔 (Stealth scan) - 옵션 : -sx (-p- -Pn옵션함께사용 ) NULL 스캔 (Stealth scan) - TCP의 control 필드에플래그를모두 0로설정하여스캔 - 유닉스 / 리눅스시스템을대상으로사용가능 - 윈도우시스템을대상으로활용불가 NULL 무시해버림 NULL X 응답하지않음
NULL 스캔 (Stealth scan) -옵션:-sN(-p--Pn옵션함께사용) --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 ACK스캔과같이 RST응답을받은경우 - 방화벽에서차단되지않다는의미 - 그러나, 포트가 open인지 closed인지알수없음 RST 응답에서 TCP윈도우필드를검토 - 0이상의값 : 포트 open 상태 - 0 값 : 포트 closed 상태
마이몬스캔 (Maimon Scan) - FIN/ACK 플래그를설정한패킷을송신하여스캔 (NULL, FIN, Xmas 스캔과같다 ) - 많은 BSD 시스템은 open이경우, 이패킷을 drop시킴 (RFC 793) - 현대시스템은이버그를거의보여주지않음 -옵션:-sM - 사용법 : #nmap -sm 192.168.41.129 아이들스캔 (idle Scan) - 1998년보안연구자 Antirez - 공격자자신을숨긴채, 좀비시스템을활용하여스캔 - SYN에대하여, => open : SYN/ACK => closed : RST 응답 - SYN/ACK 패킷을수신한경우 => RST로응답 -RST를받은경우 => 무시 - IP프로토콜의 ID 3 SYN ( 좀비인것처럼 ) 공격자 1 SYN/ACK 2RST (IP ID : 100 노출 ) 6 SYN/ACK 7RST (IP ID : 102 노출 ) 4 SYN/ACK 좀비시스템타깃시스템 5RST (IP ID : 101) < 포트 OPEN >
아이들스캔 (idle Scan) < 포트 Closed > < 포트 filtered > 아이들스캔 (idle Scan) - 좀비시스템찾기 - idle스캔 - 옵션 : si < 좀비호스트 >
Zenmap 젠맵 (Zenmap) -장점 스캔결과를통해 네트워크토폴로지맵 을그릴수있음 두개의스캔결과를비교할수있다 스캔결과추적관리가능 동일한설정의스캔을반복수행가능 ( 프로파일이용 ) 실행되는명령어를보여줌 ( 모의침투테스터는명령어를검증할수있다 ) - 경로 : /usr/bin/zenmap Zenmap 프로파일 (Profile) - 10개의프로파일사용 - 각프로파일에사용된옵션정보 => Command: 새로운프로파일생성 - Profile New Profile or Command 프로파일수정 - profile Edit Selected Profile
Zenmap 스캔 Regular scan 프로파일을이용한스캔 Zenmap 네트워크토폴로지맵스캔결과를이용하여네트워크토폴로지맵정보출력 - Topology 탭
Zenmap 스캔결과저장 - 스캔결과를저장 - 기본저장포맷 : xml Zenmap 스캔결과비교 - 스캔결과를비교 - Tools메뉴 Compare Results 문자 : 2차스캔결과에서제거된것 + 문자 : 2차스캔결과에서추가된것
2 개이상의스캔을수행했을경우, 결과를조합하여판별 - FIN 스캔결과 : open filtered => 열려있는지, 필터링당한건지모름 ( 예- 10개가 open filtered) - ACK 스캔결과 : 2개가 filtered => 2개가 filtered 인경우 (10개중 2개가 filtered) 최종결과 : 10 개중 2 개 : filtered 10 개중 8 개 : open 상태 나머지 : closed 상태 여러개의스캔유형을시도하여, 검증필요 3. 서비스버전및운영체제스캔 nmap --sv옵션 서비스버전스캔
3. 서비스버전및운영체제스캔 서비스버전스캔 에이맵 (amap) - 애플리케이션이사용하는포트정보획득 - 트리커패킷을해당포트에보는후, 돌아오는결과를자체 DB와비교하여애플리케이션종류식별 ( 트리커패킷 : 포트의반응을일으키는패킷 ) - 즉, 어떤애플리케이션이어떤포트를사용하고있는지알수있음 - 에이맵포트트리커파일 : /etc/amap/appdefs.trig - 결과파일 ( 자체DB 파일 ) : /etc/amap/appdefs.resp - 경로 : /usr/bin/amap 3. 서비스버전및운영체제스캔 서비스버전스캔포트지정스캔 - 22, 80, 3306 포트에서동작하고있는애플리케이션정보 - bq옵션 : 닫힌포트나정의되지않은포트는제외하고, 배너정보획득
3. 서비스버전및운영체제스캔 nmap --O옵션 운영체제 (OS) 스캔 4. 프로토콜스캔 프로토콜스캔 Protos - Target 시스템이사용중인 Protocol 확인 - IP와 ICMP프로토콜의 Unreachable메시지이용 - 위치 : /pentest/enumeration/irpas/ - 사용법 : #./protos [-옵션] [ 스캔하고자하는 IP] #./protos [-옵션] [ 스캔하고자하는네트워크대역 ]
4. 프로토콜스캔 Protos - 프로코콜스캔 5. 기타스캔 기타스캔 SNMP 스캔 - onesixtyone : 장비에서 SNMP문자열이있는지찾아낼수있는 SNMP스캐너 - snmpcheck : SNMP장비에대한상세정보획득 VPN탐색 ( 가상사설망, Virtual Private Network) - ike-scan : IPSec VPN 시스템을발견하고, 핑거프린트하고, 테스트할수있는툴 SMB 스캔 ( 서버메시지블록, Server Message Block) - nbtscan : NetBIOS정보를찾기위해사용 (IP주소, NetBIOS컴퓨터이름, 이용가능한서비스, 로그인사용자이름, MAC주소등 )