前文书我们说到蔡学飞正向老师简睿请教如何查询U盘访问时间的问题。
此时简睿正讲到注册表中因限于 SYSTEM
权限而止步于访问 Properties
子项。
那么怎么搞定它呢?
简睿现场操作,蔡学飞则两眼紧盯着屏幕,看老师演示如何修改注册表项权限。
手动赋权,开启访问
“首先,右键点击 Properties
,在菜单中选择 权限(P)...
。”
“来了个警告,没关系,仔细看,只是警告而已,告诉你没有权限,但可以更改权限。
呵呵,这不废话嘛,我就冲着修改权限来的,吓唬别人还行,我可不怕哈,点击确定忽略它。”
“打开的 Properties
权限窗口一片空白,没事,我们点击 高级(V)
按钮。”
“在 Properties
的高级安全设置中,窗口最上面的那个所有者一项,点击 更改(C)
。”
“在对象名称框中输入 administrators
,点击确定。”
“ Properties
所有者更改为 administrators
,点击确定直到退出。”
“注意,不要勾选 替换子容器和对象的所有者
,可能会报错。”
“OK,这时由于所有者变更为管理员了,所以我们就允许任意追加权限了。”
“再次右键 Properties
项,选择 权限(P)...
后,在权限窗口中添加管理员为完全控制权限。”
“再来展开一下 Properties
项,你会发现可以看到里面的内容啦。”
“如果没有展开,可以按 F5
刷新一下。”
注册表项定义的历史时间
“嘿嘿,还真是哈!”,蔡学飞有点兴奋,挠了挠头,“不过这操作也太费牛鼻子劲儿了!”
简睿并没有理会,而是接着往下说,“在展开的这些 GUID
子项中,每个子项都是有特定意义的。”
“其中对我们有用的就有以下几项,你务必要留意!”
名称 属性路径
---------------------------------
第一次安装时间 {83da6326-97a6-4088-9453-a1923f573b29}\0065
最后一次连接时间 {83da6326-97a6-4088-9453-a1923f573b29}\0066
最后一次拨出时间 {83da6326-97a6-4088-9453-a1923f573b29}\0067
蔡学飞挺认真,一行一行地对照着,“哎?不对啊师父,右边怎么没有时间键值项啊?”
“当然有啊,你再看看。”
蔡学飞瞪着个大眼,“您是说...那个默认键值?我看它怎么好像是个十六进制的数据?”
简睿点头道:“你猜对了,这就是十六进制格式的时间数据,叫作 FILETIME
。
不过这个东西比较复杂,牵扯到数据存放的方式及概念(大小尾端)等问题,所以你有空可以先查查资料或看看以前我写的参考文章。
看过之后就可以了解如何将这个十六进制的数字转换成我们能看得懂的正常可读的时间格式了。”
参考前文:《十六进制的时间格式到底是个什么鬼?》
链接:https://www.sysadm.cc/index.php/vbbiancheng/798-what-the-hell-is-hexadecimal-datetime-format
下图演示了时间格式转换,此工具在参考前文中有说明。
蔡学飞边记边点头,“原来如此,那我想要查找指定的U盘,只要按前面说的方法,定位相应的 GUID
后找到十六进制的时间数据,然后再将其转换就可以了吧?”
“没错!不过这里会有一个小问题。”
“什么问题啊?”
“如果你只查一个U盘的时间记录,那么这么操作当然没什么难度。
可要是批量地查询多个U盘呢,难道还要一个一个地去修改注册表项的访问权限吗?”
“说得是啊,我刚才就觉得,这也太麻烦了啊!”
“所以说,我们应该换个思路。”
赋权 SYSTEM
不用慌,工具软件来帮忙
“这个查询 Properties
注册项问题的本质其实就是要获得 SYSTEM
权限,因此我们可以通过某种方法让 Regedit
以 SYSTEM
权限运行就可以了。”
“道理没错,可怎么整啊?SYSTEM
权限可不是一般用户可以获取的,而且我好像记得 SYSTEM
没有密码啊,可怎么输入呢?”,蔡学飞略带疑问地附和着。
“你说得没错,这个 SYSTEM
是高级系统权限,普通用户无法正常以它的身份运行程序,所以最简单的办法就是,我们可以借助第三方程序来达到目的。
比如微软官方提供的工具软件 PsExec
,它被打包在了工具集 PsTools
中。 ”
PsExec
下载
官方链接:https://docs.microsoft.com/zh-cn/sysinternals/downloads/psexec
本地下载:https://pan.baidu.com/s/1xCHlRIz1s_OllWdOwd4z9A
提取码:
★扫码关注公众号, 发送【000884】获取阅读密码
“用法比较简单,将 PsExec
从 PsTools
压缩包中提取出,然后按以下命令行形式执行程序即可。”
# -i 程序可交互,-s 以SYSTEM帐户权限运行
psexec -i -s C:\Windows\regedit.exe
“此外,还有其他优秀的第三方软件也可以实现这样的效果,比如 NirCmd
。”
官方链接:https://www.nirsoft.net/utils/nircmd.html
本地下载:https://pan.baidu.com/s/1UVdEWcWToQf_iuNEjBEn2w
提取码:
★扫码关注公众号, 发送【000884】获取阅读密码
“需要注意的是,PsExec
作为远程工具,它有一个小缺点,那就是必须要保证程序所在系统开放了默认共享(C$
、Admin$
),否则会导致程序启动失败。”
“经过以 SYSTEM
权限运行 regedit.exe
后,我们就可以打开任意 Properties
子项了。”
“真是哈,太好了!这样就方便多了!”,蔡学飞舒了一口气。
“呵呵,可是这样也顶多不用挨个改权限,还算不上方便啊!”,简睿似乎又提出了新问题。
蔡学飞接茬道:“哦,也是啊,如果U盘记录非常多,那还是要手动一个一个地去对照查找,还是费时费力啊!”
“是的,一针见血!你小子有进步啊!”,师父向徒弟投来了赞许的眼光。
“嘿嘿!那师父,这种情况还能有啥更好的绝招没?”
“有啊,在我们掌握了原理后,如果某些操作或工具软件不能达到或实现我们目的的时候,我们就可以自己通过编程来达到预期效果。”
简睿接着说:“我们可以通过代码来遍历读取我们需要的注册表项,然后通过 FILETIME
格式转换成我们可读的时间格式。”
自己动手,实现完美
“我花了几个晚上的时间,自己动手用 VB
制作了一款小工具 XJUsbViewer
,USB时间记录查看器。”
“乖乖,自己写程序啊,还是师父你牛啊!”,蔡学飞不禁竖起了大拇指。
简睿补充道:“我利用了第三方的 NirCmd
程序,在程序启动时自动切换以 SYSTEM
权限运行。
然后再点击界面上的 查看USB时间记录
按钮,系统中的所有USB时间记录就都会显示出来了。
关于U盘历史时间记录,除了区分为三个部分(第一次安装时间、最后一次连接时间以及最后一次拔出时间)外,还有十六进制与相应正常时间格式的对照。”
“嘿,这个好啊!怪不得您效率这么高啊!我又学到了!”
网管小贾的USB时间记录查看器 XJUsbViewer
(96K)
本地下载:https://pan.baidu.com/s/1ws7n840lpfTAl4PW78_kOA
提取码:
★扫码关注公众号, 发送【000884】获取阅读密码
“由于时间比较紧,目前我也就做了这么一个简单的查询功能。
基本上对于秦队交给我的任务,关于定位案件中的关键证据已经可以提供帮助了。
至于搜索和清除记录之类的功能,等到以后我有空有闲再研究研究吧!”
“这个太好用了啊!我得从头好好学学,师父辛苦了,谢谢师父啊!我代表专案组向您致敬!”,蔡学飞起身给简睿敬了个礼。
“好了,时候也不早了,你赶快回去吧!”
“行,师父您也早点休息哈!那我明天再来向您请教!”
简睿冲蔡学飞点了点头,目送着他走出了办公室。
他揉了揉太阳穴又伸了个懒腰,抖擞精神,将刚才的那份桌子上的案件资料又拿在手上继续钻研了起来......
声明:本故事纯属虚构,如有雷同,不用多想,就是那么巧!
本文测试均在 Windows 10
系统平台上展开,部分测试内容并不一定适用于其他系统。
扫码关注@网管小贾,阅读更多
网管小贾的博客 / www.sysadm.cc