• 老外的一份渗透测试报告


    https://mp.weixin.qq.com/s?__biz=MzA3ODI1MjA1NA==&mid=2655063809&idx=1&sn=d9da16bb7a7d45fada1a5bec39b7fe54&scene=1&srcid=0711Di7bYE2lyQMyFvtB5cma&key=77421cf58af4a6538b61a2219d58ad5beeabc5e43f3d87dd7a3c98f2aa18a3058438a80984f769ae98bd98bec48ee8b7&ascene=0&uin=MjM1NzQyMjU4MA%3D%3D&devicetype=iMac+MacBookPro11%2C3+OSX+OSX+10.9.5+build(13F1134)&version=11020201&pass_ticket=%2FfA%2BPUnYAKluvKlMoWgFeJ98fET9NHJ4aEWibLcCNXMupsXriAiLoMHsKhy6Z2cZ

    offensive security出的一份渗透测试报告,翻译了下重点内容 

    过程还是很精彩的~

    本次测试的域名为:megacorpone.com

    先查看一下其DNS服务器:

    然后发现 ns2.megacorpone.com 存在域传送漏洞。

    从图片中可以看出域名都在50.7.67.x的IP段内,网络拓扑图:

    在admin.megacorpone.com服务器的81端口发现了apache的webserver,然后扫一下文件路径:

    可以看到/admin是一个需要身份验证的路径。

    根据www.megacorpone.com网站内容做了一个字典,爆破密码,用户名就用admin了。

    破解出密码为:nanotechnology1

    进入后界面:

    可以看到是一套phpSQLiteCMS,管理SQLite数据的:

    通过此页面可以直接查询用户名和密码的hash:

    测试发现保存的hash并非常规的方式,于是下载一份phpselitecms观察其中的hash方式:

    知道了hash的方式是使用使用了一个10位字符的salt一起做sha1,并且字符串拼接原始salt一起放在数据库中。

    我们采用同样的hash方式来暴力碰撞密码,尝试破解其他账户,又破解出两个来,收集密码的好处是可能其他系统也会使用相同的用户名密码,这样就可以轻松的进入了。

    SQLite Manager软件存在一个已公开的代码注入漏洞,可以使用exp直接打:

    反弹回shell:

    服务器拓扑:

    同时发现服务器可以提权,利用exp提权:

    此时已经完全控制此台服务器。

    然后好好的分析了一下此台服务器,查看到web目录下java应用只允许一个网段来访问。

    后来发现这个管理员网络之一:

    我们在web客户端增加了一个Java小程序,可以直接控制远程客户端。

    (PS:出了这么多Java 0day不知道直接挂到页面上,老外的中马率怎么样)

    在管理员下载并允许后:

    此时网络拓扑:

    发现管理员的电脑在域中,开始提升到域管理员。

    发现系统中有一个组管理文件。

    (ps:关于这个专门去查了一下是2008域管理存在的一个问题:http://www.carnal0wnage.com/papers/LARES-GPP.pdf

    metasploit上有rb脚本可以查找xml文件并解密:https://github.com/rapid7/metasp ... /credentials/gpp.rb

    查看groups.xml文件:

    解密:

    解密的ruby脚本贴出来:

    使用方法是:

    #ruby decrypt.rb 密文

    require 'rubygems'
    require 'openssl'
    require 'base64'

    #encrypted_data = "AzVJmXh/J9KrU5n0czX1uBPLSUjzFE8j7dOltPD8tLk"

    encrypted_data = ARGV

    def decrypt(encrypted_data)
      padding = "=" * (4 - (encrypted_data.length % 4))
      epassword = "#{encrypted_data}#{padding}"
      decoded = Base64.decode64(epassword)

       key = "x4ex99x06xe8xfcxb6x6cxc9xfaxf4x93x10x62x0fxfexe8xf4x96xe8x06xccx05x79x90x20x9bx09xa4x33xb6x6cx1b"
      aes = OpenSSL::Cipher::Cipher.new("AES-256-CBC")
      aes.decrypt
      aes.key = key
      plaintext = aes.update(decoded)
      plaintext << aes.final
      pass = plaintext.unpack('v*').pack('C*') # UNICODE conversion

       return pass
    end

    blah = decrypt(encrypted_data)
    puts blah

    尝试用plink端口转发,把内网的远程桌面连接转发出来,但是被阻断了:

    测试后发现可以通过HTTP-Tunnel转发出来:

    http://http-tunnel.sourceforge.net/

    登陆的用户名密码采用的是SQLite Manager应用中的mike用户。

    此时网络拓扑图:

    打开IE的默认主页发现了Citrix服务器,用跟远程连接相同的用户名和密码进入:

    Citrix环境当中,做了沙盒,只能使用IE,但是可以绕过。

    使用IE的保存,弹出的对话框,新建一个powershell的bat批处理:

    利用powershell下载metasploit的反弹程序

    下载完毕后,在保存对话框中已管理员的权限运行

    这样就获得了Citrix系统的权限

    此时网络拓扑:

    在Citrix上,尝试从内存中获取用户名密码:

    这里包含了很多的用户名和密码,其中还包括一个windows域管理员的。

    给Citrix服务器创建了一个远程连接服务并使用域管理员登陆:

    至此已经完全控制了windows域。

  • 相关阅读:
    基础调试命令
    mui 拨打电话
    vue a href="tel" 拨打电话
    vue数据已渲染成 但还是报错 变量 undefined
    表格头部与左侧内容随滚动条位置改变而改变(基于jQuery)
    element popover 不显示/不隐藏问题解决方法
    fatal: The remote end hung up unexpectedly解决办法
    mui.fire 目标页无法监听到 触发事件
    多个定时器任务
    vue router 传参 获取不到query,params
  • 原文地址:https://www.cnblogs.com/qdfu/p/5689881.html
Copyright © 2020-2023  润新知