[C#] 网域账号(Domain)验证

news/2024/2/28 17:52:34

使用C#对网域账号(Domain)验证方案:

一、使用advapi32.dll动态库

[DllImport("advapi32.dll")]
private static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken);
const int LOGON32_LOGON_INTERACTIVE = 2; //通过网络验证账户合法性
const int LOGON32_PROVIDER_DEFAULT = 0; //使用默认的Windows 2000/NT NTLM验证方public static bool CheckADAccount(string account, string password)
{IntPtr tokenHandle = new IntPtr(0);tokenHandle = IntPtr.Zero;string domainName = "dpbg";if (LogonUser(account, domainName, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, ref tokenHandle))return true;return false;
}

注意使用该动态库可能会导致 服务Local Security Authority Process 内存异常升高且无法回收现象

二、使用 System.DirectoryServices

/// <summary>
/// 验证网域账号
/// </summary>
/// <param name="account">账号</param>
/// <param name="password">密码</param>
/// <param name="domain">网域</param>
/// <param name="name">姓名</param>
/// <returns></returns>
public static bool CheckADAccountNew(string account, string password, string domain, out string name)
{name = "";using (DirectoryEntry deUser = new DirectoryEntry(@"LDAP://" + domain, account, password)){DirectorySearcher src = new DirectorySearcher(deUser);src.Filter = "(&(&(objectCategory=person)(objectClass=user))(sAMAccountName=" + account + "))";src.PropertiesToLoad.Add("cn");src.SearchRoot = deUser;src.SearchScope = SearchScope.Subtree;try{SearchResult result = src.FindOne();if (result != null)//验证成功{if (result.Properties["cn"] != null)//依据实际属性获取用户信息{name = result.Properties["cn"][0].ToString();}return true;}return false;}catch{return false;}}
}

注意如果域内账号较多时,验证不存在的账号速度较慢且不会验证密码的有效期

三、使用System.DirectoryServices.AccountManagement

/// <summary>
/// 验证网域账号
/// </summary>
/// <param name="account">账号</param>
/// <param name="password">密码</param>
/// <param name="domain">网域</param>
/// <param name="name">姓名</param>
/// <returns></returns>
public static bool CheckADAccountNew(string account, string password, string domain, out string name)
{name = "";using (var domainContext = new PrincipalContext(ContextType.Domain, domain)){using (var foundUser = UserPrincipal.FindByIdentity(domainContext, IdentityType.SamAccountName, account)){if (foundUser == null){return false;}name = foundUser.Name;if (domainContext.ValidateCredentials(account, password)){return true;}else{return false;}}}
}

注意该方法不会验证密码的有效期


http://www.ppmy.cn/news/924587.html

相关文章

内网域渗透总结(红日靶场一)

一、靶场环境搭建 红日靶场&#xff1a;http://vulnstack.qiyuanxuetang.net/vuln/detail/2/靶机通用密码&#xff1a;hongrisec2019win7win2003win2008 这个搭建靶场的过程是我经过实际操作&#xff08;踩坑&#xff09;总结的最简单省事的方式。 首先创建一个仅主机模式的…

VMware构建内网域环境

VMware构建内网域环境 环境准备&#xff1a; 镜像下载 Windows Server 2019: 192.168.138.128Windows 10: 192.168.138.130VMware Workstation 16 Pro VMnet3 仅主机模式 搭建域环境 Windows Server 2019域控服务器&#xff08;192.168.138.128&#xff09; 1、设置服务器…

linux添加大网域,Ubuntu 10.10 Desktop 加入Windows网域

前言&#xff1a; 为了实现了Linux用户的集中的管理&#xff0c;如果在生产环境中已经实现了Windows的域管理&#xff0c;那么能不能把Ubuntu 桌面操作系统加入到现存的域中实现用户的集中的管理呢&#xff0c;现发现利用likewise-open这个软件包很简单的就能把Ubuntu 10.10 D…

内网域渗透分析工具BloodHound

前言 当渗透进入内网后&#xff0c;利用BloodHound对庞大内网域环境进行自动化信息搜集并整理分析数据&#xff0c;提高渗透效率。 0x01 BloodHound 介绍 BloodHound是一款可视化图形分析域环境中的关系的工具&#xff0c;以用图与线的形式&#xff0c;将域内用户、计算机、…

从外网打点到渗透内网域控 NASA

文章目录 从外网打点到渗透内网域控 NASA前言任务说明靶场拓扑环境搭建 外网打点端口扫描使用 masscan 扫描全部端口使用 nmap 扫描全部端口 目录扫描后台测试社工生成字典 代码审计密码找回 sql 注入手机版 支付存在 sql注入任意文件删除漏洞任意文件上传配合重装漏洞 getshel…

渗透实战:内网域渗透

前言 本文记录了一次针对具有二层内网的域环境进行渗透测试的过程&#xff0c;文中涉及了内网域渗透的基本方法、思路和技巧。交替使用了msf、CobaltStrike、frp、chisel、SharpSQLTools等工具&#xff0c;最后通过约束委派拿下了域控。其间运用了很多小工具&#xff0c;文章较…

内网域环境搭建教程

搭建环境 win2012(DC)&#xff1a;10.10.10.161 win2008 &#xff1a; 10.10.10.160 win7 &#xff1a; 10.10.10.157 环境配置 WIN2012域控机配置 将域控机配置成静态IP 更改计算机名 方便之后识别 安装域控制器和DNS服务 重启——安装 升级配置为域控制器 配置根域名为…

jumpserver网域功能使用

注&#xff1a;域名功能介绍&#xff1a;网域功能是为了解决部分环境&#xff08;如&#xff1a;混合云&#xff09;无法直接连接而新增的功能&#xff0c;原理是通过网关服务器进行跳转登录。JMS > 网域网关 > 目标资产 本次使用的服务器两台&#xff0c;一台当作对外开…

内网域渗透基础知识

内网域渗透基础知识 1.内网简介 ​ 内网即局域网(LAN)是指在某一区域内由多台计算机互联成的计算机组。一般是方圆几千米以内。局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。局域网是封闭型的&#xff0c;可以由办…

内网域攻击

什么是域 计算机域是一个有安全边界的计算机集合&#xff0c;在同一个域中的计算机彼此之间已经建立了信任关系&#xff0c;在域内访问其他机器&#xff0c;不再需要被访问机器的许可。 具体参考计算机域_百度百科​​​​​​ 。通俗来说就域就像一个家庭&#xff0c;域的大小…

一文搞懂 DNS 基础知识,收藏起来有备无患~

DNS&#xff08;Domain Name System&#xff09;&#xff0c; 也叫网域名称系统&#xff0c;是互联网的一项服务。它实质上是一个 域名 和 IP 相互映射的分布式数据库&#xff0c;有了它&#xff0c;我们就可以通过域名更方便的访问互联网。 DNS 有以下特点&#xff1a; 分布…

网站与域名

网站 网站(Website)是指在因特网上根据一定的规则&#xff0c;使用HTML (标准通用标记语言下的一个应用)等工具制作的用于展示特定内容相关网页的集合。简单地说&#xff0c;网站是一种沟通工具&#xff0c;人们可以通过网站来发布自己想要公开的资讯&#xff0c;或者利用网站来…

网域的概念与 IP 的分级

网域概念&#xff1a; IP主要分为 HOST_ID&#xff08;网域号码&#xff09; 与 Net_ID&#xff08;主机号码&#xff09; 利用192.168.0.0~192.168.0.255 这个C Class的网域举例&#xff1a; 192.168.0.0~192.168.0.255 这个 C Class 的说明&#xff1a; 11000000.10101000.…

oc uitableView 展示单组数据

设置模型 #import <Foundation/Foundation.h>interface XMGWine : NSObjectproperty (nonatomic,copy) NSString *name; property (nonatomic,copy) NSString *image; property (nonatomic,copy) NSString *money;(instancetype)wineWithDict:(NSDictionary *)dict; end…

PCL 基于三个点计算圆心坐标(二维)

文章目录 一、简介二、实现代码三、实现效果一、简介 思路很简单,假设给定三角形三个点 P , Q , R P,Q,R P,Q,

Java中高级核心知识全面解析——Redis(集群【概述{主从复制、哨兵、集群化}、数据分区方案、节点通信机制、数据结构简析】)5

一、[集群]入门实践教程 1.Redis 集群概述 1)Redis 主从复制 到目前为止,我们所学习的 Redis 都是 单机版 的,这也就意味着一旦我们所依赖的 Redis 服务宕机了,我们的主流程也会受到一定的影响,这当然是我们不能够接受的。 所以一开始我们的想法是:搞一台备用机。这样…

青龙不自动运行

今天主要说一说撸豆的监控自动执行脚本玩法,Spy自动监控。青龙不自动运行,需要做些脚本和设置。 青龙不自动运行设置 一、ssh链接到你的青龙服务器,获取超管权限。 二、安装代码如下,复制一行执行一行。 wget -O autospy https://raw.githubusercontent.com/xieshang/AutoS…

如何实现青龙监控自动执行脚本

经常薅羊毛的对青龙都不陌生&#xff0c;无论是撸豆&#xff0c;还是签到&#xff0c;做各种任务&#xff0c;都可以解放双手&#xff0c;7*24h帮你站岗。 欢迎加入讨论群&#xff1a;https://t.me/h4hHvHNpD3E1NDZl 当然如果你觉得这个太麻烦或者折腾到没头发&#xff0c;还…

cf最新服务器录像,cf踏空跳录像文件

cf踏空跳录像文件2015最新、最新合集分享&#xff0c;暑假时cf玩家比较多的时候&#xff0c;cf踏空跳文件能够帮助玩家更好的进行游戏操作&#xff0c;西西为玩家整理了2015cf踏空跳录像文件合集下载&#xff0c;包含各个版本地图&#xff0c;还有详细的安装方法哦&#xff01;…

数据存储和处理概念:位、字节、字、字长

文章目录 一、基本概念1、位和字节2、字和字节 一、基本概念 1、位和字节 位&#xff08;Bit&#xff09;&#xff1a;计算机中存储信息的最小单位。可以存储一个二进制数&#xff0c;或者说可以表示两种状态。 字节&#xff08;Byte&#xff09;&#xff1a;计算机中存储信…
最新文章