之前开发中用过几次Spring boot,就觉得开发起来很方便。Spring boot的一个方便之处就是可以连同服务器直接打包成war包,到哪里直接当jar包运行就可以了。后来我就想到,联合java的另一个特性或许可以做一个不错的后门。
直接上项目架构截图吧,至于怎么弄一个Spring boot项目,请参考网上诸多博客。在项目的webapp目录下我随手打包了一些常用shell,大家可以按需自己放。。
以下是在命令行运行的效果,可以看到服务器正常启动,并监听了8011端口。
既然是当后门用,那么就假设已经得到webshell。以下是直接从webshell运行:
运行后可以直接访问8011端口并访问到包含在spring boot项目中的webshell。
同时也可看到服务器本身不受影响,其他页面可正常访问。
有人会说.war后缀可能太显眼了,在某些安全策略下可能会被服务器杀毒软件干掉。那么就可以利用Java的另一个特性,即任何后缀的文件它都能执行,只要内容符合java的执行条件。所以可以直接把war包的后缀改为.jpg,以下是执行效果图:
如下图,servlet可正常访问到。
但重命名后其他webshell就访问不到了。应该是项目路径和配置的问题,我暂时没有深究。
但只要servlet可以访问其实就够了。大不了把webshell改成servlet,下载资源的话写个servlet读“jpg”的内容,东西都还在里面的。。。。
实际测试中,可以把后门移到服务器上不容易被发现的地方,然后运行。运行后就可以删除原有webshell,这样会更加隐蔽。没经验的管理员在项目的webapp目录下是什么都找不到的。并且只要你运行的命令不被发现,看进程应该只能看到个jdk的进程,看不到这个后门在哪里。这个后门的另一好处就是用来做内外网钓鱼挺不错,毕竟就端口号不一样,且很多资源可以携带到内网,在做渗透测试的时候会更加方便,就看你怎么发挥自己的想象力了。
突然发现的思路,没什么深度,与大家分享一下,大家不要用来做坏坏的事哦:)