系统信息-System Information
由于我们将使用许多不同的 Linux 系统,因此我们需要了解系统的结构和信息、其进程、网络配置、用户、目录、用户设置以及相应的参数。以下是帮助我们获取上述信息的必要工具的列表。其中大多数都是默认安装的。
命令 | 描述 |
---|---|
whoami | 显示当前用户名。 |
id | 返回用户身份 |
hostname | 设置或打印当前主机系统的名称。 |
uname | 打印有关操作系统名称和系统硬件的基本信息。 |
pwd | 返回工作目录名称。 |
ifconfig | ifconfig 实用程序用于分配或查看网络接口的地址和/或配置网络接口参数。 |
ip | Ip 是一个显示或操作路由、网络设备、接口和隧道的实用程序。 |
netstat | 显示网络状态。 |
ss | 另一个用于研究套接字的实用程序。 |
ps | 显示进程状态。 |
who | 显示谁已登录。 |
env | 打印环境或设置并执行命令。 |
lsblk | 列出块设备。 |
lsusb | 列出 USB 设备 |
lsof | 列出打开的文件。 |
lspci | 列出 PCI 设备。 |
让我们看几个例子。
hostname
该hostname
命令非常不言自明,只会打印我们登录的计算机的名称

whoami
这个快速简单的命令可以在 Windows 和 Linux 系统上使用来获取我们当前的用户名。在安全评估过程中,我们获得主机上的反向 shell 访问权限,我们应该做的首要的态势感知工作之一就是弄清楚我们正在以什么用户身份运行。从那里,我们可以确定用户是否具有任何特殊权限/访问权限。

ID
该id
命令扩展了该whoami
命令并打印出我们的有效组成员身份和 ID。对于想要查看用户可能拥有哪些访问权限的渗透测试人员以及想要审核帐户权限和组成员身份的系统管理员来说,这可能会很有趣。在此输出中,该hackthebox
组是令人感兴趣的,因为它是非标准的,该adm
组意味着用户可以读取日志文件/var/log
并可能获得对敏感信息的访问权限,该sudo
组的成员资格特别令人感兴趣,因为这意味着我们的用户可以以全能root
用户身份运行部分或全部命令。Sudo 权限可以帮助我们升级权限,也可以向系统管理员发出信号,表明他们可能需要审核权限和组成员身份,以删除给定用户执行日常任务不需要的任何访问权限。

uname
让我们uname
进一步深入研究一下该命令。如果我们在终端中输入man uname
,我们将显示该命令的手册页,其中将显示我们可以使用该命令运行的可能选项和结果。
<span style="color:#a4b1cd"><span style="background-color:#141d2b"><span style="background-color:#141d2b"><span style="color:#a4b1cd"><code class="language-shell-session">
UNAME(1) User Commands UNAME(1)
NAME
uname - print system information
SYNOPSIS
uname [OPTION]...
DESCRIPTION
Print certain system information. With no OPTION, same as -s.
-a, --all
print all information, in the following order, except omit -p and -i if unknown:
-s, --kernel-name
print the kernel name
-n, --nodename
print the network node hostname
-r, --kernel-release
print the kernel release
-v, --kernel-version
print the kernel version
-m, --machine
print the machine hardware name
-p, --processor
print the processor type (non-portable)
-i, --hardware-platform
print the hardware platform (non-portable)
-o, --operating-system
</code></span></span></span></span>
运行时uname -a
会按特定顺序打印有关机器的所有信息:内核名称、主机名、内核版本、内核版本、机器硬件名称和操作系统。如果(处理器类型)和(硬件平台)未知,该-a
标志将省略它们。-p-i

从上面的命令中,我们可以看到内核名称是Linux
,主机名是box
,内核版本是4.15.0-99-generic
,内核版本是#100-Ubuntu SMP Wed Apr 22 20:32:56 UTC 2020
,等等。单独运行这些选项中的任何一个都会为我们提供我们感兴趣的特定位输出。
Uname 获取内核版本
假设我们想要打印出内核版本以快速搜索潜在的内核漏洞。我们可以通过输入uname -r
来获取这些信息。
有了这些信息,我们可以去搜索“4.15.0-99-genericexploit”,第一个结果立即对我们有用。
强烈建议研究这些命令并了解它们的用途以及它们可以提供哪些信息。虽然有点乏味,但我们可以通过研究常用命令的手册页学到很多东西。我们甚至可能会发现一些我们甚至不知道通过给定命令可能发生的事情。此信息不仅用于使用 Linux。不过,稍后它还将用于发现 Linux 系统上可能导致权限升级的漏洞和错误配置。这里有一些可选练习,我们可以出于练习目的进行解决,这将帮助我们熟悉一些命令。
通过 SSH 登录
Secure Shell
( SSH
) 是指允许客户端访问并执行远程计算机上的命令或操作的协议。在运行基于 Linux 或其他类 Unix 操作系统的主机和服务器上,SSH 是永久安装的标准工具之一,并且是许多管理员通过远程访问配置和维护计算机的首选。它是一种较旧且经过验证的协议,不需要也不提供图形用户界面 (GUI)。因此,它的工作效率非常高,并且占用的资源很少。我们在以下部分和大多数其他模块中使用这种类型的连接,以便提供在安全环境中尝试学习的命令和操作的可能性。我们可以使用以下命令连接到我们的目标:
SSH登录
开始实例
下载vpn配置,连接vpn
┌──(root㉿kali)-[~/桌面]
└─# openvpn academy-regular.ovpn
通过ssh连接到目标主机
┌──(root㉿kali)-[~/桌面]
└─# ssh htb-student@10.129.71.206
提问区
找出机器硬件名称并将其作为答案提交。
+ 0 Find out the machine hardware name and submit it as the answer.
x86_64
htb-student 的主目录的路径是什么?
+ 1 What is the path to htb-student's home directory?
htb-student的邮件路径是什么?
+ 0 What is the path to the htb-student's mail?
使用命令 env | grep mail
答案是 /var/mail/htb-student
为 htb-student 用户指定了哪个 shell?
+ 0 Which shell is specified for the htb-student user?
系统上安装了哪个内核版本?(格式:1.22.3)
+ 0 Which kernel version is installed on the system? (Format: 1.22.3)
MTU 设置为 1500 的网络接口的名称是什么
+ 1 What is the name of the network interface that MTU is set to 1500?