사이트 내 전체검색
nmap (포트 스캔)
로빈아빠
https://cmd.kr/server/756 URL이 복사되었습니다.

본문

n구체적으로 TCP connect(), TCP SYN, TCP FIN, Fragmentation, TCP Reverse ident, FTP bounce attack, UDP ICMP port unreachable, UDP recvform(),write(), UDP echo등을 스캐닝 할 수 있습니다.

형식 nmap [스캔타입] [옵션] <호스트나 네트웍>
스캔타입

-sT
TCP connect() scan: 이것은 가장 기본적인 TCP스캐닝이다.열려있는 TCP포트를 스캐닝한다. 단점은 쉽게 체크되고 필터링될수 있다. 그러나 루트가 아니어도 실행시킬수 있다.

-sS
TCP SYN스캐닝으로 루트권한을 가지고 있어야 한다. 완전한 TCP연결을 하지 않고 실제로 연결을 요청하는 것처럼 SYN패킷을 보내고 나서 상대 호스트로부터 SYN/ACK패킷이 오면 즉시 RST를 보내 연결을 끊는다.

-sF
-sX
-sN
Stealth FIN, Xmas Tree, or Null scan modes
세가지 방법 모두 Win95/98/NT 그리고 IRIX에서는 동작하지 않는다. 위의 패킷을 받은 호스트는 닫힌 포트에 대해서는 RST로 응답하고, 열린 포트이면 패킷을 버린다. 그러나 만약 패킷이 네트워크상의 문제로 유실 되었을 때, NMAP은 패킷을 받을 수 없으 므로, 열린 포트로 오인 할 수 있다. 예전에는 탐지되지 않고 스캔을 시도 할 때 이 방법을 사용했으나, 현재는 발견될 수 있다.

-sP
일반적인 Ping을 이용해 스캔할 때 쓰는 옵션이다.

-sU
이 scan 방법은 UDP를 쓴다는 점에서 위의 TCP scan방법과는 대조된다. 확실히 UDP protocol은 더 간단하지만 scan을 구현하는 것은 좀 더 어렵다. 왜냐하면 UDP 포트는 TCP 포트와는 다르게 open port일 때, ACK packet을 보낼 필요가 없으며, closed port는 error packet을 보낼 필요가 없다. 다행이 많은 host들은 closed UDP port로 packet을 보내면 ICMP_PORT_UNREACH error를 응답해 준다. 따라서 무엇이 닫혀있는 port인가를 알 수 있고 이를 제하면 열린 port라는 것을 알 수 있다. 그러나 UDP packet이나, ICMP error들이 꼭 도착한다고 보장을 하지 못하므로, UDP scanner들은 packet전달과정에서 누락된 packet의 재전송 부분을 구현해야 한다. 또 이러한 방식에 scan에서 문제가 되는 부분은 속도이다. 많은 기계들이 RFC1812 section 4.3.2.8을 참조하여, ICMP error message rate들을 제한하기 때문에 scan이 느리게 동작할 수밖에 없다.

-b

target을 scan하기 위해, ftp의 PORT 명령을 사용하는 방법이다. 매개체가 될 호스트(주로 타겟 호스트가 신뢰하는 호스트이다.)의 FTP로 접속해서 PORT 명령을 이용해 포트가 열려 있는 지를 확인한다. 이 방법의 장점은 명확하다. 이 방법을 쓰게 되었을 때, 이를 추적하기 어려우며, 또 firewall이나 packet filter등을 통과할 수도 있다. 단점이라면, 이 방법은 느리고 어떤 ftp에서는 아예 PORT기능을 disable시켰을 수도 있다.

-PO
호스트가 살아 있는지 Ping을 하지 않는다. Ping을 하지 않음으로써 log파일에 기록될 가능성을 줄일 수 있고, filtering을 피할 수도 있다.

-PT
일반적인 ICMP Ping은 firewall이나 packet filter에 의해 걸러 지므로 Ping을 할 때 TCP port 80에 ACK 패킷을 보내 Ping을 수행 하는 방법이다. 만약 호스트가 살아 있다면 RST패킷을 보내올 것이다.

-PT21
적어준 숫자의 포트에 ACK패킷을 보낸다. 일반적인 호스트는 높은 숫자(예를 들어32523)의 포트는 필터링을 하지 않기 때문에 이를 이용할 수 있다. 그러나 어떤 호스트는 서비스 되고 있는 포트 외에는 막아놓기도 한다.

-PI
일반적인 ICMP ping이다. 이 방법은 firewall이나 packet filter에 의해 쉽게 걸러 진다. 그러나 대부분의 시스템 관리자는 ICMP ping에 대한 로그를 신경 쓰지 않으므로, ICMP로 ping을 할 수 있는 호스트는 이 방법을 쓰는 것이 좋다.

-PB
Ping을 할 때 ICMP ping과 TCP ping을 동시에 사용한다.

-PS
ping을 할 때 ACK 패킷 대신 SYN 패킷을 보낸다. 어떤 firewall은 스캔을 위해 보낸 ACK패킷이 현재 진행 중인 TCP connection 과정의 일부가 아님을 판단하고, 이 패킷을 차단 할 수 있다. 이런 firewall을 통과 하기 위해 SYN패킷을 이용한다. 그러나, SYN을 이용하므로, 높은 포트 번호는 사용할 수 없을 것이다.

-O
OS를 판별 하기 위해서는 열린 포트와 닫힌 포트가 필요하다. 닫힌 포트는 높은 포트 번호 중 랜덤하게 선택 된다. 그러나, 높은 포트를 filtering하는 호스트는 OS를 판별할 수 없고 유실된 packet이 생기면 잘못된 판별이 생길 수 있다.

-p
특정 포트를 스캔하거나 스캔 할 포트의 범위를 지정해 줄 수 있다. '-p 23' 은 호스트의 23번 포트만 스캔을 하고, '-p 20-30,63000-'은 20에서 30번 포트와 63000포트를 검색할 것이다.

-D
스캔을 수행한 컴퓨터의 IP를 속이기 위해 임의의 다른 IP속에 자신의 IP를 숨겨 놓는다. 스캔의 대상이된 호스트의 관리자는 decoy호스트에 나열된 모든 IP주소에서 스캔이 온것으로 오인한다. 따라서 관리자는 모든 decoy이 호스트를 검색할 수 없으므로 추적을 포기하게 된다.

-F
잘알려진 포트인 /etc/services에 있는 포트만을 검색하기 때문에 속도가 빠르다. -I Get identd (rfc 1413) info on listening TCP processes. TCP 프로세스의 identd 정보를 가져온다.

-n
숫자로된 IP 주소를 DNS 서버에 있는 호스트명으로 바꾸지 않기 때문에 속도가 빨라진다.

-R
모든 숫자 IP 주소를 호스트명으로 바꾼다. 속도가 상당히 느려진다.

-o
스캔한 결과를 유저가 읽을 수 있는 텍스트 형식의 원하는 파일 이름으로 저장한다.

-m
스캔한 결과를 다른 프로그램이나, 스크립트에서 읽기 쉬운 형식의 파일로 저장한다.

-i
스캔의 대상이 되는 IP 주소나 호스트 네임을 파일에서 읽어 온다. 파일 이름대신 '-'를 적으면 표준 입력인 stdin에서 읽어 온다.

-g
스캔할 포트번호를 적는다.

-S
만약 스캔할 때 사용하는 패킷의 출발지 IP주소를 바꾸고 싶을 때, 이 옵션을 주고 원하는 IP 주소를 적는다.

-v
스캔할 때 옵션을 줄지를 하나씩 물어보는 질문형 모드로 전환한다.

-h
도움말을 본다. 또한 http://www.insecure.org/nmap/에서도 구할 수 있다.

-V
실행 중인 nmap의 버전을 표시하고 종료한다.

-e
원하는 장치로 패킷을 보낸다. 에 원하는 장치명을 기입한다.

-q
결과 값을 원하는 프로그램으로 보낸다. 기본은 "pine"이지만 현재 사용이 안된다.

출처 : http://qdata.co.kr/bo/bbs/board.php?bo_table=ltip&wr_id=259&page=4

댓글목록

등록된 댓글이 없습니다.

1,139 (22/23P)

Search

Copyright © Cmd 명령어 3.144.106.207