十四、主动信息收集-操作系统识别

  • 1.TTL起始值
    通过TTL值可以识别出操作系统
  • Windows:128(65-128)
  • Linux/Unix:64(1-64)
  • 一些Unix: 255
  • 1.1 脚本实现
#!/usr/bin/python
from scapy.all import *
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 1.1.1.1"
    print "Example will preform ttl analysis to attempt to determine whether th 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 reponse was returned"
elif int(ans[IP].ttl) <= 64:
    print "Host is Unix/Linux"
else:
    print "Host is windows"

执行结果显示:


系统识别脚本结果显示
  • 2.nmap识别
nmap -o 192.168.50.183  //基于特征识别操作系统
nmap识别操作系统
  • 3.xprobe2识别

专门用于探测目标系统的操作系统版本,但是结果并不是十分准确。

xprobe2 192.168.50.183
  • 4.被动操作系统识别
  • IDS
  • 抓包分析
  • 被动扫描
  • 5.p0f
    直接运行p0f,然后产生数据包后,会通过网口接收和发送的数据进行分析
十四、主动信息收集-操作系统识别_第1张图片
p0f识别系统
  • 6.SNMP分析
  • community strings (默认为public[可读]、private[可写])
  • 信息查询或重新配置
  • 6.1环境
    windows xp开启snmp服务,运行“appwiz.cpl” ,点击添加/删除window组件,选择“管理和监视工具”,WMI SNMP提供程序/简单网络管理协议打钩。
    在安装中需要导入iso镜像文件
十四、主动信息收集-操作系统识别_第2张图片
添加snmp服务
  • 6.2 snmpwalk
snmpwalk 192.168.50.185 -c public -v 2c  //-c表示community -v表示v2c版本

snmpwalk -c public -v 2c 1.1.1.1 1.3.6.1.4.1.77.1.2.25  //对指定的OID进行查询
十四、主动信息收集-操作系统识别_第3张图片
snmpwalk查询所有snmp信息

指定OID查询信息
  • 6.3 snmp-check

snmpcheck显示界面相比snmpwalk更加友好,而不是只显示OID

snmp-check -c public -v 2c 192.168.50.185
snmp-check 192168.50.185 -w   //检测是否具有可写权限

十四、主动信息收集-操作系统识别_第4张图片
snmp-check
  • 6.3 onesixtyone

onesixtyone的信息不是很准确,并且信息也比较有限

onesixtyone 1.1.1.1 public
onesixtyone -c dict.txt -i hosts -o my.log -w 100
onesixtyone

你可能感兴趣的:(十四、主动信息收集-操作系统识别)