一个轻量级Web蜜罐(附下载地址)
2023-6-2 10:2:10 Author: 黑白之道(查看原文) 阅读量:23 收藏

0x01 Why

目标: 抓漏洞.
大概是没有找到啥子开源的符合我预期的蜜罐吧,所以自己动手写了。

0x02 What

想做什么样的蜜罐?

1.便于维护,随开随用,配置简单。
2.Web低仿真即可,且只抓Web流量。
3.不同端口指向不同的页面,响应头配置等。

0x03 How

SpringBoot是最强Web框架没有之一,数据库选用SQLite。两者结合基本上就可以实现一个jar加db文件就完成需求。

0x04 Process

管理页面选用layui作为前端框架,后台地址和端口以及账号密码通过配置文件动态配置。

多端口方便其实就是给tomcat添加几个监听的端口而已:

Connector connector = new Connector("org.apache.coyote.http11.Http11NioProtocol");connector.setScheme(scheme);connector.setPort(Integer.parseInt(port));result.add(connector);

然后是不同端口指向不同页面:

配置文件

判断逻辑

port是限制的端口,path是本地模板的路径,code是返回的状态码,header是相应的header,respbody本来是想正对一些特定的请求返回不同页面的,逻辑没有思考的很清楚,暂时搁置了。

页面捕获

过程比较耗时间,期初想拦截所有异常,在做统一处理即可,可实际过程发现springboot默认开起了add-mappings无法捕获404页面,而且静态资源过来的请求无法捕获,如果遇到解析差异那种洞就只能错过。关闭的话静态资源访问配置又会很麻烦。

查阅相关文档后发现可以继承 ErrorController + @ControllerAdvice + @ExceptionHandle 处理一切异常,这也包括404页面,

Demo:

NotFoundController.java
@Controllerpublic class NotFoundController implements ErrorController {
@Override public String getErrorPath() { return "/error"; } @RequestMapping(value = {"/error"}) public Object error(HttpServletRequest request) { //请求处理 return "404"; }}ExceptionController.java
@ControllerAdvicepublic class ExceptionController {
@ExceptionHandler(value = {Exception.class}) public Object error(Exception ex){ //请求处理 return "500"; }}

这也处理确实能捕获到404页面,可是有个bug

getServletPath方法获取的路由恒为error,这也是springboot的特征之一,所有错误均会交由error路由处理,也就是说error默认是肯定存在的。

正确的处理方式是在过滤器中进行记录:

public class LokiFilter implements Filter{
@Override public void init(FilterConfig filterConfig) throws ServletException { log.info("Loki Filter is init.... "); }
@Override public void doFilter(ServletRequest servletRequest, ServletResponse response, FilterChain filterChain) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) servletRequest; //请求处理 filterChain.doFilter(request, response); }
@Override public void destroy() { log.info("Loki Filter was destroyed...."); }}

嗯,内存马也得在这层搞,不然鬼知道别人路由咋写的。

0x05 Result

代码结构:

后台页面:

模板文件:

一些有趣的事情:

1.在公网跑起来后我收到的第一个请求是nmap扫cobaltstrike的。

2.配置的通达和致远的页面都被来自河南和云南的两个IP人为访问过两次,识别依据是浏览器会自动加载/favicon.ico,脚本不会。

3.被89.248.160.151这个IP扫了一通.txt的文件,还有一些请求路径是@.txt,不知道是不是扫描器没配好。

4.创宇的censys爬虫先是先访问了8090端口,然后是88端口,中间间隔了将近14小时,bing的爬虫也到访过一次,fofa的爬虫没看到,但是有上百条ua为Go-http-client/1.1和fasthttp的请求,python的只有一条。

5.捕获了两个漏洞:

搜索了一下应该是Linksys路由的命令注入.

看起来是未授权相关的漏洞,80端口配置了很低从其他蜜罐上扒下来的Server头,可能是其中一款产品的洞吧,涉及的产品太多,百度没搜到这个路由,无法验证了。

下载地址:

github下载链接:https://github.com/TheKingOfDuck/Loki

文章转自CoolCat' Blog

原文:https://blog.thekingofduck.com/post/loki-web-honeypot/

黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担!

如侵权请私聊我们删文

END

多一个点在看多一条小鱼干


文章来源: http://mp.weixin.qq.com/s?__biz=MzAxMjE3ODU3MQ==&mid=2650571030&idx=4&sn=816a078039cdc851c781738fe5a87f41&chksm=83bde4f2b4ca6de48bf55f38b673efaeceae4eb0060ea6fd984b84f6e72520f579510eaaf7ac#rd
如有侵权请联系:admin#unsafe.sh