what_to_do_after_get_shell
拿到 shell/ 可以任意代码执行了都不知道该干什么?下面是可能的思路以 moectf2024 moejail_lv1 为例。
暴力搜索文件内容 ¶
例如,我们可以使用 find . -name "*" -exec grep -H "flag{" {} \;
来递归搜索文件中包含 flag{
字段的文件,熟悉命令的话可以知道,.
表示由当前路径开始,*
所在的引号内表示匹配的文件名,*
表示我们想要搜索所有文件。
(这里使用 /tmp/ 是因为我已经知道它在那了,节约时间)
如果发现什么都没搜到,可能需要注意的是 globbing pathnames:
[!CITE]
If a filename starts with a
.
, this character must be matched explicitly. (Thus, rm _ will not remove .profile, and _tar c will not archive all your files; tar c . is better.)
例如
但是
查看一些关键信息 ¶
环境变量 ¶
执行 env
或者 set
可以查看环境变量(有时可能就是 echo $FLAG
就可以了
命令历史 ¶
在 ~/.history
~/.bash_history
~/.zsh_history
中可能包含了执行过的历史记录,从命令我们可以推测出题人之前在这干了什么。
例如,我在使用 zsh 之前只是使用 bash 安装了 zsh 而已:
从当前文件找线索 ¶
查看当前路径 ¶
可以使用 pwd
ls
ls -a
等查看当前路径及文件。
就近查看文件寻找有用信息 ¶
查看对应的文件 ¶
其他 ¶
其他可能存在信息,但是不那么常见的内容,包括当前 shell 所在服务器 / 系统的信息,运行过的进程等等……
在 Linux 系统中,你可以使用多种命令行工具来查看进程信息。以下是一些常用的命令:
ps
命令:- 用于查看当前运行的进程。
- 示例:
ps aux
显示所有用户的所有进程。 - 示例:
ps -ef
以完整格式显示进程。
top
命令:- 实时显示系统中正在运行的进程,并提供 CPU 和内存使用情况。
- 只需在命令行中输入
top
,然后按q
退出。
htop
命令:- 类似于
top
,但提供了更友好的用户界面和更多功能(如可视化) 。 - 如果没有安装,可以通过
sudo apt install htop
或sudo yum install htop
安装。
- 类似于
pgrep
命令:- 根据名称查找进程 ID(PID
) 。 - 示例:
pgrep python
查找所有 Python 进程的 PID。
- 根据名称查找进程 ID(PID
pidof
命令:- 用于查找特定程序的 PID。
- 示例:
pidof bash
pstree
命令:- 以树形结构显示进程及其子进程。
- 示例:
pstree
lsof
命令:- 列出打开的文件及其相关联的进程。
- 示例:
lsof | grep <filename>
查找特定文件的相关进程。
/proc/目录结构:
/proc/<PID>/status
: 查看特定进程的信息。/proc/<PID>/cmdline
: 查看启动该进程时使用的命令行参数。