0059. shell命令--passwd

目录

59. shell命令--passwd

功能说明

语法格式

选项说明

实践操作

注意事项


59. shell命令--passwd

功能说明

        passwd 命令在 Linux 系统中用于更新用户密码。这个命令对于普通用户和超级用户(root)都有用,但它们的权限和用途略有不同。

        passwd 命令用于设置用户的认证信息,包括用户密码、密码过期时间等。系统管理者则能用它管理系统用户的密码。只有管理者可以指定用户名称,一般用户只能变更自己的密码。

语法格式

passwd [-k] [-l] [-u [-f]] [-d] [-S] [username]

SYNOPSIS
       passwd  [-k]  [-l] [-u [-f]] [-d] [-e] [-n mindays] [-x maxdays] [-w warn-
       days] [-i inactivedays] [-S] [--stdin] [username]

选项说明

-d 删除密码,仅有系统管理者才能使用
-f 强迫用户下次登录时必须修改口令
-w 口令要到期提前警告的天数
-k 更新只能发送在过期之后,设置只有在密码过期失效后,方能更新
-l 停止账号使用,锁住密码
-S 显示密码信息,列出密码的相关信息,仅有系统管理者才能使用
-u 启用已被停止的账户,解开已上锁的帐号
-x 指定口令最长存活期
-n 指定口令最小存活期
-g 修改群组密码
指定口令最短存活期
-i 口令过期后多少天停用账户

实践操作

1. 为其他用户设置密码(需要root权限)
whoami
useradd usertest1
tail -1 /etc/passwd
tail -1 /etc/shadow
passwd usertest1
tail -1 /etc/shadow

2. 列出密码的相关信息,仅有系统管理者才能使用
passwd -S usertest1

3. 更新当前用户的密码
su - usertest1
whoami
passwd    #普通用户会提示输入当前密码后才能设置新密码,并且密码复制度较高
# 演示时可以再开个终端随便输入字符串进行复制粘贴
(current) UNIX password:    # 请输入当前密码;
New password:                # 请输入新密码;
Retype new password:        # 确认新密码;
exit

4. 设定用户密码值,可以用 -l 选项来锁定,-u 选项来解锁,-e 选项强制重置密码
hostname -I
grep usertest1 /etc/shadow
passwd -l usertest1
grep usertest1 /etc/shadow
ssh usertest1@10.4.7.11
passwd -u usertest1
ssh usertest1@10.4.7.11
whoami
exit
grep usertest1 /etc/shadow
passwd -e usertest1
grep usertest1 /etc/shadow
ssh usertest1@10.4.7.11

5. 清除某个用户密码
grep usertest1 /etc/shadow
passwd -d usertest1
grep usertest1 /etc/shadow    #Empty password:空密码
passwd -S usertest1
# 注意:当我们清除一个用户的密码时,登录时就无需密码,这一点要加以注意。

6. 非人工交互设置密码
echo "123456" |passwd --stdin usertest1

注意事项

  • 密码复杂性

        出于安全考虑,大多数现代 Linux 系统都会要求用户密码满足一定的复杂性要求,如包含大写字母、小写字母、数字和特殊字符,以及密码的最小长度。

  • 密码过期

        系统管理员可以配置密码过期策略,要求用户定期更改密码。使用 passwd -S 可以查看密码的过期信息。

  • 密码存储

        Linux 系统使用加密哈希来存储密码,而不是明文。因此,即使系统管理员也不能直接看到你的密码,只能重置它。

  • 密码策略

        系统管理员可以配置各种密码策略,包括密码的最小长度、密码的历史记录、密码的复杂度要求等,以符合组织的安全策略。

  • 定期审计密码策略

        确保密码策略符合当前的安全标准和组织要求。这可能包括密码的最短长度、复杂度要求、密码历史记录(防止重用旧密码)等。

  • 启用密码过期和提醒

        设置密码过期时间,并配置系统在密码即将过期时提醒用户。这有助于确保用户不会使用太久的密码,减少安全风险。

  • 使用多因素认证

        虽然 passwd 命令主要关注密码管理,但考虑到现代安全威胁,推荐使用多因素认证(MFA)来增加额外的安全层。

  • 培训和意识提升

        教育用户关于强密码的重要性,以及如何创建和保持安全的密码习惯。

  • 日志记录和监控

        确保对 passwd 命令的使用进行日志记录,并监控任何异常活动,以便及时发现潜在的安全威胁。

  • 使用加密的密码管理工具

        对于需要频繁管理大量密码的场景,考虑使用加密的密码管理工具,如 KeePassX、LastPass 或 1Password,以更安全地存储和访问密码。

### 图文步骤说明 #### 1. 准备工作 - **环境搭建**:确保已经安装好 DVWA(Damn Vulnerable Web Application),并且处于 low 安全等级,同时安装好 sqlmap 工具。 - **获取请求文件**:使用浏览器开发者工具(如 Chrome 的开发者工具),在 DVWA 的 sqli 模块中发起一个正常请求,然后将请求信息保存为 `request.txt` 文件。具体操作是在开发者工具的 Network 面板中,找到对应的请求,右键选择“Copy as cURL”,然后将内容粘贴到文本编辑器中保存为 `request.txt`。 #### 2. 执行命令 打开终端,切换到 `request.txt` 文件所在的目录,执行以下命令: ```bash sqlmap -r request.txt --os-shell ``` 此命令会让 sqlmap 读取 `request.txt` 中的请求信息,并尝试在该请求的基础上进行操作系统命令注入,以获取交互式命令 shell。 #### 3. 等待探测与注入 - sqlmap 会首先探测目标站点是否存在 SQL 注入漏洞。如果存在,它会进一步尝试获取数据库的相关信息,如数据库类型、表名、字段名等。 - 在探测过程中,会显示一系列的信息和进度,等待其完成。 #### 4. 获取交互式命令 - 当 sqlmap 成功完成注入后,会提示你已经获取到操作系统的交互式命令 shell。此时,你可以在终端中输入各种操作系统命令,如 `ls` 查看目录列表,`cat /etc/passwd` 查看用户信息等。 ### 背后原理 在 DVWA 的 sqli 模块 low 等级下,代码对用户输入的 SQL 查询参数没有进行严格的过滤和验证,这就为 SQL 注入攻击提供了可乘之机。 #### SQL 注入原理 用户输入的参数直接拼接到 SQL 查询语句中,攻击者可以通过构造特殊的 SQL 语句来改变原查询的逻辑。例如,正常的查询语句可能是: ```sql SELECT * FROM users WHERE id = '1'; ``` 攻击者可以构造输入 `1' OR '1'='1`,使得查询语句变为: ```sql SELECT * FROM users WHERE id = '1' OR '1'='1'; ``` 这样,该查询会返回所有的用户记录,因为 `'1'='1'` 始终为真。 #### 操作系统命令注入原理 当攻击者发现 SQL 注入漏洞后,如果目标数据库所在的服务器允许执行系统命令(如 MySQL 的 `LOAD_FILE`、`system` 等函数),就可以通过 SQL 注入来执行操作系统命令。 `sqlmap -r request.txt --os-shell` 命令会自动完成以下步骤: - 检测 SQL 注入点:通过发送各种测试 payload 来判断目标是否存在 SQL 注入漏洞。 - 获取数据库信息:确定数据库类型、版本等信息,以便选择合适的注入方法。 - 构造注入语句:根据检测到的信息,构造能够执行操作系统命令的 SQL 注入语句。 - 执行命令:将构造好的注入语句发送到目标服务器,执行操作系统命令,并将结果返回。 通过以上步骤,攻击者就可以在目标服务器上获取交互式的操作系统命令 shell,实现对服务器的控制。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MineGi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值