利用Browser协议可获取机器IP、MAC、机器名、操作系统、域,如图
浏览
工作组和域
Browser发包时间
去年无意发现browser协议中含有机器名、系统版本,发包时间随机,有些2分钟、5分钟、甚至12分钟等才发
几分钟甚至于10几分钟才有一条,其它数据包每分钟几百条,可能很多人长时间抓包,也未能发现关键信息
不单只是很长时间才发,而且也不一定每个包里面都含有机器名,或许这就是一直以来把Browser忽略的真相
如图所示,出现13机器ID为6247数据包,出现15机器已达到2万多,出现10机器已7万多个包(这鬼才能发现)
所以为了能够获取到内网机器信息,我们需要不停的监视Browser包,从中提取有效机器名与系统版本
无视防火墙
虽然属于SMB协议,但把文件和共享前的勾去掉依旧可获取,该报文是由目标机器向外发送,所以445关闭也不影响
在目标开启防火墙的情况下也可获取,这与cping通过445端口或ICMP探测主机方式不一样。
另外发现NBNS也含有机器名和域名,但无系统版本,如下图
操作系统、域机器判断
除了XP和WIN8.1特别一点以外,其它系统
0x00000002 Request XP名称第3位开始 Win8.1也是 无法判断系统版本
0x0000000c Domain 域内机器
其它 of o1 local
by K8哥哥 2018.11.26
利用代码
暂时没时间用其它语言编写,先用python的scapy框架来实现,如果要编译成可执行文件可能会很大,可能还要安装相关依赖
# -*- coding: UTF-8 -*-
#author: k8gege
#https://github.com/k8gege/K8tools/blob/master/K8getPC.py
#https://www.cnblogs.com/k8gege
import sys
import queue
from scapy.all import *
from pprint import pprint def search(data, key):
#print "data: " + data
i=data.find(key)
if i > -1:
masterType = "617574686F723A206B3867656765"
masterType = data[i+len(key):i+len(key)+2]
if masterType=="02":
return data[i+len(key)+4:i+len(key)+34],masterType,data[i+len(key)+44:i+len(key)+48]
return data[i+len(key)+12:i+len(key)+42],masterType,data[i+len(key)+44:i+len(key)+48]
return "" def getver(data):
if data=="0500":
return "Win2000"
elif data=="0501":
return "WinXP"
elif data=="0502":
return "Win2003"
elif data=="0600":
return "Vista"
elif data=="0601":
return "Win7_2008"
elif data=="0602":
return "Win8_2012"
elif data=="0603":
return "Win8.1"
elif data=="0a00":
return "Win10_2016"
return data def packet_callbacke(packet):
#print(packet.show())
try:
data=packet.load.encode('hex')
osname,masterType,osver = search(data, "5c4d41494c534c4f545c42524f57534500")
if (osname!=""):
if masterType=="0c":
print packet.getlayer(IP).src+"\t"+packet.src+"\t"+osname.decode('hex')+"\t[Domain]"
else:
print packet.getlayer(IP).src+"\t"+packet.src+"\t"+osname.decode('hex')+"\t["+getver(osver)+"]"
except:
pass print "IP\t\tMAC\t\t\tOSname\t\tOSver" try:
sniff(iface = sys.argv[1],filter="", prn=packet_callbacke)
except:
pass
下载:
https://github.com/k8gege/K8tools/blob/master/K8getPC.py
https://github.com/k8gege/k8getPC
相关文章:
Cscan 获取内网主机开放Web、Banner、标题信息
https://www.cnblogs.com/k8gege/p/10519321.html
Cping 获取内网存活主机-MAC地址-主机名--操作系统--SMB漏洞