操作系统识别-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!\nExample:./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.

转载于:https://www.cnblogs.com/angiebare/p/9388858.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值