看我如何从外网直接拿下内网靶标

admin 2021年12月24日07:24:13评论124 views字数 1687阅读5分37秒阅读模式

作者:Bughunter,文章来源:先知社区

1.拿到目标制定策略进行信息收集

某地攻防演练拿到演习目标后,进行了一波常规信息收集,打了一个靶标。
发现靶标分数有点高还是打靶标来得快,于是对所有靶标进行分析。但是大部分靶标都给的是内网地址,
观察了一下收集的所有目标ip发现基本上存在于xx.xx.98.x-xx.xx.106.x这个范围

看我如何从外网直接拿下内网靶标

主动扩大范围扫描x.x.95.x-x.x.110.x这些段,直接通过fofa api查询所有记录

看我如何从外网直接拿下内网靶标

然后使用我B哥的webalivescan扫描
https://github.com/broken5/WebAliveScan

看我如何从外网直接拿下内网靶标

发现这个站打开跳转
http://x.x.x.x:81/x.aspx
和某个内网靶标端口文件名都对上了

看我如何从外网直接拿下内网靶标

使用弱口令进入后台,但是任何功能都没有

看我如何从外网直接拿下内网靶标

2.寻找靶标系统源码

通过远海的套路从fofa寻找相同系统,有一百多个站基本备份就是稳得

看我如何从外网直接拿下内网靶标

webalivescan再扫一波备份,扫到一个web.rar

看我如何从外网直接拿下内网靶标

3.任意文件上传结合目录浏览轻松拿下靶标

.NET审计还得看远海,源码发给远海过了一会远海就审出一个RCE,具体过程如下
通过代码审计发现一处文件上传
主要在xxx/UploadPic.aspx下
代码大致如下:

看我如何从外网直接拿下内网靶标

很多人看到第97行出现了png jpg等字符就会认为是白名单效验,其实不然。大部分文件上传操作还是会存在一些小小的瑕疵的。

例如

string text = base.Server.MapPath("~/UpPic/xxxPic/");

定义了文件的存储目录

if (base.Request["id"] != null && base.Request["id"].ToString() == "1")

当接收参数id的值等于1时。进入if条件语句:

string[] array = files[0].ContentType.Split(new char[]
{
'/'
});
string arg = array[1].Equals("jpeg", StringComparison.CurrentCultureIgnoreCase) ? "" : array[1];
string text2 = HttpUtility.UrlEncode(HttpContext.Current.Request["name"], Encoding.GetEncoding("GB2312"));
string[] array2 = new string[]
{
"jpg",
"png",
"gif",
"bmp"
};

其中,第5行进行了Content-Type 的效验 ,如果上传的Content-Type以/分割后的第一个值不为jpeg。那么arg的值为false。
第6行接收一个参数name。值赋值给text2
第7行定义了一个数组。为允许上传的文件类型。
主要问题在于下方:

for (int i = 0; i < array2.Length; i++)
{
int num = text2.ToString().Substring(text2.Length - 3, 3).IndexOf(array2[i]);
if (num > -1)
{
text2 = array2[i];
}
}

将array2的内容进行循环判断。如果text2后三位的值中存在array的某个值。
那么 num 为0 ,进入if语句。text2被重写为后辍。
这里有个问题就是只有存在的时候才进行重写。不存在就不重写。也就是说我传入的name为text.aspx。那么也不会进行任何改变。
最终文件存储操作是在143行。

看我如何从外网直接拿下内网靶标

其中fileanme的值为 text(目录名) + str3的值。
str3的值主要根据if条件语句进行赋值。只要text2的值不为空,那么最终的文件名就会以name的值进行结尾。导致任意文件上传。

看我如何从外网直接拿下内网靶标

文件地址:UpPic/xxxPic/+时间+随机数+text2(可控)
构造请求包

看我如何从外网直接拿下内网靶标

UpPic/xxxPic/ 存在目录浏览
找到shell名字

看我如何从外网直接拿下内网靶标

哥斯拉连接,执行ipconfig

看我如何从外网直接拿下内网靶标

确定为靶标内网地址,至此拿下靶标shell。


扫描关注乌云安全

看我如何从外网直接拿下内网靶标


觉得不错点个“赞”、“在看”哦看我如何从外网直接拿下内网靶标

本文始发于微信公众号(乌雲安全):看我如何从外网直接拿下内网靶标

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2021年12月24日07:24:13
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   看我如何从外网直接拿下内网靶标http://cn-sec.com/archives/487698.html

发表评论

匿名网友 填写信息