在某次HW行动中对一个学校的资产进行渗透测试。在其一个智慧校园管理系统发现了一处sql注入。
可以看到可以选择以什么身份登陆,而且选择学生登陆的时候,还可以选择年级。
抓包看下是否存在数据库交互:
可以看到,会去服务器请求对应年级的数据,尝试添加单引号,出现报错,证实存在sql注入。
因为网站没有waf,所以直接拿sqlmap跑:
可以跑出管理员的账号,并且拿到了os-shell。
因为os-shell不方便,所以想弹个cs的shell或者上个webshell。但是当时局限于直接在web目录写shell,还有powershell反弹shell,前者不知道web绝对路径(尝试过在os-shell中利用dir命令来寻找web目录,但是他的目录是中文的,os-shell一直出错),后者被杀毒软件阻止。
当时没有想到利用bitsadmin等系统工具来下载木马执行,所以想着利用管理员账号进行网站后台看看。
在后台发现了一处文件上传
尝试上传aspx(简单的前端检测绕过)。
返回500,但是文件却成功上传到了服务器。
访问aspx文件,出现403错误
应该是iis限制了目录文件的权限。这里有两种办法,一种是上传web.config文件来增加文件的执行权限,一种是尝试进行路径穿越。
这里选择上传web.config文件
再次访问,出现未编译错误
大概是因为整套源码都是已经预编译好的,无法直接使用ASPX脚本。
尝试上传asp文件,成功解析:
附:web.config实战用法
接着上传asp webshell,用蚁剑连接:
查看一下权限:
接下来想弹shell到cs进行提权和进一步横向。
tasklist看下有没有杀软:
有赛门铁克会检测流量,所以得绕下流量检测。可以利用合法证书来加密cs的流量。
ssl证书的话可以自己申请,也可以利用keytools伪造。申请完证书之后用openssl生成 keystore
openssl pkcs12 -export -in fullchain.pem -inkey key.pem -out stao.p12 -name stao.site -passout pass:mypass
keytool -importkeystore -deststorepass mypass -destkeypass mypass -destkeystore stao.store -srckeystore stao.p12 -srcstoretype PKCS12 -srcstorepass mypass -alias stao.site
这里我还替换了cs的profile,c2 profile可以用来控制Beacon payload的行为,直接用了github现成的。
https://github.com/threatexpress/malleable-c2/blob/master/jquery-c2.4.0.profile
其他可以默认,但是要改一下其中ssl修改证书的配置,指定为我们刚刚生成的证书。
修改好profile之后,运行./c2lint2 xxx.profile检测一下。
没问题就可以运行cs服务器,并指定profile
nohup ./teamserver x.x.x.x password c2.profile &
启动客户端连接服务器,然后添加一个listeners,选择https的beacon
然后生成C#的payload,利用AVlator进行一下简单的免杀处理
将生成的exe利用蚁剑上传到服务器并执行,成功反弹shell。
接下来进行提权,systeminfo看下补丁。
可以利用https://bugs.hacking8.com/tiquan/进行补丁的对比
尝试下ms16-075,成功提权。