当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(24) 关注此漏洞

缺陷编号:wooyun-2015-0130334

漏洞标题:北京联通某服务配置不当导致可获取到ssh shell

相关厂商:北京联通

漏洞作者: 路人甲

提交时间:2015-07-30 09:02

修复时间:2015-09-14 15:56

公开时间:2015-09-14 15:56

漏洞类型:系统/服务运维配置不当

危害等级:高

自评Rank:15

漏洞状态:已交由第三方合作机构(cncert国家互联网应急中心)处理

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 [email protected]

Tags标签:

4人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2015-07-30: 细节已通知厂商并且等待厂商处理中
2015-07-31: 厂商已经确认,细节仅向厂商公开
2015-08-10: 细节向核心白帽子及相关领域专家公开
2015-08-20: 细节向普通白帽子公开
2015-08-30: 细节向实习白帽子公开
2015-09-14: 细节向公众公开

简要描述:

数据库似乎有较隐私数据

详细说明:

北京114微信公众号下,有一个漏话查询服务。进入后会iframe /WeiXinServer/page_louhuaBJ.action
就是这个IP下的应用有问题。struts2开启了debug模式,可以获取web shell。由于是以root权限运行的,所以可以获取到ssh shell
由于水平不佳,废了一番周折才拿到ssh shell,就写一写踩过的坑吧。
先用struts2的漏洞写小马,然后上传大马(http://61.55.148.217/WeiXinServer/m.jsp 密码:xfg),从web shell里看到很多端口都对外开放着,但是本机nmap却发现只开着80,然后在web shell下ifconfig,看到没有61.55.148.217这个IP。

ifconfig.png


所以应该是前端的机器只开着80端口,然后把请求转到172.35.21.28。于是想着把172.35.21.28的80端口请求转发到22上。
先把sshd_config修改为允许空密码登陆,然后就准备用iptables转发端口
网上搜到似乎是

iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-ports 22


然后我记得是关闭iptables的情况下,执行了上面的规则,刚执行完,我就想起来忘记添加账户了,心里祈祷iptables是关闭状态,刷新了一下web shell页面,已经无法连接了。再用ssh试着连80端口,可以连接上。但是我不知道密码呀!!!就这样,我把那个北京联通的一个小服务弄挂掉了,大家在安全测试并锻炼自己能力时一定要谨慎操作,别犯我这样的错误【我是把所有请求80端口的都转发到22端口了】
以上是上周六的操作
等到周二时,终于发现服务恢复了,马也被删掉了。可是struts2的debug模式依然没关。
继续上传web shell,添加了一个wooyun账号,在webshell里编辑/etc/passwd文件,修改wooyun为root权限【这里有一个大坑!!!】,然后使用

iptables -t nat -A PREROUTING -p tcp -s 1.1.1.1 --dport 80 -j REDIRECT --to-ports 22


把我的IP请求到80端口的数据转发到22端口,这样就不会影响其他人正常使用了。
然后ssh连接,使用用户名wooyun,空密码连接,可试了多次都连接失败(用户名密码错误那种)
然后各种折腾(需要在两个IP间频繁切换,使用未被转发的IP操作web shell,使用被转发的IP尝试连ssh),也试过使用公钥登陆,但是依然失败。问了好几个人,也没找到原因。
后来,从/var/log/secure 看到每次ssh连接时有这样的日志

User wooyun not allowed because shell /bin/bash\r does not exist


查了后(http://stackoverflow.com/questions/18896825/ssh-user-not-allowed-shell-does-not-exist )才知道是/etc/passwd文件中是win下的\r\n,所以找不到任何用户的。于是在webshell下运行dos2unix /etc/passwd ,可总是异常,使用webshell上传转好的也是报异常。
于是在webshell编辑/etc/passwd,在提交时使用fiddler截包,修改请求中所有的%0D%0A为%0A,这样终于可以ssh直接连接了。

漏洞证明:

ssh成功连接

ssh.png


似乎有各个省的用户的漏话数据呢

all.png


oracle的数据库,不熟悉,就不深入了

ora.png

修复方案:

1.关闭struts2 debug mode
2.删除大马
3.清除端口转发的iptables规则
4.修改sshd_config,禁止空口令登陆
5.删除我添加的几个公钥

版权声明:转载请注明来源 路人甲@乌云


漏洞回应

厂商回应:

危害等级:中

漏洞Rank:9

确认时间:2015-07-31 15:55

厂商回复:

CNVD确认所述情况,已经转由CNCERT下发给北京分中心,由其后续协调网站管理单位处置。

最新状态:

暂无