menu arrow_back 湛蓝安全空间 |狂野湛蓝,暴躁每天 chevron_right ... chevron_right 007-papers chevron_right 0116-老外的一份渗透测试报告.md
  • home 首页
  • brightness_4 暗黑模式
  • cloud
    xLIYhHS7e34ez7Ma
    cloud
    湛蓝安全
    code
    Github
    0116-老外的一份渗透测试报告.md
    8.55 KB / 2021-07-17 00:01:34
        # 老外的一份渗透测试报告
    
    From:[penetration-testing-sample-report-2013.pdf](http://www.offensive-security.com/reports/penetration-testing-sample-report-2013.pdf)
    
    offensive security出的一份渗透测试报告,翻译了下重点内容 :)
    
    过程还是很精彩的~
    
    本次测试的域名为:megacorpone.com
    
    先查看一下其DNS服务器:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/b933808eb81e5af9ba778966599b8fd756a50fb0.jpg)
    
    然后发现 ns2.megacorpone.com 存在域传送漏洞。
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/dbe487a524fc521b9ad5ff2620ea829a2eec2c9a.jpg)
    
    关于域传送的漏洞,可以参考这里[http://drops.wooyun.org/papers/64](http://drops.wooyun.org/papers/64)
    
    从图片中可以看出域名都在50.7.67.x的IP段内,网络拓扑图:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/428886f621c394e5d1e45e6fc100edb1cb983650.jpg)
    
    在admin.megacorpone.com服务器的81端口发现了apache的webserver,然后扫一下文件路径:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/59f49578e0845879ac78620c0392b582bdd70ee0.jpg)
    
    可以看到/admin是一个需要身份验证的路径。
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/161a037a0ad8fcfb328e4b0c37812826ec18b80b.jpg)
    
    根据www.megacorpone.com网站内容做了一个字典,爆破密码,用户名就用admin了。
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/2bc84d500166dafc321e49b21d5b119dd7042464.jpg)
    
    破解出密码为:nanotechnology1
    
    进入后界面:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/f97d0ec3104da1d291262383a00853cba31bc387.jpg)
    
    可以看到是一套phpSQLiteCMS,管理SQLite数据的:
    
    通过此页面可以直接查询用户名和密码的hash:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/9951db7b4a1caaa9405f4470870841ffb91f2c2d.jpg)
    
    测试发现保存的hash并非常规的方式,于是下载一份phpselitecms观察其中的hash方式:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/bf7c55e75734338936e7f988ad6ec89c0bb7b88a.jpg)
    
    知道了hash的方式是使用使用了一个10位字符的salt一起做sha1,并且字符串拼接原始salt一起放在数据库中。
    
    我们采用同样的hash方式来暴力碰撞密码,尝试破解其他账户,又破解出两个来,收集密码的好处是可能其他系统也会使用相同的用户名密码,这样就可以轻松的进入了。
    
    SQLite Manager软件存在一个已公开的代码注入漏洞,可以使用exp直接打:
    
    [http://www.exploit-db.com/exploits/24320/](http://www.exploit-db.com/exploits/24320/)
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/d00531da3c4990d837148a3c63adcfef4fd26980.jpg)
    
    反弹回shell:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/df87a93eb5e294106af66c34900e7897e61404c6.jpg)
    
    服务器拓扑:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/d7e7e5dabaaea3a086d2d304d973607c18d7a3da.jpg)
    
    同时发现服务器可以提权,利用exp提权:
    
    [http://www.exploit-db.com/exploits/18411/](http://www.exploit-db.com/exploits/18411/)
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/544dbf022f1f779ec22f2925c6b145c623f9ab13.jpg)
    
    此时已经完全控制此台服务器。
    
    然后好好的分析了一下此台服务器,查看到web目录下java应用只允许一个网段来访问。
    
    后来发现这个管理员网络之一:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/4dd33e9ca95a3f0240b3e9009c95c08bbcbe96a6.jpg)
    
    我们在web客户端增加了一个Java小程序,可以直接控制远程客户端。
    
    (PS:出了这么多Java 0day不知道直接挂到页面上,老外的中马率怎么样)
    
    在管理员下载并允许后:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/3bd914cf2ab61f4c4fdb7135900afa910ca3933f.jpg)
    
    此时网络拓扑:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/2558c88080a62894694557c22fc873a3d9077c36.jpg)
    
    发现管理员的电脑在域中,开始提升到域管理员。
    
    发现系统中有一个组管理文件。
    
    (ps:关于这个专门去查了一下是2008域管理存在的一个问题:[http://www.carnal0wnage.com/papers/LARES-GPP.pdf](http://www.carnal0wnage.com/papers/LARES-GPP.pdf))
    
    metasploit上有rb脚本可以查找xml文件并解密:[https://github.com/rapid7/metasploit-framework/blob/master/modules/post/windows/gather/credentials/gpp.rb](https://github.com/rapid7/metasploit-framework/blob/master/modules/post/windows/gather/credentials/gpp.rb)
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/c424caed9ee5fdbd1e31b20d711f07361b66ad65.jpg)
    
    查看groups.xml文件:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/319e901161717084c453ba0f1c3aafd6866a4bef.jpg)
    
    解密:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/73efce2535d81eeb6f9479dc2c9b296d3657b451.jpg)
    
    解密的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 = "\x4e\x99\x06\xe8\xfc\xb6\x6c\xc9\xfa\xf4\x93\x10\x62\x0f\xfe\xe8\xf4\x96\xe8\x06\xcc\x05\x79\x90\x20\x9b\x09\xa4\x33\xb6\x6c\x1b"
      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端口转发,把内网的远程桌面连接转发出来,但是被阻断了:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/171206b6ff1aa4dab845a2c6838784c73c0b2ff5.jpg)
    
    测试后发现可以通过HTTP-Tunnel转发出来:
    
    [http://http-tunnel.sourceforge.net/](http://http-tunnel.sourceforge.net/)
    
    登陆的用户名密码采用的是SQLite Manager应用中的mike用户。
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/7f3f57fa58fff28deae9b33babcfe0ae0ef1e139.jpg)
    
    此时网络拓扑图:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/07cb11d4b54950cf9af15aacefaa8a7b050887c3.jpg)
    
    打开IE的默认主页发现了Citrix服务器,用跟远程连接相同的用户名和密码进入:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/aa8fe9b8f3fa3910beb513b402961d2b4e54be5f.jpg)
    
    Citrix环境当中,做了沙盒,只能使用IE,但是可以绕过。
    
    使用IE的保存,弹出的对话框,新建一个powershell的bat批处理:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/31c4170db05f2d7d117db70026aa234858ff5bb7.jpg)
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/a26e2957e1749e3086521324e7bb35a0c1d27667.jpg)
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/b6b5b964c3568a42733ab865614cb32b4452549d.jpg)
    
    利用powershell下载metasploit的反弹程序
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/f13fe161720bc087109091308209e68475d84a8a.jpg)
    
    下载完毕后,在保存对话框中已管理员的权限运行
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/6a8f5466bf790350994442dc947f2440d546fc8f.jpg)
    
    这样就获得了Citrix系统的权限
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/1a3063b9cde4b91c6235ca7accd4161b86ea1309.jpg)
    
    此时网络拓扑:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/42277ee3952b743b8f530ff44558773af0bc4461.jpg)
    
    在Citrix上,尝试从内存中获取用户名密码:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/0904a63e3bebac0cb5a99df5618553cf1ec58b60.jpg)
    
    这里包含了很多的用户名和密码,其中还包括一个windows域管理员的。
    
    给Citrix服务器创建了一个远程连接服务并使用域管理员登陆:
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/c9c31ee01425f579d4f0c479d8a5780e154b093a.jpg)
    
    至此已经完全控制了windows域。
    
    ![enter image description here](http://drops.javaweb.org/uploads/images/5daac691fd83c3a9529ad161213163d7ade1810c.jpg)
    
    links
    file_download