本文面向网络安全从业者、运维安全人员、渗透测试学习者,整理日常安全评估、应急排查、渗透测试中最高频使用的Linux命令,所有内容仅用于合法授权的安全测试与防护工作。
一、基础信息与权限排查类命令
这类命令主要用于确认当前操作环境、用户权限、系统基本信息,是安全操作的第一步。
1. whoami/ id
-
作用:确认当前登录用户身份与权限级别
-
参数说明:
-
whoami:无额外参数,直接输出当前生效用户名 -
id:无参数输出用户UID、GID、所属组完整列表;-u仅输出UID,-g仅输出GID,-n以名称替代数字ID输出
-
-
示例:
bashwhoami # 输出:root / www-data 等当前用户 id -n # 输出:uid=root gid=root groups=root,adm,sudo -
安全场景:拿到陌生服务器权限后第一步确认当前权限等级,判断是否需要提权
2. uname -a
-
作用:查看系统内核版本、发行版、硬件架构信息
-
参数说明 :
-a(all)输出全部系统信息,等效于同时指定-s(内核名)、-n(主机名)、-r(内核版本)、-v(编译信息)、-m(硬件架构)、-p(处理器类型)、-o(操作系统) -
示例:
bashuname -a # 输出:Linux kali 6.6.0-kali-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.6.15-2kali1 x86_64 GNU/Linux -
安全场景:确认系统架构(x86_64/arm等)、内核版本,匹配对应CVE漏洞利用载荷
3. sudo -l
-
作用:列出当前用户可执行的sudo特权命令
-
参数说明:无特殊常用参数,直接执行即可
-
示例:
bashsudo -l # 输出:(ALL:ALL) ALL 代表当前用户可无密码执行所有root命令;(root) /usr/bin/vim 代表仅可sudo执行vim -
安全场景:权限提升排查,确认当前用户是否有未授权的sudo配置可被利用
4. chmod/ chown
-
作用:修改文件/目录权限与属主,是安全加固、脚本执行的基础命令
-
参数说明:
-
chmod:-R递归修改目录下所有文件权限;权限可用数字(r=4/w=2/x=1)或符号(u/g/o/a +/-/= rwx)表示 -
chown:-R递归修改;格式为chown 用户:用户组 目标路径
-
-
示例:
bashchmod 600 /etc/shadow # 仅root可读写shadow文件,标准安全权限 chmod +x exploit.sh # 给渗透测试脚本添加执行权限 chown root:root /etc/passwd # 重置passwd文件属主为root -
安全场景:加固关键系统文件权限、赋予测试工具执行权限、排查异常权限配置
二、信息收集与资产探测类命令
用于授权范围内探测目标资产、服务信息,是渗透测试、安全评估的前置操作。
1. nmap(需安装:apt install nmap)
-
作用:网络扫描、端口探测、服务/版本识别、漏洞检测
-
核心参数说明:
-
-sn:仅主机存活探测,不扫描端口(原-sP,已兼容) -
-sS:TCP SYN半开放扫描,默认最快的端口扫描方式,不需要完成三次握手 -
-sT:TCP全连接扫描,更稳定但更容易被日志记录 -
-sU:UDP端口扫描,用于DNS/NTP等服务探测 -
-sV:探测开放端口对应的服务版本信息 -
-O:操作系统指纹识别(需root权限) -
-p:指定端口范围,如-p 1-1000、-p 22,80,443 -
-oN/-oX:扫描结果保存为文本/XML格式 -
--script vuln:调用NSE漏洞检测脚本
-
-
示例:
bashsudo nmap -sn 192.168.1.0/24 -n # 内网存活主机探测,不解析DNS加速 sudo nmap -sS -sV 192.168.1.100 -p 1-1000 # 扫描目标前1000端口,识别服务版本 nmap --script vuln 192.168.1.100 -p 80 # 检测80端口已知Web漏洞 -
安全场景:授权资产探测、内网存活主机发现、服务版本匹配CVE库
2. ss(替代传统netstat的现代工具)
-
作用:查看系统网络连接、监听端口、关联进程信息
-
核心参数说明:
-
-t:仅显示TCP连接;-u:仅显示UDP连接 -
-l:仅显示处于监听状态的端口 -
-n:数字格式显示IP/端口,不解析域名和服务名 -
-p:显示关联进程名/PID -
-a:显示所有连接(监听+已建立+关闭等待等)
-
-
示例:
bashss -tulnp # 查看所有监听的TCP/UDP端口及对应进程 ss -tn state ESTABLISHED # 查看所有已建立的TCP连接 ss -tulnp | grep 8080 # 确认8080端口是否被占用、对应哪个进程 -
安全场景:应急排查恶意监听端口、异常对外连接、确认服务是否正常启动
3. dig/ host
-
作用:DNS记录查询、域名解析排查
-
参数说明:
-
dig:-x反向解析IP到域名;@DNS服务器指定查询的DNS;类型(A/MX/TXT/NS)指定查询记录类型 -
host:简易DNS查询工具,无复杂参数时直接输出A记录
-
-
示例:
bashdig baidu.com A # 查询百度A记录(IPv4地址) dig -x 180.101.50.188 # 反向解析IP到域名 host -t MX example.com # 查询example.com的邮件交换记录 -
安全场景:子域名枚举辅助、DNS劫持排查、域名归属确认
三、网络分析与流量排查类命令
用于网络攻击检测、异常流量分析、入侵溯源等场景。
1. tcpdump(需root权限)
-
作用:命令行抓包工具,可实时捕获、过滤、保存网络流量
-
核心参数说明:
-
-i:指定网卡,any代表所有网卡 -
-c:抓包数量,到数后自动停止 -
-w:保存抓包到pcap文件,供Wireshark后续分析 -
-n:不解析主机名;-nn:不解析主机名和端口名 -
过滤表达式:支持
port 80、src host 192.168.1.1、tcp syn等组合条件
-
-
示例:
bashsudo tcpdump -i eth0 -c 100 -w capture.pcap # 抓eth0网卡前100个包保存到文件 sudo tcpdump -i any 'port 443 and src host 192.168.1.100' # 过滤指定源IP的HTTPS流量 sudo tcpdump -i eth0 'icmp' # 抓ICMP包(ping/traceroute流量) -
安全场景:应急排查恶意外连流量、分析攻击载荷、验证防火墙规则生效情况
2. iftop(需安装:apt install iftop)
-
作用:实时网络流量监控,按连接排序显示带宽占用
-
核心参数说明:
-
-i:指定监控网卡 -
-n:不解析主机名;-N:不解析端口名;-P:显示端口信息
-
-
示例:
bashsudo iftop -i eth0 -nNP # 监控eth0流量,显示端口,不解析主机名 -
安全场景:快速定位异常大流量连接(如DDoS、数据外传、挖矿流量)
3. lsof
-
作用:列出打开的文件/端口/网络连接对应的进程
-
核心参数说明:
-
-i:列出所有网络连接;-i :端口号指定端口 -
-p PID:列出指定PID打开的所有文件 -
-n:不解析端口名;-P:不解析协议名
-
-
示例:
bashsudo lsof -i :22 # 查看哪个进程占用了22(SSH)端口 sudo lsof -i tcp # 查看所有TCP连接对应的进程 -
安全场景:定位隐藏后门进程、确认端口占用合法性
四、日志与痕迹分析类命令
用于入侵事件溯源、攻击痕迹排查、合规性审计。
1. grep
-
作用:文本搜索工具,支持正则表达式,是日志分析的核心工具
-
核心参数说明:
-
-r:递归搜索目录下的所有文件 -
-i:忽略大小写 -
-n:显示匹配行的行号 -
-c:统计匹配行数 -
-A N/-B N:显示匹配行后/前N行内容
-
-
示例:
bashgrep -i "failed password" /var/log/auth.log # 查找SSH登录失败记录 grep -r "password" /var/www/html/ 2>/dev/null # 在Web目录递归搜索包含password的文件,忽略权限错误 grep -A 2 -B 2 "error" /var/log/nginx/error.log # 显示错误行前后各2行内容 -
安全场景:溯源攻击IP、查找敏感信息泄露、分析攻击特征
2. tail/ journalctl
-
作用:实时查看日志、系统日志查询
-
核心参数说明:
-
tail -f:实时跟踪文件新增内容;-n N显示最后N行 -
journalctl:--since "时间"查询指定时间的日志;-u 服务名查询指定服务日志;-k查询内核日志
-
-
示例:
bashtail -f /var/log/auth.log # 实时查看SSH登录日志 journalctl --since "1 hour ago" | grep -i "denied" # 查看近1小时被拒绝的操作日志 -
安全场景:实时监控攻击行为、排查历史入侵事件
3. find
-
作用:文件搜索工具,可用于查找敏感文件、异常权限文件
-
核心参数说明:
-
-name:按文件名匹配,支持通配符 -
-perm:按权限匹配,-4000代表SUID权限,-2000代表SGID权限 -
-type f:仅搜索普通文件;-type d仅搜索目录 -
-exec:对搜索结果执行后续命令
-
-
示例:
bashfind / -perm -4000 -type f 2>/dev/null # 查找系统中所有带SUID权限的文件(常见提权点) find /var/www/ -name "*.php" -exec grep -l "eval(" {} \; # 查找所有包含eval函数的PHP文件(WebShell嫌疑) -
安全场景:查找WebShell、异常权限文件、敏感配置文件泄露
五、应急与加固类命令
用于系统被入侵后的处置、安全加固操作。
1. iptables/ firewall-cmd
-
作用:防火墙规则管理,阻断恶意流量
-
示例(iptables):
bash# 阻止单个恶意IP iptables -A INPUT -s 192.168.1.200 -j DROP # 限制SSH每分钟最多5次新连接,防暴力破解 iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --set iptables -A INPUT -p tcp --dport 22 -m conntrack --ctstate NEW -m recent --update --seconds 60 --hitcount 5 -j DROP -
安全场景:临时封禁攻击IP、限制高危服务访问、应急阻断恶意连接
2. passwd/ chage
-
作用:用户密码管理、密码策略配置
-
示例:
bashpasswd user1 # 修改user1的密码 chage -M 90 -W 7 user1 # 设置user1密码90天过期,提前7天提醒 passwd -l user2 # 锁定user2账户,禁止登录 -
安全场景:清理入侵者添加的账户、强化密码策略、锁定异常账户
⚠️ 合规警示
本文所有命令、示例仅可用于合法授权的安全测试、企业自身系统安全加固、应急响应排查等合规场景,未经目标系统所有者书面授权,不得使用上述命令对任何第三方系统进行扫描、探测、入侵等操作。任何超出授权范围的恶意使用均违反《中华人民共和国网络安全法》《中华人民共和国刑法》等法律法规,使用者需自行承担全部法律责任。
注:不同Linux发行版(Debian/Ubuntu、RHEL/CentOS、Arch等)部分命令安装方式、默认参数可能存在差异,操作前建议确认当前系统环境。