回顾第二章(shell)

本文详细介绍了Linux Shell脚本的使用,包括脚本解释器的声明、脚本的执行方式、权限设置、基本的shell特殊字符、参数传递、环境变量、运算符、字符串操作、数组以及分支和循环控制结构。同时讲解了如何通过管道符连接命令,以及如何声明和使用自定义变量和系统变量。此外,文章还提到了bash中的[[ ... ]]和((...))结构在条件判断和算术运算中的应用。
  1. 脚本解释器
    shell的每个脚本的开头都需要使用#!,用来告知系统文件的执行都需要一个解释器。
    举例:
    #!/bin/sh
    #!/bin/bash
  2. 调用脚本
    有三种方法:
    ①sh xxx.sh
    ②bash xxx.sh
    bash +x xxx.sh
    ③./xxx.sh #需要给文件授予执行权限

#授予权限的方法如下
chmod +x helloworld.sh #授予可执行权限
chmod +rx helloworld.sh #授予任何人可执行可读和可执行权限
chmod u+rx helloworld.sh #只给脚本的所有者可读和可执行权限
3. 写一个简单的脚本

#!/bin/bash

echo "test"
  1. Linux管道
    可以将两个或多个命令连接到一起,使用符号———— | ,这个被称为管道符
    用法:把上一个命令的输出作为下一个命令的输入
    补充:有输入才能有输出,如果输出出错,则输入无法处理
  2. shell的特殊字符
#	注释,声明命令解释器的类型,某些特定的模式匹配操作使用	
;	命令分隔符,可以在同一行上写多个命令
;;	双分号,终止case选项		
.	bash内置命令	补充:点(.)放在文件名前面表示隐藏文件。移动文件操作时,如果是单独点作为参数cp cxx/helloworld.sh .表示当前工作目录。
    两个点(..),表示上一级目录。正则表达式中作为匹配任何的单个字符	
" "	双引号表示字符串		
' '	单引号表示字符		
,	逗号操作符	补充:作用是链接一系列操作	
\	反斜杠(\)	补充:对单个字符的引用机制	一般用来转义双引号(" ") 和单引号(' ')。
/	正斜杠(/)	补充:作为文件名路径分隔符/data/cxx/Makefile。用作除法算术操作符	
*	乘法算术操作符。两个(**)表示求幂运算符。通配符,可以用来匹配给定目录下的任何文件名		
?	测试通配符。通配符,在正则表达式中表示一个字符,也可以用来匹配单个字符。
$	**引用变量**。正则表达式中,表示行结束符。		
${}	参数替换
**$* or $@	位置参数**		
$$	进程ID变量	补充:保存所在脚本的进程ID	
$?	退出状态码变量	补充:可保存命令、函数或者脚本本身的退出状态码	一般是0或 1。
{ }	大括号,代码块,也叫作内部组。	补充:在函数或者判断语句中使用代码块	在大括号中不允许有空白,除非空白被引用或者转义
[ ]	测试条件。数组元素。字符范围	补充:作为字符范围时,方括号描述一个匹配的字符范围	
> &> >& >> < <>	重定向		
  1. shell中的参数
    $0 shell文件本身的文件名
    1~1~1n 添加到Shell的各参数值。$1是第1参数、2是第2参数、…、2是第2参数、…、2是第2参数、n表示第n个参数。注意:10以上要用大括号,如{10}。
    $? 最后运行命令的结束代码(返回值),执行成功返回0,不成功则返回非零值(一般解释为错误码)。
    $$ Shell本身的PID(ProcessID)
    $! Shell最后运行的后台Process的PID
    $- 使用Set命令设定的Flag一览
    ∗所有参数列表。如"* 所有参数列表。如 "
<think>嗯,用户现在需要关于MySQL应急响应中第二章日志分析的教程或详细说明。首先,我得回顾一下他们提到的引用内容,看看有没有相关的信息。根据引用[1],里面提到在应急响应中需要了解MySQL提权的姿势以及前提条件,还有分析日志发现可疑活动,比如上传webshell和执行系统命令。引用[2]指出具体的日志路径是/var/log/mysql下的error.log,里面提到了上传的1.sh文件和后续的错误信息。引用[3]列出了不同服务的日志路径,包括MySQL的在/var/log/mysql/和/var/log/mariadb/。 用户的需求集中在第二章的日志分析部分,可能需要具体的步骤、常见日志位置、分析方法,以及如何检测入侵迹象。他们可能是在学习如何进行应急响应,特别是在MySQL环境下处理入侵事件。需要确保回答结构清晰,分步骤说明,并且结合引用中的信息,比如日志路径、提权迹象、webshell检测等。 另外,用户提供的引用中有提到分析error.log,发现上传的1.sh文件,这可能涉及到UDF提权或者利用MySQL写文件的功能。需要解释如何检查这些可疑操作,比如查看是否有异常的SELECT INTO OUTFILE语句,或者是否有自定义函数被创建。同时,应急响应的流程应包括日志收集、分析、入侵确认、提权检测和恢复措施。 可能还需要提到常用的工具和命令,比如检查进程、网络连接,查找webshell的方法,以及如何加固MySQL配置防止进一步攻击。用户的问题可能隐含了实际操作中的困难,比如如何定位问题日志,如何区分正常和异常查询,所以需要详细说明这些点。 总结下来,回答的结构应该是:日志路径、分析步骤、常见攻击特征、应急处理流程、防范建议,并结合实际例子,比如引用中的1.sh文件。同时生成相关问题,帮助用户深入理解。</think>### MySQL应急响应第二章:日志分析指南 #### 一、核心日志定位 1. **MySQL默认日志路径** - 主要日志文件位于$ /var/log/mysql/error.log $(Ubuntu/Debian系统)或$ /var/log/mariadb/mariadb.log $(CentOS/RHEL)[^3] - 通用查询日志(需手动开启):$ general_log_file = /var/log/mysql/mysql.log $ 2. **关联日志范围** - Web服务日志:$ /var/log/apache2/access.log $ 或 $ /var/log/nginx/access.log $[^3] - 系统命令日志:$ /var/log/auth.log $(SSH登录记录) #### 二、入侵特征分析流程 1. **错误日志筛查** - 查找异常报错如: ```sql [ERROR] /tmp/1.sh: Permission denied ``` 此类信息可能指向攻击者尝试通过MySQL写入可执行文件(如引用[2]中的/tmp/1.sh) 2. **查询语句分析** - **高危操作标记**: ```sql SELECT ... INTO OUTFILE '/var/www/html/shell.php' -- 写Webshell CREATE FUNCTION sys_exec RETURNS INTEGER SONAME 'udf.so' -- UDF提权 ``` 3. **时间戳关联** 对比MySQL日志与Web访问日志的时间点,定位攻击入口: ```bash grep "POST /upload.php" /var/log/nginx/access.log ``` #### 三、提权检测技术点 1. **UDF提权特征** - 日志中出现$ lib/plugin $目录创建记录 - 检测系统是否存在可疑.so文件: ```bash find / -name "*udf*.so" -mtime -3 ``` 2. **系统命令执行痕迹** - 通过$ ps aux | grep mysql $查看异常子进程 - 检查$ ~/.mysql_history $中的敏感操作记录 #### 四、应急响应操作模板 ```bash # 1. 日志固定取证 cp /var/log/mysql/error.log /evidence/mysql_log_$(date +%s).bak # 2. Webshell扫描 grep -r "eval($_POST" /var/www/html/ # 3. 进程排查 lsof -p $(pgrep mysqld) | grep 'DEL' # 检测内存文件删除痕迹 # 4. 用户权限审计 mysql -e "SELECT user,host FROM mysql.user WHERE Super_priv='Y';" ``` #### 五、防御加固建议 1. **权限最小化** ```sql REVOKE FILE ON *.* FROM 'webuser'@'%'; -- 禁用非必要权限 ``` 2. **配置强化** 在$ /etc/mysql/my.cnf $中添加: ```ini [mysqld] secure-file-priv = /NULL # 禁止文件导出 local-infile = 0 # 禁用本地加载 ```
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值