Skip to content

Commit

Permalink
6.9~10
Browse files Browse the repository at this point in the history
  • Loading branch information
wizardforcel committed Oct 17, 2016
1 parent e13a653 commit f64d63c
Showing 1 changed file with 140 additions and 0 deletions.
140 changes: 140 additions & 0 deletions ch6.md
Original file line number Diff line number Diff line change
Expand Up @@ -704,3 +704,143 @@ Kali 包含了用于检测和利用 SQL 注入漏洞的其它工具,它们能
+ Bbqsql:Python 编写的 SQL 盲注框架。
+ jsql:基于 Java 的工具,带有完全自动化的 GUI,我们只需要输入 URL 并按下按钮。
+ Metasploit:它包含不同 DBMS 的多种 SQL 注入模块。
## 6.9 使用 Metasploit 攻击 Tomcat 的密码
Apache Tomcat,是世界上最广泛使用的 Java Web 服务器之一。带有默认配置的 Tomcat 服务器非常容易发现。发现暴露 Web 应用管理器的服务器也非常容易,它是一个应用,允许管理员启动、停止、添加和删除服务器中的应用。
这个秘籍中,我们会使用 Metasploit 模块来执行 Tomcat 服务器上的字典攻击来获得管理器应用的访问。
### 准备
在我们开始使用 Metasploit 之前,我们需要在 root 终端中开启数据库服务:
```
service postgresql start
```
### 操作步骤
1. 启动 Metasploit 的控制台。
```
msfconsole
```
2. 启动之后,我们需要加载合适的模块,在`msf>`提示符之后键入下列代码:
```
use auxiliary/scanner/http/tomcat_mgr_login
```
3. 我们可能打算查看它使用什么参数:
```
show options
```
![](img/6-9-1.jpg)
4. 现在,我们设置目标主机:
```
set rhosts 192.168.56.102
```
5. 为了使它更快,但是不要太快,我们增加线程数:
```
set threads 5
```
6. 同时,我们不希望让我们的服务器由于太多请求而崩溃,所以我们降低爆破的速度:
```
set bruteforce_speed 3
```
7. 剩余参数刚好适用于我们的情况,让我们执行攻击:
```
run
```
![](img/6-9-2.jpg)
在一些尝试中失败之后,我们发现了有效的密码,它使用`[+]`标记。
![](img/6-9-3.jpg)
### 工作原理
通常 Tomcat 使用 TCP 8080,它的管理器应用位于`/manager/html`中。这个应用使用基本的 HTTP 验证。我们刚刚使用的 Metasploit 辅助模块(`tomcat_mgr_login`)有一些值得提及的配置项:
+ `BLANK_PASSWORDS`:对每个尝试的用户添加空密码测试。
+ `PASSWORD`:如果我们打算测试多个用户的单一密码,或者添加列表中没有包含的项目,这就很实用。
+ `PASS_FILE`:用于测试的密码列表。
+ `Proxies`:如果我们需要通过代理来访问我们的目标,或者避免检测,就用这个选项。
+ `RHOSTS`:单个主机,或多个(使用空格分隔),或者我们想要测试的主机列表文件(`/path/to/file/with/hosts`)。
+ `RPORT`:Tomcat 所使用的 TCP 端口。
+ `STOP_ON_SUCCESS`:发现有效密码之后停止尝试。
+ `TARGERURI`:主机中管理器应用的位置。
+ `USERNAME`指定特殊的用户名来测试,它可以被单独测试,或者添加到定义在`USER_FILE`的列表中。
+ `USER_PASS_FILE`:包含要被测试的“用户名 密码”组合的文件。
+ `USER_AS_PASS`:将每个列表中的用户名作为密码尝试。
### 另见
这个攻击也可以由 Hydra 执行,使用`http-head`作为服务,`-L`选项来加载用户列表,`-P`选项来加载密码。
## 6.10 使用 Tomcat 管理器来执行代码
上一个秘籍中,我们获得了 Tomcat 管理器的身份认证,并提到了它可以让我们在服务器中执行代码。这个秘籍中,我们会使用它来登录管理器并上传新的应用,这允许我们在服务器中执行操作系统命令。
### 操作步骤
1. 访问`http://192.168.56.102:8080/manager/html`。
2. 被询问用户名和密码时,使用上一个秘籍中获得的:`root`和`owaspbwa`。
![](img/6-10-1.jpg)
3. 一旦进入了管理器,寻找` WAR file to deploy `并点击`Browse`按钮。
4. Kali 在`/usr/share/laudanum`包含了一些 webshall,在这里浏览它们并选择文件`/usr/share/laudanum/jsp/cmd.war`。
![](img/6-10-2.jpg)
5. 加载之后点击`Deploy`。
![](img/6-10-3.jpg)
6. 确保存在新的叫做`cmd`的应用。
![](img/6-10-4.jpg)
7. 让我们试一试,访问`http://192.168.56.102:8080/cmd/cmd.jsp`。
8. 在文本框中尝试命令,例如`ifconfig`:
![](img/6-10-5.jpg)
9. 我们可以看到,我们可以执行命令,但是为了弄清楚我们拥有什么用户和什么权限,尝试`whoami`命令:
![](img/6-10-6.jpg)
我们可以看到,Tomcat 在这台服务器中运行在 root 权限下。这意味着我们这里拥有它的全部控制权,并且能够执行任何操作,例如创建或删除用户,安装软件,配置操作系统选项,以及其它。
### 工作原理
一旦我们获得了 Tomcat 管理器的身份认证,攻击过程就相当直接了。我们仅仅需要足以让我们上传它的应用。Laudanum 默认包含在 Kali 中,是多种语言和类型的 webshell 的集合,包括 PHP、ASP、 ASP.NET 和 JSP。对渗透测试者来说,什么比 webshell 更有用呢?
Tomcat 能够接受以 WAR(Web 应用归档)格式打包的 Java Web 应用并将其部署到服务器上。我们刚刚使用了这一特性来上传 Laudanum 中的 webshell。在它上传和部署之后,我们浏览它并且通过执行系统命令,我们发现我们拥有这个系统的 root 访问。

0 comments on commit f64d63c

Please sign in to comment.