渗透视角下的命令行实战指南:从基础指令到主机Shell运维渗透
一、前言:为什么渗透测试必须精通命令行?
从我们初识计算机开始,命令行便是操作系统交互的核心基础。如今图形化界面高度普及,可视化鼠标操作大幅降低了计算机的使用门槛,日常办公、普通电脑操作几乎无需接触指令,这也让很多初学者忽视了命令行的核心价值。
但在渗透测试、主机攻防、内网安全场景中,图形化界面几乎是一种奢望。
我们通过漏洞利用、弱口令爆破、脚本上传等方式拿下目标主机权限后,绝大多数情况下,获取到的仅仅是一个纯命令行Shell——无桌面、无鼠标、无可视化工具,所有的信息搜集、系统探测、权限判断、痕迹清理、内网横向移动、持久化维持权限等核心渗透操作,只能依靠命令行完成。
可以说:命令行的熟练程度,直接决定了渗透测试的效率与上限。基础指令用于环境适配,进阶指令用于深度探服、排障提权,掌握Windows与Linux双平台命令行,是每一位安全从业者的必备基本功。
二、渗透核心认知:图形界面与Shell终端的本质区别
日常使用的Windows、Linux图形桌面,本质是系统封装的可视化交互工具,仅适用于合法日常运维;而渗透场景中的Shell(CMD、PowerShell、Bash、Sh),是操作系统最底层的交互入口,权限更高、操作更隐蔽、可执行功能更全面,也是黑客与安全人员操控靶机、服务器的唯一核心通道。
在渗透实战中,我们所有核心操作均依赖命令行实现:
-
获取主机系统版本、用户信息、权限等级
-
遍历目录、查找敏感配置文件、账号密码、日志信息
-
探测端口、进程、网络连接,排查存活服务与内网主机
-
结束防护进程、绕过端口占用、维持远程连接
-
清理操作痕迹、隐藏入侵行为
三、Windows 渗透Shell命令(基础+进阶 实战全集)
Windows靶机、服务器拿下Shell后,默认适配CMD/PowerShell环境,以下命令均为渗透高频实操指令,区别于普通日常操作,侧重信息搜集、环境探测、权限利用。
1. 基础必备指令(Shell)
快速熟悉靶机目录结构、基础环境:
dir ::列出当前目录文件
cd 文件夹名 ::切换目录
cd .. ::返回上级目录
md test ::新建文件夹
del test.txt ::删除文件
copy a.txt D:\ ::复制文件
move a.txt D:\ ::移动文件
ipconfig ::查看本机IP
ping www.baidu.com ::连通性测试
cls ::清屏
2. 进阶渗透指令(信息搜集+端口进程管控)
基础命令仅能完成简单目录操作,进阶命令结合管道符,可实现精准筛选、深度探测,是Windows渗透的核心能力:
:: 精准查询端口占用(渗透高频:排查服务端口、后门端口)
netstat -ano | findstr "8080"
netstat -ano | findstr "ESTABLISHED"
:: 根据PID强制结束进程(结束杀毒软件、防护进程、占用服务)
taskkill /f /t /pid 进程PID
taskkill /f /im svchost.exe
:: 筛选日志、配置文件中的敏感关键词(密码、error、登录记录)
findstr "password" config.ini
findstr "登录" system.log
:: 查看系统所有用户、权限、开机记录
net user
wmic useraccount get name,passwordexpires
:: 查看系统服务、开启启动项(排查持久化后门、恶意服务)
sc query
tasklist
渗透实战场景:拿到Windows WebShell后,发现目标服务无法启动、疑似端口被占用,通过netstat精准定位占用进程,强制结束后重新部署后门脚本,完成权限维持。
3. PowerShell高阶渗透指令(绕过限制、深度探测)
PowerShell权限高于普通CMD,可绕过部分系统防护策略,是Windows渗透提权、信息搜集的核心工具:
# 筛选高占用CPU异常进程(排查可疑后门进程)
Get-Process | Where-Object {$_.CPU -gt 10}
# 精准查询指定端口监听状态
Get-NetTCPConnection | Where-Object {$_.LocalPort -eq 3389}
# 批量扫描目录下所有配置文件,查找密码关键词
Select-String -Path "*.ini","*.txt" -Pattern "pwd|password"
# 导出系统进程信息,用于后续溯源分析
Get-Process | Export-Csv process_log.csv
四、Linux 渗透Shell命令(基础+进阶 攻防专用)
Linux服务器、云主机是渗透测试的主要靶标,拿下Linux Shell(Bash终端)后,所有内网探测、日志分析、权限提升、文件窃取均依赖命令行操作,以下为攻防专属指令。
1. 基础必备指令(Shell环境初始化)
ls -l # 详细列出文件权限、所有者、修改时间(判断文件可读写权限)
ls -a # 查看隐藏文件(排查隐藏后门、配置文件)
pwd # 确认当前路径,避免误删系统文件
cd /var/log # 进入日志核心目录,排查访问、报错记录
mkdir back # 创建隐藏目录,存放后门脚本
rm -rf # 强制删除文件/目录,清理入侵痕迹
whoami # 查看当前Shell权限,判断是否需要提权
2. 进阶核心指令(渗透三大神器+系统巡检)
grep、sed、awk被称为Linux文本三剑客,是渗透日志分析、敏感信息提取的核心工具,远超基础命令能力:
# grep:筛选日志中的报错、入侵、登录异常记录
grep "error" /var/log/nginx/error.log
grep "root" /var/log/secure
grep -v "debug" log.txt # 过滤无效日志,精准定位异常
# sed:批量修改配置文件,写入后门、修改权限
sed -i 's/deny/allow/g' /etc/ssh/sshd_config
# awk:精准提取日志IP、端口、访问路径
awk '{print $1,$7}' access.log
# 系统渗透巡检:排查磁盘、内存异常(防止操作过载被发现)
df -h
free -h
du -sh *
3. 高阶网络与进程渗透指令
# 替代netstat,精准查看端口监听、进程占用(渗透首选)
ss -tunlp | grep 80
ss -tunlp | grep 22
# 查看端口对应进程、排查可疑监听端口
lsof -i :3306
# 实时监控服务日志,排查防护拦截、访问异常
journalctl -u nginx -f
# 查找系统中所有配置文件、密钥文件
find /etc -name "*.conf"
find / -name "id_rsa" # 查找ssh私钥,用于内网横向移动
# 强制终止异常进程(结束安全防护、监控进程)
ps -aux | grep monitor
kill -9 进程PID
五、渗透实战综合场景:命令行完整攻防流程
结合前文所有基础+进阶命令,还原真实渗透场景,完整复刻拿下靶机Shell后的标准操作流程:
场景:拿下一台Linux网站服务器Shell,需完成信息搜集与权限维持
-
环境确认:执行
whoami、pwd、uname -a,确认当前权限、系统版本、工作目录; -
网络探测:执行
ip a、ss -tunlp,查看服务器IP、开放端口、运行服务,判断业务架构; -
日志排查:进入日志目录,通过
grep、awk筛选报错、登录、访问记录,排查原有防护规则; -
环境适配:查询端口占用,结束无用防护进程,避免后门被拦截;
-
痕迹清理:通过命令清空操作日志、删除临时文件,隐藏入侵行为;
-
权限维持:创建隐藏目录、写入持久化脚本,保证后续可稳定连接靶机。
六、总结:命令行是渗透测试的核心基石
图形化界面是普通用户的操作捷径,而命令行是安全人员的攻防武器。
基础命令让我们适配Shell环境、完成简单的文件与网络操作,而进阶的管道过滤、文本处理、端口进程管控、日志分析命令,才是支撑渗透测试中信息搜集、漏洞利用、权限维持、痕迹清理的核心能力。
无论是Windows还是Linux靶机,只要获取Shell权限,所有攻防操作皆依赖命令行。熟练掌握双平台命令行体系,吃透基础指令与进阶实战用法,是入门网络安全、渗透测试的必经之路,也是区分普通计算机使用者与安全技术人员的核心标准。
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐


所有评论(0)