当前位置: 首页 > news >正文

.NET 一款获取内网共享机器的工具

01阅读须知

此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他方面

02基本介绍

Sharp4Shares 是一个枚举内网所有共享主机的工具,用于列出当前域内所有机器的网络共享信息,并检查这些共享是否对当前用户可读。该工具还可以将所有计算机名称转换为 IP 地址。

03使用方法

该工具提供了两个参数,第一个参数是shares,用于查询每台计算机的网络共享并检查其是否对当前用户可读。命令及运行后的结果如下图所示。

.\Sharp4Shares.exe shares
Shares for WIN-E9V6E2B5IFM:[--- Unreadable Shares ---]IPC[--- Listable Shares --- ]ADMIN$C$NETLOGONSYSVOL

另一个参数是列出计算机的 IP 地址,具体命令如下所示。

.\Sharp4Shares.exe ips
WIN-E9V6E2B5IFM: 192.168.193.208

04编码实现

以下是 Sharp4Shares 的核心功能代码解析,首先获取域下所有计算机的共享信息,这块主要通过GetAllShares函数实现,具体代码如下所示

public static void GetAllShares(List<string> computers, bool publicOnly = false)
{List<Thread> list = new List<Thread>();using (List<string>.Enumerator enumerator = computers.GetEnumerator()){while (enumerator.MoveNext()){string computer = enumerator.Current;Thread thread = new Thread(delegate(){Program.GetComputerShares(computer, publicOnly);});thread.Start();list.Add(thread);}}foreach (Thread thread2 in list){thread2.Join();}
}

参数publiconly表示仅查询共享(可选,默认为 false)。接着,枚举指定机器的网络共享,此处需要传入一个服务器名,具体如下所示。

public static Program.SHARE_INFO_1[] EnumNetShares(string Server)
{List<Program.SHARE_INFO_1> list = new List<Program.SHARE_INFO_1>();int num = 0;int num2 = 0;int num3 = 0;int offset = Marshal.SizeOf(typeof(Program.SHARE_INFO_1));IntPtr zero = IntPtr.Zero;int num4 = Program.NetShareEnum(new StringBuilder(Server), 1, ref zero, uint.MaxValue, ref num, ref num2, ref num3);
}

底层还是通过调用 Windows API NetShareEnum 枚举指定服务器的共享资源,代码如下所示。

[DllImport("Netapi32.dll", CharSet = CharSet.Unicode)]
private static extern int NetShareEnum(StringBuilder ServerName, int level, ref IntPtr bufPtr, uint prefmaxlen, ref int entriesread, ref int totalentries, ref int resume_handle);

SharpShares 是一个强大的工具,可以用于列出域内所有计算机的共享信息,并检查这些共享是否对当前用户可读。

05.NET安全星球

星球汇聚了各行业安全攻防技术大咖,并且每日分享.NET安全技术干货以及交流解答各类技术等问题,社区中发布很多高质量的.NET安全资源,可以说市面上很少见,都是干货。

图片

图片

图片

20+个专题栏目涵盖了点、线、面、体等知识面,助力师傅们快速成长!其中主题包括.NET Tricks、漏洞分析、内存马、代码审计、预编译、反序列化、webshell免杀、命令执行、C#工具库等等。

图片

我们倾力打造专刊、视频等配套学习资源,循序渐进的方式引导加深安全攻防技术提高以及岗位内推等等服务。

图片

 

http://www.lryc.cn/news/399529.html

相关文章:

  • 备考美国数学竞赛AMC8和AMC10:吃透1850道真题和知识点(持续)
  • 旅游景区度假村展示型网站如何建设渠道品牌
  • Python酷库之旅-第三方库Pandas(021)
  • jvm 06 补充 OOM 和具体工具使用
  • 使用机器学习 最近邻算法(Nearest Neighbors)进行点云分析 (scikit-learn Open3D numpy)
  • 安装jenkins最新版本初始化配置及使用JDK1.8构建项目详细讲解
  • 微软子公司Xandr遭隐私诉讼,或面临巨额罚款
  • 【VRP】基于常春藤算法IVY求解带时间窗的车辆路径问题TWVRP,最短距离附Matlab代码
  • 常用软件的docker compose安装
  • Excel第28享:如何新建一个Excel表格
  • 计算机网络知识汇总
  • 数据结构——考研笔记(二)线性表的定义和线性表之顺序表
  • quota使用
  • 解决fidder小黑怪倒出JMeter文件缺失域名、请求头
  • 智慧城市的神经网络:Transformer模型在智能城市构建中的应用
  • 产品经理-研发流程-敏捷开发-迭代-需求评审及产品规划(15)
  • Ansible 安装及使用说明
  • MyBatisPlus实现增删改查
  • 【Rust】——不安全Rust
  • 使机器人在执行任务时更加稳定
  • FFmpeg学习(五)-- libswresample使用说明及函数介绍
  • 车载视频监控管理方案:无人驾驶出租车安全出行的保障
  • 05STM32EXIT外部中断中断系统
  • MetaGPT和LangGraph对比
  • 基于SpringBoot+Hadoop+python的物品租赁系统(带1w+文档)
  • 关于 RK3588刷镜像升级镜像”没有发现设备“ 的解决方法
  • docker 上传镜像到hub仓库
  • 查询(q_proj)、键(k_proj)和值(v_proj)投影具体含义
  • 超详细版阿里云控制台环境配置+数据库配置
  • Linux:Linux网络总结(附下载链接)