第十次作业

一.复现上课的提权案例


1.下载群里的案例一,导入进vm;

2.kali使用nmap扫一扫
发现了其ip,且发现其开放了80端口,试下访问其web服务

image.png


3.打开之后如下,没有发现什么。

image.png


4.使用nmap全端口扫描

nmap -T4 -p 1-65535 “ip”
发现还开放了1898端口

image.png


5.尝试后访问发现一个登陆界面

image.png


6.使用wappalayzer查看框架

image.png


7.使用msf查看Drupal的漏洞

image.png


use 1
set rhosts 192.168.130.92
set rport 1898
show options 看一看发现改成了本地的案例的ip和端口

image.png


run!

image.png


成功打入了案例机
7.查看一些用户和版本信息

image.png

image.png


8.上传一个linux漏洞查找脚本
https://github.com/The-Z-Labs/linux-exploit-suggester

image.png


9.执行脚本

进入tmp后发现成功上传了但发现没有执行权限
chmod +x test.sh

image.png


执行后发现很多漏洞,如下

image.png


10.下载dirtycow漏洞的cve-2016-5195

image.png

image.png


下载zip,解压

11.上传.cpp脚本到案例机,并编译

image.png


g++ -Wall -pedantic -O2 -std=c++11 -pthread -o surprise surprise.cpp -lutil

image.png


12.运行

image.png


发现已经把密码置为了dirtyCowFun
由于su命令只能在终端执行,这里是用的直接用的shell,所以使用python打开一个终端
python -c'import pty; pty.spawn("/bin/bash")'
发现成功提权


二.总结Linux内核提权利用步骤(从内网信息收集到提权成功的思路)


1. 信息收集

提权的前提是充分了解目标系统的环境和配置,因此,首先需要进行信息收集。收集的信息包括:
●系统信息:
操作系统的版本和发行版(uname -a,cat /etc/os-release)
内核版本(uname -r)
系统架构(uname -m)
●用户和组信息:
当前用户及其权限(id,whoami)
可用用户列表(cat /etc/passwd)
当前用户所属组(groups)
●网络信息:
本机和内网的IP地址、路由信息(ifconfig,ip addr,ip route)
开放的端口和监听服务(netstat -tuln,ss -tuln)
内网中是否有其他主机或服务
●正在运行的服务和进程:
查看当前运行的服务及进程(ps aux,top)
检查cron作业(crontab -l,cat /etc/crontab)
●文件和目录权限:
查看重要文件的权限设置(ls -la /etc/shadow,ls -la /root)
查看是否有权限提升的可执行文件(find / -perm -4000 2>/dev/null,即SUID文件)
●编译器及可用工具:
查看系统是否安装了gcc、python等工具(用于后续编写和编译提权exploit)


2. 漏洞分析

根据收集到的信息,确定可能存在的提权途径。以下是一些常见的提权方式:
●内核漏洞:
利用内核版本中的已知漏洞(例如Dirty Cow、CVE-2016-5195等)
搜索当前内核版本的漏洞信息(可以使用公开的漏洞数据库或Exploit工具)
●SUID 程序:
查找具有SUID权限的可执行文件,检查这些程序是否可以被滥用。例如/usr/bin/passwd、/bin/su、/bin/bash等。
有时这些程序可能存在未修复的漏洞,利用这些漏洞可以提升权限。
●不安全的配置文件:
检查重要的系统文件是否具有错误的权限(例如/etc/passwd或/etc/shadow文件可写)
通过修改这些文件可以添加新用户或改变密码。
●计划任务 (Cron) 漏洞:
检查是否有可修改的Cron任务,利用它执行恶意命令。
查找可以写入的脚本或命令路径,通过覆盖这些脚本来提升权限。
●不当使用的环境变量:
检查是否存在程序未正确处理环境变量的情况(例如利用LD_PRELOAD、PATH变量覆盖可执行文件)
●Docker/LXC 容器逃逸:
如果目标系统上有容器环境,并且用户具有容器内的执行权限,可能通过容器逃逸技术提升权限。
3. 验证漏洞并准备提权工具
一旦确定了潜在的漏洞或提权途径,接下来需要:
●准备已知的exploit代码,如果是内核漏洞,通常需要编写或下载对应的提权代码。
●在目标系统上执行提权代码。可通过gcc编译exploit(如果系统上有gcc),或通过其他方式上传已编译好的可执行文件。
4. 执行提权
执行提权操作时需要小心,确保操作隐蔽并尽量减少对系统的影响。常见的提权步骤:
●运行exploit: 直接运行提权脚本或程序,尝试提升至root权限。
●利用SUID文件提权: 如果找到可滥用的SUID文件,尝试直接利用它运行/bin/sh或/bin/bash以获取root shell。
●修改配置文件: 如果找到可写的配置文件(如/etc/passwd),直接添加具有root权限的用户。
5. 后渗透和持久化
成功提权后,通常需要考虑进一步的操作以确保持续访问和控制目标系统:
●建立后门:
添加新的具有root权限的用户。
修改ssh配置,保留对目标的访问。
●清理痕迹:
删除执行的恶意脚本和工具,清除系统日志中的可疑记录(例如使用echo '' > /var/log/auth.log)
●网络横向移动:
通过提权后的权限访问更多的系统资源,可能扩展攻击范围。


3.总结Linux常用命令,10个以上

1. 文件和目录操作

●ls:列出目录内容。
示例:ls -l(详细列表)
●cd:切换目录。
示例:cd /home/user
●pwd:显示当前工作目录。
●mkdir:创建目录。
示例:mkdir new_directory
●rmdir:删除空目录。
示例:rmdir old_directory
●cp:复制文件或目录。
示例:cp file1 file2
●mv:移动或重命名文件/目录。
示例:mv old_name new_name
●rm:删除文件或目录。
示例:rm file.txt(删除文件),rm -r dir(递归删除目录)
●find:查找文件。
示例:find / -name filename

2. 文件查看与编辑

●cat:显示文件内容。
示例:cat file.txt
●more:分页显示文件内容。
●less:与more类似,但可以向前翻页。
●head:查看文件的前几行。
示例:head -n 10 file.txt
●tail:查看文件的后几行。
示例:tail -n 10 file.txt
●nano:简单的文本编辑器。
示例:nano file.txt
●vi/vim:功能强大的文本编辑器。
示例:vi file.txt

3. 系统管理

●top:实时显示系统进程和资源使用情况。
●ps:显示当前进程列表。
示例:ps aux
●kill:终止进程。
示例:kill -9 PID
●df:显示文件系统磁盘空间使用情况。
示例:df -h(人类可读格式)
●du:显示目录或文件的磁盘使用情况。
示例:du -sh /home/user
●free:显示内存使用情况。
示例:free -m(以MB显示)
●uptime:显示系统运行时间和负载信息。
●whoami:显示当前用户的用户名。
●id:显示用户和组ID。
●uname:显示系统信息。
示例:uname -a(显示所有信息)

4. 权限与用户管理

●chmod:更改文件/目录权限。
示例:chmod 755 file.txt
●chown:更改文件/目录所有者。
示例:chown user:group file.txt
●passwd:修改用户密码。
示例:passwd username
●su:切换用户身份。
示例:su - root
●sudo:以超级用户权限运行命令。
示例:sudo apt update
●useradd:添加新用户。
示例:sudo useradd username
●usermod:修改用户信息。
示例:sudo usermod -aG groupname username
●userdel:删除用户。
示例:sudo userdel username

5. 网络管理

●ifconfig:查看或配置网络接口。
●ip:查看或修改IP地址和路由。
示例:ip addr show
●ping:测试与主机的网络连接。
示例:ping google.com
●netstat:显示网络连接、路由表等信息。
示例:netstat -tuln(显示监听的端口)
●ss:类似于netstat,更快的网络工具。
示例:ss -tuln
●scp:通过SSH复制文件。
示例:scp file.txt user@remote:/path/to/destination
●wget:从网络下载文件。
示例:wget http://example.com/file.txt
●curl:传输数据或与服务器交互。
示例:curl http://example.com
●ssh:通过SSH连接远程主机。
示例:ssh user@hostname

6. 压缩与打包

●tar:打包和解压缩文件。
示例:tar -cvf archive.tar directory/(打包),tar -xvf archive.tar(解包)
●gzip:压缩文件。
示例:gzip file.txt
●gunzip:解压缩.gz文件。
示例:gunzip file.txt.gz
●zip:压缩文件为.zip格式。
示例:zip archive.zip file.txt
●unzip:解压缩.zip文件。
示例:unzip archive.zip

7. 日志查看

●dmesg:查看内核日志。
●journalctl:查看系统日志(针对systemd系统)。
示例:journalctl -xe
●tail -f:动态查看日志文件。
示例:tail -f /var/log/syslog

8. 包管理

●apt:Debian/Ubuntu 系统的包管理工具。
示例:sudo apt update(更新软件包列表),sudo apt install package_name(安装软件包)
●yum:CentOS/RHEL 系统的包管理工具。
示例:sudo yum install package_name
●dnf:Fedora/RHEL/CentOS 系统的新一代包管理工具。
示例:sudo dnf install package_name

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值