[原创]利用Browser协议探测内网主机操作系统版本(无需端口无视防火墙)
利用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漏洞
https://www.cnblogs.com/k8gege/p/10367844.html
[原创]利用Browser协议探测内网主机操作系统版本(无需端口无视防火墙)的更多相关文章
- 后渗透阶段之基于MSF的内网主机探测
当我们通过代理可以进入某内网,需要对内网主机的服务进行探测.我们就可以使用MSF里面的内网主机探测模块了. 在这之前,先修改 /etc/proxychains.conf ,加入我们的代理. 然后 pr ...
- ssh反向连接内网主机
holer听别人说也挺好用不过本人没试过:https://github.com/Wisdom-Projects/holer 利用autossh建立稳定隧道,前提双方互加公钥信任. # yum inst ...
- 利用SSH端口转发实现远程访问内网主机远程桌面(一) 建立SSH转发
近期家里更换了移动的宽带,拨号后拿到的是10开头的内网IP,就不能像之前一样通过路由器的端口映射实现从外网访问主机的远程桌面.这种情况下可以利用一台具有公网IP的服务器充当中转,利用SSH的隧道转发功 ...
- 用SSH访问内网主机的方法
如今的互联网公司通常不会直接自己直接配主机搭建服务器了,而是采用了类似阿里云的这种云主机,当应用变得越来越大了之后,就不可避免地增加主机,而出于成本考虑,不可能给每一台主机都分配公网带宽,所以实际的情 ...
- [W3bSafe]Metasploit溢出渗透内网主机辅助脚本
文章来源i春秋 脚本用Shell编写 有的内网特别脆弱 本脚本主要就是 测试的话方便一点 输入内网网关就能调用Metasploit全部模块测试整个内网 运行截图<ignore_js_op ...
- NAT123之类的软件是如何实现访问域名然后穿透到内网主机的80端口?——有公网ip就是动态域名解析,没有就是穿透+代理转发
实际上两种都用到了:1,服务提供商(123NAT,花生壳)做Proxy转发 2,两个私网地址直接连接:STUN 和TURN 使用动态域名解析还是端口映射 什么情况下使用动态域名解析?什么情况下使用 ...
- Apache 2.4.7在CentOS6.4中安装配置反向代理解决单外网IP对应多个内网主机的方法实践
欢迎转载,转载时请保留全文及出处. Apache 2.4.7在CentOS6.4中安装配置反向代理解决单外网IP对应多个内网主机的方法实践 Apache安装 下载源程序(http://httpd.ap ...
- Nginx代理实现内网主机访问公网服务
通过Nginx代理实现内网主机访问公网和接口服务 1.需求: m2.test.com为公司测试环境的微信测试域名,因为要调用微信服务接口需要访问外网,现通过Nginx代理现实此功能. 2.环境如下: ...
- AUTOSSH设置ssh隧道,实现反向代理访问内网主机
内网主机上配置: autossh -M -CNR :localhost: ubuntu@123.207.121.121 可以实现将访问主机123.207.121.121的1234端口的数据,通过隧道转 ...
随机推荐
- JFinal Druid 配置
/** * 数据库密码加密,执行如下命令,生成加密密码 * java -cp druid-1.1.14.jar com.alibaba.druid.filter.config.ConfigTools ...
- flex"
很久以前,有面试官问过我如何实现"
- ios 开发视图界面动态渲染
#import "MyView.h" IB_DESIGNABLE @interface MyView () @property (nonatomic, strong) IBInsp ...
- C++11 带来的新特性 (2)—— 统一初始化(Uniform Initialization)
1 统一初始化(Uniform Initialization) 在C++ 11之前,所有对象的初始化方式是不同的,经常让写代码的我们感到困惑.C++ 11努力创造一个统一的初始化方式. 其语法是使用{ ...
- web.xml中Servlet3.1版本的头信息格式
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http:// ...
- CentOS7下使用yum安装MariaDB
从CentOS 7开始,使用 MariaDB 替代默认的 MySQL.MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MyS ...
- Objective-C代码简写
NSNumber 所有的[NSNumber numberWith…:]方法都可以简写了: [NSNumber numberWithChar:‘X’] 简写为 @‘X’; [NSNumber num ...
- centos7基于samba服务配置实例
需求: 账号建立:产研部门所有人员,产品.开发.测试.运维: 目录建立:各二级部门分别建立以部门名称为文件夹的目录: 初步权限管理:各部门成员对本部门目录有读写权限,对其他部门目录有读权限: 建立共享 ...
- 我的 FPGA 学习历程(09)—— 时序逻辑入门
讲到这篇时,组合逻辑就告一段落了,下面是一些总结: 描述组合逻辑时,always 语句中的敏感信号列表中需要列出全部的可能影响输出的变量 描述组合逻辑时,always 语句中的赋值总是使用阻塞赋值符号 ...
- 初学angular项目中遇到的一些问题
1.当angular渲染完成后操作DOM树方法 //当数据渲染完毕 ngApp.directive('repeatFinish', function () { return { ...
