一、复现上课的提权案例
扫描内网存活主机
信息搜集
开始攻击
二、总结Linux内核提权利用步骤(从内网信息收集到提权成功的思路)
1.内网信息收集
- 使用nmap扫描内网存活主机,确定攻击目标。
- 命令示例:
nmap -sP 192.168.1.0/24
来扫描特定网段。
- 命令示例:
- 使用nmap或fscan等扫描工具收集目标系统信息,包括操作系统版本、内核版本、运行的服务、开放的端口、已安装的软件等。
- 命令示例:
nmap -sV -p- 192.168.1.10
来扫描目标主机的所有端口和服务信息。
- 命令示例:
2.寻找已知漏洞
- 根据收集到的信息,如果目标开放了80或443端口,可以使用浏览器插件识别网站架构等信息,搜索已知的漏洞数据库,如阿里云漏洞库等。
- 使用工具如Metasploit Framework (MSF)中的
search
命令来查找与目标系统相关的已知漏洞。- 命令示例:
msfconsole
进入MSF,然后使用search target_os_version
。
- 命令示例:
3. 本地漏洞利用
- 如果发现可利用的漏洞,尝试使用现有的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
- EXP获取方式可能包括:
- 使用工具如Metasploit框架来尝试利用已知漏洞。
- 命令示例:在MSF中,使用
use exploit/windows/smb/ms08_067_netapi
来利用特定漏洞。
- 命令示例:在MSF中,使用
4.内核漏洞利用 Linux提权开源项目,以下是一些可用于Linux内核提权的工具和脚本:
- https://github.com/the-Z-labs/linux-exploit-suggester (shell脚本)
- https://github.com/belane/linux-soft-exploit-suggester (python开发)
- https://github.com/liamg/traitor (go语言开发,可能需要先编译)
- https://github.com/jondonas/linux-exploit-suggester-2 (Perl语言开发)
- https://github.com/carlospolop/PEASS-ng (有多种编译方案)
- https://github.com/diego-treitos/linux-smart-enumeration (shell脚本)
- https://github.com/redcode-labs/Bashark (shell脚本)
- https://github.com/rebootuser/LinEnum (shell脚本)
5.提权脚本和工具 使用自动化提权工具,如Linux提权常用工具"脏牛"家族(Dirty Cow)。
- 命令示例:
git clone https://github.com/DirtyCow-Vulnerability/dirtycow-vdso.git
下载脏牛提权工具,然后按照说明进行编译和运行。
三、总结Linux常用命令,10个以上
-
ls - 列出目录中的文件和文件夹。
- 示例:
ls -l
查看详细列表。
- 示例:
-
cd - 更改当前工作目录。
- 示例:
cd /home/user
切换到用户的主目录。
- 示例:
-
pwd - 显示当前工作目录的路径。
- 示例:
pwd
查看当前路径。
- 示例:
-
mkdir - 创建一个新的目录。
- 示例:
mkdir newfolder
创建名为newfolder的新目录。
- 示例:
-
rm - 删除文件或目录。
- 示例:
rm filename
删除名为filename的文件。
- 示例:
-
cp - 复制文件或目录。
- 示例:
cp file1.txt /home/backup/
将file1.txt复制到backup目录。
- 示例:
-
mv - 移动或重命名文件或目录。
- 示例:
mv file1.txt file2.txt
将file1.txt重命名为file2.txt。
- 示例:
-
cat - 查看文件内容。
- 示例:
cat filename
显示filename文件的内容。
- 示例:
-
grep - 在文件中搜索特定的文本字符串。
- 示例:
grep "keyword" filename
在filename文件中搜索"keyword"。
- 示例:
-
chmod - 改变文件或目录的权限。
- 示例:
chmod 755 filename
设置filename的权限。
- 示例:
-
chown - 改变文件或目录的所有者。
- 示例:
chown user:group filename
将filename的所有者更改为user,所属组更改为group。
- 示例:
-
tar - 打包或解包文件。
- 示例:
tar -czvf archive.tar.gz /path/to/directory
创建一个压缩包。
- 示例:
-
ps - 查看当前运行的进程。
- 示例:
ps aux
查看所有运行中的进程。
- 示例:
-
kill - 结束一个进程。
- 示例:
kill -9 1234
结束进程ID为1234的进程。
- 示例:
-
find - 在目录树中搜索文件。
- 示例:
find /home/user -name "*.txt"
在用户主目录中查找所有.txt文件。
- 示例:
-
df - 显示磁盘空间使用情况。
- 示例:
df -h
以易读的格式显示磁盘空间。
- 示例:
-
free - 显示内存和交换空间的使用情况。
- 示例:
free -m
以MB为单位显示内存使用情况。
- 示例:
-
tail - 查看文件的最后几行。
- 示例:
tail -f /var/log/syslog
实时查看syslog日志文件的最后10行。
- 示例:
-
head - 查看文件的前几行。
- 示例:
head -n 5 filename
显示filename文件的前5行。
- 示例:
-
wget - 从网络上下载文件。
- 示例:
wget http://example.com/file.tar.gz
下载指定URL的文件。
- 示例: