4月1日,愚人节,周一,记不清天气了,是一周的开始,也是噩梦的开始。

早上,还没走到办公室,就接到电话。

快来看看,XXX的电脑打不开了,提示什么密码过期。

我想了想,哎呀,是不是我上周把一些员工的口令清除了,也不应该啊,不会清除到XXX吧,应该没啥问题。

到了电脑前才发现,是进不了 Windows 系统了。
提示密码过期,需要更改密码,但是更改密码又提示”拒绝访问”。

当时拍了个视频。

所幸的是,那个时候还没开工,还有时间够我修一下。

网上随手搜了下,看到百度知道的一篇教程。

https://jingyan.baidu.com/article/2c8c281d99b87b0008252ab2.html

但是 net user 并没有当前的用户,只是提示“运行命令有错误”,强制设置密码提示找不到这个用户。

反射弧过长的我突然想到,当时这批win10可是有3台,我都是这样设置的,那么每台会不会都有这个问题。其中有一台可是在一个很关键的位置————用于共享9个电脑要使用的打印机。

想到这,脑袋瞬间炸裂,头皮发麻。

赶紧去了下那台电脑,还好已经进入系统了,我试着切换用户,登陆,提示“密码过期,需要重置”。

妈耶,这不是完了🐎?我 tm 今天要死在这了。。

硬着头皮试试重置密码,居然成功了,没有出现“拒绝访问”,松了一口气,那么现在只需要处理那台电脑了。

突然想起了上次拯救过我一次的教程:

http://www.xitongcheng.com/jiaocheng/win10_article_33911.html

但是,因为除了Administrator还存在一个用户,所以

在安全模式下,系统会自动从默认是禁用的 Administrator 账户登录进桌面

所以这个没有成功。

其实,我当时候已经有解决思路了,只需要能进系统,把密码永不过期勾选上就行了。
或者,我只需要一个 shell,将 Administrator 用户启动,禁用当前的普通用户,然后就能进到系统里了。

只能试试方法二,当时已经没抱什么希望了,这种歪网站上的教程,一般都行不通的。反正死马当活马医吧。

因为我当时手边没有 PE 盘,只有个之前的 kali persistence u盘,效果都一样的。

设置 BIOS

我们需要修改 BIOS 的 boot 设置,来使计算机从 u盘 启动。
这台计算机的型号是 Dell Vostro 3670
这个 BIOS 设置还是第一次见

  1. 禁用 Secure Boot
    Settings - Secure Boot - Secure Boot Enable
    右侧取消勾选

  2. 禁用 PPT
    Settings - Security - PPT Security
    右侧取消勾选

  3. 修改启动顺序
    Settings - General - Boot Sequence
    Boot List Option

  • Legacy External Devices

在下面点击 Apply 应用

然后会在上面的框中看到 USB Storage Devices
按右边上键,将其调整为 第一启动项

最后点击 Exit 退出,重新启动就可以进入u盘系统了。

从 Kali 启动

熟悉的 Kali Boot Menu。

我将 win10 的系统盘挂载,准备拷贝时,发现不可写。

mount查看一下,挂载参数为 ro,read-only。

1
2
3
4
5
6
[email protected]:~# mount

[unimportant message]

/dev/sdc2 on /media/root/Kali Live type vfat (rw,nosuid,nodev,relatime,fmask=0022,dmask=0022,codepage=437,iocharset=utf8,shortname=mixed,showexec,utf8,flush,errors=remount-ro,uhelper=udisks2)
/dev/sda3 on /media/root/9824A53D24A51F6E type fuseblk (ro,relatime,user_id=0,group_id=0,allow_other,blksize=4096)

卸载后尝试手动挂载

1
2
3
4
5
6
7
[email protected]:~# umount /dev/sda3
[email protected]:~# mount -t ntfs-3g /dev/sda3 /media/root/9824A53D24A51F6EWindows is hibernated, refused to mount.
The disk contains an unclean file system (0, 0).
Metadata kept in Windows cache, refused to mount.
Falling back to read-only mount because the NTFS partition is in an
unsafe state. Please resume and shutdown Windows fully (no hibernation
or fast restarting.)

这是复盘时报的错误,实际上当时的错误和这个差不多。

卸载 sda3,使用 ntfsfix 修复

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
[email protected]:~# umount /dev/sda3
[email protected]:~# ntfsfix /dev/sda3
Mounting volume... Windows is hibernated, refused to mount.
FAILED
Attempting to correct errors...
Processing $MFT and $MFTMirr...
Reading $MFT... OK
Reading $MFTMirr... OK
Comparing $MFTMirr to $MFT... OK
Processing of $MFT and $MFTMirr completed successfully.
Setting required flags on partition... OK
Going to empty the journal ($LogFile)... OK
Windows is hibernated, refused to mount.
Remount failed: Operation not permitted
[email protected]:~# mount -o rw /dev/sda3
mount: can't find /dev/sda3 in /etc/fstab
[email protected]:~# ntfsfix /dev/root/^C
[email protected]:~# mount -o rw /dev/sda3 /media/root/9824A53D24A51F6E/
Windows is hibernated, refused to mount.
Falling back to read-only mount because the NTFS partition is in an
unsafe state. Please resume and shutdown Windows fully (no hibernation
or fast restarting.)

重新挂载

1
2
[email protected]:~# umount /dev/sda3
[email protected]:~# mount -t ntfs-3g -o remove_hiberfile /dev/sda3 /media/root/9824A53D24A51F6E

没有报错,好像挂载成功了

进入 Windows/System32 目录
sethc.exe 备份为 sethc.exe.bak
然后使用 cmd.exe 覆盖 sethc.exe

1
2
3
[email protected]:~# cd /media/root/9824A53D24A51F6E/Windows/System32
[email protected]:/media/root/9824A53D24A51F6E/Windows/System32# cp sethc.exe sethc.exe.bak
[email protected]:/media/root/9824A53D24A51F6E/Windows/System32# cp cmd.exe sethc.exe

再复制cmd.exe到当前目录(\system32)下的 dllcache 目录里改名为sethc.exe;

这里,我没有找到 dllcache 目录,此步略过。

从 Win10 硬盘启动

像刚刚那样,修改 boot 启动顺序,将硬盘启动放在第一启动项。

在登陆界面,双击 shift,弹出了终端窗口。

输入 net user,返回的信息里有当前的这个用户。这样就好办了。

禁用当前用户(比如我当前的用户叫user,事实上也是)

1
net user user /active:no

启用 Administrator

1
net user administrator /avtive:yes

重启电脑,默认使用 Administrator 进入了系统。

在计算机管理 - 用户和用户组 ,

设置 user 用户 - 属性 - 勾选密码永不过期。

禁用 Administrator 用户
开启 user 用户

切换成 user 用户进入系统,一切搞定~!

参考:

  1. http://www.xitongcheng.com/jiaocheng/win10_article_33911.html (拯救了我两次
  2. https://jingyan.baidu.com/article/3d69c55126805bf0cf02d7ed.html
  3. https://askubuntu.com/questions/204166/how-do-i-mount-a-hibernated-ntfs-partition
  4. https://askubuntu.com/questions/462381/cant-mount-ntfs-drive-the-disk-contains-an-unclean-file-system