zoukankan      html  css  js  c++  java
  • 操作系统识别-python、nmap

    识别操作系统主要是用于操作系统漏洞的利用。不管是windows还是linux系统,在安装完毕后都会默认启动一些服务,开启一些端口。

    识别目标主机的系统最简单的方法就是发送ping包,windows起始ttl值默认为128,linux和unix系统默认为64,还有一些特殊的unix系统的ttl值为255.下图为ping局域网内的两台主机,一台为win xp(192.168.0.104),一台为metasploitable2靶机(192.168.0.108):

    可以明显地看到,windows发送的pin回包ttl值是128,而linux发送的ttl值是64.

     1 #!/usr/bin/python
     2 from scapy.all import *
     3 
     4 if len(sys.argv) != 2:
     5     print "this script needs one arg!
    Example:./ttl_os.py 192.168.0.0 or ./ttl_os.py baidu.com"
     6     sys.exit()
     7 
     8 ip = sys.argv[1]
     9 r = sr1(IP(dst = ip) / ICMP(), timeout = 1, verbose = 0)
    10 
    11 if r == None:
    12     print "no response!"
    13 elif r[IP].ttl <= 64:
    14     print "Linux or Unix!"
    15 elif r[IP].ttl > 64 and r[IP].ttl <= 128:
    16     print "Windows!"
    17 else:
    18     print "Unix!"
    python代码实现

    ttl值可以通过软件进行更改,所以仅仅通过ttl值进行的判断并不总是准确的。而强大的nmap又提供了强大的参数-O,可以根据多种特征进行系统识别,执行nmap 192.168.0.108 -O命令,得到结果:

    当然了,即使使用nmap这个强大的工具得到的结果也有可能不完全准确,小编使用nmap扫描win xp 家庭版得出的结果是win xp 专业版或者win2003.

  • 相关阅读:
    数据类型
    泛型
    如何同步ORACLE和sqlserver的数据
    JBOss 端口没占用!
    Oracle数据库启动流程
    无法通过 128 (在表空间 TEMP 中) 扩展 temp 段
    数组的选择排序和冒泡排序
    Java条形码生成方案及二维码要点
    更改表字段的长度
    jquery 产品查看放大镜组件
  • 原文地址:https://www.cnblogs.com/angiejc/p/9388858.html
Copyright © 2011-2022 走看看