本文使用到的小工具:jd-gui、FileLocator Pro、eclipse
检材:服务器镜像1个
当小编拿到镜像的时候,一般会进行两个操作:使用盘古石计算机取证分析系统加载镜像文件以及使用盘古石计算机仿真取证系统仿真该镜像。
仿真之后,先执行命令 history 看一下服务器终端的历史记录,并执行命令netstat -nlpt查看运行端口,小编认为这是快速了解服务器情况最快的方法。
本案例中,小编在终端记录中发现如下几个命令:
基于以上信息,基本确定了该网站是由Nginx、Mysql、Java架构搭建的。
快速定位到nginx配置文件,这里就找到了网站域名。如下图:
这里做了一个端口转发,80端口接收到了URL头为javachonggou.net的请求,就代理请求到本地的9098端口。
小编根据前文的历史命令查看及文件查看,找到了网站目录。
查看start.sh
这里重点看nohup java这一行,nohup是后台执行的意思,将执行过程放入后台运行,网站运行模式是dev即开发环境,网站jar包是java-admin.jar。
使用盘古石计算机取证分析系统导出java-admin.jar文件,将jar包进行解压,因为Java的数据库连接就是JDBC:Java Database Connectivity(也会有odbc等用法,但实际也是将jdbc进行了封装),所以小编使用工具FileLocator Pro对该文件夹进行关键词“jdbc”搜索,查找网站的数据库配置信息。
将jar包导入到eclipse中,修改application-dev.yml文件编码属性方便查看,如下图:
这里我们可以看到网站数据库是连接ip为111.111.111.111的机器中3306端口开启的mysql数据库。
再往下看,还发现了redis的配置信息:
由此分析,网站是用redis做缓存,mysql做数据存储。
本次案例服务器原本只包含了网站,数据库是在另一台机器上,上图展示的ip就是另一台数据库服务器的ip地址,小编将数据库导入到了同一台机器中,添加了两块网卡,ip分别为111.111.111.111和111.111.111.112
这里为了展示,小编就在当前窗口运行java。
执行命令“java -Xms1024m -Xmx2000m -jar -Djava.security.egd=file:/dev/./urandom -Dspring.profiles.active=dev java-admin.jar”。
到这里,网站就起来了,能够看到这个java程序也是会启9098端口,跟前文中nginx中配置对应的上。
将域名javachonggou.net加入到本地的hosts中,并使用浏览器访问,成功进入到后台登录页面。
使用工具FileLocator Pro对该文件夹进行关键词“setpassword”搜索,查找网站的后台登录密码相关信息。
使用jd-gui对jar包进行反编译,查看com.fw.web.controller.biz.MasterController.class。
再去查看encryptPassword函数定义。
至此小编也是成功找到了密码的加密方法:MD5(username.明文密码.salt),去数据库找到admin的salt,如下:
将字符串admin123456qwert进行MD5加密,加密结果字符串为4ca086c7838e83a2fe58da9dabcbaf81,将原来数据库中password字段值替换掉,然后使用用户名admin,密码123456进行后台登录,登录成功。
到这里,这个java网站就重构起来啦。
前面提到的dev模式是网站开发环境,一般还有test即测试环境,prod即生产环境,大家可以根据实际情况,修改start.sh中nohup的那一行代码,改变网站运行模式,或者对jar包内不同模式配置文件进行修改,并重新打包等操作。有兴趣的小伙伴可以联系小编,共同探讨。
安全为先,洞鉴未来,奇安信盘古石取证团队竭诚为您提供电子数据取证专业的解决方案与服务。如需试用,请联系奇安信各区域销售代表,或致电95015,期待您的来电!
原文始发于微信公众号(盘古石取证):Java网站重构
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论