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
반응형