=Start=
缘由:
很早之前记录过一篇「Linux提权工具/脚本__信息收集阶段性总结」的文章,但一直都没有收集和整理Windows环境下的信息收集工具、脚本,最近突然对这一块有点兴趣,所以顺手整理一下,方便以后参考。
正文:
参考解答:
一、如何获取Windows系统上已安装的软件信息?
参考3gstudent大神的文章「渗透基础——获得当前系统已安装的程序列表」,大致内容如下:
1、使用powershell调用wmi
Get-WmiObject -class Win32_Product
Get-WmiObject -class Win32_Product |Select-Object -Property name
2、使用wmic调用wmi
wmic /NAMESPACE:"\\root\CIMV2" PATH Win32_Product
wmic /NAMESPACE:"\\root\CIMV2" PATH Win32_Product get name /FORMAT:table
3、使用WMI Explorer调用wmi
4、通过控制面板获取完整的程序列表
通过对比可知,我们可以通过枚举注册表键值的方法获得完整的程序列表。但是要注意的是64位系统下,注册表存在重定向的问题,也会影响程序列表的显示。
32位程序列表对应注册表键值:
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
64位程序列表对应注册表键值:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
二、Windows其它常见信息收集
之前记录了一个「收集系统信息的脚本」的文章,里面有个batch和vbs的脚本,基本的信息都采集了,如果有其它的要采集的可以在其基础上进行改动即可满足一般要求。
三、Windows上收集机器硬件信息的命令和工具
一般情况下,Windows系统自带的2个命令就可以采集到绝大部分信息:
Win+R => msinfo32
Command => systeminfo
除此之外,你还有一些可视化的工具可供选择,比如:
CPU-Z
Speccy
HWiNFO (32/64)
PC Wizard
SiSoftware Sandra Lite
WinAudit
BlackBox
Flitskikker Info Tool
Smart System Informer
RWEverything
四、一些开源脚本集合
Windows批处理脚本和Unix Bash脚本,可在事件响应期间全面收集主机取证数据
https://github.com/diogo-fernan/ir-rescue
Windows主机信息收集工具(服务器信息,系统日志,中间件日志等)
https://github.com/tengzhangchao/InForMation
卡巴斯基分享了一个用于在企业内部采集每台员工电脑日志的脚本
https://securelist.com/happy-ir-in-the-new-year/83557/
https://cdn.securelist.com/files/2017/12/HappyNewYear.zip
Seatbelt 系统信息收集工具使用介绍
https://digitalforensicstips.com/2018/09/a-quick-look-at-seatbelt-for-system-enumeration/
https://github.com/GhostPack/Seatbelt
参考链接:
- 渗透基础——获得当前系统已安装的程序列表
https://github.com/3gstudent/ListInstalledPrograms - Windows环境下的信息收集
https://github.com/myh0st/scripts/tree/master/Windows%E4%B8%8B%E4%BF%A1%E6%81%AF%E6%94%B6%E9%9B%86 - LIST INSTALLED SOFTWARE FEATURES IN WINDOWS
- https://stackoverflow.com/questions/11872290/vbscript-list-installed-softwares-on-windows-server-2008-r2
- How to Create a List of Your Installed Programs on Windows
- PowerShell: How to get a list of all installed Software on Remote Computers
- 10 Tools To Check Every Hardware Detail Of Your Computer In Windows
- How to Get Detailed Information About Your PC
=END=
《 “Windows系统的信息收集” 》 有 16 条评论
WES-NG可以给你的Windows漏洞利用提供有效建议
https://www.freebuf.com/articles/system/209251.html
https://github.com/bitsadmin/wesng
https://github.com/bitsadmin/wesng/wiki/Eliminating-false-positives
`
WES-NG,全称为Windows ExploitSuggester – Next Generation,该工具的运行基于Windows systeminfo实用工具的输出,可以给用户提供目标操作系统可能存在的漏洞列表,并针对这些漏洞给出漏洞利用实施建议。该工具的适用系统范围从Windows XP到Windows 10,还包括Windows Server等服务器/工作站版本。
`
值得收藏!史上最全Windows安全工具锦集
https://www.4hou.com/tools/20722.html
https://mp.weixin.qq.com/s/c9bH4eAJpMXad5NyU1m2WA
Windows Exploit Guard 相关的资料整理
https://github.com/palantir/exploitguard
Windows 权限提升
https://wuhash.com/2020-06-21.html
`
1. Windows 内核漏洞提权
2. Windows操作系统配置错误提权
2.1. 模糊路径提权
2.2. 弱服务权限
2.3. 弱注册表权限
2.4. AlwaysInstallElevated MSI
2.5. AutoLogon
2.6. Autoruns
2.7. Sysprep
3. DLL Hijacking
4. Com Hijacking
5. 组策略提权
6. Bypass UAC
6.1. UAC是什么?
6.2. Integrity levels
6.3. Access Tokens
6.4. UAC在登录过程中的作用
6.5. UAC提升权限的行为
6.6. 应用程序是否要需要UAC通知
6.7. 影响UAC提示的行为的策略
6.8. 如何构造能够触发UAC的程序?
6.9. Bypass UAC
6.10. Cobalt Strike 和meterpreter 中Bypass UAC
6.11. 小结
7. 获取Net-NTLM-Hash
`
LastActivityView – 最近你干什么了?
https://www.appinn.com/lastactivityview/
`
悄悄看几张美图,播放几段爱情动作片就没人知道了么?其实 Windows 早已记录在案,现在就可以拿起 LastActivityView 来看看哪个时间谁干了什么。
LastActivityView 直接调用系统日志,能显示以下时间的发生时间、名称、路径:执行 exe 文件、打开文件、文件夹、安装软件、系统启动、系统关机、网络连接、蓝屏事件、用户登陆等等。
`
https://www.nirsoft.net/utils/computer_activity_view.html
https://www.nirsoft.net/utils/clean_after_me.html
电脑使用痕迹查看及如何彻底清除
https://www.tangtr.cn/diannaoshiyonghenjichakanjiruhechediqingchu.html
`
一、首先介绍查看文件的主角 LastActivityView
二、如何彻底清理这些记录 CleanAfterME
`
你知道,我是怎样监控你所有打开EXE的吗
https://mp.weixin.qq.com/s/7HeTmbzE6L1s68eIBt0dcA
`
目前已知在杀毒厂商以及游戏厂商的安全对抗过程中,常常需要准确的监控收集并进行检测用户创建打开的EXE应用程序是否是安全的。同时也可以将此技术应用于其他应用的安全对抗方案中。那么如何去准确的监控和收集用户每次点击打开的EXE应用程序信息呢?接下来我就进行还原实现下如何准确的监控并收集用户每次点击打开EXE应用程序技术。
实现监控用户所有创建打开EXE程序的数据需要以下几个步骤:
1.通过调用CoInitializeEx函数,进行对COM初始化。
2.通过调用 CoCreateInstance函数, 获得WMI的定位器。
3.通过调用IWbemLocator::ConnectServer函数,并指定函数的参数 strNetworkResource 的值为 “root\cimv2”, 从而实现连接到 “IWbemServices”服务器。
4. 通过调用CoSetProxyBlanket函数,进行设置 IWbemServices的代理,目的是为了WMI 服务能够模拟客户端角色。
5.通过调用 ExecNotificationQuery函数, 来进行查询接收事件。
WMI技术可以应用于:
查询获取正在运行进程信息;
查询获取正在运行线程信息;
查询获取桌面信息;
查询获取环境变量信息;
查询获取驱动信息;
查询获取文件夹信息;
查询获取系统信息和系统服务;
查询获取硬件信息;
查询获取磁盘相关信息。
1.WBEM它的全称:Web Based Enterprise Management(基于web的企业管理),它是一种行业规范,建立在企业网络中访问和共享管理信息的标准。
2.WMI它的全称:Windows Management Instrumentation(Windows管理工具),它是WBEM的Windows实现,也就是它要遵守WBEM规则。通过WMI,我们可以获取关于硬件和软件的相关数据,也可以提供关于硬件或软件服务的数据给WMI。
3.COM 它的全称:Component Object Model(组件对象模型),它是由微软推出的一套接口规范,通过设定不同组件之间需要遵守的标准与协议,主要用来跨语言、跨进程之间的模块通信。
`
Catching red teams with honeypots part 1: local recon
https://outflank.nl/blog/2021/03/03/catching-red-teams-with-honeypots-part-1-local-recon/
`
利用蜜罐的注册表和文件记录检测渗透攻击行为,Part1:本地信息收集
`
Windows安全日志分析
https://mp.weixin.qq.com/s/tk7AOuqSM_Q1EFDPEFHDRg
`
0x00 引言
在应急响应初步阶段,我们会对系统日志、中间件安全日志、恶意文件等进行收集。接下来便是要进一步对这些文件进行分析:对恶意文件逆向、日志文件分析、梳理入侵时间线和入侵路径等。本文主要对Windows安全日志进行举例分析。
0x01 基本介绍
Windows的日志文件主要有系统日志、应用程序日志、安全日志这三类,另外,根据不同的系统服务配置可能还会产生其他的日志文件,如Powershell日志、WWW日志、FTP日志、DNS服务器日志等。这些日志文件由Windows的EventLog服务生成并记录,EventLog服务由Windows服务管理器(%SystemRoot%\system32\services.exe)启动并管理。
在默认情况下, Windows日志仅仅记录一些特定日志,因为Windows日志中每种日志的大小默认为20M,超过大小之后会覆盖最早的日志记录。如果我们需要记录详细的安全日志,则需要通过修改本地策略或者在高级审核策略配置(gpedit.msc)中来启用其他项的日志记录功能。
1.1 打开方式
1.1.1 日志文件打开
1.1.2 运行eventvwr
1.1.3 服务器管理器
1.2 日志位置
Windows 2000 / Server2003 / Windows XP :%SystemRoot%\System32\Winevt\Logs\*.evtx
Windows Vista / 7 / 10 / Server2008 及以上版本:%SystemRoot%\System32\Config\*.evtx
1.3 日志分类
Windows主要有以下三类日志记录系统事件:应用程序日志、系统日志和安全日志。每种日志默认大小20M,超过大小后会覆盖最早的日志记录。
%SystemRoot%\System32\Winevt\Logs\System.evtx
%SystemRoot%\System32\Winevt\Logs\Security.evtx
%SystemRoot%\System32\Winevt\Logs\Application.evtx
1.4 结构组成
1.4.1 组成
1.4.2 属性
0x02 登录事件分析
2.1 登录类型
2.1.1 交互式登录(2)
2.1.2 网络连接 (3)
2.1.3服务启动(5)
2.1.4 解锁(7)
2.1.5 远程桌面连接(10)
2.2 子状态码
4625登录失败日志会存在子状态码的属性,通过改属性,我们可以对登录失败原因进行分析
0x03 事件ID分析
事件ID是Windows日志的基本属性之一,通过事件ID可以分析事件类型,其中需要重点关注的有4624,4625,4720,4726,4700,1102等。
0x04 场景日志分析
4.1 系统正常启动
4.2 账户管理
4.2.1 创建新账户
4.2.2 删除账户
4.3 RDP爆破
4.3.1 RDP正常成功登录
4.3.2 RDP正常失败登录
4.3.3 RDP爆破登录
4.4 IPC连接
4.5 SMB爆破
4.6 日志清除
在windows中,若运维人员开启了记录所有安全日志项,那么攻击者在拿到该服务器权限后的所有操作都可以在该安全日志中被记录到。所以清空该Security日志肯定是一个善后的必然选择。
打开windows日志-清除日志;清除日志会生成一条事件ID为1102 日志清除的日志,此条日志会记录清除日志操作的账户名。
0x05 总结
本文主要对Windows安全日志进行了分析与研究,从日志的分类、登录事件分析以及场景日志分析等方面进行了研究。总的来说,windows安全日志对于应急人员是重要且基础的分析项,对其进行深入学习研究有助于应急排查工作。
`
如何:通过 MMC 管理单元查看证书
https://docs.microsoft.com/zh-cn/dotnet/framework/wcf/feature-details/how-to-view-certificates-with-the-mmc-snap-in
`
查看当前用户的证书
1. 从“开始”菜单中选择“运行”,然后输入“certmgr.msc” 。此时会显示当前用户的证书管理器工具。
2. 若要查看证书,请在左窗格中的 “证书-当前用户” 下,展开要查看的证书类型的目录。
`
Windows 证书存储
https://experienceleague.adobe.com/docs/data-workbench/using/server-admin-install/install-servers/insight-server-dpu/dig-certs/crypto-api.html?lang=zh-Hans
从 Windows 获取 CA 证书
https://docs.vmware.com/cn/VMware-Horizon/2111/horizon-console-administration/GUID-43F2DA27-2FDF-4425-BC99-ABA84F4F493F.html
`
1. 在 Internet Explorer 中,选择工具 > Internet 选项。
2. 在内容选项卡上,单击证书。
3. 在个人选项卡上,选择您要使用的证书,然后单击查看。如果用户证书未显示在列表中,请单击 导入从文件中手动导入该证书。导入证书后,您就可以从列表中选择该证书。
4. 在证书路径选项卡上,选择树状结构顶端的证书,然后单击查看证书。如果用户证书是作为信任层次结构的一部分签发的,则签发证书可能由另一较高级别的证书签发。选择父证书(即实际签发用户证书的证书)作为您的根证书。在某些情况下,颁发者可能是中间 CA。
5. 在详细信息选项卡上,单击复制到文件。屏幕上将显示证书导出向导。
6. 单击下一步 > 下一步,然后键入要导出的文件的名称和位置。对于要导出的文件,请使用默认文件类型 CER。
7. 单击下一步将该文件作为根证书保存到指定的位置。
`
如何在Windows中查询证书颁发机构已颁发的证书
https://blog.csdn.net/qishine/article/details/105446586
Windows OS 有没有比较简单快速的录像/录屏的软件?好像 macos 的 quicktime 一样的?
https://www.v2ex.com/t/676521
`
系统自带快捷键 WIN+G 开启录屏工具
FSCapture.exe
obs
`
2020 年求好用的录屏软件~
https://www.v2ex.com/t/651861
`
command + shift + 5, mac 系统自带的
obs studio 免费全平台
`
win10 录屏 用 xbox 还是 GeForce 还是其他?
https://www.v2ex.com/t/679504
Windows 系统下,比较推荐的 gif 录制软件是?
https://v2ex.com/t/797173
OBS Studio
https://obsproject.com/
FastStone Capture (FSCapture)
https://www.faststone.org/FSCaptureDownload.htm
`
# Windows
Office2016 版本及以上 powerpoint 【插入->屏幕录制】就可以进行录制
win+g 打开xbox的录屏工具(但实际测试发现不能录制文件资源管理器的部分)
FastStone Capture (FSCapture)(需额外下载)
OBS studio 免费全平台
# macOS
command + shift + 5, mac 系统自带的 (启动台 – 其它 – 截屏)
OBS studio 免费全平台
`
神器推荐 | 我的第一个视频是如何诞生的
https://ops-coffee.cn/s/snobdspzayl9ozuekhcmya
`
ScreenToGif
OBS Studio
clipchamp
`
Windows下如何在命令行中进行文件下载?
Windows batch file file download from a URL
https://stackoverflow.com/questions/4619088/windows-batch-file-file-download-from-a-url
`
With PowerShell 2.0 (Windows 7 preinstalled) you can use:
> powershell -Command “(New-Object Net.WebClient).DownloadFile(‘http://www.example.com/package.zip’, ‘package.zip’)”
Starting with PowerShell 3.0 (Windows 8 preinstalled) you can use Invoke-WebRequest:
> powershell -Command “Invoke-WebRequest http://www.example.com/package.zip -OutFile package.zip”
`
CURL was added to Windows 10 (1903) from build 17063 or later.
https://ss64.com/nt/curl.html
`
curl -o awk_sed.txt https://ixyzero.com/blog/awk_sed.txt
`
http web request from batch file
https://stackoverflow.com/questions/420646/http-web-request-from-batch-file
https://raw.githubusercontent.com/npocmaka/batch.scripts/master/hybrids/jscript/winhttpjs.bat
`
call winhttpjs.bat http://ixyzero.com/blog/
call winhttpjs.bat “http://requestb.in/xxxxxx” -method GET -header hdrs.txt -reportfile reportfile3.txt -saveTo c:\somezip.zip
call winhttpjs.bat “http://requestb.in/xxxxxx” -method POST -header hdrs.txt -reportfile reportfile2.txt
call winhttpjs.bat “http://requestb.in/xxxxxx” -method POST -header hdrs.txt -reportfile reportfile2.txt -saveTo responsefile2 -ua “Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36” -body-file some.json
`
快速收集 Windows 相关信息,为应急响应争取更多的时间
`
* 进程列表
* 系统服务
* 系统日志
* 网络连接
* HOST信息
* 计划任务
* 已装软件
* 系统补丁
* 硬件信息:网卡、缓存、物理内存
* 系统启动项
* 路由表
* ARP信息
* 防火墙
* 远程桌面(mstsc)
* Recent文件
* Prefetch文件
* USB使用信息
* 共享资源
* 用户信息及SID
* IP信息
* 近三天内修改的文件
* 浏览器信息
* 剪切板内容
Output
│ 3days_modified.txt
│ arp.txt
│ auto_start.txt
│ cache.txt
│ dns_cache.txt
│ firewall.txt
│ netuse.txt
│ network.txt
│ network_connect.txt
│ physical_memory.txt
│ process.txt
│ recent.txt
│ route_tables.txt
│ scheduled_tasks.txt
│ services.txt
│ sid.txt
│ software.txt
│ systetm_patch.txt
│ user.txt
│
├─etc
│ hosts
│ lmhosts.sam
│ networks
│ protocol
│ services
│
└─eventlog
`
几种WINDOWS录屏技巧
http://blog.nsfocus.net/windowsscreen/
`
PPT录屏,这个法子很微软、很正宗,虽然听上去很野。PPT 2016及之后版本都支持,支持长时间录屏,我录过一个小时的。此法兼容性相当好,不依赖Microsoft Store,在LTSB版Win10中也能用,在远程桌面(RDP)中同样可以视音双录,如遇幺蛾子,参看
《PPT 2016录屏指南》
https://scz.617.cn/windows/202106171210.txt
PPT录屏最大的好处是,大概率你已经拥有它,不需要安装其他东西。
ZoomIt也支持录屏,但没有音频,这种适合教学展示,不适合听网课场景,不知Mark Russinovich会不会考虑支持音频。这是微软的绿色工具,非野生。
《Sysinternals ZoomIt 6.0支持录屏》https://scz.617.cn/windows/202207201035.txt
有Microsoft Store的Windows,可以装”Xbox Game Bar”,这玩意儿能录屏。Win-G呼出,Win-Alt-R开始录屏,再次Win-Alt-R结束录屏,缺省情况下自动保存到%USERPROFILE%\Videos\Captures\
对于常打游戏的人来说,”Xbox Game Bar”用起来还算顺手,不打游戏的,碰上这种软件,可能并不顺畅。一般来说,它以单个应用为单位进行录屏,先对焦到目标应用,就是让目标应用处于前台,再Win-G呼出”Xbox Game Bar”。缺省有个”捕获”浮动界面,若无,可从主界面点击”捕获”,之后就出来了。”捕获”界面上有几个钮,依次是截屏、录制最后30秒、录制、录制时打开麦克风,我们只关心左起第三个钮,录制。这个有快捷键,Win-Alt-R,按一次是录,再按一次是停,来回切换都是同一快捷键。有些文章会说Win-Alt-G,那是录制最后30秒的快捷键,不要与呼出主界面的Win-G搞混了。
离开主界面有两种办法,再按一次Win-G,或者按ESC。
“Xbox Game Bar”录屏时的目标应用不能是桌面或资源管理器,否则会在试图录屏时提示「游戏功能不可用于Windows桌面或文件资源管理器」,应该是对explorer.exe有限制,底层机理不明。这个限制及其提示,对非IT人士太不友好了,不少人测试失败均缘于此,最终弃用之。目标应用是CMD、RDP都没问题。
前述三种软件都算微软的,第三方软件就多了去了。录屏软件千千万,我是没这需求,也没深入对比测试过。很多工具,用哪个不用哪个,都是很个人的选择,好坏更是偏主观的判断。
前面PPT录屏已经很神奇了,但是,接下来的操作更神奇。
网友UID(5418532260)提到,有很多「在线录屏网站」,浏览器有捕获画面的API,打开网站就能录,比如
https://recordscreen.io/
我在虚拟机中用Chrome试了一下,可用,只需要浏览器本身,无需安装其他东西,即可进行录屏,神奇。点击”RECORD!”,有两种,”Screen+Cam”与”Screen Only”,前者应该同时采集摄像头,一般选后者好了。点击”START RECORDING”,会弹出一个界面,问你想分享什么,其实就是问你录哪个窗口。该界面有三种选择,Chrome标签页、窗口、整个屏幕,英文版这几项是Chrome Tab、Window、Entire screen,望文生义即可,可以录指定的Chrome标签页、桌面应用程序或者全屏。录桌面应用程序时,可以选资源管理器、远程桌面、Chrome、CMD等等。这个选择界面是Chrome展示的,不是js展示的,该过程就是授权过程,用户必须显式选择录制目标,否则不会录制,这将
阻止恶意网页利用该技术偷录。
选中录制目标后,点击”分享”,就是开始录制。之后有个悬浮窗,其中有”停止共享”,点击它就结束录制。出现新界面,可在线观看录屏结果,点击”DOWNLOAD VIDEO”下载video.webm,系统自带Windows Media Player就能放。不喜欢该格式的,自己本地转换。该在线屏录网站,对系统性能影响显著,不能指定录制码率什么的,但胜在「零安装可用」,应急时上佳选择。
简单点说,Chrome从版本49开始有一套API可以录屏,js可以调它们。严格来说,不是js录屏,是本地桌面应用程序Chrome录屏,只不过Chrome未在GUI中暴露此功能,目前可由js间接使用之。明白原理后,玄幻色彩淡了许多。Chrome录屏并非必须访问摄像头、麦克风,视你想录什么而定,不要为了录屏盲目允许访问摄像头、麦克风。
单说录屏,与WebRTC无关,只需js在浏览器中执行即可,无需服务端代码配合,无需各种「在线录屏网站」。这些随网页而来的js或者Chrome录屏插件,一般会回传录制结果到服务端,录全屏时,服务端不就看到任务栏、标签页了么,要万分谨慎,别给自己挖坑。
`
Using the Screen Capture API
https://developer.mozilla.org/en-US/docs/Web/API/Screen_Capture_API/Using_Screen_Capture
https://scz.617.cn/windows/screenrecord.html
20+ Best Screen Recorder Chrome Extensions in 2023
https://www.vmaker.com/blog/best-screen-recorder-chrome-extension/