发送POST请求,内容是response.end(‘shellOk’);,如果页面真正返回shellOk后,则代表shell可以成功链接,否则则链接失败。当链接成功时,则进入窗口一,窗口一的界面是这样的:
当载入该窗口则发送一条目录文件遍历的代码至服务端。
完全模拟了我们BurpSuite时的操作。工具只是将一些语句全部封装起来,然后发送。
下边笔者就不再分析源码中每一行的意义了,笔者会将源码共享到这里,大家可以去可以打造一个属于自己的nodeJS后门管理工具。
工具使用案例:
百度网盘下载源码:https://pan.baidu.com/s/1GU3FKzP-Gx-gW_ldktdzSg 提取码:6666
0x05 nodeJS后门的隐蔽方式我们当然不想单独的去创建一个JS文件,然后去放置后门,这样被查杀的概率也是有的,但笔者这里想到了一种nodeJS后门的隐蔽方式。
Express为nodeJS中应用最广泛的框架,它非常容易就可以去处理nodeJS路由。
我们先看一个express的简单案例:
在使用express框架中,不得不require(‘express’);后再进行操作,在nodeJS中,被require进来的包,虽然只可以接收到exports所暴露出来的变量,但是每行NodeJs语句也会被执行,我们定位到express中核心载入的文件。
在./node_modules/express/index.js文件中我们可以看到正常的处理逻辑:
我们在其中插入我们的后门脚本代码:
这里需要注意的是,这里的listen不要与express框架中的端口相等,否则将会造成端口冲突。
放置后门后整个框架开启了两个端口,分别是5555端口以及6666端口,这两个端口5555端口为express框架的正常服务,而6666端口是我们的后门端口。如图: