Unix上的身份验证和相关目标:最佳实践
在扫描Unix和Linux等相关系统时,可以在不需要root权限的情况下扫描大多数漏洞。对于一些漏洞检查和许多策略检查,您将需要根访问权限。如果您计划使用非root用户进行扫描,则需要确保该帐户具有指定的权限,并注意非root用户将无法找到某些检查。下面几节包含了配置哪些内容以及只有通过根访问才能找到哪些内容的指导方针。由于检查的复杂性和经常更新的事实,这个列表可能会更改。
为了确保在作为非root用户扫描时几乎全面的漏洞覆盖,你需要做以下其中之一:
- 提升权限,以便您可以以root身份运行命令,而无需使用实际的root帐户。
- 对系统进行配置,使非root用户对指定的命令和目录具有权限。
以下部分描述这些选项的配置。
配置扫描环境以支持权限提升
一种不使用根用户或执行自定义配置就提升扫描权限的方法是使用权限提升,如sudo或pbrun。这些选项需要特定的配置(例如,对于pbrun,您需要将用户的shell列入白名单),但不需要您自定义权限应用程序运行的命令在下面。
应用程序运行的命令
下面的部分包含了应用程序在扫描时运行哪些命令的指导方针。这些命令中的绝大多数都可以在没有根用户的情况下运行。如上所述,当添加新的检查时,此列表可能会发生变化。
大多数命令都需要以下命令之一:
- 获取操作系统的版本
- 获取已安装软件包的版本
- 运行作为shell脚本实现的策略检查
应用程序期望命令是$PATH变量的一部分,并且不存在非标准的$PATH冲突。
以下命令适用于所有Unix/Linux发行版:
- 命令
- java
- sha1
- sha1sum
- md5
- md5sum
- awk
- grep
- 白鹭
- 减少
- 身份证件
- ls
- 解压缩
InsightVM将尝试扫描某些文件,并且如果用户帐户具有对这些文件的适当访问权限,将能够执行相应的检查。以下是帐户需要能够访问的文件或目录列表:
- 所属
- /etc/passwd
- grub.conf
- menu.lst
- lilo.conf
- syslog.conf
- / etc / permissions
- /etc/securetty
- /var/log/postgresql
- /etc/hosts.equiv
- . netrc
- '/','/ dev','/ sys','/ proc'/ home“”/ var“”/等“
- /etc/master.passwd
- 中
对于Linux,应用程序需要读取以下文件(如果存在)以确定分发:
- /etc/debian_release
- / etc / debian_version
- /etc/redhat-release
- /etc/redhat_version
- /etc/os-release
- /etc/SuSE-release
- /etc/fedora-release
- /etc/slackware-release
- /etc/slackware版本
- /etc/system-release
- /etc/mandrake-release
- /etc/yellowdog-release
- / etc / gentoo-释放
- /etc/UnitedLinux-release
- /etc/vmware-release
- /etc/slp.reg
- /etc/oracle-release
在任何UNIX或相关变体(例如Ubuntu或OS X)上,有特定命令该帐户需要能够执行以运行特定检查。这些命令应为帐户白名单。
该帐户需要能够执行以下命令的某些检查:
- 猫
- 找到
- mysqlaccess
- mysqlhotcopy
- 上海
- sysctl
- dmidecode
- 液体
- apt-get
- rpm
对于以下类型的发行版,帐户需要指定的执行权限。
AIX
需要Root权限才能正确运行,而不会报告误报漏洞。
- lslpp–cL列出包裹
- oslevel
- emgr - l
蓝色的外套
- 显示版本
思科
漏洞扫描所需:
- 显示版本(注意:这在多个Cisco平台上使用,包括IOS、PIX、ASA和IOR-XR)
策略扫描需要:
- 显示版|.包括思科
- 显示界面
- 显示running-config
- 显示snmp主机
- 显示运行|包括横幅登录
- show log | include Trap日志
- snmp用户显示
- 显示snmp集团
- 显示IP SSH |包括重试
- 显示共深度点
- 显示IP SSH |含有超时
- Show running-config | include []邻居[], *[] *密码
- 显示运行|包括横幅执行
- Show run | include banner motd
Debian-based分布
- uname
- dpkg
- 白鹭
- 减少
- XARGS.
F5
- "version", "show",或"tmsh show sys version"
FreeBSD
- FreeBSD -version需要指纹FreeBSD 10及以上版本
- 在FreeBSD 10之前的版本上执行cat /var/db/ FreeBSD -update/tag需要用户账号的权限。
- FreeBSD软件包指纹需要:
- 包裹的信息
- 包装信息
瞻博网络
- uname
- 显示版本
Mac OS X
- /usr/sbin/softwareupdate
- /usr/sbin/system_profiler
- sw_vers
帕洛阿尔托网络PAN-OS
- 显示系统信息
基于rpm的发行版(例如Red Hat、SUSE或Oracle)
- uname
- rpm
- chkconfig
Solaris
- Showrev.
- pkginfo
- ndd
VMware ESX或ESXi
- vmware - v
需要RootExecutionService的漏洞检查
对于某些漏洞检查,需要根访问权限。如果您选择使用非root用户进行扫描,请注意,即使您的系统上存在这些漏洞,也不会找到这些漏洞。以下是需要root用户访问的检查列表:
您可以在安全控制台的搜索栏中搜索漏洞ID,查找漏洞描述和其他详细信息。
脆弱性标题 |
脆弱性ID |
|---|---|
Solaris串口登录提示 |
solaris-serial-login-prompts |
Solaris松散目标多归属 |
solaris-loose-dst-multihoming |
启用Solaris转发源路由 |
solaris-forward-source-route |
Solaris Echo Multicast Reply启用 |
solaris回送多播应答 |
已接受Solaris ICMP重定向错误 |
solaris重定向已接受 |
启用Solaris反向源路由 |
Solaris-Reverse Source-Route |
启用Solaris前向定向广播 |
solaris前向广播 |
Solaris时间戳广播应答启用 |
solaris-timestamp-broadcast-reply |
Solaris Echo Broadcast Reply启用 |
solaris-echo-broadcast-reply |
Solaris空密码 |
solaris-empty-passwords |
OpenSSH配置允许SSHv1协议* |
unix-check-openssh-ssh-version-two * |
. rhosts文件存在 |
unix-rhosts-file |
.NETRC文件存在 |
unix netrc文件 |
MySQL mysqlhotcopy临时文件符号链接攻击 |
UNIX-MYSQL-MYSQLHOTCOPY-TEMP文件 |
分区安装弱点 |
unix-partition-mounting-weakness |
- OpenSSH config允许使用SSHv1协议/unix-check-openssh-ssh-version-two和另一种检查在概念上是一样的,SSH服务器支持SSH协议v1 clients/ SSH -v1-supported,它不需要根。