网络扫描:系统识别

安全
我们不仅可以通过相应工具识别目标主机上的服务指纹信息,还可以进行系统指纹信息识别。常见的系统指纹信息有操作系统类型、系统版本和内核版本等。本文介绍系统识别的方法。

 [[415706]]

我们不仅可以通过相应工具识别目标主机上的服务指纹信息,还可以进行系统指纹信息识别。常见的系统指纹信息有操作系统类型、系统版本和内核版本等。本文介绍系统识别的方法。

1. Nmap系统识别

在Nmap工具中,提供了一些选项可以用来实施系统识别。下面介绍具体的实现方法。

(1)识别操作系统

在Nmap工具中提供了一个-O选项,可以用来识别操作系统。用于识别操作系统的语法格式如下:

nmap -O [host]

其中,-O选项用于识别操作系统类型。注意,这里的选项-O是大写字母O,不是0。

识别目标主机192.168.33.152的操作系统类型。执行命令如下: 

  1. root@daxueba:~# nmap -O 192.168.33.152  
  2. Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-02 15:22 CST  
  3. Nmap scan report for 192.168.33.152 (192.168.33.152)  
  4. Host is up (0.00036s latency).  
  5. Not shown: 997 closed ports  
  6. PORT   STATE SERVICE  
  7. 21/tcp    open  ftp  
  8. 22/tcp    open  ssh  
  9. 80/tcp    open  http  
  10. MAC Address: 00:0C:29:FD:58:4B (VMware) #MAC地址  
  11. Device type: general purpose   #设备类型  
  12. Running: Linux 3.X|4.X  #运行的系统  
  13. OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4 #操作系统中央处理单元  
  14. OS details: Linux 3.2 - 4.9  #操作系统详细信息 
  15. Network Distance: 1 hop  #网络距离,即从源到目标经过的网络节点  
  16. OS detection performed. Please report any incorrect results at https://nmap.  
  17. org/submit/ .  
  18. Nmap done: 1 IP address (1 host up) scanned in 1.86 seconds 

从以上输出信息中可以看到,目标主机的操作系统类型为Linux,内核版本为3.2。如果Nmap不能够判断出目标操作系统的话,将会提供指纹信息给Nmap的系统数据库。例如,识别目标主机10.10.1.11的操作系统。执行命令如下: 

  1. root@daxueba:~# nmap -O 10.10.1.11  
  2. Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-02 15:29 CST  
  3. …… 
  4. No exact OS matches for host (If you know what OS is running on it, see http://nmap.org/submit/ ).  
  5. TCP/IP fingerprint:  
  6. OS:SCAN(V=5.00%D=12/16%OT=3001%CT=1%CU=32781%PV=Y%DS=1%G=Y%M=00204A%TM=4B29  
  7. OS:4048%P=i686-pc-windows-windows)SEQ(CI=I%III=I%TS=U)OPS(O1=M400%O2=%O3=%O4  
  8. OS:=%O5=%O6=)OPS(O1=M400%O2=M400%O3=%O4=%O5=%O6=)OPS(O1=%O2=M400%O3=M400%O4 
  9. OS:=%O5=%O6=)OPS(O1=%O2=%O3=M400%O4=%O5=%O6=)OPS(O1=M400%O2=%O3=M400%O4=%O5  
  10. OS:=%O6=)WIN(W1=7FF%W2=0%W3=0%W4=0%W5=0%W6=0)WIN(W1=7FF%W2=7FF%W3=0%W4=0%W5  
  11. OS:=0%W6=0)WIN(W1=0%W2=7FF%W3=7FF%W4=0%W5=0%W6=0)WIN(W1=0%W2=0%W3=7FF%W4=0 
  12. OS:W5=0%W6=0)WIN(W1=7FF%W2=0%W3=7FF%W4=0%W5=0%W6=0)ECN(R=Y%DF=Y%T=40%W=0%O 
  13. OS:%CC=N%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T1(R=Y%DF=Y%T=40%S=O%A=O  
  14. OS:%F=AS%RD=0%Q=)T1(R=Y%DF=Y%T=40%S=Z%A=S+%F=AR%RD=0%Q=)T2(R=Y%DF=Y%T=40%W 
  15. OS:0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T3(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q 
  16. OS:)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A 
  17. OS:S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF  
  18. OS:=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=Y%T=40%IPL=38%UN=0%RIPL=G  
  19. OS:%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=S%T=40%CD=S

以上输出信息就是Nmap向数据库提交的指纹信息,这些指纹信息是自动生成的,并且标识了目标系统的操作系统。

(2)指定识别的操作系统

当扫描多个主机时,可以使用--osscan-limit选项来指定识别特定主机的操作系统类型。这样,使用该选项进行操作系统识别可以节约大量的时间。指定识别主机的操作系统类型语法格式如下: 

  1. nmap -O --osscan-limit [host] 

其中,--osscan-limit选项表示针对指定的目标进行操作系统检测。如果发现一个打开和关闭的TCP端口时,操作系统检测会更有效。使用该选项,Nmap只对满足这个条件的主机进行操作系统检测。这样可以节约时间,特别是在使用-P0扫描多个主机时。该选项仅在使用-O或-A进行操作系统检测时起作用。

使用Nmap针对指定的目标进行操作系统检测。执行命令如下: 

  1. root@daxueba:~# nmap -P0 192.168.1.0/24 -O --osscan-limit  
  2. Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-02 16:02 CST  
  3. Nmap scan report for 192.168.1.1 (192.168.1.1)  
  4. Host is up (0.00073s latency).  
  5. Not shown: 994 closed ports  
  6. PORT      STATE SERVICE  
  7. 21/tcp    open  ftp  
  8. 80/tcp    open  http  
  9. 445/tcp   open  microsoft-ds  
  10. 5678/tcp  open  rrac  
  11. 8080/tcp  open  http-proxy  
  12. 52869/tcp open  unknown  
  13. MAC Address: 70:85:40:53:E0:35 (Unknown)  
  14. Device type: general purpose  
  15. Running: Linux 3.X|4.X  
  16. OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4  
  17. OS details: Linux 3.2 - 4.9  #操作系统详细信息  
  18. Network Distance: 1 hop  
  19. Nmap scan report for kdkdahjd61y369j (192.168.1.3)  
  20. Host is up (0.000085s latency).  
  21. All 1000 scanned ports on kdkdahjd61y369j (192.168.1.3) are filtered  
  22. MAC Address: 1C:6F:65:C8:4C:89 (Giga-byte Technology)  
  23. Nmap scan report for test-pc (192.168.1.5)  
  24. Host is up (0.00047s latency).  
  25. Not shown: 982 closed ports  
  26. PORT      STATE SERVICE  
  27. 21/tcp    open  ftp  
  28. 22/tcp    open  ssh  
  29. 80/tcp    open  http  
  30. 135/tcp   open  msrpc  
  31. 139/tcp   open  netbios-ssn  
  32. 443/tcp   open  https  
  33. 445/tcp   open  microsoft-ds  
  34. 902/tcp   open  iss-realsecure  
  35. 912/tcp   open  apex-mesh  
  36. 1433/tcp  open  ms-sql-s  
  37. 2383/tcp  open  ms-olap4  
  38. 5357/tcp  open  wsdapi  
  39. 49152/tcp open  unknown  
  40. 49153/tcp open  unknown  
  41. 49154/tcp open  unknown  
  42. 49155/tcp open  unknown  
  43. 49157/tcp open  unknown  
  44. 49158/tcp open  unknown  
  45. MAC Address: 00:0C:29:21:8C:96 (VMware)  
  46. Device type: general purpose  
  47. Running: Microsoft Windows 7|2008|8.1  
  48. OS CPE: cpe:/o:microsoft:windows_7::- cpe:/o:microsoft:windows_7::sp1  
  49. cpe:/o:microsoft:windows_server_2008::sp1 cpe:/o:microsoft:windows_server_  
  50. 2008:r2 cpe:/o:microsoft:windows_8 cpe:/o:microsoft:windows_8.1  
  51. OS details: Microsoft Windows 7 SP0 - SP1, Windows Server 2008 SP1, Windows  
  52. Server 2008 R2, Windows 8, or Windows 8.1 Update 1  #操作系统详细信息  
  53. Network Distance: 1 hop  
  54. Nmap scan report for 192.168.1.6 (192.168.1.6)  
  55. Host is up (0.00057s latency).  
  56. Not shown: 977 closed ports  
  57. PORT     STATE SERVICE  
  58. 21/tcp   open  ftp  
  59. 22/tcp   open  ssh  
  60. 23/tcp   open  telnet  
  61. 25/tcp   open  smtp  
  62. 53/tcp   open  domain  
  63. 80/tcp   open  http  
  64. 111/tcp  open  rpcbind  
  65. 139/tcp  open  netbios-ssn  
  66. 445/tcp  open  microsoft-ds  
  67. 512/tcp  open  exec  
  68. 513/tcp  open  login  
  69. 514/tcp  open  shell  
  70. 1099/tcp open  rmiregistry  
  71. 1524/tcp open  ingreslock  
  72. 2049/tcp open  nfs  
  73. 2121/tcp open  ccproxy-ftp  
  74. 3306/tcp open  mysql  
  75. 5432/tcp open  postgresql  
  76. 5900/tcp open  vnc  
  77. 6000/tcp open  X11  
  78. 6667/tcp open  irc  
  79. 8009/tcp open  ajp13  
  80. 8180/tcp open  unknown  
  81. MAC Address: 00:0C:29:3E:84:91 (VMware)  
  82. Device type: general purpose  
  83. Running: Linux 2.6.X  
  84. OS CPE: cpe:/o:linux:linux_kernel:2.6  
  85. OS details: Linux 2.6.9 - 2.6.33   #操作系统详细信息  
  86. Network Distance: 1 hop  
  87. Nmap scan report for kali (192.168.1.9)  
  88. Host is up (0.00093s latency).  
  89. All 1000 scanned ports on kali (192.168.1.9) are closed  
  90. MAC Address: 00:0C:29:6C:C4:92 (VMware)  
  91. Nmap scan report for daxueba (192.168.1.4)  
  92. Host is up (0.000010s latency). 
  93. All 1000 scanned ports on daxueba (192.168.1.4) are closed  
  94. OS detection performed. Please report any incorrect results at  
  95. https://nmap.org/submit/ .  
  96. Nmap done: 256 IP addresses (6 hosts up) scanned in 7.64 seconds 

从以上输出信息可以看到,如果探测到目标主机上存在开放的端口,则推测出了其操作系统类型;如果目标主机上不存在开放的端口,则无法推测其操作系统类型。

(3)推测操作系统

当Nmap无法确定所探测的操作系统时,会尽可能地提供最相近的匹配。为了对目标系统推测得更准确,可以使用--osscan-guess或--fuzzy选项来实现。语法格式如下: 

  1. nmap -O --osscan-guess;--fuzzy [host] 

其中,--osscan-guess;--fuzzy选项用于推测操作系统检测结果,将以百分比的方式给出对操作系统信息的猜测。当Nmap无法确定所检测的操作系统时,会尽可能地提供最相近的匹配。Nmap默认进行这种匹配,使用任意一个选项将使得Nmap的推测更加有效。

推测目标主机www.163.com的操作系统类型。执行命令如下: 

  1. root@daxueba:~# nmap -O --osscan-guess www.163.com  
  2. Starting Nmap 7.70 ( https://nmap.org ) at 2021-08-02 16:08 CST  
  3. Nmap scan report for www.163.com (124.163.204.105)  
  4. Host is up (0.015s latency).  
  5. Other addresses for www.163.com (not scanned): 2408:8726:5100::4f  
  6. rDNS record for 124.163.204.105: 105.204.163.124.in-addr.arpa  
  7. Not shown: 955 closed ports  
  8. PORT    STATE  SERVICE  
  9. 80/tcp    open     http  
  10. 81/tcp    open     hosts2-ns  
  11. 82/tcp    open     xfer  
  12. 84/tcp    open     ctf  
  13. 88/tcp    open     kerberos-sec  
  14. 135/tcp   filtered msrpc  
  15. 139/tcp   filtered netbios-ssn  
  16. 443/tcp   open     https  
  17. 445/tcp   filtered microsoft-ds  
  18. ……省略部分内容  
  19. Device type: general purpose|firewall|media device|phone|broadband router security-misc  
  20. Running (JUST GUESSING): Linux 3.X|2.6.X|4.X (92%), IPCop 2.X (91%), Tiandy  
  21. embedded (91%), Google Android 5.X (90%), D-Link embedded (90%), Draytek  
  22. embedded (89%)  
  23. OS CPE: cpe:/o:linux:linux_kernel:3.2 cpe:/o:linux:linux_kernel:2.6.32  
  24. cpe:/o:ipcop:ipcop:2.0 cpe:/o:linux:linux_kernel:4.9 cpe:/o:google:  
  25. android:5.0.1 cpe:/h:dlink:dsl-2890al cpe:/o:linux:linux_kernel:2.6.25.20  
  26. cpe:/h:draytek:vigor_2960  
  27. Aggressive OS guesses: Linux 3.2 (92%), IPCop 2.0 (Linux 2.6.32) (91%), Linux  
  28. 2.6.32 (91%), Linux 4.9 (91%), Tiandy NVR (91%), Android 5.0.1 (90%), Linux  
  29. 3.18 (90%), D-Link DSL-2890AL ADSL router (90%), OpenWrt Kamikaze 8.09 (Linux  
  30. 2.6.25.20) (90%), Linux 2.6.18 - 2.6.22 (89%)  
  31. No exact OS matches for host (test conditions non-ideal).  
  32. Network Distance: 9 hops  
  33. OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .  
  34. Nmap done: 1 IP address (1 host up) scanned in 5.65 seconds 

以上输出信息显示了目标主机可能使用的操作系统列表。这里列举可能的系统类型,并以百分比形式显示每种类型的概率。从输出结果显示的比例中可以看到,目标主机的操作系统类型可能是Linux 3.2。

2. Ping系统识别

Ping是Windows、UNIX和Linux系统下的一个命令,使用该命令可以检查网络是否连通。如果目标主机正确响应的话,在响应包中将包括有对应的TTL值。TTL是Time To Live(生成时间)的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。其中,不同操作系统类型响应的TTL值不同。所以我们可以使用Ping命令进行系统识别。下面介绍使用Ping命令实施系统识别的方法。

为了能够快速地确定一个目标系统的类型,下面给出了一个操作系统初始TTL值列表,如表1所示。

表1  各个操作系统的初始TTL值 

使用Ping测试目标主机(192.168.33.152)的操作系统类型(该目标主机的操作系统类型为Linux)。执行命令如下: 

  1. root@daxueba:~# ping 192.168.33.152  
  2. PING 192.168.33.152 (192.168.33.152) 56(84) bytes of data.  
  3. 64 bytes from 192.168.33.152: icmp_seq=1 ttl=64 time=0.242 ms  
  4. 64 bytes from 192.168.33.152: icmp_seq=2 ttl=64 time=0.431 ms  
  5. 64 bytes from 192.168.33.152: icmp_seq=3 ttl=64 time=0.431 ms  
  6. 64 bytes from 192.168.33.152: icmp_seq=4 ttl=64 time=0.440 ms 

从输出的信息可以看到,响应包中的TTL值为64。根据前面列出的表格6.1,可以看到这是Linux操作系统。

使用Ping测试目标主机(192.168.33.229)的操作系统类型(该目标主机的操作系统类型为Windows 7)。执行命令如下: 

  1. root@daxueba:~# ping 192.168.33.229  
  2. PING 192.168.33.229 (192.168.33.229) 56(84) bytes of data.  
  3. 64 bytes from 192.168.33.229: icmp_seq=1 ttl=128 time=1.57 ms  
  4. 64 bytes from 192.168.33.229: icmp_seq=2 ttl=128 time=1.01 ms  
  5. 64 bytes from 192.168.33.229: icmp_seq=3 ttl=128 time=0.276 ms  
  6. 64 bytes from 192.168.33.229: icmp_seq=4 ttl=128 time=1.52 ms 

从输出的信息可以看到,该响应包中的TTL值为128。由此可以说明,这是一个Windows操作系统。

3. xProbe2系统识别

xProbe2是一款远程主机操作系统探查工具,该工具通过ICMP协议来获得指纹。xProbe2通过模糊矩阵统计分析主动探测数据报文对应的ICMP数据报特征,进而探测得到远端操作系统的类型。下面介绍使用xProbe2工具实施操作系统指纹识别的方法。使用xProbe2工具实施系统识别的语法格式如下: 

  1. xProbe2 [host] 

使用xProbe2工具对目标主机www.163.com实施系统识别。执行命令如下: 

  1. root@Kali:~# xprobe2 www.163.com  
  2. Xprobe2 v.0.3 Copyright (c) 2002-2005 fyodor@o0o.nu, ofir@sys-security.com,meder@o0o.nu  
  3. [+] Target is www.163.com  #目标地址  
  4. [+] Loading modules.   #正在加载模块  
  5. [+] Following modules are loaded: #被加载的模块  
  6. [x] [1] ping:icmp_ping  -  ICMP echo discovery module  
  7. [x] [2] ping:tcp_ping  -  TCP-based ping discovery module  
  8. [x] [3] ping:udp_ping  -  UDP-based ping discovery module 
  9. [x] [4] infogather:ttl_calc  -  TCP and UDP based TTL distance calculation  
  10. [x] [5] infogather:portscan  -  TCP and UDP PortScanner  
  11. [x] [6] fingerprint:icmp_echo  -  ICMP Echo request fingerprinting module  
  12. [x] [7] fingerprint:icmp_tstamp  -  ICMP Timestamp request fingerprinting module  
  13. [x] [8] fingerprint:icmp_amask  -  ICMP Address mask request fingerprinting module  
  14. [x] [9] fingerprint:icmp_port_unreach  -  ICMP port unreachable fingerprinting module  
  15. [x] [10] fingerprint:tcp_hshake  -  TCP Handshake fingerprinting module  
  16. [x] [11] fingerprint:tcp_rst  -  TCP RST fingerprinting module  
  17. [x] [12] fingerprint:smb  -  SMB fingerprinting module  
  18. [x] [13] fingerprint:snmp  -  SNMPv2c fingerprinting module  
  19. [+] 13 modules registered  
  20. [+] Initializing scan engine  #初始化扫描引擎  
  21. [+] Running scan engine  #正在实施扫描  
  22. [-] ping:tcp_ping module: no closed/open TCP ports known on 124.163.204.105.  
  23. Module test failed  
  24. [-] ping:udp_ping module: no closed/open UDP ports known on 124.163.204.105.  
  25. Module test failed  
  26. [-] No distance calculation. 124.163.204.105 appears to be dead or no ports known  
  27. [+] Host: 124.163.204.105 is up (Guess probability: 50%)#主机是活动的  
  28. [+] Target: 124.163.204.105 is alive. Round-Trip Time: 0.01503 sec  
  29. [+] Selected safe Round-Trip Time value is: 0.03007 sec  
  30. [-] fingerprint:tcp_hshake Module execution aborted (no open TCP ports known)  
  31. [-] fingerprint:smb need either TCP port 139 or 445 to run  
  32. [-] fingerprint:snmp: need UDP port 161 open  
  33. [+] Primary guess:  #主要猜测  
  34. [+] Host 124.163.204.105 Running OS: "Linux Kernel 2.4.19" (Guess  
  35. probability: 100%)  
  36. [+] Other guesses:    #其他猜测  
  37. [+] Host 124.163.204.105 Running OS: "Linux Kernel 2.4.20" (Guess   
  38. probability: 100%)  
  39. [+] Host 124.163.204.105 Running OS: "Linux Kernel 2.4.21" (Guess  
  40. probability: 100%) 
  41. [+] Host 124.163.204.105 Running OS: "Linux Kernel 2.4.22" (Guess  
  42. probability: 100%)  
  43. [+] Host 124.163.204.105 Running OS: "Linux Kernel 2.4.23" (Guess  
  44. probability: 100%)  
  45. [+] Host 124.163.204.105 Running OS: "Linux Kernel 2.4.24" (Guess   
  46. probability: 100%)  
  47. [+] Host 124.163.204.105 Running OS: "Linux Kernel 2.4.25" (Guess  
  48. probability: 100%)  
  49. [+] Host 124.163.204.105 Running OS: "Linux Kernel 2.4.26" (Guess  
  50. probability: 100%) 
  51. [+] Host 124.163.204.105 Running OS: "Linux Kernel 2.4.27" (Guess  
  52. probability: 100%)  
  53. [+] Host 124.163.204.105 Running OS: "Linux Kernel 2.4.28" (Guess   
  54. probability: 100%)  
  55. [+] Cleaning up scan engine  
  56. [+] Modules deinitialized  
  57. [+] Execution completed. 

从输出的信息中可以看到,通过xProbe2工具成功解析出了目标主机的IP地址,并且识别出了其操作系统类型。其中,目标主机的IP地址为124.163.204.105,操作系统类型为Linux,内核版本在2.4.19~2.4.28之间。

xProbe2工具在NAT模式下存在Bug,扫描后会出现HP的位置或者直接报错,具体如下: 

  1. root@Kali:~# xprobe2 www.163.com  
  2. Xprobe2 v.0.3 Copyright (c) 2002-2005 fyodor@o0o.nu, ofir@sys-security.com,meder@o0o.nu  
  3. [+] Target is www.163.com  
  4. [+] Loading modules.  
  5. [+] Following modules are loaded:  
  6. [x] [1] ping:icmp_ping  -  ICMP echo discovery module  
  7. [x] [2] ping:tcp_ping  -  TCP-based ping discovery module  
  8. [x] [3] ping:udp_ping  -  UDP-based ping discovery module  
  9. [x] [4] infogather:ttl_calc  -  TCP and UDP based TTL distance calculation  
  10. [x] [5] infogather:portscan  -  TCP and UDP PortScanner  
  11. [x] [6] fingerprint:icmp_echo  -  ICMP Echo request fingerprinting module  
  12. [x] [7] fingerprint:icmp_tstamp  -  ICMP Timestamp request fingerprinting module  
  13. [x] [8] fingerprint:icmp_amask  -  ICMP Address mask request fingerprinting module  
  14. [x] [9] fingerprint:icmp_port_unreach  -  ICMP port unreachable  
  15. fingerprinting module  
  16. [x] [10] fingerprint:tcp_hshake  -  TCP Handshake fingerprinting module  
  17. [x] [11] fingerprint:tcp_rst  -  TCP RST fingerprinting module  
  18. [x] [12] fingerprint:smb  -  SMB fingerprinting module  
  19. [x] [13] fingerprint:snmp  -  SNMPv2c fingerprinting module  
  20. [+] 13 modules registered  
  21. [+] Initializing scan engine  
  22. [+] Running scan engine  
  23. [-] ping:tcp_ping module: no closed/open TCP ports known on 124.163.204.105.  
  24. Module test failed  
  25. [-] ping:udp_ping module: no closed/open UDP ports known on 124.163.204.105.  
  26. Module test failed  
  27. [-] No distance calculation. 124.163.204.105 appears to be dead or no ports known  
  28. [+] Host: 124.163.204.105 is up (Guess probability: 50%)  
  29. [+] Target: 124.163.204.105 is alive. Round-Trip Time: 0.01528 sec  
  30. [+] Selected safe Round-Trip Time value is: 0.03056 sec 
  31. [-] fingerprint:tcp_hshake Module execution aborted (no open TCP ports known)  
  32. [-] fingerprint:smb need either TCP port 139 or 445 to run  
  33. [-] fingerprint:snmp: need UDP port 161 open  
  34. [+] Primary guess:  
  35. [+] Host 124.163.204.105 Running OS: "HP JetDirect ROM G.07.02 EEPROM G.07.17" (Guess probability: 83%)  
  36. [+] Other guesses:  
  37. [+] Host 124.163.204.105 Running OS: "HP JetDirect ROM G.07.02 EEPROM G.07.20" (Guess probability: 83%)  
  38. [+] Host 124.163.204.105 Running OS: "HP JetDirect ROM G.07.02 EEPROM G.08.04" (Guess probability: 83%)  
  39. [+] Host 124.163.204.105 Running OS: "HP JetDirect ROM G.07.19 EEPROM G.07.20" (Guess probability: 83%)  
  40. [+] Host 124.163.204.105 Running OS: "HP JetDirect ROM G.07.19 EEPROM G.08.03" (Guess probability: 83%) 
  41. [+] Host 124.163.204.105 Running OS: "HP JetDirect ROM G.07.19 EEPROM G.08.04" (Guess probability: 83%)  
  42. [+] Host 124.163.204.105 Running OS: "HP JetDirect ROM G.08.08 EEPROM G.08.04" (Guess probability: 83%)  
  43. [+] Host 124.163.204.105 Running OS: "HP JetDirect ROM G.08.21 EEPROM G.08.21" (Guess probability: 83%)  
  44. [+] Host 124.163.204.105 Running OS: "HP JetDirect ROM H.07.15 EEPROM H.08.20" (Guess probability: 83%)  
  45. [+] Host 124.163.204.105 Running OS: "HP JetDirect ROM G.06.00 EEPROM G.06.00" (Guess probability: 83%)  
  46. [+] Cleaning up scan engine  
  47. [+] Modules deinitialized  
  48. [+] Execution completed. 

从以上输出的信息中可以看到,执行结果出错了(HP JetDirect ROM G.07.02 EEPROM G.07.17)。

在Kali Linux的新版本中,xProbe2工具运行后,测试的结果中操作系统类型显示为乱码。具体如下: 

  1. [+] Primary guess: 
  2. [+] Host 192.168.1.8 Running OS: ????U (Guess probability: 100%)  
  3. [+] Other guesses:  
  4. [+] Host 192.168.1.8 Running OS: ?????U (Guess probability: 100%)  
  5. [+] Host 192.168.1.8 Running OS: ?????U (Guess probability: 100%)  
  6. [+] Host 192.168.1.8 Running OS: ?????U (Guess probability: 100%)  
  7. [+] Host 192.168.1.8 Running OS: ????U (Guess probability: 100%)  
  8. [+] Host 192.168.1.8 Running OS: ?????U (Guess probability: 100%)  
  9. [+] Host 192.168.1.8 Running OS: ????U (Guess probability: 100%)  
  10. [+] Host 192.168.1.8 Running OS: ?????U (Guess probability: 100%)  
  11. [+] Host 192.168.1.8 Running OS: ?????U (Guess probability: 100%)  
  12. [+] Host 192.168.1.8 Running OS: ?????U (Guess probability: 100%)  
  13. [+] Cleaning up scan engine  
  14. [+] Modules deinitialized  
  15. [+] Execution completed. 

4. p0f系统识别

p0f是一款用于识别远程操作系统的工具,该工具与前面介绍的其他工具不同,它是一个完全被动地识别操作系统指纹信息的工具,不会直接作用于目标系统。当启动该工具后,即可监听网络中的所有数据包。通过分析监听到的数据包,即可找出与系统相关的信息。下面介绍使用p0f工具来实施操作系统指纹识别的方法。

使用p0f工具对目标主机实施系统识别。执行命令如下:

1)启动p0f工具。执行命令如下: 

  1. root@daxueba:~# p0f  
  2. --- p0f 3.09b by Michal Zalewski <lcamtuf@coredump.cx> ---  
  3. [+] Closed 1 file descriptor.  
  4. [+] Loaded 322 signatures from '/etc/p0f/p0f.fp'.  
  5. [+] Intercepting traffic on default interface 'eth0'.  
  6. [+] Default packet filtering configured [+VLAN].  
  7. [+] Entered main event loop. 

从以上输出信息中可以看到,p0f工具仅显示了几行信息,无法捕获到其他信息。但是,p0f会一直处于监听状态。

2)此时,当有其他主机在网络中产生数据流量的话,将会被p0f工具监听到。例如,在另一台主机上通过浏览器访问一个站点,然后返回到p0f所在的终端,将看到如下信息: 

  1. .-[ 192.168.1.4/38934 -> 65.200.22.161/80 (http request) ]-  #HTTP请求  
  2. client   = 192.168.1.4/38934  #客户端  
  3. app      = Safari 5.1-6  #应用  
  4. lang     = English   #语言  
  5. params   = dishonest   #程序  
  6. raw_sig  = 1:Host,User-Agent,Accept=[*/*],Accept-Language=[en-US,en;q=0.5],Accept-Encoding=[gzip, deflate],?Cache-Control,Pragma=[no-cache],Connection=[keep-alive]:Accept-Charset,Keep-Alive:Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Firefox/60.0   #数据内容 
  7. ----  
  8. .-[ 192.168.1.4/38934 -> 65.200.22.161/80 (uptime) ]-  
  9. server   = 65.200.22.161/80  #服务器  
  10. uptime   = 30 days 0 hrs 22 min (modulo 45 days)  #时间  
  11. raw_freq = 1048.46 Hz   #频率  
  12. ----  
  13. .-[ 192.168.1.4/38934 -> 65.200.22.161/80 (http response) ]-  
  14. server   = 65.200.22.161/80  
  15. app      = ???  
  16. lang     = none  
  17. params   = none  
  18. raw_sig  = 1:Content-Type,?Content-Length,?Last-Modified,?ETag,Accept-Ranges=[bytes],Server,X-Amz-Cf-Id=[X7nIiIIBBeQOTeLSHRH3U4SM6xDHfgwK1EaKf8bdyemtuUoR8JK9Xg==],?Cache-Control,Date,Connection=[keep-alive]:Keep-Alive:AmazonS3 
  19. ----  
  20. .-[ 192.168.1.4/32854 -> 52.27.184.151/443 (syn) ]-  
  21. client   = 192.168.1.4/32854  
  22. os       = Linux 3.11 and newer  
  23. dist     = 0  
  24. params   = none  
  25. raw_sig  = 4:64+0:0:1460:mss*20,7:mss,sok,ts,nop,ws:df,id+:0  
  26. ----  
  27. .-[ 192.168.1.4/32854 -> 52.27.184.151/443 (host change) ]- 
  28. client   = 192.168.1.4/32854  
  29. reason   = tstamp port  
  30. raw_hits = 0,1,1,1  
  31. ----  
  32. .-[ 192.168.1.4/32854 -> 52.27.184.151/443 (mtu) ]-  
  33. client   = 192.168.1.4/32854  
  34. link     = Ethernet or modem  
  35. raw_mtu  = 1500  
  36. ----  
  37. .-[ 192.168.1.4/32856 -> 52.27.184.151/443 (syn) ]-  
  38. client   = 192.168.1.4/32856  
  39. os       = Linux 3.11 and newer  
  40. dist     = 0  
  41. params   = none  
  42. raw_sig  = 4:64+0:0:1460:mss*20,7:mss,sok,ts,nop,ws:df,id+:0  
  43. ---- 

以上输出的信息,就是执行监听到客户端访问的数据信息。从以上输出的信息可以看到,探测到客户端的操作系统类型为Linux 3.11或更新的内核版本。 

 

责任编辑:庞桂玉 来源: 计算机与网络安全
相关推荐

2013-11-08 14:39:32

2011-05-03 17:45:08

扫描仪

2014-03-26 09:28:43

网络·安全技术周刊

2011-03-11 16:32:33

2009-09-02 15:18:19

2014-12-08 09:01:53

2012-05-30 11:29:48

明基扫描仪

2014-03-12 14:17:03

2010-10-20 14:52:10

2010-09-17 09:40:16

2012-06-07 14:46:45

方正扫描仪

2014-11-12 17:45:14

网络身份识别

2012-11-07 14:00:05

2009-01-04 17:08:41

2011-05-05 16:26:32

复印机光学系统

2015-12-16 11:15:01

2011-10-08 17:22:52

扫描仪常见问题

2009-01-15 09:52:00

2009-11-18 09:59:41

2018-09-10 11:07:19

点赞
收藏

51CTO技术栈公众号