IT 이야기2009. 11. 10. 23:29
Nmap의 가장 잘 알려진 기능중의 하나는 TCP/IP stack fingerprinting을 이용한 OS의 탐지다. Nmap은 여러개의 TCP와 UDP패킷ㅇ르 보내면서 그 응답을 시험하게 된다. TCP ISN 샘플링, IP ID 샘플링 그리고 TCP ISN 샘플링 등 수십가지의 결과물을 nmap-os-db와 비교하게 된다. 응답들에는 OS에 대한 설명이 포함되어 있고 화사이름, OS, OS버전, 장비이름등을 알아낼 수 있게 된다.

만약 Nmap이 OS를 탐지하지 못할때는 대안으로 당신의 결과물을 nmap으로 보낼수 있는 주소를 출력받는다. 이럼으로 당신은 OS의 탐지하는 지식풀에 일조할수 있는 것이고 Nmap을 사용하는 모든 이들에게 일조하게 되는 것이다.

OS탐지는 얻어진 정볼르 통해 몇가지 테스트를 수행할 수 있다. 그중의 하나가 TCP 순서예측분류(Sqeuence Prediction Classification)이다. 이를 통해 타겟호스트에 거짓 TCP연결의 가능성 정도를 측정할 수 있다. 이것은 rlogin,firewall filter등과 같은 원본 IP 위주의 연결형태나 공격자의 소스를 감추는데 사용될 수 있다. 이런 형태의 위장은 더이상 사용되지 않지만 아직도 많은 장비들은 위의 공격에 취약하다. 영어로는 "worthy challenge" 혹은 "trivial joke"등과 같이 불리는데 이것은 기본적인 결과물을 제공한다. 대부분의 장비들은 ID필드의 값을 하나씩 증가시키면서 스캔하게 된다.

추가적으로 OS의 업타임을 탐지하는 것이다. 이것은 RFC 1323문서를 이용한 것으로 TCP 타임스탬프가 언제 재부팅되었나를 보는것이다. 하지만 때론 실제와 다른 타임스탬프를 도출하기도 한다.

OS 탐지는 다음과 같은 옵션을 가진다.

-O (OS탐지) : OS탐지를 가능하게 해주고 -A를 통해 다른 옵션과 함께 사용 가능하다.

--osscan-limit (OS탐지를 지정된 타겟에 한정) : OS탐지는 하나의 open포트와 closed포토가 있을때 훨씬 효과적이다. 이 옵션의 설정으로 해당 옵션의 설정과 맞지 않는 타겟은 생략되게 되고 이를 통해 많은 시간을 절약할 수 있다.

--osscan-guess; --fuzzy (OS탐지 결과의 예측) : OS를 예측할 수 없을때 가능성에 대한 결과를 나타낸다. 이를 통해 좀더 공격적으로 호스트를 스캔하게 되고 불확실한 결과물과 함께 신용도도 나타내게 된다.

--max-os-tries (타겟에 대한 OS매치 갯수 지정) : 기본적으로 매치에 실패한 후에도 같은 검색이 5번 계속 이루어지는데 1로 지정해 줄경우 Nmap의 스캔속도를 향상시킨다. 물론 이로 인해 탐지해 낼수 있는 확률은 떨어지게 된다.

원문링크: http://nmap.org/book/man-os-detection.html
Posted by 구텐모르겐