本笔记为 泷羽sec 《红队全栈课程》学习笔记,课程请可自行前往B站学习,课程/笔记主要涉及网络安全相关知识、系统以及工具的介绍等,请使用该课程、本笔记以及课程和笔记中提及工具的读者,遵守网络安全相关法律法规,切勿进行违法违规违纪的操作。
写在最前面的话,我们为什么要学习网络安全这门技术:
- 维护国家安全
防范网络攻击:网络安全威胁已成为国家安全的重要挑战。学习网络安全有助于识别和防范来自国内外的网络攻击,防止敌对势力通过网络手段窃取敏感信息、破坏关键基础设施或干扰社会正常运作。
保护关键基础设施:现代社会高度依赖网络技术,金融系统、交通网络、电力供应等关键基础设施都依赖于稳定的网络环境。掌握网络安全知识有助于保护这些基础设施免受网络攻击,确保国家的正常运转。
- 促进经济发展
保障数字经济安全:数字经济已成为国家经济增长的重要引擎。通过学习网络安全,可以保障数字经济的健康发展,防止数据泄露和网络犯罪对经济活动的干扰。
增强国际竞争力:在全球化的背景下,网络安全技术水平直接影响国家的国际竞争力。掌握先进的网络安全技术和策略,有助于提升国家在全球数字经济中的地位。
- 提升社会稳定
防范社会风险:网络犯罪和网络恐怖主义对社会稳定构成严重威胁。学习网络安全有助于及时发现和应对这些风险,维护社会的和谐与稳定。
保护公民权益:网络安全直接关系到公民的隐私权和信息安全。通过学习网络安全,可以更好地保护公民的合法权益,增强公众对政府和企业的信任。
- 推动科技进步
创新安全技术:网络安全领域的技术创新不断推动信息技术的进步。学习网络安全有助于推动新技术的研发和应用,提升国家在科技领域的整体实力。
促进国际合作:网络安全是全球性问题,需要各国共同努力应对。通过学习网络安全,可以参与国际网络安全合作,共同制定国际标准和规范,提升全球网络安全水平。
- 强化法治建设
完善法律法规:学习网络安全有助于推动和完善相关法律法规的制定和实施,确保网络安全工作有法可依、有章可循。
提升执法能力:掌握网络安全知识可以提升执法部门的网络侦查和取证能力,有效打击网络犯罪,维护法律权威。
- 培养专业人才
构建人才梯队:网络安全领域需要大量高素质的专业人才。通过系统学习和培训,可以培养出一批具备专业知识和实战经验的网络安全专家,为国家的网络安全事业提供坚实的人才保障。
总之,学习网络安全不仅是个人职业发展的需要,更是维护国家安全、促进经济发展、保障社会稳定和推动科技进步的重要手段。通过不断提升网络安全意识和能力,我们可以更好地应对日益复杂的网络安全挑战,为实现国家的长期稳定和发展贡献力量。
以下为linux基础(1)视频对应的内容 视频传送门 ==> linux基础(1)_哔哩哔哩_bilibili 约23分钟左右处
一、Linux 账户数据相关文件
/etc/passwd
/etc/shadow
/etc/group
1、/etc/passwd
该文件在 Linux 系统中用于存储关于系统用户账户的信息。每一行代表一个用户账户,每一行由多个字段组成,我们使用cat 等命令可以查看到文件的内容,具体如下:
┌──(kali㉿kali)-[~] # head -3 表示读取文件前3行
└─$ sudo head -3 /etc/passwd
root:x:0:0:root:/root:/usr/bin/zsh
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
1 | 用户名(Username) | 用户登录系统时使用的名字 |
2 | 密码占位符(Password) | 现代 Linux 系统通常不在 /etc/passwd 文件中直接存储用户密码。取而代之的是,这里通常会有一个占位符(如 x ),而实际的加密密码存储在 /etc/shadow 文件中 |
3 | 用户ID(User ID, UID) | 这是系统内部用于识别用户的数字ID。0 通常表示 root 用户(超级用户),1-999 通常用于系统账户,1000 及以上通常用于普通用户账户。 |
4 | 组ID(Group ID, GID) | 这是用户所属的主要组的ID。用户还可以属于其他组,但这些信息存储在 /etc/group 文件中。 |
5 | 用户全名或描述(Full Name or Description) | 这通常是用户的全名或者是对用户账户的简短描述。 |
6 | 用户主目录(Home Directory) | 一般也叫家目录,这是用户登录系统后默认进入的目录,也是用户个人文件通常存放的地方。 |
7 | 默认Shell(Default Shell) | 这是用户登录系统后默认运行的命令解释器或程序。对于普通用户,这通常是一个 Shell(如 /bin/bash , /usr/bin/zsh 等)。对于某些系统账户(如 daemon , bin ),这可能是 /usr/sbin/nologin ,表示不允许这些账户通过常规方式登录。 |
2、/etc/shadow
该文件在 Linux 系统中用于存储关于系统用户账户的密码信息。与 /etc/passwd
文件类似,每一行代表一个用户账户,每一行由多个字段组成,这些字段由冒号 (:
) 分隔。
┌──(kali㉿kali)-[~]
└─$ sudo head -3 /etc/shadow
root:*:19953:0:99999:7:::
daemon:*:19953:0:99999:7:::
bin:*:19953:0:99999:7:::
1 | 用户名(Username) | 这是与 /etc/passwd 文件中的用户名相对应的用户登录名 |
2 | 加密密码(Encrypted Password) | 这个字段存储用户密码的加密表示。如果字段是 * 或 ! ,通常表示账户被禁用了密码登录(例如,对于不允许通过密码登录的系统账户)。实际的加密密码是一个复杂的字符串,由密码加密算法生成。 |
3 | 密码最后更改的日期(Last Password Change) | 这个字段表示自 Unix 纪元(1970 年 1 月 1 日)以来密码最后被更改的天数。 |
4 | 密码更改的最小间隔(Minimum Password Age) | :这个字段表示用户必须等待多少天才能再次更改密码。0 表示用户可以随时更改密码。 |
5 | 密码更改的最大间隔(Maximum Password Age) | 这个字段表示密码在多少天后必须被更改。99999 通常是一个很大的值,意味着密码几乎不需要更改(在实际应用中,管理员可能会设置更合理的值来确保密码的安全性)。 |
6 | 密码过期警告天数(Password Warning Period) | 这个字段表示在密码到期前的多少天开始警告用户。7 表示在密码到期前 7 天开始警告用户。 |
7 | 密码过期后的宽限期(Password Inactivity Period) | 这个字段表示密码过期后多少天账户被禁用。如果这个字段为空,通常意味着账户在密码过期后立即被禁用(取决于系统的配置)。 |
8 | 账户到期日期(Account Expiration Date) | 这个字段表示账户到期的日期(以自 Unix 纪元以来的天数表示)。如果这个字段为空,表示账户永不过期。 |
9 | 保留字段(Unused Field) | 这是一个保留字段,目前未使用,用于将来的扩展。 |
3、/etc/group
该文件在 Linux 系统中用于存储关于系统组的信息。每一行代表一个组,每一行由多个字段组成,这些字段由冒号 (:
) 分隔。
┌──(kali㉿kali)-[~]
└─$ head -3 /etc/group
root:x:0:
daemon:x:1:
bin:x:2:
1 | 组名(Group Name) | 这是组的名称,用于标识和引用系统中的组。 |
2 | 密码占位符(Password) | 现代 Linux 系统通常不在 /etc/group 文件中直接存储组密码。取而代之的是,这里通常会有一个占位符(如 x )。在早期的 Unix 系统中,这个字段可能包含组的加密密码,但现在这种做法已经很少见了。 |
3 | 组ID(Group ID, GID) | 这是系统内部用于识别组的数字ID。0 通常表示 root 组(超级用户组),其他数字则表示普通用户组或系统组。 |
4 | 组成员(Group Members) | 这个字段列出属于该组的所有用户的用户名。多个用户名之间用逗号(, )分隔。如果这个字段为空,表示该组当前没有成员(这在实际情况中比较少见)。 |
二、Linux用户和组相关命令(部分)
1、useradd/deladd
添加或者删除一个用户,下面做个小实验,添加一个叫mali的用户,再删除这个用户,期间跟踪下/etc/passwd 文件最后2行的情况。
┌──(kali㉿kali)-[~/Desktop]
└─$ sudo useradd mali