Linux系统管理
用户管理
用户管理是 Linux 管理的重要组成部分。有时我们需要创建新用户或将其他用户添加到特定组。另一种可能性是作为不同的用户执行命令。毕竟,只有一个特定组的用户有权查看或编辑特定文件或目录的情况并不少见。反过来,这使我们能够在机器上本地收集更多信息,这可能非常重要。
命令 | 描述 |
---|---|
sudo |
以不同的用户身份执行命令。 |
su |
该su 实用程序通过 PAM 请求适当的用户凭据并切换到该用户 ID(默认用户是超级用户)。然后执行一个shell。 |
useradd |
创建新用户或更新默认的新用户信息。 |
userdel |
删除用户帐户和相关文件。 |
usermod |
修改用户帐户。 |
groupadd |
将组添加到系统。 |
groupdel |
从系统中删除一个组。 |
passwd |
更改用户密码。 |
useradd
$ useradd [选项] [用户名]
- 选项
-b
创建用户的同时创建家目录-c
添加注释-d
指定用户家目录,如路径不存在添加-m
直接创建-g
指定用户所属组-G
指定用户附加组-s
指定用户的登录 shell, 指定 shell 根路径-u
指定用户 uid ,-o
选项可与已有用户重复- 用户名
userdel
$ userdel [选项] [用户名]
$ userdel -r dark //连同家目录一同删除
usermod
$ usermod [选项] [用户名] //选项与 useradd 相同,为更改操纵
passwd
$ passwd [选项] [用户名]
- 选项
-l
锁定口令,禁用账号-u
解锁账号口令-d
删除账号口令- 用户名
包管理
无论是作为系统管理员工作,在家维护我们自己的 Linux 机器,还是构建/升级/维护我们选择的渗透测试发行版,牢牢掌握可用的 Linux 包管理器以及利用它们的各种方法来安装、更新或删除软件包。软件包是包含软件二进制文件、配置文件、依赖关系信息以及跟踪更新和升级的档案。大多数包管理系统提供的功能是:
- 包下载
- 依赖解析
- 标准的二进制包格式
- 常见的安装和配置位置
- 其他与系统相关的配置和功能
- 质量控制
我们可以使用许多不同的包管理系统,涵盖不同类型的文件,如“.deb”、“.rpm”等。包管理要求是要安装的软件可以作为相应的包使用。通常,这是在 Linux 发行版下集中创建、提供和维护的。这样,软件直接集成到系统中,其各个目录分布在整个系统中。包管理软件对系统安装包的改动取自包,由包管理软件实现。如果包管理软件识别出需要额外的包才能使尚未安装的包正常运行,
如果已删除已安装的软件,则包管理系统将重新获取包的信息,根据其配置对其进行修改,并删除文件。我们可以为此使用不同的包管理程序。以下是此类程序的示例列表:
命令 | 描述 |
---|---|
dpkg |
这dpkg 是一个安装、构建、删除和管理 Debian 软件包的工具。主要和更用户友好的前端dpkg 是 aptitude。 |
apt |
Apt 为包管理系统提供了一个高级命令行界面。 |
aptitude |
aptitude 是 apt 的替代品,是包管理器的高级接口。 |
snap |
安装、配置、刷新和删除 snap 包。Snap 支持安全分发适用于云、服务器、桌面和物联网的最新应用程序和实用程序。 |
gem |
Gem 是 RubyGems 的前端,Ruby 的标准包管理器。 |
pip |
Pip 是一个 Python 包安装程序,推荐用于安装 Debian 存档中不可用的 Python 包。它可以与版本控制存储库(目前只有 Git、Mercurial 和 Bazaar 存储库)一起使用,广泛记录输出,并通过在开始安装之前下载所有要求来防止部分安装。 |
git |
Git 是一个快速、可扩展、分布式的修订控制系统,具有异常丰富的命令集,可提供高级操作和对内部的完全访问。 |
强烈建议在本地设置我们的虚拟机 (VM) 以进行试验。让我们在本地 VM 中进行一些试验,并使用一些额外的包对其进行扩展。首先,让我们git
使用apt
.
高级包管理器 (APT)
基于 Debian 的 Linux 发行版使用APT
包管理器。包是包含多个“.deb”文件的存档文件。该dpkg
实用程序用于从关联的“.deb”文件安装程序。APT
使更新和安装程序更容易,因为许多程序都有依赖关系。从独立的“.deb”文件安装程序时,我们可能会遇到依赖问题,需要下载并安装一个或多个附加包。APT
通过将安装程序所需的所有依赖项打包在一起,使这更容易和更有效。
每个 Linux 发行版都使用经常更新的软件存储库。当我们更新程序或安装新程序时,系统会在这些存储库中查询所需的包。存储库可以标记为稳定、测试或不稳定。大多数 Linux 发行版使用最稳定或“主要”的存储库。这可以通过查看/etc/apt/sources.list
文件的内容来检查。Parrot OS 的存储库列表位于/etc/apt/sources.list.d/parrot.list
.
darkinga@htb[/htb]$ cat /etc/apt/sources.list.d/parrot.list
# parrot repository
# this file was automatically generated by parrot-mirror-selector
deb http://htb.deb.parrot.sh/parrot/ rolling main contrib non-free
#deb-src https://deb.parrot.sh/parrot/ rolling main contrib non-free
deb http://htb.deb.parrot.sh/parrot/ rolling-security main contrib non-free
#deb-src https://deb.parrot.sh/parrot/ rolling-security main contrib non-free
APT 使用称为 APT 缓存的数据库。这用于提供有关离线安装在我们系统上的软件包的信息。例如,我们可以搜索 APT 缓存来查找所有Impacket
相关的包。
darkinga@htb[/htb]$ apt-cache search impacket
impacket-scripts - Links to useful impacket scripts examples
polenum - Extracts the password policy from a Windows system
python-pcapy - Python interface to the libpcap packet capture library (Python 2)
python3-impacket - Python3 module to easily build and dissect network protocols
python3-pcapy - Python interface to the libpcap packet capture library (Python 3)
然后,我们可以查看有关包的其他信息。
darkinga@htb[/htb]$ apt-cache show impacket-scripts
Package: impacket-scripts
Version: 1.4
Architecture: all
Maintainer: Kali Developers <devel@kali.org>
Installed-Size: 13
Depends: python3-impacket (>= 0.9.20), python3-ldap3 (>= 2.5.0), python3-ldapdomaindump
Breaks: python-impacket (<< 0.9.18)
Replaces: python-impacket (<< 0.9.18)
Priority: optional
Section: misc
Filename: pool/main/i/impacket-scripts/impacket-scripts_1.4_all.deb
Size: 2080
<SNIP>
我们还可以列出所有已安装的软件包。
darkinga@htb[/htb]$ apt list --installed
Listing... Done
accountsservice/rolling,now 0.6.55-2 amd64 [installed,automatic]
<SNIP>
如果我们缺少一些包,我们可以使用以下命令搜索并安装它。
高级包管理器 (APT)
darkinga@htb[/htb]$ sudo apt install impacket-scripts -y
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following NEW packages will be installed:
impacket-scripts
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,080 B of archives.
After this operation, 13.3 kB of additional disk space will be used.
Get:1 https://euro2-emea-mirror.parrot.sh/mirrors/parrot rolling/main amd64 impacket-scripts all 1.4 [2,080 B]
Fetched 2,080 B in 0s (15.2 kB/s)
Selecting previously unselected package impacket-scripts.
(Reading database ... 378459 files and directories currently installed.)
Preparing to unpack .../impacket-scripts_1.4_all.deb ...
Unpacking impacket-scripts (1.4) ...
Setting up impacket-scripts (1.4) ...
Scanning application launchers
Removing duplicate launchers from Debian
Launchers are updated
Git
现在我们已经git
安装好了,我们可以使用它从 Github 下载有用的工具。一个这样的项目被称为“Nishang”。稍后我们将处理和处理项目本身。首先,我们需要导航到项目的存储库并复制 Github 链接,然后再使用 git 下载它。
尽管如此,在我们下载项目及其脚本和列表之前,我们应该创建一个特定的文件夹。
mkdir ~/nishang/ && git clone https://github.com/samratashok/nishang.git ~/nishang
DPKG
我们还可以分别从存储库中下载程序和工具。在此示例中,我们为 Ubuntu 18.04 LTS 下载“strace”。
wget http://archive.ubuntu.com/ubuntu/pool/main/s/strace/strace_4.21-1ubuntu1_amd64.deb
此外,现在我们可以同时使用apt
和dpkg
来安装软件包。由于我们已经使用过apt
,我们将dpkg
在下一个示例中进行介绍。
sudo dpkg -i strace_4.21-1ubuntu1_amd64.deb
可选练习:
在 Github 上搜索“ evil-winrm ”工具并将其安装在我们的交互式实例上。尝试所有不同的安装方法。
服务和进程管理
systemctl start/restart/stop/enable/disable
添加守护程序配置文件
service
进程管理
kill 9 杀掉pid所在进程