0

0

域内定位个人PC的三种方式

星夢妙者

星夢妙者

发布时间:2025-08-28 10:48:51

|

510人浏览过

|

来源于php中文网

原创

会话搜集

在cmd下调用

query session
命令可以获得当前环境下的windows会话

域内定位个人PC的三种方式
NetSessionEnum

这个函数不允许直接查询是谁登陆,但是它允许查询是谁在访问此工作站的网络资源时所创建的网络会话,从而知道来自何处,此函数不需要高权限即可查询

代码语言:javascript代码运行次数:0运行复制
NET_API_STATUS NET_API_FUNCTION NetSessionEnum(  [in]      LMSTR   servername,  [in]      LMSTR   UncClientName,  [in]      LMSTR   username,  [in]      DWORD   level,  [out]     LPBYTE  *bufptr,  [in]      DWORD   prefmaxlen,  [out]     LPDWORD entriesread,  [out]     LPDWORD totalentries,  [in, out] LPDWORD resume_handle);

第一个参数是

servername
,我们可以通过
servername
指定一个远程的主机,然后这个 API 会去调用远程主机的 RPC,然后返回其他用户在访问这台远程主机的网络资源时所创建的网络会话,从而可以看到这个用户来自何处

该 API 并不能查询到是谁登陆了这台远程主机,但是可以看到访问这台远程主机的网络资源时所创建的网络会话。从这个网络会话中可以看到哪个域用户来自哪个 IP,并且该 API 不需要在远程主机上有管理员权限

返回值有点特殊,

NERR_Success
ERROR_MORE_DATA
都是证明函数使用成功

域内定位个人PC的三种方式

level
的数值需要设置为10,是唯一以未经身份验证的方式就可以获取所需数据的级别

域内定位个人PC的三种方式

通过wireshark抓包可以得到

NetSessionEnum
分为6步操作

与远程主机建立 SMB 连接(Kerberos 身份验证)连接到
IPC$
共享打开
srvsvc
命名管道
srvsvc
使用其 UUID绑定到接口
4b324fc8-1670-01d3-1278-5a47bf6ee188
查询
NetSessionEnum
关闭并注销
域内定位个人PC的三种方式

实现代码

代码语言:javascript代码运行次数:0运行复制
// FindADPC.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。//#include <iostream>#ifndef UNICODE#define UNICODE#endif#pragma comment(lib, "Netapi32.lib")#pragma warning(disable:4996)#include <stdio.h>#include <assert.h>#include <windows.h> #include <lm.h>#include <ctime>int session_enum(LPTSTR pszServerName) {    NET_API_STATUS nStatus;    LPSESSION_INFO_10 pBuf = NULL;    LPSESSION_INFO_10 pTmpBuf;    DWORD dwLevel = 10;    DWORD dwPrefMaxLen = MAX_PREFERRED_LENGTH;    DWORD dwEntriesRead = 0;    DWORD dwTotalEntries = 0;    DWORD dwResumeHandle = 0;    DWORD i;    DWORD dwTotalCount = 0;       do     {        nStatus = NetSessionEnum(pszServerName,            NULL,            NULL,            dwLevel,            (LPBYTE*)&pBuf,            dwPrefMaxLen,            &dwEntriesRead,            &dwTotalEntries,            &dwResumeHandle);        if ((nStatus == NERR_Success) || (nStatus == ERROR_MORE_DATA))        {            if ((pTmpBuf = pBuf) != NULL)            {                              for (i = 0; (i < dwEntriesRead); i++)                {                    assert(pTmpBuf != NULL);                    if (pTmpBuf == NULL)                    {                        fprintf(stderr, "An access violation has occurred
");                        break;                    }                                      SYSTEMTIME sys;                    GetLocalTime(&sys);                    char current_time[64] = { NULL };                    sprintf(current_time, "%4d-%02d-%02d %02d:%02d:%02d ", sys.wYear, sys.wMonth, sys.wDay, sys.wHour, sys.wMinute, sys.wSecond);                    printf("[%s]  [%ws]  [%ws]  [%ws]
", current_time, pszServerName, pTmpBuf->sesi10_cname, pTmpBuf->sesi10_username);                                       pTmpBuf++;                    dwTotalCount++;                }            }        }             else            fprintf(stderr, "A system error has occurred: %d
", nStatus);               if (pBuf != NULL)        {            NetApiBufferFree(pBuf);            pBuf = NULL;        }    }while (nStatus == ERROR_MORE_DATA);     if (pBuf != NULL)        NetApiBufferFree(pBuf);    return 0;}int wmain(int argc, wchar_t* argv[]){    if (argc == 1)     {        printf("
Using:
	 FindADPC.exe \\dc1 
");        return 0;    }    while (true)    {        for (size_t i = 0; i < argc; i++)        {            if (i == 0)             {                continue;            }            session_enum(argv[i]);        }        Sleep(5000);    }    return 0;}

实现效果

Vondy
Vondy

下一代AI应用平台,汇集了一流的工具/应用程序

下载
域内定位个人PC的三种方式
查询域控4624登录成功日志 代码语言:javascript代码运行次数:0运行复制
using System;using System.Collections.Generic;using System.Diagnostics;using System.Linq;using System.Text;namespace EventLog4624{    class Program    {        static void Main(string[] args)        {            EventLog_4624();        }        public static string MidStrEx(string sourse, string startstr, string endstr)        {            string result = string.Empty;            int startindex, endindex;            startindex = sourse.IndexOf(startstr);            if (startindex == -1)                return result;            string tmpstr = sourse.Substring(startindex + startstr.Length);            endindex = tmpstr.IndexOf(endstr);            if (endindex == -1)                return result;            result = tmpstr.Remove(endindex);            return result;        }        public static void EventLog_4624()        {            EventLog log = new EventLog("Security");            var entries = log.Entries.Cast<EventLogEntry>().Where(x => x.InstanceId == 4624);            entries.Select(x => new            {                x.MachineName,                x.Site,                x.Source,                x.Message,                x.TimeGenerated            }).ToList();            foreach (EventLogEntry log1 in entries)            {                string text = log1.Message;                string ipaddress = MidStrEx(text, " 源网络地址: ", " 源端口:");                string username = MidStrEx(text, "新登录:", "进程信息:");                username = MidStrEx(username, " 帐户名:  ", " 帐户域:  ");                DateTime Time = log1.TimeGenerated;                if (ipaddress.Length >= 7)                {                    Console.WriteLine("
-----------------------------------");                    Console.WriteLine("Time: " + Time);                    Console.WriteLine("Username: " + username.Replace("
", "").Replace(" ", "").Replace("	", "").Replace("
", ""));                    Console.WriteLine("Remote IP: " + ipaddress.Replace("
", "").Replace(" ", "").Replace("	", "").Replace("
", ""));                }            }        }    }}
域内定位个人PC的三种方式
gpo下发query user写log到sysvol

GPO(Group Policy Object)是 Windows 中的一种管理技术,用于管理域中用户和计算机的设置。通过 GPO,管理员可以下发策略来配置用户和计算机的系统设置,以实现统一的管理和控制。

在 GPO 管理环境下,管理员可以使用 query user 命令来查询当前连接到计算机的用户的信息。query user 命令可以查询用户的登录时间、登录状态、连接状态等信息。

管理员可以将 query user 命令的输出写入到 sysvol 目录中,以便对用户登录情况进行记录和统计。sysvol 目录是 Windows 中一个共享目录,用于存储域控制器上的组策略文件。管理员可以将 query user 命令的输出信息写入到 sysvol 目录中,以便通过域控制器来管理和访问这些信息。

创建组策略

代码语言:javascript代码运行次数:0运行复制
Import-Module GroupPolicy;new-gpo -name QueryDomainUser01
域内定位个人PC的三种方式

连接到域

代码语言:javascript代码运行次数:0运行复制
powershell Import-Module GroupPolicy;new-gplink -name QueryDomainUser01 -Target "dc=god,dc=org"
域内定位个人PC的三种方式

修改

sysvol
的权限

代码语言:javascript代码运行次数:0运行复制
icacls c:windowssysvol /grant Everyone:(OI)(CI)(F) /T
域内定位个人PC的三种方式
域内定位个人PC的三种方式

下发执行

代码语言:javascript代码运行次数:0运行复制
SharpGPOAbuse.exe --AddComputerTask --TaskName "QueryDomainUser001" --Author owa\administrator --Command "cmd.exe" --Arguments "cmd /c query user > \owasysvol%COMPUTERNAME%.txt" --GPOName "QueryDomainUser01"

强制执行

代码语言:javascript代码运行次数:0运行复制
gpupdate /force
域内定位个人PC的三种方式

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

WorkBuddy
WorkBuddy

腾讯云推出的AI原生桌面智能体工作台

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
session失效的原因
session失效的原因

session失效的原因有会话超时、会话数量限制、会话完整性检查、服务器重启、浏览器或设备问题等等。详细介绍:1、会话超时:服务器为Session设置了一个默认的超时时间,当用户在一段时间内没有与服务器交互时,Session将自动失效;2、会话数量限制:服务器为每个用户的Session数量设置了一个限制,当用户创建的Session数量超过这个限制时,最新的会覆盖最早的等等。

336

2023.10.17

session失效解决方法
session失效解决方法

session失效通常是由于 session 的生存时间过期或者服务器关闭导致的。其解决办法:1、延长session的生存时间;2、使用持久化存储;3、使用cookie;4、异步更新session;5、使用会话管理中间件。

776

2023.10.18

cookie与session的区别
cookie与session的区别

本专题整合了cookie与session的区别和使用方法等相关内容,阅读专题下面的文章了解更详细的内容。

97

2025.08.19

硬盘接口类型介绍
硬盘接口类型介绍

硬盘接口类型有IDE、SATA、SCSI、Fibre Channel、USB、eSATA、mSATA、PCIe等等。详细介绍:1、IDE接口是一种并行接口,主要用于连接硬盘和光驱等设备,它主要有两种类型:ATA和ATAPI,IDE接口已经逐渐被SATA接口;2、SATA接口是一种串行接口,相较于IDE接口,它具有更高的传输速度、更低的功耗和更小的体积;3、SCSI接口等等。

1960

2023.10.19

PHP接口编写教程
PHP接口编写教程

本专题整合了PHP接口编写教程,阅读专题下面的文章了解更多详细内容。

658

2025.10.17

php8.4实现接口限流的教程
php8.4实现接口限流的教程

PHP8.4本身不内置限流功能,需借助Redis(令牌桶)或Swoole(漏桶)实现;文件锁因I/O瓶颈、无跨机共享、秒级精度等缺陷不适用高并发场景。本专题为大家提供相关的文章、下载、课程内容,供大家免费下载体验。

2403

2025.12.29

java接口相关教程
java接口相关教程

本专题整合了java接口相关内容,阅读专题下面的文章了解更多详细内容。

47

2026.01.19

windows查看端口占用情况
windows查看端口占用情况

Windows端口可以认为是计算机与外界通讯交流的出入口。逻辑意义上的端口一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。怎么查看windows端口占用情况呢?php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

1517

2023.07.26

TypeScript类型系统进阶与大型前端项目实践
TypeScript类型系统进阶与大型前端项目实践

本专题围绕 TypeScript 在大型前端项目中的应用展开,深入讲解类型系统设计与工程化开发方法。内容包括泛型与高级类型、类型推断机制、声明文件编写、模块化结构设计以及代码规范管理。通过真实项目案例分析,帮助开发者构建类型安全、结构清晰、易维护的前端工程体系,提高团队协作效率与代码质量。

26

2026.03.13

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.9万人学习

微信小程序开发之API篇
微信小程序开发之API篇

共15课时 | 1.3万人学习

Laravel---API接口
Laravel---API接口

共7课时 | 0.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号