THM学习笔记——枚举

复制以下内容时注意中英文符号区别

在枚举之前我们要将shell升级为完全交互式的tty。

这涉及以下几条命令

python -c 'import pty;pty.spawn("/bin/bash")'

stty raw -echo

export TERM=xterm

rlwrap nc -lvnp 443

从以上选一条即可

手动枚举

以下命令只需了解即可,需要的时候自行搜索即可,但还是建议每一行记住一个

用户

whoami  id  id root  who  w  last

THM学习笔记——枚举_第1张图片

以下是gpt对于以上命令的解释。

"whoami" 是一个命令行指令,在大多数类Unix操作系统中可用。它用于显示当前登录用户的用户名。当您在命令行中输入 "whoami" 并按下回车键时,系统会返回当前用户的用户名。这个命令通常用于确认当前用户身份,尤其是在执行脚本或进行系统管理任务时。

"id" 命令是一个在类Unix操作系统中可用的命令行指令。它用于显示当前用户的用户ID (UID) 和所属的组ID (GID),以及用户所属的其他组的ID。通常情况下,"id" 命令会返回当前用户的 UID 和 GID,以及用户所属的附加组的信息。

当您在命令行中输入 "id" 并按下回车键时,系统会显示当前用户的相关信息,包括用户ID、组ID以及附加组的ID。这些信息对于确定用户的权限和身份以及文件访问权限非常有用。

"root" 是Unix和类Unix操作系统中的超级用户账户,具有系统上的最高权限。如果您在命令行中输入 "id root" 并按下回车键,系统将显示与 "root" 用户相关的信息,包括用户ID (UID) 和所属的组ID (GID),以及任何其他附加组的ID。这可以帮助确认 "root" 用户的身份和权限。

"who" 是一个命令行指令,在Unix和类Unix操作系统中可用。它用于显示当前登录到系统上的用户信息,包括用户名、登录时间以及登录来源(终端或远程连接)。

当您在命令行中输入 "who" 并按下回车键时,系统会列出当前登录用户的信息,通常包括用户名、登录时间和登录来源。这个命令对于管理员来说是管理系统上用户会话的一个有用工具,可以用来跟踪当前系统上的活动会话。

"w" 命令是一个用于查看当前系统上活动用户的命令行指令,通常用于Unix和类Unix操作系统。它显示登录到系统上的用户信息,包括用户名、登录时间、登录终端以及用户的当前活动进程。

当您在命令行中输入 "w" 并按下回车键时,系统会列出当前登录用户的信息,包括用户名、登录时间、登录终端以及用户的当前活动进程。这个命令对于系统管理员来说是一个有用的工具,可以用来跟踪用户的活动和资源使用情况。

"last" 命令用于显示系统中最近登录的用户信息。它会列出系统中过去的登录会话,包括用户名、登录时间、登录来源(如终端、远程连接等)以及注销时间(如果有的话)。

当您在命令行中输入 "last" 并按下回车键时,系统会显示最近登录的用户的信息,通常按时间顺序排列。这个命令对于系统管理员来说是一个有用的工具,可以用来审查系统登录历史,跟踪用户活动,以及进行安全审计和故障排除。

 版本

uname -a   lsb_release -a   cat /proc/version   cat /etc/issue  hostnamectl

THM学习笔记——枚举_第2张图片

以下是gpt对于以上命令的解释。

"uname -a" 是一个在 Unix 和类 Unix 操作系统中可用的命令行指令。它用于显示系统的内核信息和主机信息。当您在命令行中输入 "uname -a" 并按下回车键时,系统会返回以下信息:

  • 内核名称

  • 主机名

  • 内核版本号

  • 发行版信息

  • 硬件架构信息

这些信息对于了解系统配置以及进行系统管理和故障排除非常有用。

"lsb_release -a" 是一个命令行指令,用于在支持 LSB(Linux Standard Base)的 Linux 系统中查看发行版的信息。LSB 是一组标准,旨在提供跨 Linux 发行版的二进制兼容性。

当您在命令行中输入 "lsb_release -a" 并按下回车键时,系统会返回以下信息:

  • 发行版 ID

  • 描述(包括版本号)

  • 发行版号码

  • 发行版代号

  • 发行版的发布日期

这些信息对于确定系统正在运行的 Linux 发行版及其版本非常有用,特别是在软件安装、配置和兼容性方面。

cat /proc/version 命令用于在 Linux 系统中显示内核版本信息。当您在命令行中执行这个命令时,它会显示当前系统运行的 Linux 内核的版本信息,通常包括内核版本号、编译日期和操作系统的其他相关信息。

输出的格式可能因系统而异,但通常会提供有关内核版本的详细信息,以便系统管理员或用户了解当前系统的配置和状态。

cat /etc/issue 是一个用于查看当前系统发行版信息的命令。它通常用于 Linux 系统。执行这个命令会显示当前系统登录页面的信息,包括发行版名称、版本号等。

这个文件通常包含一些欢迎信息和发行版的标识,但实际显示的内容可能因不同的发行版而有所不同。一些发行版可能会将该文件用于提供系统登录界面的欢迎信息,但并不是所有的发行版都这样使用。

总的来说,/etc/issue 是一个包含系统登录界面信息的文本文件,在某些情况下,它也可能包含其他有用的系统信息。

hostnamectl 是一个用于管理系统主机名的命令行工具,通常在使用 systemd 的 Linux 系统上可用。它允许用户查看和修改系统的主机名以及相关的系统信息。

当您在命令行中输入 hostnamectl 并按下回车键时,系统会显示当前系统的主机名、操作系统版本、虚拟化类型以及其他相关信息。

此外,hostnamectl 还允许您使用参数来修改系统的主机名,例如 hostnamectl set-hostname [new_hostname],其中 [new_hostname] 是您希望设置的新主机名。修改主机名可能需要管理员权限。

总体而言,hostnamectl 是一个方便管理系统主机名和相关信息的工具,特别适用于运行 systemd 的现代 Linux 发行版。

 地址

ip addr   ifconfig   ip route   route   ip neigh   arp -a

THM学习笔记——枚举_第3张图片

以下是gpt对于以上命令的解释。

ip addr 是一个用于查看系统网络接口信息的命令行指令。在Linux系统上,它显示当前系统的网络接口配置和状态。

当您在命令行中输入 ip addr 并按下回车键时,系统会列出当前系统所有网络接口的详细信息,包括接口名称、MAC地址、IP地址、子网掩码、广播地址以及其他相关信息。

这个命令对于网络管理员和系统管理员来说是一个非常有用的工具,可以帮助他们了解系统的网络配置,诊断网络问题,以及进行网络设置和管理。

ifconfig 是一个用于显示和配置网络接口信息的命令行工具,它在许多Unix和Linux系统中可用。然而,它已经被较新的工具如 ip addr 所替代,在某些系统中可能已经被移除或者不再默认安装。

当您在命令行中输入 ifconfig 并按下回车键时,系统会显示当前系统中所有网络接口的详细信息,包括接口名称、MAC地址、IP地址、子网掩码、广播地址以及其他相关信息。

虽然 ifconfig 仍然是一个有效的网络配置工具,但是它的功能有限,并且在一些最新的Linux发行版中被认为是过时的。因此,建议使用更现代的工具如 ip addr 进行网络接口配置和管理。

ip route 是一个用于显示系统当前网络路由表的命令行指令,在大多数Linux系统中都可用。路由表是系统用来确定数据包转发的规则集合。

当您在命令行中输入 ip route 并按下回车键时,系统会显示当前系统的路由表,包括目标网络、网关、接口和其他相关信息。这些信息对于理解系统如何路由网络流量以及诊断网络连接问题非常有用。

ip route 的输出通常以一种易于理解的格式显示,列出了每个目标网络及其相关的路由信息。

route 命令用于显示和操作系统的 IP 路由表,通常在 Unix 和类 Unix 系统中可用。它允许用户查看系统中当前配置的路由信息,并且可以用来添加、删除或修改路由表中的路由项。

当您在命令行中输入 route 并按下回车键时,系统会显示当前系统的 IP 路由表。这个表列出了目标网络、网关、接口和其他相关信息,以及每个路由项的状态和优先级。

尽管 route 命令在过去被广泛使用,但是在一些较新的 Linux 发行版中,推荐使用更现代的工具,比如 ip route 命令来管理网络路由表。因为 ip route 提供了更多的功能,并且是 Linux 系统网络管理的推荐工具之一。

ip neigh 是一个用于管理系统的 ARP 缓存表的命令行指令,通常在类 Unix 系统中可用。ARP(Address Resolution Protocol)是用于将 IP 地址映射到物理硬件地址(MAC 地址)的协议。

当您在命令行中输入 ip neigh 并按下回车键时,系统会显示当前系统的 ARP 缓存表,其中包含了已知的 IP 地址与物理硬件地址的对应关系。这个命令对于诊断网络连接问题、查找特定设备的 MAC 地址以及监视网络流量非常有用。

ARP 缓存表中的条目通常包括目标 IP 地址、目标 MAC 地址、接口名称、状态和生存时间等信息。通过查看这些信息,用户可以了解系统如何解析 IP 地址到物理硬件地址,并识别网络中的设备。

arp -a 是一个命令行指令,用于在类 Unix 操作系统中显示系统的 ARP(Address Resolution Protocol)缓存表。ARP 缓存表存储了 IP 地址和对应的物理硬件地址(MAC 地址)之间的映射关系。

当您在命令行中输入 arp -a 并按下回车键时,系统会显示当前系统的 ARP 缓存表,其中列出了已知的 IP 地址和与之关联的 MAC 地址。这个命令对于查找本地网络中已知的设备以及进行网络故障排除非常有用。

每条 ARP 缓存表目录通常包含了目标 IP 地址、对应的 MAC 地址、接口类型和状态等信息。通过查看这些信息,可以了解系统与其他设备之间的通信情况,并在需要时诊断网络问题。

 主机名

hostname   hostnamectl

THM学习笔记——枚举_第4张图片

以下是gpt对于以上命令的解释。

hostname 是一个用于显示或设置系统主机名的命令行指令,在 Unix 和类 Unix 系统中可用。

当您在命令行中输入 hostname 并按下回车键时,系统会显示当前系统的主机名。主机名通常是用来识别和区分网络中的不同计算机的名称。

您还可以使用 hostname 命令来设置系统的主机名。例如,输入 hostname newhostname 将会将系统的主机名设置为 "newhostname"。修改主机名通常需要管理员权限,并且对系统和网络配置可能会产生影响,因此请谨慎操作。

确定当前用户在系统上的权限范围以及了解哪些特权命令是允许执行

sudo -l

THM学习笔记——枚举_第5张图片

以下是gpt对于以上命令的解释。

sudo -l 是一个用于列出当前用户在系统上可以执行的特权命令的 sudo 命令的选项之一。sudo 是 Unix 和类 Unix 系统中用于以其他用户身份运行命令的工具,通常是以超级用户权限运行。

当您在命令行中输入 sudo -l 并按下回车键时,系统会提示您输入当前用户的密码,然后显示当前用户在系统上可以执行的特权命令列表,以及相应的 sudo 配置。

这个命令对于确定当前用户在系统上的权限范围以及了解哪些特权命令是允许执行的非常有用。

 哪些特权被授予给了哪些文件

getcap -r / 2>/dev/null

以下是gpt对于以上命令的解释。

getcap -r / 2>/dev/null 命令用于递归地获取文件系统中所有文件的 POSIX capabilities(权限设置),并将结果输出到标准输出。2>/dev/null 是将标准错误输出重定向到 /dev/null,这样可以避免显示错误消息。

POSIX capabilities 是一种 Linux 内核的安全功能,允许普通用户执行一些通常需要特权用户(如 root 用户)才能执行的操作,而不必完全提升权限。

这个命令的执行可能需要管理员权限,因为它需要访问整个文件系统并检查文件的权限设置。

在输出中,您将看到文件路径,以及它们的权限设置。这些设置表明了哪些特权被授予给了这些文件。

 显示文件

ls -a   ls -liah   history

以下是gpt对于以上命令的解释。

ls -a 是一个用于在命令行中显示当前目录下所有文件(包括隐藏文件)的命令。在 Unix 和类 Unix 系统中,文件名以点号(.)开头的文件被视为隐藏文件。

当您在命令行中输入 ls -a 并按下回车键时,系统会显示当前目录下的所有文件和子目录,包括以点号(.)开头的隐藏文件。这个命令对于查看和管理当前目录中的所有文件非常有用。

常见的用法包括在文件操作、查找文件、以及浏览目录结构时使用。

ls -liah 是一个用于以详细列表格式显示当前目录下所有文件(包括隐藏文件)的命令。下面是该命令中各选项的含义:

  • -l: 使用长格式列出文件信息。

  • -i: 显示每个文件的 inode 号码。

  • -a: 显示所有文件,包括以点号(.)开头的隐藏文件。

  • -h: 以易读的方式(例如,KB、MB、GB 等)显示文件大小。

当您在命令行中输入 ls -liah 并按下回车键时,系统会以详细列表格式显示当前目录下的所有文件和子目录,包括隐藏文件。列出的信息包括文件权限、链接数、所有者、组、大小、修改日期和时间、文件名等。

history 是一个命令行指令,在 Unix 和类 Unix 系统中可用。它用于显示当前用户在当前会话中执行过的命令历史记录。

当您在命令行中输入 history 并按下回车键时,系统会显示您在当前会话中执行过的命令列表,通常按照命令执行的顺序排列。每个命令都会附带一个序号,从1开始递增。

history 命令通常用于查看先前执行的命令,以便快速访问和重新执行以前执行的命令,或者对命令历史进行审查和分析。您还可以使用历史记录编号来重新执行先前执行过的命令,例如 !123 将会重新执行历史记录中编号为123的命令。

显示 /etc/passwd 文件的内容

cat /etc/passwd

以下是gpt对于以上命令的解释。

/etc/passwd 文件是一个包含了系统上所有用户账户信息的文本文件,通常位于 Unix 和类 Unix 系统中。这个文件包含了每个用户账户的基本信息,如用户名、用户ID(UID)、组ID(GID)、用户的全名、用户主目录以及登录 shell 等。

当您在命令行中执行 cat /etc/passwd 命令时,系统会将 /etc/passwd 文件的内容显示在您的终端上。每一行对应一个用户账户的信息,字段之间由冒号(:)分隔。一般来说,普通用户的信息存储在这个文件中。

尽管 /etc/passwd 存在,但实际上,现代 Unix 和类 Unix 系统通常使用其他方法来管理用户账户信息,例如 /etc/shadow 文件用于存储加密后的密码信息。

 显示 /etc/crontab 文件的内容

cat /etc/crontab

THM学习笔记——枚举_第6张图片

以下是gpt对于以上命令的解释。

/etc/crontab 文件是用于存储系统范围的定时任务(cron jobs)的配置文件,通常在 Linux 和类 Unix 系统中可用。cron 是一个用于在预定时间自动运行命令或脚本的系统服务。

当您执行 cat /etc/crontab 命令时,系统会将 /etc/crontab 文件的内容显示在终端上。这个文件包含了系统范围内的定时任务的配置信息,例如要运行的命令、执行的时间间隔以及要运行命令的用户等。

/etc/crontab 文件的格式和普通的 cron 配置文件类似,但是它还包含了一个字段来指定要运行定时任务的用户。通常,这个文件用于系统管理员配置系统范围内的定时任务,例如系统维护、日志清理等。

 环境变量

echo $PATH   env

THM学习笔记——枚举_第7张图片

以下是gpt对于以上命令的解释。

echo $PATH 命令用于显示当前用户的环境变量 PATH 的值。在 Unix 和类 Unix 系统中,PATH 是一个重要的环境变量,它包含了系统用于查找可执行文件的一系列目录路径。

当您在命令行中执行 echo $PATH 并按下回车键时,系统会将 PATH 环境变量的值显示出来。通常,PATH 变量的值是一串由冒号分隔的目录路径列表,例如:

/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin

这意味着当您输入命令时,系统会在这些目录中搜索可执行文件,以便找到要执行的命令。

env 命令用于显示当前 shell 运行环境中的所有环境变量及其值。它通常用于显示当前会话中所有已定义的环境变量,包括 PATH、HOME、USER 等等。

当您在命令行中输入 env 并按下回车键时,系统会列出当前 shell 运行环境中的所有环境变量及其对应的值。这个命令对于了解系统环境及其配置非常有用,特别是在执行脚本或者进行系统管理时。

 ps类

ps -A   ps -ef   ps axjf   ps aux   top   top -n 1

以下是gpt对于以上命令的解释。

ps -A 是一个用于显示系统上所有进程的命令。在 Unix 和类 Unix 系统中,ps 命令用于显示当前正在运行的进程的快照。

当您在命令行中输入 ps -A 并按下回车键时,系统会列出所有活动进程的相关信息,包括进程ID(PID)、父进程ID(PPID)、用户、CPU使用情况、内存使用情况以及进程的状态等等。

参数 -A 用于显示所有进程,而不仅仅是当前用户的进程。这意味着它将显示系统中所有用户的所有进程。

ps 命令的输出通常是一个快照,所以随着时间的推移,进程可能会改变或消失。因此,每次运行 ps 命令时,您都会得到当前运行的进程列表。

ps -ef 是一个用于显示系统上所有进程的详细信息的命令。在 Unix 和类 Unix 系统中,ps 命令用于显示当前正在运行的进程的快照。

当您在命令行中输入 ps -ef 并按下回车键时,系统会列出所有活动进程的详细信息,包括进程的用户、进程ID(PID)、父进程ID(PPID)、CPU使用情况、内存使用情况以及进程的状态等等。

参数 -ef 的含义如下:

  • -e 表示显示所有进程,而不仅仅是当前用户的进程。

  • -f 表示显示完整的进程信息,包括进程的所有属性。

这个命令非常有用,可以帮助您了解系统中正在运行的进程的情况,以及它们所占用的资源。

ps axjf 是一个用于显示进程树的命令,通常在类 Unix 系统中可用。它显示当前系统上所有进程及其父进程之间的层次关系。

这个命令的参数含义如下:

  • a: 显示所有用户的进程,而不仅仅是当前用户的进程。

  • x: 显示无控制终端的进程。

  • j: 使用项目列表格式输出。

当您在命令行中输入 ps axjf 并按下回车键时,系统会以树状结构的形式显示当前系统上所有进程及其父子关系。这使您可以更清楚地了解进程之间的层次关系,以及它们的执行情况。

这对于系统管理和调试来说是一个有用的工具,尤其是当需要了解进程之间的依赖关系和层次结构时。

ps aux 是一个常用的命令,用于显示当前系统上所有进程的详细信息,通常在类 Unix 系统中可用。下面是各选项的含义:

  • a: 显示所有用户的进程,而不仅仅是当前用户的进程。

  • u: 使用详细的格式列出进程信息。

  • x: 显示无控制终端的进程。

当您在命令行中输入 ps aux 并按下回车键时,系统会列出所有活动进程的详细信息,包括进程的用户、进程ID(PID)、CPU使用情况、内存使用情况、启动时间、命令等。

这个命令对于系统管理和监视进程活动非常有用,可以帮助您了解系统上正在运行的进程,以及它们占用的资源情况。

top 是一个用于实时监视系统中进程活动的命令行工具,在 Unix 和类 Unix 系统中通常可用。它显示当前系统上运行的进程的信息,并以交互方式更新。

当您在命令行中输入 top 并按下回车键时,系统会显示一个实时更新的进程列表,其中包含了各个进程的相关信息,例如进程ID(PID)、CPU使用情况、内存使用情况、进程状态等。

top 命令还提供了许多交互式功能,例如您可以使用键盘上的不同键来进行排序、筛选、更改显示的列等操作。这使得 top 成为一个非常强大的系统监视工具,特别是用于检测和解决系统资源相关的问题时。

要退出 top,您可以按下 q 键。

top -n 1 命令用于以非交互模式运行 top,并指定只执行一次,而不是周期性地更新显示。通常,top 命令会持续显示系统上的进程活动,并且在用户交互时会不断更新。

但是,使用 -n 选项可以指定 top 命令运行的次数。在这种情况下,top 会执行一次并显示当前的进程信息,然后退出。

因此,当您在命令行中输入 top -n 1 并按下回车键时,系统会显示一次当前系统上运行的进程信息,并在显示完成后退出 top,而不会保持持续更新的状态。

 netstat

netstat -a   netstat -at   netstat -au   netstat -l   netstat -s  netstat -ano

以下是gpt对于以上命令的解释。

netstat -a 是一个用于显示系统网络连接状态的命令行指令,通常在 Unix 和类 Unix 系统中可用。

当您在命令行中输入 netstat -a 并按下回车键时,系统会列出当前系统上的所有网络连接和监听的端口。这包括已建立的连接、正在监听的端口以及与网络相关的其他信息。

参数 -a 表示显示所有连接和监听的端口,包括 TCP 和 UDP 连接。不带 -a 参数则默认仅显示活动连接。

netstat -a 对于系统管理员来说是一个有用的工具,可以用来诊断网络连接问题、监视网络活动以及查看系统上的网络服务状态。

netstat -at 是一个用于显示系统上 TCP 协议连接状态的命令行指令,通常在 Unix 和类 Unix 系统中可用。

当您在命令行中输入 netstat -at 并按下回车键时,系统会列出当前系统上所有的 TCP 连接状态,包括已建立的连接、正在监听的端口以及与网络相关的其他信息。

参数 -t 表示仅显示 TCP 协议连接的信息。不带 -t 参数,则默认会显示 TCP 和 UDP 连接的信息。

netstat -at 对于系统管理员来说是一个有用的工具,可以用来诊断网络连接问题、监视 TCP 连接活动以及查看系统上的 TCP 服务状态。

netstat -au 是一个用于显示系统上 UDP 协议连接状态的命令行指令,通常在 Unix 和类 Unix 系统中可用。

当您在命令行中输入 netstat -au 并按下回车键时,系统会列出当前系统上所有的 UDP 连接状态,包括已建立的连接、正在监听的端口以及与网络相关的其他信息。

参数 -u 表示仅显示 UDP 协议连接的信息。不带 -u 参数,则默认会显示 TCP 和 UDP 连接的信息。

netstat -au 对于系统管理员来说是一个有用的工具,可以用来诊断网络连接问题、监视 UDP 连接活动以及查看系统上的 UDP 服务状态。

netstat -l 是一个用于显示系统上所有正在监听的网络连接的命令行指令,通常在 Unix 和类 Unix 系统中可用。

当您在命令行中输入 netstat -l 并按下回车键时,系统会列出当前系统上所有正在监听的网络连接,包括 TCP 和 UDP 协议的连接。这些监听的连接通常是网络服务在系统上的端口,等待客户端的连接。

参数 -l 表示仅显示监听状态的连接。不带 -l 参数,则默认会显示所有的连接状态。

netstat -l 对于系统管理员来说是一个有用的工具,可以用来查看系统上正在运行的网络服务以及它们正在监听的端口。

netstat -s 是一个用于显示网络统计信息的命令行指令,通常在 Unix 和类 Unix 系统中可用。

当您在命令行中输入 netstat -s 并按下回车键时,系统会列出各种网络协议的统计信息,包括 TCP、UDP、ICMP 等。这些统计信息包括接收和发送的数据包数量、错误信息、丢失的数据包数量等。

通过查看 netstat -s 的输出,系统管理员可以了解系统上网络流量的情况,识别网络问题,以及监视网络性能。这对于网络故障排除和性能优化非常有帮助。

netstat -ano 是一个用于显示系统上所有网络连接及其相关进程信息的命令行指令,通常在 Windows 系统中可用。在 Unix 和类 Unix 系统中,相似的命令可以使用 netstat -p

当您在命令行中输入 netstat -ano 并按下回车键时,系统会列出当前系统上所有的网络连接及其相关的进程信息。这些信息包括本地地址、远程地址、连接状态、进程ID(PID)等。

参数 -a 表示显示所有的连接(包括监听和非监听状态的连接),参数 -n 表示使用数字形式显示地址和端口,参数 -o 表示显示与每个连接相关联的进程ID。

通过查看 netstat -ano 的输出,您可以了解当前系统上所有的网络连接情况,并且可以通过查看相关进程ID了解哪些进程与这些连接相关联。这对于网络监控、故障排除和安全分析非常有用。

 查找具有 SUID权限设置的文件

find / -perm -u=s -type f 2>/dev/null

THM学习笔记——枚举_第8张图片

以下是gpt对于以上命令的解释。

这个命令是在 Unix 或类 Unix 系统上用来查找具有 SUID(Set User ID)权限设置的文件。SUID 是一种权限设置,允许用户在执行特定程序时以程序所有者的身份而不是自己的身份来执行程序。

让我们分解一下这个命令:

  • find: 这个命令用于在文件系统中搜索文件和目录。

  • /: 这是搜索的根路径,表示从根目录开始搜索。

  • -perm -u=s: 这个选项表示搜索具有 SUID 权限设置的文件。 -perm 用于指定文件权限,-u=s 表示用户权限设置中的 SUID 位被设置。

  • -type f: 这个选项表示只搜索普通文件,而不搜索目录或其他特殊文件。

  • 2>/dev/null: 这个部分是将标准错误重定向到 /dev/null,以便隐藏由于无法访问某些目录而产生的错误信息。

因此,整个命令的目的是在文件系统中查找具有 SUID 权限设置的普通文件,并将结果显示在标准输出中,同时将标准错误重定向到 /dev/null,以避免显示不必要的错误信息。

这个命令通常用于安全审计和系统管理,以确保只有授权的程序具有 SUID 权限,从而减少潜在的系统安全风险。

 查找文件

which nc wget vi vim 2>/dev/null

以下是gpt对于以上命令的解释。

which 命令用于在系统的 PATH 路径中搜索指定的命令并显示其完整路径。在这个命令中,2>/dev/null 是用来将标准错误重定向到 /dev/null,以隐藏任何找不到命令的错误消息。

因此,命令 which nc wget vi vim 2>/dev/null 将搜索并显示 ncwgetvivim 这几个命令在系统中的完整路径,如果找不到这些命令,则不显示任何错误消息。

这个命令通常用于查找系统中安装的特定命令的位置,或者用于脚本中验证命令是否可用。

显示/etc/fstab 文件的内容

cat /etc/fstab

THM学习笔记——枚举_第9张图片

以下是gpt对于以上命令的解释。

/etc/fstab 文件是一个存储了系统挂载点信息的文本文件,通常在类 Unix 系统中使用。在大多数 Linux 系统中,这个文件用于配置系统启动时需要挂载的文件系统以及挂载的选项。

当您执行 cat /etc/fstab 命令时,系统会将 /etc/fstab 文件的内容显示在终端上。这个文件中包含了一系列的行,每行描述了一个文件系统的挂载信息,包括文件系统的设备名、挂载点、文件系统类型、挂载选项以及其他相关信息。

通常,/etc/fstab 文件的内容类似于下面的格式:

/dev/sda1  /boot  ext4  defaults  0  2
/dev/sda2  /      ext4  defaults  0  1

这个文件的内容在系统启动时由挂载管理器(如 systemd、mount)使用,用于自动挂载文件系统。编辑这个文件通常需要管理员权限,因为对文件系统的不正确配置可能会导致系统启动问题。

自动化枚举

这里只列出工具名称及下载地址,具体如何使用请自行查找相关资料进行学习,建议多了解几个工具,以备不时之需。

linpeas——carlospolop/PEASS-ng: PEASS - Privilege Escalation Awesome Scripts SUITE (with colors) (github.com)

主要使用

linenum——rebootuser/LinEnum: Scripted Local Linux Enumeration & Privilege Escalation Checks (github.com)

linux-smart-enumeration——diego-treitos/linux-smart-enumeration: Linux enumeration tool for pentesting and CTFs with verbosity levels (github.com)

linux-exploit-suggester——The-Z-Labs/linux-exploit-suggester: Linux privilege escalation auditing tool (github.com)

linuxprivchecker——sleventyeleven/linuxprivchecker: linuxprivchecker.py -- a Linux Privilege Escalation Check Script (github.com)

主要由python编写

unix-privesc-check——pentestmonkey/unix-privesc-check: Automatically exported from code.google.com/p/unix-privesc-check (github.com)

 参考:「红队笔记」Linux提权精讲:原理和枚举_哔哩哔哩_bilibili

你可能感兴趣的:(学习,笔记,网络安全,安全)