1. 준비사항
Kali linux에 DVWA 설치 및 초기 세팅 완료 상태에서 진행.
2. 기본 개념
<Port>
- 각 시스템에서 응용프로그램들을 분리하기 위한 숫자적 개념
- 논리적인 접속장소를 뜻한다. 특히 TCP/IP를 사용할 때에는 클라이언트 프로그램이 네트워크 상의 특정 서버 프로그램을 지정하는 방법으로 사용된다.
- TCP/IP의 상위 프로토콜을 사용하는 응용프로그램에서는 인터넷번호할당허가위원회(IANA)에 의해 미리 지정된 포트번호들을 가지고 있다. 이런 포트 번호들은 Well known port 라고 한다.
- 다른 응용프로그램 프로세스들은 접속할 때마다 포트번호가 새로 부여된다.
- 포트번호는 0부터 65535까지이며, 0부터 1023 까지는 어떤 특권을 가진 서비스에 의해 사용될 수 있도록 예약되어
있다.
- 실제로 Port Number를 Service 번호라고 부른다.
<Port Number 분류>
1) Well-Known Port (1~1023) : 잘 알려진 포트, application
IANA 에 등록된 자주 사용되는 특정 서비스를 위해 지정된 포트
2) Registered Port (1024~49151) : 등록된 포트, transport
IANA 에 등록된 자주 사용하진 않지만 특정 서비스를 위해 지정된 포트
3) Dynamic Port (49152~65535) : 동적 포트 network
Client가 Server에 접속하기 위해 사용하는 포트, Private 포트 라고도 한다.
* https:// --> http에 ssl을 합쳐서 보안성을 띄어서 어떤 검색을 하든 패킷이 노출 되지 않는다.
https(443)
Sequence Number 순차번호 Ack number는 시퀀스 넘버를 가지고 체크.
3. 포트 스캔 - Nmap 도구 사용
# nmap [Scan Type] [Option] <Target> //Scan Type 과 option은 빠질수가 있는데 scan type이 빠지면 기본 타입으로 되며 Target은 빠질 수 없다.
1) Scan Type
4. 전형적인 스캔 유형 별 정리
5) TCP NULL Scan
프로브신호는 ? TCP Flag에 아무런 Flag도 설정하지 않는다. (not set)
ICMP TYPE 3 CODE 1,2,9,10,13 은 어떤 타입이든지 간에 필터된 것, 방화벽이다.
#nmap -PN -sN -T4 -p -1023 scanme.nmap.org
#nmap -PN -sN -T4 -p -1023 centos_ip
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
프로브 응답 포트상태
-----------------------------------------------------------------------
응답 없음 OPEN | FILTERED
TCP RST CLOSED
ICMP TYPE 3 CODE 1,2,9,10,13 FILTERED
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
6) TCP Xmas Scan
프로브 신호는? TCP FIN/PSH/URG
#nmap -PN -sX -T4 -p -1023 scanme.nmap.org
#nmap -PN -sX -T4 -p -1023 192.168.153.10(Centos_ip)
FIN, PSH, URG==> 응답없으면 OPEN | FILTERED,,,, RST, ACK가 오면 CLOSED
PSH -버퍼를 비워라
URG -긴급데이터
결국 말도안되는 플래그
xmas scan --플래그를 아무데나 집어넣은것 정상적이지 않은 것으로.주렁주렁
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
프로브 응답 포트 상태
--------------------------------------------------------------------
응답 없음 OPEN | FILTERED
TCP RST CLOSED
ICMP TYPE 3 CODE 1,2,9,10,13 FILTERED
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
TCP FIN =TCP NULL = TCP Xmas 결과는 모두 같음!
7) Custom Scan(TCP ACK Scan)
# nmap -sS --scanflag SYNFIN -T4 -p -1023 felix.nmap.org
# nmap -sS --scanflag SYNFIN -T4 -p -1023 192.168.153.10(centos_IP)
# nmap -sN --scanflag ACKFINPSHURG -T4 -p 1023 felix.nmap.org
8) TCP ACK Scan
FILTERED / UNFILTERED를 확인하기 위함
방화벽의 정책을 확인하기 위함
UNFILTERED 가 나오면 이 포트의 정책을 허용
FILTERED는
호스트방화벽이 아닌 네트워크 방화벽을 의미
# nmap -sA -T4 -PN -p -1023 felix.nmap.org
# nmap -sA -T4 -PN -p -1023 192.168.153.10
%%%%%%%%%%%%%%%%%%%%%%%%%%%
프로브 응답 포트상태
응답없음 FILTERED
TCP RST UNFILTERED
ICMP TYPE 3 CODE 1,2,9,10,13 FILTERED
(나머지 코드는 CLOSED)
%%%%%%%%%%%%%%%%%%%%%%%%%%%
9) TCP Window Scan
# nmap -sW -T4 -p -1023 scanme.nmap.org
# nmap -sW -T4 -p -1023 para.nmap.org
# nmap -sW -T4 -p -1023 192.168.153.10
wireshark 에서 패킷분석시 win은 window size를 의미 ,win=0이라는것 닫혀있다는 소리. 3 way handshaking일때는 win사이즈없다
%%%%%%%%%%%%%%%%%%%%%%%%%%%%
프로브 응답 포트 상태
--------------------------------------------------------------
TCP RST (Window 1~) OPEN
TCP RST (Window 0) CLOSED
응답 없음 FILTERED
ICMP TYPE 3 CODE 1,2,9,10,13 FILTERED
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
모든 운영체제가 닫혀 있더라도 TCP RST Window Size가 1 이상인 경우도 있음!!!
10) TCP Maimon Scan
프로브 신호는 ? FIN / ACK (어떻게 보면 Xmas Scan)
최초 발견자인 Maimon의 이름을 따서 지음(1996)
BSD 시스템은 포트가 OPEN인 상태에서 FIN/ACK를 받으면 무시함
지금 현존하는 운영체제에는 안먹힘
# nmap -sM -T4 -p -1023 para.nmap.org
# nmap -sM -T4 -p -1023 192.168.153.10
%%%%%%%%%%%%%%%%%%%%%%%%%%
프로브 응답 포트 상태
---------------------------------------------------------
응답 없음 OPEN
TCP RST CLOSED
ICMP TYPE 3 CODE 1,2,9,10,13 FILTERED
%%%%%%%%%%%%%%%%%%%%%%%%%%
11) IP Protocol Scan
근본적으로 포트 스캐닝이라고 할 수 없음
대상 시스템의 지원되는 프로토콜(IP, TCP, UDP, ICMP, IGMP...)을 알고자 함
# nmap -sO -T4 para.nmap.org
# nmap -sO -T4 192.168.153.10
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
프로브 응답 포트 상태
---------------------------------------------------------
프로브에 대한 모든 응답 OPEN
ICMP TYPE 3 CODE 2 CLOSED CODE 2 : Protocol Unreachable (프로토콜 사용X)
ICMP TYPE 3 CODE 1,2,9,10,13 FILTERED
응답 없음 OPEN | FILTERED ( 현재 지원되고 잇는 프로토콜이라는 얘기)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
12) FTP Bounce Scan
FTP 프로토콜(RFC 959)은 FTP Proxy 연결을 지원함
사용자가 FTP 서버에 연결하고 파일을 제 3서버로 보낼 수 있음
#nmap -PN -b <FTP Server> <Target>
#nmap -PN -b <user>:<pwd>@<FTP Server>:<port> <Target>
ex) #nmap -PN -b admin:qwer1234@ftp.abc.com:21 scanme.nmap.org
13) TCP IDLE Scan
완벽하게 자신을 숨긴 채 포트 스캐닝이 가능
Web Proxy(Zombie) 시스템을 이용 **www.xroxy.com
(기본 이해)
1) SYN을 보내고, 포트가 열려있으면 S/A, 닫혀있으면 RST
2) 원하지 않는 S/A 패킷을 받은 시스템은 RST로 응답
3) 원하지 않는 RST 패킷을 받은 시스템은 무시
4) 모든 IP 패킷은 순서대로 IP IDentification을 가지고 있음
#nmap -PN -sI 220.195.192.172:80 -p -1023 para.nmap.org
5. dvwa에서 nmap 실행
* kali linux 상의 dvwa가 세팅이 되어있는 상태에서 진행한다.
# nmap -sV -O -p- 127.0.01
위 결과에서 얻은 정보는 아래와 같다.
80 및 3306 포트가 open 되어 있으며, 각 포트에 대한 서비스 http, mysql과 그 버전을 확인할 수 있다.
또한 네트워크 홉 수도 파악이 가능하다.
-sV : 서비스 버전 정보
-O : 운영체제의 종류와 버전 정보
-p- : 모든 포트를 스캔
6. nmap 스크립트 엔진 (Nmap Scripting Engine, NSE)
* Nmap은 특별한 스캔을 수행하는 스크립트를 포함하여 그 기능성을 넓혀왔다.
* 사용자는 단순히 스크립트와 그 스크립트에서 필요로 하는 매개변수를 호출하면 된다.
* NSE가 이런 기능을 다루기 때문에 특정한 수많은 스크립트를 바로 사용할 수 있다.
* 대략 400개의 Nmap 스크립트가 있고 DVWA 웹 서버를 통해 사용해 볼 수 있다.
* 모든 NSE 스크립트와 문서는 http://nmap.org/nsedoc/ 에서 확인이 가능하다.
* 모든 NSE 스크립트를 이용할 때에는 아래와 같은 문법으로 호출한다.
# nmap -sV --script=<script name>
* 예를 들어 버전 스캔의 일부로 대중적인 웹 애플리케이션과 서버에서 쓰는 디렉터리를 열거하는 http-enum 스크립트를 사용할 경우 아래와 같이 사용한다.
# nmap -sV --script=http-enum 127.0.0.1
* 또다른 예 : http-frontpage-login 스크립트를 동작시키면 오래된 버전의 FrontPage 기본 확장은 익명 사용자가 로그인 할 수 있게 설정되어 있으므로 서버는 완전하게 공격당하게 된다.
# nmap 127.0.0.1 -p 80 --script=http-frontpage-login
'Cyber Security' 카테고리의 다른 글
Kali linux DVWA Install (0) | 2015.06.14 |
---|---|
네트워크 정보 수집 (0) | 2015.01.22 |
Session hijacking (0) | 2015.01.22 |
[정보보안] DDoS(Distribute Denial of Service attack) (0) | 2015.01.22 |
DNS spoofing, SSL Webmitm (0) | 2015.01.21 |