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

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2013-09-10T12:13:00Z
Canonical: https://wepostx.com/topics/1146

> 乌云历史资料归档
>
> **原始作者：** 瞌睡龙
> **原始编号：** superkieran-wooyundrops:86
> **原始发布时间：** 2013-09-10 20:13
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

From:[penetration-testing-sample-report-2013.pdf](http://www.offensive-security.com/reports/penetration-testing-sample-report-2013.pdf)
offensive security出的一份渗透测试报告，翻译了下重点内容 :)
过程还是很精彩的~
本次测试的域名为：megacorpone.com
先查看一下其DNS服务器：

![原文图片](/media/2016/06/c5c4ad7f84ea1fe51e16777b08242eec)

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

![原文图片](/media/2016/06/03ff49ec5237dbc98d149f2f8cfa1392)

关于域传送的漏洞，可以参考这里[http://drops.wooyun.org/papers/64](http://drops.wooyun.org/papers/64)
从图片中可以看出域名都在50.7.67.x的IP段内，网络拓扑图：

![原文图片](/media/2016/06/d546ed3ad78daec81e9fc4fc418058f9)

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

![原文图片](/media/2016/06/d5105c430bd718c90e086010b3fa724e)

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

![原文图片](/media/2016/06/b01db13ab3c57492ff2d41564aa693a5)

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

![原文图片](/media/2016/06/6ef25fbb11ac556eda11a6d5a8e5bdd7)

破解出密码为：nanotechnology1
进入后界面：

![原文图片](/media/2016/06/2e8cc742da9b0788095001ae0384131c)

可以看到是一套phpSQLiteCMS，管理SQLite数据的：
通过此页面可以直接查询用户名和密码的hash：

![原文图片](/media/2016/06/7697d60b2b2366b7afd0cd05a6f25181)

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

![原文图片](/media/2016/06/0932adbd62cbc8950864e9194f51b5bd)

知道了hash的方式是使用使用了一个10位字符的salt一起做sha1，并且字符串拼接原始salt一起放在数据库中。
我们采用同样的hash方式来暴力碰撞密码，尝试破解其他账户，又破解出两个来，收集密码的好处是可能其他系统也会使用相同的用户名密码，这样就可以轻松的进入了。
SQLite Manager软件存在一个已公开的代码注入漏洞，可以使用exp直接打：
[http://www.exploit-db.com/exploits/24320/](http://www.exploit-db.com/exploits/24320/)

![原文图片](/media/2016/06/d6c76a86c4f0e04b27daa981e09ec975)

反弹回shell：

![原文图片](/media/2016/06/219ec41d24c443cb7371ee783da41532)

服务器拓扑：

![原文图片](/media/2016/06/c3fe91347caa738191d5396bedd5ca67)

同时发现服务器可以提权，利用exp提权：
[http://www.exploit-db.com/exploits/18411/](http://www.exploit-db.com/exploits/18411/)

![原文图片](/media/2016/06/05e8e2f2480a50312c1da7257c0e573d)

此时已经完全控制此台服务器。
然后好好的分析了一下此台服务器，查看到web目录下java应用只允许一个网段来访问。
后来发现这个管理员网络之一：

![原文图片](/media/2016/06/068adbf765d7a00d596d994d1dc4110d)

我们在web客户端增加了一个Java小程序，可以直接控制远程客户端。
（PS：出了这么多Java 0day不知道直接挂到页面上，老外的中马率怎么样）
在管理员下载并允许后：

![原文图片](/media/2016/06/20a6f3d8a28c8b8834e1ddd6aa3017a0)

此时网络拓扑：

![原文图片](/media/2016/06/d08865427f70893b12d5beba9ff5f6e0)

发现管理员的电脑在域中，开始提升到域管理员。
发现系统中有一个组管理文件。
（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)

![原文图片](/media/2016/06/f182e62876a5d093e2f71cf33bbb9ba4)

查看groups.xml文件：

![原文图片](/media/2016/06/7b49bcd9129588e14abef0f3bb6538dc)

解密：

![原文图片](/media/2016/06/6694cff3a6c6d901f5ae8ae2de7ff6dc)

解密的ruby脚本贴出来：
使用方法是：

```text
#ruby decrypt.rb 密文
```

```text
#!ruby 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端口转发，把内网的远程桌面连接转发出来，但是被阻断了：

![原文图片](/media/2016/06/1aaaa474f26ac6be9089aa2cf5133996)

测试后发现可以通过HTTP-Tunnel转发出来：
[http://http-tunnel.sourceforge.net/](http://http-tunnel.sourceforge.net/)
登陆的用户名密码采用的是SQLite Manager应用中的mike用户。

![原文图片](/media/2016/06/61d0341db7758c0e2537d4dbb16df5eb)

此时网络拓扑图：

![原文图片](/media/2016/06/783c83348955a90f0dfa1a890ee9882d)

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

![原文图片](/media/2016/06/f2fc7943b013f9cb208ef53cae62060a)

Citrix环境当中，做了沙盒，只能使用IE，但是可以绕过。
使用IE的保存，弹出的对话框，新建一个powershell的bat批处理：

![原文图片](/media/2016/06/f84d8f07396557c211ffe56b2599fdd4)

![原文图片](/media/2016/06/349947b34d3304508c395c227f200739)

![原文图片](/media/2016/06/2915e59d4715cec11efc5a8f499b0a78)

利用powershell下载metasploit的反弹程序

![原文图片](/media/2016/06/a1114d05cb3a3275fb55e49f25c5b500)

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

![原文图片](/media/2016/06/aca63dfec72513895a21c6f13bd0b710)

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

![原文图片](/media/2016/06/3c38bf5b3e94e6efc135ae487657eb64)

此时网络拓扑：

![原文图片](/media/2016/06/aece7e3dd4ff0f292170c44aac3fd43b)

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

![原文图片](/media/2016/06/2b8e1bbb70bc12ca234c9bf0deb7956d)

这里包含了很多的用户名和密码，其中还包括一个windows域管理员的。
给Citrix服务器创建了一个远程连接服务并使用域管理员登陆：

![原文图片](/media/2016/06/8e07c64520c83c9e660c41f68043644e)

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

![原文图片](/media/2016/06/88d623b46e3443a53d150d6913c5a0f1)

## Replies
