命令?不存在的。CTF玩家的另类生存法则
命令? | 作用?谁在乎! |
---|---|
ls ? | 谁还用这玩意儿?不如直接 find . -maxdepth 1 -type f 来的实在,还能顺便过滤文件类型。 |
cd ? | pushd 和 popd 才是王道,妈妈再也不用担心我迷路了! |
pwd ? | 当前目录?直接 echo $PWD ,简单粗暴。 |
man ? | tldr 才是现代人的选择!简洁明了,告别冗长的官方文档。 |
apropos ? | 记不住命令?善用 grep 大法,apropos whatever | grep 'security' ,瞬间找到你想要的。 |
echo ? | 打印文本?不如玩点花样,echo -e "e[31mRED TEXTe[0m" ,让你的输出与众不同! |
cat ? | bat 才是真爱!语法高亮,代码提示,用过就回不去了。 |
less ? | most 了解一下?支持多窗口,历史记录,浏览体验更上一层楼。 |
mv ? | 重命名?小心覆盖!mv -i file1 file2 ,养成好习惯,避免手滑。 |
cp ? | 复制?权限问题了解一下!cp -a file1 file2 ,保留所有属性,避免玄学 bug。 |
rm ? | 删除?三思而后行!alias rm='rm -i' ,强制确认,拯救你的数据。 |
ps ? | htop 才是可视化神器!实时监控,进程管理,一目了然。 |
top ? | glances 了解一下?更全面的系统监控,CPU、内存、网络、磁盘,尽收眼底。 |
kill ? | 杀进程?温柔一点!kill -15 pid ,给进程一个体面的告别。 |
ifconfig ? | ip addr 才是新时代的网络配置工具!更简洁,更强大。 |
ping ? | 网络畅通?不如试试 traceroute ,看看数据包都经过了哪些节点。 |
netstat ? | ss 才是接班人!更快速,更高效,替代 netstat 指日可待。 |
nc ? | ncat 更安全!支持加密,身份验证,网络瑞士军刀再升级。 |
su ? | 切换用户?小心驶得万年船!sudo -i ,获取 root 权限,安全第一。 |
touch ? | 创建空文件?不如 > file ,更简洁,更高效。 |
mkdir ? | mkdir -p dir/subdir ,一次创建多级目录,告别繁琐操作。 |
chmod ? | 权限管理?数字表示法更直观!chmod 755 file ,一目了然。 |
chown ? | 变更所有者?别忘了所属组!chown user:group file ,一步到位。 |
nano / vim / emacs ? | micro 才是现代文本编辑器的代表!简单易用,功能强大。 |
exit ? | 退出 shell?不如 Ctrl+d ,更快捷,更方便。 |
管道命令符 "|" ? | 管道?数据流的魔法!command1 | command2 | command3 ,将命令串联起来,实现复杂操作。 |
变量?不过是字符串的别名罢了
变量? | 意义?也就那样吧! |
---|---|
var=value | 赋值?其实就是把一个字符串贴上标签。 |
$var, ${var} | 取值?把标签撕下来,看看里面写了什么。 |
`cmd , $(cmd)` | 命令替换?执行一段代码,把结果当成字符串用。 |
'string' | 原样输出?别指望它会变魔术。 |
"string" | 可以展开的字符串?变量和命令替换的天堂。 |
$ var="test"; # 字符串 "test" 贴上了 "var" 标签
$ echo $var # 撕下 "var" 标签,看到了 "test"
Bash快捷键?告别鼠标,拥抱效率
快捷键? | 意义?懒人的福音! |
---|---|
Up(Down) | 上下翻历史?不如 Ctrl+r ,模糊搜索,精准定位。 |
Ctrl + c | 终止进程?简单粗暴,但要注意后果。 |
Ctrl + z | 挂起进程?留个后路,随时可以恢复。 |
Ctrl + d | 删除字符?不如 Ctrl+w ,按单词删除,效率更高。 |
Ctrl + l | 清屏?眼不见心不烦,但历史记录还在。 |
Ctrl + a | 移动到行首?瞬间回到起点。 |
Ctrl + e | 移动到行尾?一步到位。 |
Ctrl + b | 按单词后移?精确定位,修改更方便。 |
Ctrl + f | 按单词前移?微调利器。 |
根目录?Linux世界的地图?
$ uname -a # 看看内核版本,不同的发行版可能略有差异
根目录结构?与其说是地图,不如说是Linux世界的骨架,支撑着整个系统的运行。
- /bin、/sbin: 链接到/usr/bin?历史遗留问题!存放着用户和管理员常用的命令,是系统的基本组成部分。
- /boot: 启动引导程序?至关重要!存放着引导操作系统启动所需的文件,一旦损坏,系统就无法启动。
- /dev: 设备文件?一切皆文件!Linux将所有设备都抽象成文件,通过操作这些文件,可以控制硬件设备。
- /etc: 配置文件?系统的灵魂!存放着各种配置信息,影响着系统的行为。
- /etc/rc.d: 启动脚本?过时的技术!现在更多使用systemd来管理服务。
- /home: 用户目录?隐私空间!每个用户都有自己的家目录,存放着个人文件和配置。
- /lib、/lib64: 链接到/usr/lib?共享库!存放着系统和应用程序依赖的动态链接库,是程序运行的基础。
- /mnt: 挂载点?临时访问!用于临时挂载其他文件系统,例如U盘、移动硬盘等。
- /proc: 虚拟文件系统?实时信息!提供了一个访问内核数据的接口,可以查看系统信息和进程状态。
- /root: 管理员目录?至高权力!root用户的家目录,拥有系统的完全控制权。
- /srv: 服务数据?存放网络服务所需的数据。
- /sys: sysfs文件系统?内核设备树的镜像!
- /tmp: 临时文件?用完就扔!存放临时文件,系统重启后会被清空。
- /usr: 用户程序?应用大本营!存放着大量的应用程序和文件,是系统的主要组成部分。
- /usr/src: 内核源码?学习宝典!存放着内核源代码,是学习Linux内核的绝佳资源。
- /var: 动态数据?日志中心!存放着经常变化的数据,例如日志文件、数据库等。
进程管理?掌控系统的脉搏?
- top: 实时监控?不如htop!更友好的界面,更强大的功能。
-
ps: 进程状态?信息过载!不如ps auxf,树状显示进程关系,更清晰。
- 查看进程状态?
ps -aux | grep [file]
?不如直接pgrep file
,简单粗暴。 - kill: 结束进程?小心误杀!
kill -9 [PID]
,强制结束,但可能导致数据丢失。
- 查看进程状态?
UID和GID?用户的身份证明?
$ id root # 查看root用户的UID和GID
UID为0的root用户?拥有至高无上的权力,但也要小心使用,避免误操作。普通用户?权限有限,但更安全。GID?用户组,方便管理权限。
$ cat /etc/group # 查看用户组信息
所有用户信息?/etc/passwd
?密码呢?/etc/shadow
!只有root用户才能访问,保障安全。
$ sudo cat /etc/shadow # 以root权限查看密码文件
sudo?普通用户也能行使root权限?小心配置不当,导致安全漏洞。su?切换用户,但要输入密码,比较麻烦。
$ whoami # 我是谁?
whoami?显示当前用户名,简单实用。普通用户以$开头?root用户以#开头?象征着不同的权限。
权限设置?Linux世界的通行证?
$ ls -l / # 查看根目录的权限
权限字符串?rwx?分别代表读、写、执行权限。第一列?文件类型!l?链接文件!d?目录!-?普通文件!
- r?读取权限?数字代号4?
- w?写入权限?数字代号2?
- x?执行权限?数字代号1?
chmod?修改权限?
- -R?递归处理?小心使用,避免误操作。
- <权限范围>+<权限设置>?赋予权限?
$ chmod a+r [file]
?赋予所有用户读取权限?
- <权限范围>-<权限设置>?取消权限?
$ chmod u-w [file]
?取消所有者写入权限?
- <权限范围>=<权限设置>?指定权限?
$ chmod g=x [file]
?指定组权限为可执行?$ chmod o=rwx [file]
?指定其他人权限为可读、可写和可执行?
字节序?计算机世界的左右脑?
Big-endian?小端?MSB?LSB?听起来很复杂?其实就是数据在内存中存储的顺序。
MSB (Most Significan Bit/Byte):最重要的位或最重要的字节。
Intel处理器?Little-endian!PowerPC?Big-endian!TCP/IP协议?Big-endian!Java虚拟机?Big-endian!
gdb-peda$ x/w 0xffffd584 # 查看内存中的数据
输入输出?程序与世界的桥梁?
使用命令的输出作为可执行文件的输入参数?管道的妙用!
文件描述符?内核的索引?
文件描述符?内核管理文件的索引?一切皆文件?普通文件、目录文件、链接文件、设备文件?
标准文件描述符?
- 0?标准输入?键盘!
- 1?标准输出?屏幕!
- 2?标准错误?屏幕!
fork()?子进程继承父进程的文件表?可能导致安全问题!vfork()?子进程拥有自己的进程表项?更安全!
核心转储?程序崩溃后的遗骸?
核心转储?程序异常终止后的内存快照?
会产生核心转储的信号?
开启核心转储?
ulimit -c
?查看当前设置?0?关闭!unlimited?开启!- 修改
/etc/security/limits.conf
?永久开启?
#<domain> <type> <item> <value>
修改转储文件保存路径?
/proc/sys/kernel/core_uses_pid
?核心转储文件名变为core.[pid]?# echo 1 > /proc/sys/kernel/core_uses_pid
/proc/sys/kernel/core_pattern
?控制生成核心转储文件的保存位置和文件名格式?# echo /tmp/core-%e-%p-%t > /proc/sys/kernel/core_pattern
gdb调试核心转储文件?
gdb [filename] [core file]
$ cat core.c // 例子代码
调用约定?函数间的秘密协议?
函数调用约定?参数传递的方式?内核接口?用户接口?32位Linux?64位Linux?
内核接口?
x86-32?寄存器传递参数?eax?syscall_number!ebx、ecx、edx、esi、ebp?参数!eax?返回值!
x86-64?rdi、rsi、rdx、r10、r8、r9?参数!syscall指令?rax?系统调用编号和返回值!
用户接口?
x86-32?栈传递参数?最后一个参数先入栈?
x86-64?寄存器传递参数?MEMORY类型?栈传递!INTEGER类型?rdi、rsi、rdx、rcx、r8、r9?超过6个参数?栈传递!
环境变量?程序的幕后推手?
环境变量?name=value?定义程序的运行环境?
分类?
- 按照生命周期划分?
- 永久环境变量?修改配置文件,永久生效?
- 临时环境变量?export命令,当前终端生效?
- 按照作用域划分?
- 系统环境变量?所有用户生效?
- 用户环境变量?特定用户生效?
设置方法?
/etc/profile
?所有用户永久生效?
bash # Set our default path
source /etc/profile
?使其生效?~/.bash_profile
?当前用户永久生效?export
?当前终端临时生效?
常用变量?
echo $PATH
?打印变量?env
?打印所有环境变量?set
?打印本地shell变量?unset
?清除环境变量?
LD_PRELOAD?指定优先加载的动态链接库?pwn题目的利器!
LD_PRELOAD=/path/to/libc.so ./binary
$ ldd /bin/true # 查看依赖的动态链接库
动态链接库?ld.so?重定位?ELF Header?INTERP字段?
$ file /lib/x86_64-linux-gnu/libc-2.23.so # 查看文件类型
environ?libc中定义的全局变量?指向环境变量表?栈地址?
gdb-peda$ vmmap libc # 查看libc的内存映射
procfs?内核的窗口?
procfs?Linux内核提供的虚拟文件系统?访问内核数据的接口?
文件? | 作用? |
---|---|
/proc/cmdline | 启动时传递给内核的参数? |
/proc/cpuinfo | CPU相关信息? |
/proc/crypto | 已安装的密码算法? |
/proc/devices | 已加载的块设备和字符设备? |
/proc/interrupts | 中断号列表? |
/proc/kcore | 系统物理内存?ELF核心文件格式? |
/proc/meminfo | 内存利用状况? |
/proc/mounts | 挂载点列表? |
/proc/modules | 已加载的内核模块? |
/proc/slabinfo | slab缓存信息? |
/proc/[pid] | 进程目录? |
/proc/[pid]/cmdline | 启动当前进程的完整命令? |
/proc/[pid]/exe | 指向启动当前进程的可执行文件的符号链接? |
/proc/[pid]/root | 当前进程运行根目录的符号链接? |
/proc/[pid]/mem | 当前进程占用的内存空间?不能被用户读取? |
/proc/[pid]/maps | 进程的内存区域映射信息?最常用? |
/proc/[pid]/stack | 当前进程的内核调用栈信息? |
/proc/[pid]/auxv | 传递给进程的解释器信息? |
/proc/[pid]/environ | 进程的环境变量? |
/proc/[pid]/fd | 进程打开文件的情况? |
/proc/[pid]/status | 进程的状态信息? |
/proc/[pid]/task | 进程的每一个线程的相关信息? |
/proc/[pid]/syscall | 进程正在执行的系统调用? |
黑客/网络安全学习包
资料目录
-
成长路线图&学习规划
-
配套视频教程
-
SRC&黑客文籍
-
护网行动资料
-
黑客必读书单
-
面试题合集
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
1.成长路线图&学习规划
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
2.视频教程
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,其中一共有21个章节,每个章节都是当前板块的精华浓缩。
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*************************************
3.SRC&黑客文籍
大家最喜欢也是最关心的SRC技术文籍&黑客技术也有收录
SRC技术文籍:
黑客资料由于是敏感资源,这里不能直接展示哦!
4.护网行动资料
其中关于HW护网行动,也准备了对应的资料,这些内容可相当于比赛的金手指!
5.黑客必读书单
**
**
6.面试题合集
当你自学到这里,你就要开始思考找工作的事情了,而工作绕不开的就是真题和面试题。
更多内容为防止和谐,可以扫描获取~
因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取
*************************************CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享*********************************