Unix上的身份验证和相关目标:最佳实践
对于扫描UNIX和相关系统(如Linux),可以扫描大多数漏洞,而无需root访问权限。您将需要root访问少量漏洞检查,以及许多策略检查。如果打算使用非root用户扫描,则需要确保帐户具有指定的权限,并意识到非root用户不会找到某些检查。以下部分包含要配置的准则以及配置的准则只能发现root访问权限。由于检查的复杂性以及它们经常更新的事实,此列表可能会发生变化。
为了确保在作为非root用户扫描时几乎全面的漏洞覆盖,你需要做以下其中之一:
- 提升权限,以便您可以以root身份运行命令,而无需使用实际的root帐户。
- 对系统进行配置,使非root用户对指定的命令和目录具有权限。
以下部分描述这些选项的配置。
配置扫描环境以支持权限提升
一种不使用根用户或执行自定义配置就提升扫描权限的方法是使用权限提升,如sudo或pbrun。这些选项需要特定的配置(例如,对于pbrun,您需要将用户的shell列入白名单),但不需要您自定义权限命令应用程序运行在下面。
命令应用程序运行
以下部分包含应用程序在扫描时运行的命令的指南。绝大多数这些命令可以在没有root的情况下运行。如上所述,随着添加新检查,此列表可能会进行更改。
大多数命令都需要以下命令之一:
- 获取操作系统的版本
- 获取已安装软件包的版本
- 运行作为shell脚本实现的策略检查
应用程序期望命令是$PATH变量的一部分,并且不存在非标准的$PATH冲突。
以下命令适用于所有Unix/Linux发行版:
- ifconfig
- java
- sha1
- sha1sum
- md5
- md5sum.
- awk
- grep
- egrep
- 减少
- id
- ls
- 解压缩
InsightVM将尝试扫描某些文件,并将能够执行相应的检查,如果用户帐户有适当的访问这些文件的权限。以下是该帐户需要能够访问的文件或目录列表:
- / etc / group
- / etc / passwd
- grub.conf
- menu.lst
- lilo.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-reforre
- /etc/redhat_version
- / etc / OS-释放
- /etc/SuSE-release
- /etc/fedora-release
- / etc / slackware-reforment
- /etc/slackware-version
- /etc/system-release
- / etc / mandrake-释放
- /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
- perlsuid
- apt-get.
- rpm
对于以下类型的发行版,帐户需要指定的执行权限。
AIX
为了正确运行而不报告假阳性漏洞,需要根特权。
- lslpp -cL以列出包
- oslevel
- emgr - l
蓝色的外套
- 显示版本
思科
漏洞扫描所需:
- 显示版本(注意:这在多个思科平台上使用,包括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
- egrep
- 减少
- XARGS.
F5
- "version", "show",或"tmsh show sys version"
FreeBSD.
- FreeBSD -version需要指纹FreeBSD 10及以上版本
- 在FreeBSD 10之前的版本上执行cat /var/db/ FreeBSD -update/tag需要用户账号的权限。
- FreeBSD包指纹要求:
- 包裹的信息
- pkg_info
瞻博网络
- uname
- 显示版本
Mac OS X
- /usr/sbin/softwareupdate
- /usr/sbin/system_profiler
- sw_vers
Palo Alto Networks Pan-OS
- 显示系统信息
基于rpm的发行版(例如Red Hat、SUSE或Oracle)
- uname
- rpm
- chkconfig
Solaris
- Showrev.
- pkginfo
- ndd
VMware ESX或ESXi
- vmware - v
漏洞检查需要RootExecutionService
对于某些漏洞检查,需要根访问权限。如果您选择使用非root用户进行扫描,请注意将不会发现这些漏洞,即使它们存在于您的系统中。下面是需要根访问权限的检查列表:
您可以在安全控制台的搜索栏中搜索漏洞ID,查找漏洞描述和其他详细信息。
脆弱性标题 |
脆弱性ID |
|---|---|
Solaris串口登录提示 |
solaris-serial-login-prompts |
Solaris松散目标多归属 |
solaris-loose-dst-multihoming |
启用Solaris正向源路由 |
solaris-forward-source-route |
Solaris Echo Multicast Reply启用 |
solaris-echo-multicast-reply |
接受Solaris ICMP重定向错误 |
solaris-redirects-accepted |
启用Solaris反向源路由 |
Solaris-Reverse Source-Route |
启用Solaris正向定向广播 |
solaris-forward-directed-broadcasts |
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-files |
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,它不需要根。