zoukankan      html  css  js  c++  java
  • Kali学习笔记13:操作系统识别

    为什么要扫描操作系统呢?

    其实和上一篇博客:《服务扫描》类似,都是为了能够发现漏洞

    发现什么漏洞?

    不同的操作系统、相同操作系统不同版本,都存在着一些可以利用的漏洞

    而且,不同的系统会默认开放不同的一些端口和服务

    如果能够知道操作系统和版本号,那么就可以利用这些默认选项做一些“事情”

    OS的识别技术多种多样,有简单的也有复杂的,最简单的就是用TTL值去识别。

    不同类型的OS默认的起始TTL值是不同的。

    比如,windows的默认是128,然后每经过一个路由,TTL值减一。

    Linux/Unix的值是64,但有些特殊的Unix会是255。

    1.利用Python来识别:

    #!/usr/bin/python
    from scapy.all import *
    import logging
    
    logging.getLogger("scapy.runtime").setLevel(logging.ERROR)
    import sys
    
    if len(sys.argv) != 2:
        print("Usage --/ttl_os.py [IP Address]")
        print("Example --/ttl_os.py 192.168.0.1")
        print("Example will preform ttl analysis to attempt to determine whether the system is windows or linux/unix")
        sys.exit()
    
    ip = sys.argv[1]
    
    ans = sr1(IP(dst=str(ip)) / ICMP(), timeout=1, verbose=0)
    if ans == None:
        print("NO response was returned")
    elif int(ans[IP].ttl) <= 64:
        print("Host is Linux/Unix")
    else:
        print("Host is Windows")

    使用场景:

    我主机IP:10.14.4.252

    Kali机器:192.168.22.130

    Metasploitable机器:192.168.22.129

    使用脚本:

    如果脚本是从windows移过来的:

    vi xxx.py

    :set fileformat=unix

    :wq

    chmod u+x xxx.py

    ./xxx.py

    我还多扫描了一个本地的机器,得到的结果都很准确

    不过呢,这只是利用TTL简单判断出操作系统

    利用Nmap,不仅可以实现这里的功能,甚至还可以得到版本:

    -O:参数,识别操作系统

     

    除了强大的工具,还有一些其他的:

    xprobe2:直接输入IP地址即可

    这个扫描工具相对于Nmap,差距很大,结果不精确

    上边的工具都是主动识别操作系统的:主动向目标发送数据包,分析回包

    而下边这个工具是被动识别的:

    基于网络监听的工作原理:Windows和Linux发送出来的包是有很大区别的。

    被动式的扫描可以部署在网络进出口的地方,目的是让所经过的流量通过我的流量分析器。

    同样在Kali中也存在这般的工具p0f,他会监听凡是通过本地网卡的流量。

    开启:p0f

    这里是开启了监听,如果什么都不做,他也没有反应

    接下来我访问某网站,看看变化:

    随意挑出一条信息来看看:

    我49024端口向某IP发送了SYN包,这里就得到了我Kali机的版本:3.11或者更高

    总之,我推荐Nmap

  • 相关阅读:
    Pandas高级教程之:category数据类型
    Pandas高级教程之:处理缺失数据
    Pandas高级教程之:处理text数据
    密码学系列之:blowfish对称密钥分组算法
    架构之:数据流架构
    ES6中的新特性:Iterables和iterators
    密码学系列之:feistel cipher
    Pandas高级教程之:Dataframe的重排和旋转
    Electron实用技巧-electron-builder中用户协议(license)的使用及多语言支持
    Electron实用技巧-开机启动时隐藏主窗口,只显示系统托盘
  • 原文地址:https://www.cnblogs.com/xuyiqing/p/9656622.html
Copyright © 2011-2022 走看看