1.Linux提权步骤
收集内网信息
在命令行通过各种命令收集信息。
uname -a # 内核版本
lsb_release -a # os版本
cat /etc/redhat-release # 系统发行版信息(不同虚拟机可能不同,*release)
如果无法登录,可以使用nmap或fscan等扫描工具收集目标系统信息,包括操作系统版本、内核版本、运行的服务、开放的端口、已安装的软件等。
查找已知漏洞
使用工具如MSF中的【search xxx】来搜索特定内核版本和软件版本的已知漏洞。
本地漏洞利用
如果发现可利用的漏洞,尝试使用现有的EXP(漏洞利用代码)进行攻击。
EXP获取方式
- https://github.com/Ascotbe/Kernelhub
- http://kernelhub.ascotbe.com/Windows/Docs/#/
- https://github.com/SecWiki/windows-kernel-exploits
- https://github.com/nomi-sec/PoC-in-GitHub
- https://gitlab.com/exploit-database/exploitdb
漏洞可直接使用msf进行上传。
内核漏洞利用
在目标系统上编译漏洞,随后执行以利用代码,获得root权限。
Linux提权开源项目
# shell脚本:
https://github.com/the-Z-labs/linux-exploit-suggester
https://github.com/diego-treitos/linux-smart-enumeration
https://github.com/redcode-labs/Bashark
https://github.com/rebootuser/LinEnum
# python开发
https://github.com/belane/linux-soft-exploit-suggester
# go语言开发,可能需要先编译
https://github.com/liamg/traitor
# Perl语言开发
https://github.com/jondonas/linux-exploit-suggester-2
# 有多种编译方案
https://github.com/carlospolop/PEASS-ng
2.Linux的常用命令
ls # 列出当前目录下的文件及目录 可加常用选项 -a -l
cd # 切换目录
pwd # 显示当前所在目录
find path -name "XX" # 在XX目录树中找文件(可配合管道符+grep使用)
chmod # 更改文件或目录的访问权限
chown # 更改文件或目录的所有者
chgrp # 更改文件或目录的组
ping # 发送查看主机是否能连通
ifconfig # 配置或显示网络接口的网络参数
netstat # 显示网络连接、路由表等网络信息
uname -a # 看版本、内核等
wget/curl # 从网络上下载文件
cat /etc/hosts # 查看host解析记录
ps # 显示当前运行的进程
ps aux # 显示所有进程
kill # 杀进程
env # 显示所有环境变量
vim # 编辑或新建某文件
cat # 查看某文件内容
echo # 输出文本到控制台
tar # 打包、压缩或解压缩文件
zip/unzip # 处理 ZIP 文件
systemctl status/stop/start service # 查看/启动/关闭某服务
3.Linux提权实操
打开靶机无法成功登录
kali查看ip
nmap扫描到端口
打开网页端口80出现提示
再次使用nmap进行全端口扫描
发现一个登录页面
用谷歌浏览器的插件wappalyzer查看到了网页的编写信息等等。
回到Kali,启动msf,查询一下Drupal相关漏洞
msfconsole # 进入msf
search drupal # 搜索目标cms
use 1 # 选择1号模块使用
show options # 设置参数
选择1号模块
showoption设置一下参数,设置一下对应的IP和端口,然后用run命令启动。
获取shell,看看id和内核版本。
下载提权脚本,压缩包拖到Kali,解压后上传到靶机。
提权脚本:GitHub - The-Z-Labs/linux-exploit-suggester: Linux privilege escalation auditing tool
在meterpreter上传文件(注意:应该上传到一个肯定存在的目录)
upload /home/yubaibaio/linux-exploit-suggester-master/linux-exploit-suggester.sh /tmp/tatget.sh
进入shell给予权限。
./ tatget.sh输入这段代码启动脚本
上传漏洞的shell代码
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o aim aim.cpp -lutil执行上传
成功爆出密码,回到靶机登录即可。