guswlsdk 2018. 10. 1. 13:09
반응형

nmap

  • NetworkMap의 약어
  • 시스템 상의 열린 포트를 확인할 수 있다.
  • 포트를 스캔하기 위한 가장 흔한 명령어이다.
 
nmap -sT [Target IP]

TCP open scan 방식을 사용한다.
열린 포트를 확인할 수 있으며, -O 옵션을 추가하면 OS 정보 또한 얻을 수 있다.



Tcp Open Scan은 3way HandShake라는 논리적 연결 방식을 사용


클라이언트가 서버측에 SYN을 보내어 서버가 작동 중이면 SYN과 ACK를 보내준다.




만약 클라이언트가 서버측에 SYN을 보냈지만 서버가 작동 중이지 않으면 RST+ACK를 보낸다.




다음은 nmap 명령어로 확인된 열려 있는 포트의 패킷을 확인한 것이다.


22번 포트 ssh





80번 포트 http





1. SYN

2. SYN+ACK

3. ACK


순서대로 논리적인 방식으로 연결이 성립됨을 확인할 수 있다.




열리지 않은 21번 포트는 SYN을 보내고, RST+ACK를 받음으로 연결이 성립되지 못한다.








nmap -sS [Target IP]


출력 결과는 -sT와 동일하다.

Stealth Scan 방식을 사용하기 때문에 네트워크 로그가 남지 않아 IDS/IPS를 우회할 수 있다.

그러나 현재는 Stealth Scan도 탐지가 가능하다고 한다.










네트워크 로그를 남기지 않고, IDS/IPS를 우회하는 이유는 Stealth Scan의 방식 때문이다.



클라이언트가 서버측에 SYN을 보내고 만약 작동 중이라면 SYN+ACK를 보내게 되는데


클라이언트 측이 서버에서 보낸 SYN+ACK을 보낼 때 RST를 보내어 연결을 끊어버리는 것이다.


서버측으로부터 SYN+ACK을 받았다면 서버는 작동 중이라는 사실을 알 수 있고


RST을 보내어 연결을 끊어버리기 때문에 네트워크 로그를 남기지 않게 되어


이 때문에 IDS/IPS까지 우회할 수 있게 되는 것이다.








만약 서버가 작동 중이지 않을 경우 서버측은 SYN과 RST를 보내게 된다.








서버측으로부터 SYN+ACK을 받으면 RST을 보냄으로 연결을 끊어버리는 것을 확인할 수 있다. 





서버측이 작동 중이지 않을 경우 RST+ACK

반응형