nmap - 윈디하나의 솔라나라
|
주의깊고 책임감 있게사용해야 한다. 특히 자신이 관리하고 있지 않고 있는 호스트를 스캔 하지 않는 것이 좋다. 해킹을 시도한다고 오해받기 쉽기 때문이다. 특히 솔라나라를 스캔하지 말자.
root@wl ~/src # wget https://nmap.org/dist/nmap-7.70.tar.bz2 root@wl ~/src # tar xvfj nmap-7.70.tar.bz2 root@wl ~/src # cd nmap-7.70 root@wl ~/src/nmap-7.70 # ./configure CC=gcc CXX=g++ \ --with-openssl=/usr/local/ssl \ CFLAGS="-m64 -D_XOPEN_SOURCE=700 -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS" \ CXXFLAGS="-m64 -D_XOPEN_SOURCE=700 -D__EXTENSIONS__ -D_POSIX_PTHREAD_SEMANTICS " \ LDFLAGS="-lxnet -R/usr/local/ssl/lib" ... o o o o o o o o o o o o o o o 888b 888 o o o 8888b 888 o o o 88888b 888 o o o 888Y88b 888 o 888 Y88b888 o 888 Y88888 888 Y8888 888 Y888 --[NPING]-- ... config.status: creating config.h . . \`-"'"-'/ } 6 6 { ==. Y ,== /^^^\ . / \ ) Ncat: A modern interpretation of classic Netcat ( )-( )/ -""---""--- / / Ncat \_/ ( ____ \_.=|____E Configuration complete. ___.-------.___ _.-' ___.--;--.___ `-._ .-' _.-' / .+. \ `-._ `-. .' .-' |-|-o-|-| `-. `. (_ <O__ \ `+' / __O> _) `--._``-..__`._|_.'__..-''_.--' ``--._________.--'' ____ _____ ____ ____ _ _______ |_ \|_ _||_ \ / _| / \ |_ __ \ | \ | | | \/ | / _ \ | |__) | | |\ \| | | |\ /| | / ___ \ | ___/ _| |_\ |_ _| |_\/_| |_ _/ / \ \_ _| |_ |_____|\____||_____||_____||____| |____||_____| 1) NMAP IS A POWERFUL TOOL -- USE CAREFULLY AND RESPONSIBLY Configured with: ndiff zenmap nping openssl zlib libssh2 lua ncat Configured without: localdirs nmap-update Type make (or gmake on some *BSD machines) to compile. root@wl ~/src/nmap-7.70 # make root@wl ~/src/nmap-7.70 # make install1)
configure
를 실행할 때 마다 다른 아스키 아트가 출력된다.
nmap [스캔 타입] [옵션] {목적지 지정}옵션 설명을 보기 전에 네트워크에 대한 광범위한 지식을 알고 있어야 한다. 특히 TCP/IP, ICMP에 대한 지식은 필수다.
,를 사용해 두개이상의 타겟 구문을 지정할 수 있다. 아래에 몇가지 예제가 있다.
-iL <파일명>
: 파일에 지정된 호스트/네트워크 포함-iR <num hosts>
: 임의의 타겟을 선택--exclude <host1[,host2][,host3],...>
: 지정한 호스트/네트워크 제외--excludefile <exclude_file>
: 파일에 지정된 호스트/네트워크를 제외-sL
: 목록 스캔 - 기본 스캔 방법-sn
: 핑 스캔 - 포트 스캔 하지 않음-Pn
: 모든 타겟 호스트를 온라인으로 가정(호스트 탐색 하지 않음)-PS/PA/PU/PY[포트목록]
: TCP SYN/TCP ACK/UDP/SCTP를 사용한 호스트 탐색
-PE/PP/PM
: ICMP 에코/타임스탬프/넷마스크요청탐색 프로브 사용
-PO[프로토콜목록]
: IP 프로토콜 핑-n/-R
: DNS 탐색 사용 안함/항상 사용. 기본값은 가끔 사용.--dns-servers <서버1[,서버2],...>
: DNS 서버 지정--system-dns
: 운영체제의 DNS 탐색기 사용--traceroute
: 라우터 트레이싱-sS/sT/sA/sW/sM
: TCP SYN/Connect()/ACK/Window/Maimon 스캔-sU
: UDP 스캔-sN/sF/sX
: TCP Null/FIN/Xmas 스캔--scanflags <플래그>
: TCP 스캔시 지정한 플래그 사용-sI <zombie host[:probeport]>
: Idle 스캔-sY/sZ
: SCTP INIT/COOKIE-ECHO 스캔-sO
: IP 프로토콜 스캔-b <FTP relay host>
: FTP 릴레이(바운스) 스캔-p <포트범위>
: 지정한 포트만 스캔. 예) -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9-F
: 빠른 스캔. 기본 포트 100개만 스캔-r
: 연속해서 스캔 (랜덤하게 포트 번호를 스캔하지 않음) --top-ports <번호>
: 지정한 개수의 일반적인 포트를 스캔--port-ratio <비율>
: 지정한 비율보다 더 일반적인 포트를 스캔/usr/local/share/nmap/nmap-services
파일에 정의되어있다.-sV
: 서비스 및 버전 정보 감지를 위해 열린 포트 프로브--version-intensity <레벨>
: 버전 감지 레벨 지정. 0 ~ 9까지 지정할 수 있으며, 9가 가장 높다--version-light
: 버전 감지레벨을 2로 설정--version-all
: 버전 감지 레벨을 9로 설정--version-trace
: 버전 감지시 스캔 내역을 보임. (디버깅 용도)-sC
: --script=default
와 동일--script=<Lua scripts>
: 사용할 Lua 스크립트. 콤마로 구분해 디렉토리나 스크립트 파일을 지정--script-args=<n1=v1,[n2=v2,...]>
: 스크립트 인자--script-args-file=filename
: NSE 인자를 담은 파일 지정--script-trace
: 스크립트 트레이싱. 데이터를 주고 받는것을 보임--script-updatedb
: 스크립트 데이터베이스 업데이트--script-help=<Lua scripts>
: 지정한 스크립트에 대해 설명/usr/local/share/nmap/scripts
에서 볼 수 있다. 포크스캔을 통해 포트가 열려있고 어떤 포트인지 알아낸 후, 스크립트를 사용해 좀 더 자세한 포트 정보를 알아낼 수 있다.운영체제 감지에 대한 전반적인 사항은 Chapter 8. Remote OS Detection을 참고하자.
-O
: 운영체제 감지 활성화--osscan-limit
: 제한된 OS 감지 사용--osscan-guess
: 포괄적 OS 감지 사용# nmap -O --osscan-guess -v localhost Starting Nmap 7.70 ( https://nmap.org ) at 2019-06-10 00:00 KST Initiating SYN Stealth Scan at 00:00 ... Device type: general purpose Running (JUST GUESSING): Oracle Solaris 11|10 (94%), illumos OpenIndiana (93%), Sun Solaris 11 (87%) OS CPE: cpe:/o:oracle:solaris:11 cpe:/o:illumos:openindiana cpe:/o:oracle:solaris:10 cpe:/o:sun:sunos:5.11 Aggressive OS guesses: Oracle Solaris 11 (94%), OpenIndiana (93%), Oracle Solaris 10 (87%), Sun Solaris 11 (87%), Oracle Solaris 11 or OpenIndiana (86%), Sun Solaris 11.3 (86%) No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ). TCP/IP fingerprint: ... Uptime guess: 0.025 days (since Mon Jun 10 17:54:11 2019) Network Distance: 0 hops TCP Sequence Prediction: Difficulty=259 (Good luck!) IP ID Sequence Generation: All zeros Read data files from: /usr/local/bin/../share/nmap OS detection performed. Please report any incorrect results at https://nmap.org/submit/ . Nmap done: 1 IP address (1 host up) scanned in 41.72 seconds Raw packets sent: 1299 (61.206KB) | Rcvd: 2412 (106.648KB)
-T<0-5>
: 타이밍 템플릿 지정(숫자가 높을수록 빠름)--min-hostgroup/max-hostgroup <크기>
: 병렬 호스트 스캔 그룹개수 지정--min-parallelism/max-parallelism <프로브개수>
: 프로브 병렬화시 프로브 개수 지정--min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <시간>
: 라운드 트립 시간 지정--max-retries <재시도>
: 재시도 회수 지정--host-timeout <시간>
: 호스트 타임아웃 시간 지정--scan-delay/--max-scan-delay <시간>
: 탐색시 스캔 지연 시간--min-rate <number>
: 최소 초당 패킷 전송 비율--max-rate <number>
: 최대 초당 패킷 전송 비율-f; --mtu <val>
: 패킷 단편화. --mtu 는 주어진 MTU로 단편화-D <decoy1,decoy2[,ME],...>
: 디코이를 사용한 클록 스캔-S <IP_Address>
: 지정한 IP를 소스로 사용해 스캔(IP Spoof)-e <iface>
: 지정한 네트워크 인터페이스 사용-g/--source-port <portnum>
: 주어진 포트 번호를 소스 포트번호로 지정--proxies <url1,[url2],...>
: 지정한 HTTP/SOCKS4 프록시를 사용해 스캔--data-length <num>
: 패킷에 붙일 랜덤한 데이터 길이 지정--ip-options <options>
: 지정한 IP 옵션을 붙여 스캔--ttl <val>
: 지정한 TTL 사용--spoof-mac <mac address/prefix/vendor name>
: 지정한 맥 주소를 소스로 사용해 스캔--badsum
: 올바르지 않은 TCP/UDP/SCTP 체크섬 사용-oN/-oX/-oS/-oG <file>
: 파일 출력 포맷 (기본/XML/s|<rIpt kIddi3/Grepable) 지정-oA <basename>
: 3가지 주요 포맷을 한번에 출력-v
: 더 상세히 출력. -vv
시 더더욱 상세히 출력-d
: 디버깅 출력 레벨 올림. -dd
시 더더욱 상세히 디버깅 출력--reason
: 포트 상태 원인 출력?--open
: 열린 포트만 출력--packet-trace
: 모든 주고 받은 패킷 출력--iflist
: 모든 인터페이스 및 라우팅 정보 출력(디버깅)--log-errors
: 출력 파일에 오류 로그 쓰기--append-output
: 출력 파일 붙이기--resume <filename>
: 취소된 스켄을 이어 하기--stylesheet <path/URL>
: XML을 HTML로 변환할 XSL 스타일 시트 지정--webxml
: nmap.org의 스타일 시트 참조(더 잘 보임)--no-stylesheet
: XML 출력시 스타일 시트 사용하지 않음-6
: IPv6 스캔 활성화-A
: 모든 감지 옵션(OS감지, 버전감지, 스크립트 스캔, traceroute) 활성화--datadir <dirname>
: nmap 데이터 디렉토리 지정--send-eth/--send-ip
: raw 이더넷 프레임 또는 IP 패킷 사용--privileged
: 사용자가 모든 소켓 권한을 가지고 있는 것으로 가정--unprivileged
: 사용자가 모든 소켓 권한을 가지고 있지 않은 것으로 가정-V
: 버전 정보 보임-h
: 도움말 보임nmap -sU -p 포트번호 IP주소클라이언트에서 서버의 TCP 포트 오픈 확인
nmap -p 포트번호 IP주소
nmap -v -A scanme.nmap.org nmap -v -sn 192.168.0.0/16 10.0.0.0/8 nmap -v -iR 10000 -Pn -p 80
ndiff [옵션] 파일1 파일2
-h, --help
: 도움말 출력-v, --verbose
: 변경되지 않았어도 호스트와 포트 정보 보임--text
: 텍스트 형식으로 출력 (기본값)--xml
: XML 형식으로 출력root@wl ~ # nmap -F scanme.nmap.org -oX scanme-1.xml Starting Nmap 7.12 ( https://nmap.org ) at 2016-10-07 19:50 KST Nmap scan report for scanme.nmap.org (45.33.32.156) Host is up (0.15s latency). Other addresses for scanme.nmap.org (not scanned): 2600:3c01::f03c:91ff:fe18:bb2f Not shown: 94 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 135/tcp filtered msrpc 139/tcp filtered netbios-ssn 445/tcp filtered microsoft-ds 3128/tcp filtered squid-http Nmap done: 1 IP address (1 host up) scanned in 13.95 seconds root@wl ~ # nmap -F scanme.nmap.org -oX scanme-2.xml Starting Nmap 7.12 ( https://nmap.org ) at 2016-10-07 19:51 KST Nmap scan report for scanme.nmap.org (45.33.32.156) Host is up (0.16s latency). Other addresses for scanme.nmap.org (not scanned): 2600:3c01::f03c:91ff:fe18:bb2f Not shown: 94 closed ports PORT STATE SERVICE 22/tcp open ssh 80/tcp open http 135/tcp filtered msrpc 139/tcp filtered netbios-ssn 445/tcp filtered microsoft-ds 3128/tcp filtered squid-http Nmap done: 1 IP address (1 host up) scanned in 15.94 seconds root@wl ~ # ndiff -v scanme-1.xml scanme-2.xml -Nmap 7.12 scan initiated Fri Oct 07 19:50:47 2016 as: nmap -F -oX scanme-1.xml scanme.nmap.org +Nmap 7.12 scan initiated Fri Oct 07 19:51:06 2016 as: nmap -F -oX scanme-2.xml scanme.nmap.org scanme.nmap.org (45.33.32.156): Host is up. Not shown: 94 closed ports PORT STATE SERVICE VERSION 22/tcp open ssh 80/tcp open http 135/tcp filtered msrpc 139/tcp filtered netbios-ssn 445/tcp filtered microsoft-ds 3128/tcp filtered squid-http root@wl ~ # ndiff scanme-1.xml scanme-2.xml
-4
: IPv4 만 사용-6
: IPv6 만 사용-U, --unixsock
: 유닉스 도메인 소켓만 사용-C, --crlf
: EOL에 CRLF 사용-c, --sh-exec <command>
: /bin/sh 를 사용해 주어진 명령을 실행-e, --exec <command>
: 지정한 명령을 실행--lua-exec <filename>
: 지정한 Lua 스크립트를 실행-g hop1[,hop2,...]
: Loose source routing hop points (8 max)-G <n>
: Loose source routing hop pointer (4, 8, 12, ...)-m, --max-conns <n>
: 최대 n 개의 동시 접속 사용-h, --help
: 도움말-d, --delay <time>
: 읽기/쓰기시 지연-o, --output <filename>
: 파일로 덤프-x, --hex-dump <filename>
: 16진 형식으로 데이터 덤프-i, --idle-timeout <time>
: 읽기/쓰기 Idle 타임아웃-p, --source-port port
: 사용할 포트를 지정-s, --source addr
: 사용할 주소를 지정-l, --listen
: 지정한 포트를 BIND 한 후 LISTEN-k, --keep-open
: LISTEN 한 채로 유지(기본값은 1회 접속된후 LISTEN 하지 않음)-n, --nodns
: DNS 를 사용해 호스트이름 Resolve 하지 않음-t, --telnet
: 텔넷 Negotiation 에 응답-u, --udp
: TCP 대신 UDP 사용--sctp
: TCP 대신 SCTP 사용-v, --verbose
: 자시히 출력. -v 를 여러번 사용해 레벨 조절 가능-w, --wait <time>
: 접속 타임 아웃 지정--append-output
: Append rather than clobber specified output files--send-only
: 데이터 송신만 허용(수신된 데이터는 무시됨, EOF 수신시 종료됨)--recv-only
: 데이터 수신만 허용(아무것도 보내지 않음)--allow
: 주어진 호스트에서만 접속 허용--allowfile
: Ncat 에서 접속 허용할 호스트를 담은 파일 경로--deny
: 주어진 호스트에서 접속 거절--denyfile
: Ncat 에서 접속 거절할 호스트를 담은 파일 경로--broker
: Ncat 을 브로커 모드로 활성화--chat
: Ncat 채팅 서버 시작--proxy <addr[:port]>
: 지정한 프록시 사용--proxy-type <type>
: 프록시 종료 지정 ("http", "socks4", "socks5")--proxy-auth <auth>
: 프록시 인증 지정--ssl
: SSL 사용--ssl-cert
: SSL 인증파일(PEM 형식)--ssl-key
: SSL 개인키 파일(PEM 형식)--ssl-verify
: 신뢰할 수 있는 SSL 인증서 목록에서 인증서 검증--ssl-trustfile
: 신뢰할 수 있는 SSL 인증서 파일(PEM 형식)--ssl-ciphers
: 사용할 SSL Cipher 목록--version
: 버전 정보 보임ncat -u -p "포트번호" "IP주소"클라이언트에서 서버의 TCP 포트 오픈 확인
ncat -p "포트번호" "IP주소"
네트워크 패킷 생성,
패킷 응답 분석,
응답 시간 측정을 위한 오픈소스 툴이라고 소개하고 있다. 주요 특징은 아래와 같다.
아래와 같은 방법으로 사용할 수 있다.
nping [탐색모드] [옵션] {목적지 정의}
목적지는 호스트명이나 IP주소, 네트워크를 나타낼 수 있다. 아래와 같이 형식을 가진다.
scanme.nmap.org, microsoft.com/24, 192.168.0.1; 10.0.*.1-24--tcp-connect
: 권한 없는 TCP 접속 탐색 모드. 일반적으로 RAW 레벨로 패킷을 생성해 보내려면 루트 권한이 필요하다. NPING을 일반 사용자로 실행한 경우 제한적인 기능이라도 사용할 수 있다.--tcp
: TCP 탐색 모드--udp
: UDP 탐색 모드--icmp
: ICMP 탐색 모드--arp
: ARP 탐색 모드--tr, --traceroute
: 라우팅 추적(Traceroute) 모드. TCP/UDP/ICMP 모드에서만 사용 가능-p, --dest-port <port spec>
: 목적지 포트 지정-g, --source-port <portnumber>
: 소스 포트 지정-g, --source-port <portnumber>
: 소스 포트 지정-p, --dest-port <port spec>
: 목적지 포트 지정--seq <seqnumber>
: 일련 번호 지정--flags <flag list>
: TCP 플래그(ACK,PSH,RST,SYN,FIN...) 지정--ack <acknumber>
: ACK 번호 지정--win <size>
: 윈도 크기 지정--badsum
: 임의의 올바르지 않은 체크섬 사용-g, --source-port <portnumber>
: 소스 포트 지정-p, --dest-port <port spec>
: 목적지 포트 지정--badsum
: 임의의 올바르지 않은 체크섬 사용--icmp-type <type>
: ICMP 타입--icmp-code <code>
: ICMP 코드--icmp-id <id>
: ICMP ID--icmp-seq <n>
: ICMP 일련 번호--icmp-redirect-addr <addr>
: ICMP Router Redirect 기능으로 리다이렉트될 주소--icmp-param-pointer <pnt>
: Parameter Problem 메시지의 Pointer 값--icmp-advert-lifetime <time>
: Router Advertisement 시간 설정--icmp-advert-entry <IP,pref>
: Router Advertisement 엔트리 추가--icmp-orig-time <timestamp>
: originate 타임스탬프--icmp-recv-time <timestamp>
: receive 타임스탬프--icmp-trans-time <timestamp>
: transmit 타임스탬프--arp-type <type>
: 타입: ARP, ARP-reply, RARP, RARP-reply.--arp-sender-mac <mac>
: 발신자 MAC 주소--arp-sender-ip <addr>
: 발신자 IP 주소--arp-target-mac <mac>
: 목적지 MAC 주소--arp-target-ip <addr>
: 목적지 IP 주소-S, --source-ip
: 소스 IP 주소--dest-ip <addr>
: 목적지 IP 주소 ({목적지 정의}의 또다른 형태로 사용)--tos <tos>
: 서비스 필드 타입 지정 (8 비트).--id <id>
: Set identification field (16 비트).--df
: 단편화 하지 않음 플래그를 세팅--mf
: 조각이 더 있음 플래그를 세팅--ttl <hops>
: TTL 지정 [0-255].--badsum-ip
: 임의의 올바르지 않은 체크섬 사용--ip-options <S|R [route]|L [route]|T|U ...>
: IP 옵션 지정--ip-options <hex string>
: IP 옵션 지정--mtu <size>
: MTU 지정. MTU 가 충분히 작은 경우 패킷은 단편화됨(fragmented)-6, --IPv6
: IPv6 사용.--dest-ip
: 지정한 목적지 주소 사용 ({목적지 정의}의 또다른 형태로 사용)--hop-limit
: 홉 제한 설정 (IPv4 TTL과 같음).--traffic-class <class>
: 트래픽 클래스(Traffic Class)--flow <label>
: 흐름 레이블(Flow Label) 설정--dest-mac <mac>
: 목적지 MAC 주소 지정 (ARP resolution 비활성화)--source-mac <mac>
: 소스 MAC 주소 지정--ether-type <type>
: 이더넷 타입 값 지정--data <hex string>
: Include a custom payload.--data-string <text>
: Include a custom ASCII text.--data-length <len>
: Include len random bytes as payload.--echo-client <passphrase>
: 클라이언트 모드로 실행--echo-server <passphrase>
: 서버 모드로 실행--echo-port <port>
: 커스텀 포트를 사용해 LISTEN 하거나 접속--no-crypto
: 암호화 및 인증 비활성화--once
: 일회 접속 후 서버 중단--safe-payloads
: 반향된 패킷에서 어플리케이션 데이터 삭제초이며, 'ms' (milliseconds), 's' (seconds), 'm' (minutes), or 'h' (hours) 를 붙여 해당값으로 지정할 수 있다. 예) 30m, 0.25h
--delay <time>
: 탐색시 각각의 탐색 사이의 지연 조정--rate <rate>
: 초당 보낼 패킷 수-h, --help
: 도움말 표시-V, --version
: 현재 버전 표시-c, --count <n>
: N회 후 정지-e, --interface <name>
: 지정된 네트워크 인터페이스 사용-H, --hide-sent
: 전송 패킷 표시 안함-N, --no-capture
: Do not try to capture replies.--privileged
: 사용자가 권한을 가지고 실행--unprivileged
: 사용자가 로우 패킷에 대해 일부 권한을 가지고 실행--send-eth
: 로우 이더넷 레이어에서 패킷 전송--send-ip
: IP 소켓 레이어에서 패킷 전송--bpf-filter <filter spec>
: BPF 필터 지정-v
: 출력 레벨을 1단계 상승-v[level]
: 츨력 레벨을 지정 예) -v4-d
: 디버깅 레벨을 1단계 상승-d[level]
: 디버깅 레벨을 지정 예) -d3-q
: 출력 레벨을 1단계 내림-q[N]
: 출력 레벨을 N 회 내림--quiet
: 출력 레벨과 디버깅 레벨을 최소값으로 낮춤--debug
: 출력 레벨과 디버깅 레벨을 최대값으로 높임nping scanme.nmap.org nping --tcp -p 80 --flags rst --ttl 2 192.168.1.1 nping --icmp --icmp-type time --delay 500ms 192.168.254.254 nping --echo-server "public" -e wlan0 -vvv nping --echo-client "public" echo.nmap.org --tcp -p1-1024 --flags ack
등록된 노트가 없습니다
RSS ATOM XHTML 5 CSS3 |
Copyright © 2004-2025 Jo HoSeok. All rights reserved. |