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

在本地校验密码或弱口令 (windows)

# 0x00 背景

需求是验证服务器的弱口令,如果通过网络侧校验可能会造成账户锁定风险。在本地校验不会有锁定风险或频率限制。

# 0x01 实践

## 1 使用 net use 命令


可以通过命令行使用 net use 命令来验证本地账户的密码。打开命令提示符(CMD),然后输入以下命令:

net use \\localhost\IPC$ /user:用户名 密码

net use \\localhost\IPC$ /user:00e04c123456 00e04c123456

将 用户名 替换为你要验证的本地账户名,密码 替换为相应的密码。如果输入的密码正确,命令将成功执行;如果密码错误,则会提示验证失败。

注意
net use \\localhost\IPC$   这个命令不会验证密码,不可以

runas /user:用户名 "命令"  # 会提示输入密码,可以用来验证,但是交互式

## 2 使用 PowerShell (本地无需输入密码,报错)

也可以使用 PowerShell 来验证本地账户的密码。以下是一个示例脚本:

$Username = ".\00e04c123456"; $Password = "00e04c123456" | ConvertTo-SecureString -AsPlainText -Force;$Credential = New-Object System.Management.Automation.PSCredential($Username, $Password);
try { $null = Get-WmiObject -Class Win32_ComputerSystem -Credential $Credential Write-Host "1" } catch { Write-Host "2" }

$Username = ".\00e04c123456"; $Password = "00e04c123456" | ConvertTo-SecureString -AsPlainText -Force; $Credential = New-Object System.Management.Automation.PSCredential($Username, $Password); try { Invoke-Command -ScriptBlock { Get-WmiObject -Class Win32_ComputerSystem } -Credential $Credential -ComputerName "localhost" Write-Host "1" } catch { Write-Host "2"}

## 3 调用windows login api (未测试)

Here’s a simple example of how to use the LogonUser function in C++:

#include <windows.h>
#include <iostream>

int main(){
    HANDLE hToken;
    const char* username = "User";
    const char* password = "Password";
    const char* domain = "Domain"; // Use NULL for local accounts
    if(LogonUser(username, domain, password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, &hToken)) {
        std::cout << "User logged in successfully."<< std::endl;
        // Perform actions as the logged-in user...CloseHandle(hToken); // Don't forget to close the token handle
    } else{
        std::cerr << "LogonUser failed with error: "<< GetLastError() << std::endl;
    }
    return 0;
}

## 4 Hids 检查windows弱口令逻辑 

推测可以实现的一个逻辑:

1.net user 跑出所有用户
2.遍历pwd字典 net use 强制使用密码验证
   如果验证到密码,跳出循环,del net use share,再验证下一个用户
3.好处是不会造成账户锁定

不强制输入密码是无法认证的,本地直接建立连接了。

密码错误截图如下:

反之,如果密码正确,会生成一个IPC链接。net use命令可以查看到。


http://www.kler.cn/a/546936.html

相关文章:

  • DeepSeek免费部署到WPS或Office
  • Linux 内核 IPoIB 驱动中 sysfs 属性冲突问题的分析与解决
  • LAWS是典型的人机环境系统
  • 【第4章:循环神经网络(RNN)与长短时记忆网络(LSTM)— 4.6 RNN与LSTM的变体与发展趋势】
  • Unity使用iTextSharp导出PDF-04图形
  • 修改OnlyOffice编辑器默认字体
  • 小米 R3G 路由器刷机教程(Pandavan)
  • 算法练习——哈希表
  • QML使用ChartView绘制箱线图
  • harmonyOS的文件的增、删、读、写相关操作(fs/content)
  • 土星云边缘计算微服务器 SE110S-WA32加持DeepSeek,本地部署企业私有推理大模型!
  • 父组件中循环子组件调用
  • Vue的学习(5)
  • Microsoft Edge浏览器介绍
  • kubekey一键部署k8s高可用与kubesphere
  • 理解WebGPU 中的 GPUAdapter :连接浏览器与 GPU 的桥梁
  • Linux: 调整套接字缓冲区大小相关内核参数
  • Kali linux搭建wifi绵羊墙
  • 欧拉公式在信号处理中的魔法:调幅信号的生成与频谱分析
  • 紫光展锐蜂窝物联网芯片V8850荣获国密一级安全认证