常见问题的解决方法
0x01 文件无法删除¶
以 evil.sh
文件 为例,下列提到的方法都是在常规 rwx 权限满足条件后依旧无法删除文件的情况
1. 文件被进程占用¶
2. 文件存在隐藏属性¶
一般导致无法删除的隐藏属性有两种 a
和 i
可以像图中一样使用下列命令进行取消
3. 文件上层目录存在 SBIT 权限¶
这种情况只存在于非 root 权限去删除其他用户创建的目录的情况,即使文件权限是 777
也无法进行删除
以非 root 用户 join 删除 test1 用户创建的 /tmp/test1_dir/test1.txt
为例
0x02 netstat -pantu pid处显示 -¶
1. 存在隐藏挂载¶
有些时候 netstat -pantu 显示 pid 处显示为 -
可能是使用了下面的方法隐藏
- mkdir .hidden
- mount -o bind .hidden /proc/PID
这种情况可以使用
cat /proc/$$/mountinfo
来查看挂载信息
通过
umount /proc/PID
来取消挂载就好了
2. 权限不够¶
部分场景下,权限不够时也会显示 -
3. 进程刚刚释放¶
这是一种巧合情况,进程刚刚释放,在这一小段时间恰巧被大家捕捉到了,就可能显示为 -
0x03 ps、top 等工具无法看到恶意进程¶
1. 通过挂载进行了隐藏¶
有些时候 ps、top 无法发现恶意进程
可能是使用了下面的方法隐藏
- mkdir .hidden
- mount -o bind .hidden /proc/PID
这种情况可以使用
cat /proc/$$/mountinfo
来查看挂载信息
通过
umount /proc/PID
来取消挂载就好了
2. ps、top 命令被替换¶
检查系统完整性 (参考 小技巧章节 -> 0x04 系统完整性检查)
将携带的 busybox 程序拷贝至受害系统中进行相关查询
3. LD_PRELOAD 等方法共享库劫持¶
可以看到,ps
和 top
都不是 bash
内置命令,而且都是动态链接的文件,因此会受到 LD_PRELOAD
这类共享库劫持的影响,可以通过 busybox
来实现 ps
和 top
0x04 终端出现乱码¶
这里分为两种情况
- ssh 连接或者物理本地连接就是乱码
- 打开二进制文件等出现乱码,原本是正常显示的
对于第一种情况,大概是语言显示问题,可以考虑更改语言显示,这个要让客户现场工作人员进行调整,属于是危险行为,所以这里也不给出具体的命令
第二种情况就比较常见了,在排查过程中很可能因为误读二进制文件导致终端乱码,可能出现提示符乱码、输入内容乱码、输入内容不可见等
如果再次获取一个终端环境,例如 ssh 或者本地打开终端非常方便,那就重新打开即可,如果再去获取终端环境较为困难,可以尝试以下方法
注意,即使输出不可见或乱码也不要担心,正常输入即可
1. reset¶
reset
命令可以重置终端的设置,这意味着当前终端之前执行的命令会丢失,即通过上/下按键能够快速获取的命令
2. stty sane¶
stty sane
命令可以将终端设置恢复到常规模式
执行
reset
和stty sane
命令通常不会影响 Bash 的配置文件(如.bashrc
、.bash_profile
等),这些命令主要作用于当前终端会话的显示和输入输出设置。具体来说:
reset
命令
- 不会影响 Bash 配置文件:
reset
命令不会修改或删除任何配置文件。它只是重置当前终端的状态,包括清除屏幕、重置颜色和光标位置等。- 重置终端状态:它会重置终端的显示模式和其他设置,但不会影响到 Bash 的配置。
- 命令历史记录:虽然
reset
命令可能会清除当前屏幕上的命令历史显示,但不会影响 Bash 内部维护的命令历史记录文件(如.bash_history
)。
stty sane
命令
- 不会影响 Bash 配置文件:
stty sane
命令也不会修改或删除任何配置文件。它只是将终端的各种设置恢复到默认的“正常”模式。- 恢复终端设置:它主要恢复终端的输入输出设置,如启用回显、启用特殊字符处理等,但不会影响到 Bash 的配置。
3. clear¶
这个没啥可说的,能 clear 的属于是幸运情况
4. echo 字符¶
通过发送终端重置字符来恢复终端