본문 바로가기

학부_대학원/대학원_학과공부정리

OS Remote Detection - [2]

SMALL

Sequence generation (SEQ, OPS, WIN, and T1)

A series of six TCP probes is sent to generate these four test response lines. The probes are sent exactly 100 milliseconds apart so the total time taken is 500 ms. Exact timing is important as some of the sequence algorithms we detect (initial sequence numbers, IP IDs, and TCP timestamps) are time dependent. This timing value was chosen to take 500 ms so that we can reliably detect the common 2 Hz TCP timestamp sequences.

아래 6개의 패킷을 보냄으로서 위의 4개 SEQOPSWIN, T1의 응답 값을 획득할 수 있다.
해당 프로브 패킷들은 정확히 100 밀리 초 간격으로 전송되므로 총 소요 시간은 500 밀리 초입니다.
정확한 타이밍은 우리가 탐지하는 시퀀스 알고리즘 중 일부 (초기 시퀀스 번호, IP ID 및 TCP 타임 스탬프)가 시간에 따라 다르므로 중요합니다.
이 타이밍 값은 일반적인 2Hz TCP 타임 스탬프 시퀀스를 안정적으로 탐지 할 수 있도록 500ms를 사용하도록 선택되었습니다.

[nmap Test packet Capture]
[etri-nmap-packet-capture]



  • Packet #1: [TCP options ] window scale (10), NOP, MSS (1460), timestamp (TSval: 0xFFFFFFFF; TSecr: 0), SACK permitted.
                      [TCP flag]       The window field is 1.
  • Packet #2: [TCP options] MSS (1400), window scale (0), SACK permitted, timestamp (TSval: 0xFFFFFFFF; TSecr: 0), EOL.
                      [TCP flag]       The window field is 63.
  • Packet #3: [TCP options] Timestamp (TSval: 0xFFFFFFFF; TSecr: 0), NOP, NOP, window scale (5), NOP, MSS (640).
                      [TCP flag]       The window field is 4.
  • Packet #4: [TCP options] SACK permitted, Timestamp (TSval: 0xFFFFFFFF; TSecr: 0), window scale (10), EOL.
                      [TCP flag]       The window field is 4.
  • Packet #5: [TCP options] MSS (536), SACK permitted, Timestamp (TSval: 0xFFFFFFFF; TSecr: 0), window scale (10), EOL.
                      [TCP flag]        The window field is 16.
  • Packet #6: [TCP options] MSS (265), SACK permitted, Timestamp (TSval: 0xFFFFFFFF; TSecr: 0).
                       [TCP flag]        The window field is 512.


Each probe is a TCP SYN packet to a detected open port on the remote machine. 
The sequence and acknowledgment numbers are random (but saved so Nmap can differentiate responses).
Detection accuracy requires probe consistency, so there is no data payload even if the user requested one with --data-length.

각 프로브는 원격 시스템에서 탐지 된 열린 포트에 대한 TCP SYN 패킷입니다.
시퀀스 번호와 승인 번호는 무작위입니다
(그러나 Nmap이 응답을 구별 할 수 있도록 저장됩니다).
탐지 정확도에는 프로브 일관성이 필요하므로 사용자가 --data-length를  사용하여 요청한 경우에도 데이터 페이로드가 없습니다.



These packets vary in the TCP options they use and the TCP window field value. The following list provides the options and values for all six packets. The listed window field values do not reflect window scaling. EOL is the end-of-options-list option, which many sniffing tools don't show by default.


이러한 패킷은 사용하는 TCP 옵션과 TCP 창 필드 값에 따라 다릅니다. 
다음 목록은 6 개 패킷 모두에 대한 옵션과 값을 제공합니다.
나열된 창 필드 값은 창 크기 조정을 반영하지 않습니다. 
EOL은 end-of-options-list 옵션으로 많은 스니핑 도구가 기본적으로 표시되지 않습니다.


The results of these tests include four result category lines.
The first, SEQ, contains results based on sequence analysis of the probe packets.
These test results are GCDSPISRTIIITS, and SS.
The next line, OPS contains the TCP options received for each of the probes (the test names are O1 through 06).
Similarly, the WIN line contains window sizes for the probe responses (named W1 through W6).
The final line related to these probes, T1, contains various test values for packet #1.
Those results are for the RDFTTGWSAFORD, and Q tests.
These tests are only reported for the first probe since they are almost always the same for each probe.

이 테스트의 결과에는 네 가지 결과 카테고리 행이 포함됩니다. 
첫 번째 SEQ는 프로브 패킷의 시퀀스 분석을 기반으로 한 결과를 포함합니다.
이 테스트 결과는 GCD, SP, ISR, TI, II, TS 및 SS입니다. 
다음 OPS에는 각 프로브에 대해 수신 된 TCP 옵션이 들어 있습니다 (테스트 이름은 O1에서 O6까지입니다).
다음 WIN 라인에는 프로브 응답 (W1에서 W6까지 이름 지정)을위한 창 크기가 포함됩니다.
이 프로브들과 관련된 마지막 라인 T1은 패킷 # 1에 대한 다양한 테스트 값을 포함합니다.
그 결과는 R, DF, T, TG, W, S, A, F, O, RD 및 Q 테스트에 대한 것입니다.
이 검사들은 각 검사마다 거의 항상 동일하기 때문에 첫 번째 검사에 대해서만보고됩니다.



ICMP echo (IE)

The IE test involves sending two ICMP echo request packets to the target. The first one has the IP DF bit set, a type-of-service (TOS) byte value of zero, a code of nine (even though it should be zero), the sequence number 295, a random IP ID and ICMP request identifier, and 120 bytes of 0x00 for the data payload.

IE 테스트는 두 개의 ICMP 에코 요청 패킷을 대상에 보내는 것을 포함합니다.
첫 번째는 IP DF 비트 세트, 서비스 유형 (TOS) 바이트 값 0, 코드 9 (0이어야 함에도 불구하고), 시퀀스 번호 295, 임의 IP ID 및 ICMP 요청 식별자 , 및 데이터 페이로드에 대한 120 바이트의 0x00을 포함한다.

The second ping query is similar, except a TOS of four (IP_TOS_RELIABILITY) is used, the code is zero, 150 bytes of data is sent, and the ICMP request ID and sequence numbers are incremented by one from the previous query values.

두 번째 ping 쿼리는 TOS가 4 (IP_TOS_RELIABILITY)이고 코드가 0이고 150 바이트의 데이터가 전송되고 ICMP 요청 ID 및 시퀀스 번호가 이전 쿼리 값에서 1 씩 증가한다는 점을 제외하면 비슷합니다.

The results of both of these probes are combined into a IE line containing the R, DFI, T, TG, and CD tests. The R value is only true (Y) if both probes elicit responses. The T, and CD values are for the response to the first probe only, since they are highly unlikely to differ. DFI is a custom test for this special dual-probe ICMP case.

이 두 프로브의 결과는 R, DFI, T, TG 및 CD 테스트를 포함하는 IE 라인으로 결합됩니다. 두 프로브가 응답을 이끌어 내면 R 값은 참 (Y)입니다. T와 CD 값은 차이가 거의 없기 때문에 첫 번째 프로브에 대한 응답에만 사용됩니다. DFI는이 특수 듀얼 프로브 ICMP 케이스에 대한 맞춤 테스트입니다.



TCP explicit congestion notification (ECN)

This probe tests for explicit congestion notification (ECN) support in the target TCP stack. ECN is a method for improving Internet performance by allowing routers to signal congestion problems before they start having to drop packets. It is documented in RFC 3168. Nmap tests this by sending a SYN packet which also has the ECN CWR and ECE congestion control flags set. For an unrelated (to ECN) test, the urgent field value of 0xF7F5 is used even though the urgent flag is not set. The acknowledgment number is zero, sequence number is random, window size field is three, and the reserved bit which immediately precedes the CWR bit is set. TCP options are WScale (10), NOP, MSS (1460), SACK permitted, NOP, NOP. The probe is sent to an open port.

이 프로브는 대상 TCP 스택에서 명시 적 혼잡 통보 (ECN) 지원을 테스트합니다.
ECN은 라우터가 패킷을 삭제해야하기 전에 혼잡 문제를 알리는 것을 허용하여 인터넷 성능을 향상시키는 방법입니다.
이것은 RFC 3168에 문서화되어 있습니다.
Nmap은 ECN CWR 및 ECE 혼잡 제어 플래그가 설정된 SYN 패킷을 보내이를 테스트합니다.
관련이없는 (ECN에 대한) 테스트의 경우 긴급 플래그가 설정되지 않은 경우에도 0xF7F5의 긴급 필드 값이 사용됩니다.
확인 응답 번호는 0이고 시퀀스 번호는 무작위이며 창 크기 필드는 3이며 CWR 비트 바로 앞에있는 예약 된 비트가 설정됩니다.
TCP 옵션은 WScale (10), NOP, MSS (1460), SACK 허용, NOP, NOP입니다.
프로브가 열린 포트로 전송됩니다.

If a response is received, the RDFTTGWOCC, and Q tests are performed and recorded.

응답이 수신되면 R, DF, T, TG, W, O, CC 및 Q 테스트가 수행되고 기록됩니다.




TCP (T2–T7)

The six T2 through T7 tests each send one TCP probe packet. With one exception, the TCP options data in each case is (in hex) 03030A0102040109080AFFFFFFFF000000000402. Those 20 bytes correspond to window scale (10), NOP, MSS (265), Timestamp (TSval: 0xFFFFFFFF; TSecr: 0), then SACK permitted. The exception is that T7 uses a Window scale value of 15 rather than 10. The variable characteristics of each probe are described below:

6 개의 T2-T7 테스트는 각각 하나의 TCP 프로브 패킷을 전송합니다.
한 가지 예외를 제외하고 각 경우의 TCP 옵션 데이터는 (0 진수) 03030A0102040109080AFFFFFFFF000000000402입니다.
그 20 바이트는 윈도우 스케일 (10), NOP, MSS (265), 타임 스탬프 (TSval : 0xFFFFFFFF; TSecr : 0)에 대응하고, SACK은 허용된다.
예외적으로, T7은 Window scale 값을 10이 아니라 15로 사용합니다.
각 프로브의 가변 특성은 다음과 같습니다.

  • T2 sends a TCP null (no flags set) packet with the IP DF bit set and a window field of 128 to an open port.
  • T3 sends a TCP packet with the SYN, FIN, URG, and PSH flags set and a window field of 256 to an open port. The IP DF bit is not set.
  • T4 sends a TCP ACK packet with IP DF and a window field of 1024 to an open port.
  • T5 sends a TCP SYN packet without IP DF and a window field of 31337 to a closed port.
  • T6 sends a TCP ACK packet with IP DF and a window field of 32768 to a closed port.
  • T7 sends a TCP packet with the FIN, PSH, and URG flags set and a window field of 65535 to a closed port. The IP DF bit is not set.

In each of these cases, a line is added to the fingerprint with results for the RDFTTGWSAFORD, and Q tests.
이 경우 각각 R, DF, T, TG, W, S, A, F, O, RD 및 Q 테스트 결과가있는 줄이 지문에 추가됩니다.

T2 - T7




UDP (U1)

This probe is a UDP packet sent to a closed port. The character ‘C’ (0x43) is repeated 300 times for the data field. The IP ID value is set to 0x1042 for operating systems which allow us to set this. If the port is truly closed and there is no firewall in place, Nmap expects to receive an ICMP port unreachable message in return. That response is then subjected to the R, DF, T, TG, IPL, UN, RIPL, RID, RIPCK, RUCK, and RUD tests.

이 프로브는 닫힌 포트로 전송 된 UDP 패킷입니다. 문자 'C'(0x43)는 데이터 필드에 대해 300 번 반복됩니다. IP ID 값은 우리가 이것을 설정할 수있는 운영 체제의 경우 0x1042로 설정됩니다.
포트가 정말로 닫혀 있고 방화벽이 없다면 Nmap은 ICMP port unreachable 메시지를 받길 기대합니다.
그 응답은 R, DF, T, TG, IPL, UN, RIPL, RID, RIPCK, RUCK 및 RUD 테스트에 적용됩니다.





Response Tests


TCP ISN greatest common divisor (GCD)

The SEQ test sends six TCP SYN packets to an open port of the target machine and collects SYN/ACK packets back. 
Each of these SYN/ACK packets contains a 32-bit initial sequence number (ISN). 
This test attempts to determine the smallest number by which the target host increments these values. 
For example, many hosts (especially old ones) always increment the ISN in multiples of 64,000.
SEQ 테스트는 6 개의 TCP SYN 패킷을 대상 시스템의 열린 포트로 보내고 SYN / ACK 패킷을 다시 수집합니다.
각각의 SYN / ACK 패킷은 32 비트 초기 시퀀스 번호 (ISN)를 포함합니다.
이 테스트는 대상 호스트가 이 값을 증가시키는 최소값을 결정하려고 시도합니다.
예를 들어, 많은 호스트 (특히 오래된 호스트)는 항상 64,000의 배수로 ISN을 증가시킵니다.

The first step in calculating this is creating an array of differences between probe responses. 

The first element is the difference between the 1st and 2nd probe response ISNs. 

The second element is the difference between the 2nd and 3rd responses.
 
There are five elements if Nmap receives responses to all six probes.
 
Since the next couple of sections reference this array, we will call it diff1
If an ISN is lower than the previous one, Nmap looks at both the number of values it would have to subtract from the first value to obtain the second, 
and the number of values it would have to count up (including wrapping the 32-bit counter back to zero). 
The smaller of those two values is stored in diff1
So the difference between 0x20000 followed by 0x15000 is 0xB000. 
The difference between 0xFFFFFF00 and 0xC000 is 0xC0FF. 
This test value then records the greatest common divisor of all those elements. 
This GCD is also used for calculating the SP result.


이 계산의 첫 번째 단계는 프로브 응답 간의 차이점 배열을 만드는 것입니다. 
첫 번째 요소는 1 차 및 2 차 프로브 응답 ISN의 차이입니다.
두 번째 요소는 두 번째와 세 번째 응답의 차이입니다. 
Nmap이 6 개의 모든 프로브에 대한 응답을받는다면 5 가지 요소가 있습니다. 
다음 섹션에서는이 배열을 참조하기 때문에 diff1이라고 부릅니다. 
ISN이 이전 값보다 낮 으면 Nmap은 두 번째 값을 얻기 위해 첫 번째 값에서 뺄 값의 수와 두 번째 값을 얻기 위해 필요한 값의 수를 봅니다 
(32 비트 카운터는 0으로 되돌아 간다). 
이 두 값 중 작은 값이 diff1에 저장됩니다. 
따라서 0x20000과 0x15000의 차이점은 0xB000입니다.
 0xFFFFFF00과 0xC000의 차이는 0xC0FF입니다. 
이 테스트 값은 모든 요소 중 가장 큰 공약수를 기록합니다.
이 GCD는 SP 결과 계산에도 사용됩니다.



TCP ISN counter rate (ISR)

This value reports the average rate of increase for the returned TCP initial sequence number. 
Recall that a difference is taken between each two consecutive probe responses and stored in the previously discussed diff1 array. 
Those differences are each divided by the amount of time elapsed (in seconds—will generally be about 0.1) 
between sending the two probes which generated them. 
The result is an array, which we'll call seq_rates containing the rates of ISN counter increases per second. 
The array has one element for each diff1 value.
 An average is taken of the array values. If that average is less than one (e.g. a constant ISN is used), ISR is zero.
 Otherwise ISR is eight times the binary logarithm (log base-2) of that average value, rounded to the nearest integer.

이 값은 반환 된 TCP 초기 시퀀스 번호에 대한 평균 증가율을보고합니다.

두 개의 연속적인 프로브 응답간에 차이가 발생하고 이전에 논의 된 diff1 어레이에 저장된다는 점을 상기하십시오.

이러한 차이점을 생성 한 두 프로브를 전송하는 사이 경과 된 시간 (초 단위 - 일반적으로 약 0.1 초)으로 나뉩니다.
결과는 배열이며, 초당 ISN 카운터 증가 속도를 포함하는 seq_rates라고합니다.
배열에는 각 diff1 값에 대해 하나의 요소가 있습니다.
배열 값의 평균이 취해집니다. 해당 평균이 1보다 작 으면 (예 : 상수 ISN이 사용됨) ISR이 0입니다.
그렇지 않으면 ISR은 가장 가까운 정수로 반올림 한 평균값의 2 진 로그 (log base-2)의 8 배입니다.


TCP ISN sequence predictability index (SP)

While the ISR test measures the average rate of initial sequence number increments, this value measures the ISN variability.
It roughly estimates how difficult it would be to predict the next ISN from the known sequence of six probe responses.
The calculation uses the difference array (seq_rates) and GCD values discussed in the previous section.
ISR 테스트가 초기 시퀀스 번호 증분의 평균 속도를 측정하는 동안이 값은 ISN 변동성을 측정합니다.
알려진 6 개의 프로브 응답 시퀀스에서 다음 ISN을 예측하는 것이 얼마나 어려운지 대략적으로 추정합니다.
계산은 이전 섹션에서 논의한 차이 배열 (seq_rates) 및 GCD 값을 사용합니다.

This test is only performed if at least four responses were seen.
If the previously computed GCD value is greater than nine,
the elements of the previously computed seq_rates array are divided by that value. We don't do the division for smaller GCD values because those are usually caused by chance.
A standard deviation of the array of the resultant values is then taken.
If the result is one or less, SP is zero.
Otherwise the binary logarithm of the result is computed, then it is multiplied by eight, rounded to the nearest integer, and stored as SP.
이 검사는 적어도 네 가지 반응이 나타난 경우에만 수행됩니다.
이전에 계산 된 GCD 값이 9보다 큰 경우,
이전에 계산 된 seq_rates 배열의 요소는 그 값으로 나뉩니다. 작은 GCD 값은 보통 우연히 발생하기 때문에 우리는 나누지 않습니다.
그런 다음 결과 값 배열의 표준 편차가 사용됩니다.
결과가 1 이하인 경우 SP는 0입니다.
그렇지 않으면 결과의 2 진 로그가 계산 된 다음 가장 가까운 정수로 반올림되고 SP로 저장됩니다.

Please keep in mind that this test is only done for OS detection purposes and is not a full-blown audit of the target ISN generator.
There are many algorithm weaknesses that lead to easy predictability even with a high SP value.
이 테스트는 OS 검색 목적으로 만 수행되며 대상 ISN 생성기에 대한 완전한 감사는 아닙니다.
높은 SP 값에서도 쉽게 예측할 수있는 많은 알고리즘 약점이 있습니다.



IP ID sequence generation algorithm (TI, CI, II)

There are three tests that examine the IP header ID field of responses. 
응답의 IP 헤더 ID 필드를 검사하는 세 가지 테스트가 있습니다.

TI is based on responses to the TCP SEQ probes. 
TI는 TCP SEQ 프로브에 대한 응답을 기반으로합니다.

CI is from the responses to the three TCP probes sent to a closed port:T5T6, and T7.
CI는 닫힌 포트로 전송 된 세 개의 TCP 프로브 (T5, T6 및 T7)에 대한 응답에서 나온 것입니다.

II comes from the ICMP responses to the two IE ping probes. 
II는 두 개의 IE 핑 프로브에 대한 ICMP 응답에서 비롯됩니다.

For TI, at least three responses must be received for the test to be included;
TI의 경우 테스트가 포함되기 위해서는 적어도 세 가지 응답을 받아야합니다.

 for CI, at least two responses are required;
CI의 경우 적어도 두 가지 응답이 필요합니다. 

and for II, both ICMP responses must be received.
II의 경우 ICMP 응답을 모두 받아야합니다.

For each of these tests, the target's IP ID generation algorithm is classified based on the algorithm below.
각 테스트에 대해 대상의 IP ID 생성 알고리즘은 아래 알고리즘에 따라 분류됩니다.

Minor differences between tests are noted. 
테스트 간의 사소한 차이점이 기록됩니다.

Note that difference values assume that the counter can wrap.
차이 값은 카운터가 래핑 할 수 있다고 가정합니다.

So the difference between an IP ID of 65,100 followed by a value of 700 is 1,136. 
따라서 IP ID가 65,100이고 값이 700 인 차이는 1,136입니다.

The difference between 2,000 followed by 1,100 is 64,636. 
2,000 대 1,100 사이의 차이는 64,636입니다.

Here are the calculation details:
다음은 계산 세부 사항입니다.

  1. If all of the ID numbers are zero, the value of the test is Z.
    모든 ID 번호가 0이면 테스트 값은 Z입니다.

  2. If the IP ID sequence ever increases by at least 20,000, the value is RD (random). This result isn't possible for II because there are not enough samples to support it.
    IP ID 시퀀스가 최소 20,000 이상 증가하면 RD (임의 값)입니다. II에 대해서는이 결과를 지원할 수있는 샘플이 충분하지 않기 때문에이 결과를 얻을 수 없습니다.

  3. If all of the IP IDs are identical, the test is set to that value in hex.
    모든 IP ID가 동일하면 테스트는 해당 값으로 16 진수로 설정됩니다.

  4. If any of the differences between two consecutive IDs exceeds 1,000, and is not evenly divisible by 256, the test's value is RI (random positive increments). If the difference is evenly divisible by 256, it must be at least 256,000 to cause this RI result.
    두 개의 연속 ID의 차이가 1,000을 초과하고 256으로 균등하게 나눌 수없는 경우 테스트 값은 RI (임의 양수 증가분)입니다. 차이가 256으로 균등하게 나눌 수있는 경우이 RI 결과를 발생 시키려면 256,000 이상이어야합니다.

  5. If all of the differences are divisible by 256 and no greater than 5,120, the test is set to BI (broken increment). This happens on systems like Microsoft Windows where the IP ID is sent in host byte order rather than network byte order. It works fine and isn't any sort of RFC violation, though it does give away host architecture details which can be useful to attackers.
    모든 차이가 256으로 나눌 수 있고 5,120보다 크지 않은 경우 테스트는 BI (깨진 증분)로 설정됩니다. 이것은 IP 주소가 네트워크 바이트 순서가 아닌 호스트 바이트 순서로 전송되는 Microsoft Windows와 같은 시스템에서 발생합니다. 그것은 잘 작동하고 어떤 종류의 RFC 위반이 아니지만 공격자에게 유용 할 수있는 호스트 아키텍처 세부 정보를 제공합니다.

  6. If all of the differences are less than ten, the value is I (incremental). We allow difference up to ten here (rather than requiring sequential ordering) because traffic from other hosts can cause sequence gaps.
    모든 차이가 10보다 작 으면 값I (증분)입니다. 다른 호스트의 트래픽으로 인해 시퀀스 갭이 발생할 수 있으므로 여기에서는 순차적 정렬을 요구하지 않고 최대 10 개의 차이를 허용합니다.

  7. If none of the previous steps identify the generation algorithm, the test is omitted from the fingerprint.
    이전 단계 중 어느 것도 생성 알고리즘을 식별하지 못하면 지문에서 테스트가 생략됩니다.


Shared IP ID sequence Boolean (SS)

This Boolean value records whether the target shares its IP ID sequence between the TCP and ICMP protocols. 
이 부울 값은 대상이 TCP와 ICMP 프로토콜간에 IP ID 시퀀스를 공유하는지 여부를 기록합니다.


If our six TCP IP ID values are 117, 118, 119, 120, 121, and 122, then our ICMP results are 123 and 124, it is clear that not only are both sequences incremental, 
but they are both part of the same sequence. 
우리의 6 개의 TCP IP ID 값이 117, 118, 119, 120, 121, 122 인 경우, ICMP 결과는 123과 124이며, 두 시퀀스가 점증적일뿐만 아니라,
그러나 그들은 같은 서열의 일부입니다.


If, on the other hand, the TCP IP ID values are 117–122 but the ICMP values are 32,917 and 32,918, two different sequences are being used.
반면에 TCP IP ID 값이 117-122이지만 ICMP 값이 32,917과 32,918이면 두 개의 다른 시퀀스가 사용됩니다.


This test is only included if II is RIBI, or I and TI is the same. 
이 테스트는 II가 RI, BI 또는 I이고 TI가 동일한 경우에만 포함됩니다.

If SS is included, the result is S if the sequence is shared and O (other) if it is not. That determination is made by the following algorithm:
SS가 포함되면 시퀀스가 공유되면 S가되고 그렇지 않으면 O (기타)가됩니다. 그 결정은 다음 알고리즘에 의해 이루어진다.

Let avg be the final TCP sequence response IP ID minus the first TCP sequence response IP ID, divided by the difference in probe numbers. 
avg는 최종 TCP 시퀀스 응답 IP ID에서 첫 번째 TCP 시퀀스 응답 IP ID를 뺀 값을 프로브 수의 차이로 나눈 값이됩니다.

If probe #1 returns an IP ID of 10,000 and probe #6 returns 20,000, avg would be (20,000 − 10,000) / (6 − 1), which equals 2,000.
probe # 1이 IP ID를 10,000으로 반환하고 probe # 6이 20,000을 반환하면 avg는 (20,000 - 10,000) / (6 - 1)이되며 2,000이됩니다.

If the first ICMP echo response IP ID is less than the final TCP sequence response IP ID plus three times avg, the SS result is S. Otherwise it is O.
첫 번째 ICMP 에코 응답 IP ID가 최종 TCP 시퀀스 응답 IP ID와 3 배의 평균보다 작은 경우 SS 결과는 S입니다. 그렇지 않으면 O입니다.



TCP timestamp option algorithm (TS)

TS is another test which attempts to determine target OS characteristics based on how it generates a series of numbers.
TS는 일련의 숫자를 생성하는 방법에 따라 대상 OS 특성을 결정하려고 시도하는 또 다른 테스트입니다.
This one looks at the TCP timestamp option (if any) in responses to the SEQ probes.
이것은 하나의 TCP timestamp 옵션 (있는 경우)을 SEQ 프로브에 대한 응답으로 봅니다.
 It examines the TSval (first four bytes of the option) rather than the echoed TSecr (last four bytes) value.
에코 된 TSecr (마지막 4 바이트) 값이 아니라 TSval (옵션의 첫 번째 4 바이트)을 검사합니다.
It takes the difference between each consecutive TSval and divides that by the amount of time elapsed between Nmap sending the two probes which generated those responses.
그것은 각각의 연속적인 TSval 사이의 차이를 취하고 그 응답을 생성 한 두 개의 프로브를 보내는 Nmap 사이의 경과 시간으로 나눕니다.
The resultant value gives a rate of timestamp increments per second. 
결과 값은 초당 시간 소인 증가율을 제공합니다.

Nmap computes the average increments per second over all consecutive probes and then calculates the TS as follows:
Nmap은 모든 연속 프로브에 대한 초당 평균 증가량을 계산 한 다음 다음과 같이 TS를 계산합니다.

  1. If any of the responses have no timestamp option, TS is set to U (unsupported).
    응답에 타임 스탬프 옵션이없는 경우 TS는 U (지원되지 않음)로 설정됩니다.
  2. If any of the timestamp values are zero, TS is set to 0.
    타임 스탬프 값 중 하나가 0이면 TS는 0으로 설정됩니다.
  3. If the average increments per second falls within the ranges 0-5.66, 70-150, or 150-350, TS is set to 1, 7, or 8, respectively.
    초당 평균 증가량이 0-5.66, 70-150 또는 150-350 범위에있는 경우 TS는 각각 1, 7 또는 8로 설정됩니다.
    These three ranges get special treatment because they correspond to the 2 Hz, 100 Hz, and 200 Hz frequencies used by many hosts.
    이 세 가지 범위는 여러 호스트에서 사용되는 2Hz, 100Hz 및 200Hz 주파수에 해당하므로 특별 처리됩니다.
  4. In all other cases, Nmap records the binary logarithm of the average increments per second, rounded to the nearest integer.
    다른 모든 경우 Nmap은 초당 평균 증가량의 이진 로그를 기록하며 가장 가까운 정수로 반올림됩니다.
    Since most hosts use 1,000 Hz frequencies, A is a common result.
    대부분의 호스트는 1,000Hz 주파수를 사용하기 때문에 A는 일반적인 결과입니다.


LIST

'학부_대학원 > 대학원_학과공부정리' 카테고리의 다른 글

[initrd] Initial RAM disk  (0) 2018.03.09
[QEMU] qocw2 파일 포맷  (0) 2018.03.07
[QEMU] 주변장치 추가  (0) 2018.03.05
[QEMU] DBI 번역  (0) 2018.02.27
[QEMU] Execution 분석  (0) 2018.02.26