0x01 前言

xx行总结这篇文章中,我记录了一个问题,今天对这个问题寻找了一下解法,结果以失败告终,不过也算是搞明白了关于iptables,netcat和nginx的一些问题。

0x02 问题回顾

主要问题是在如何获得一个经过了nginx反代后的内网主机的shell(已经有webshell了!)
首先看下整体结构:

可以看到第一个问题是80端口复用,第二个问题就是nginx反代。

0x03 探索

1、首先是端口复用,经过一番寻找寻找到最方便的做法,实现一个伪端口复用,如下:

上面的这句话的效果是将收到tcp数据包中,源ip是你的电脑的ip的,想要访问的端口是80的,转发到目标ip的shell端口。这里面的shell端口其实就是我在目的主机上用nc开的一个shell,代码如下:

这样做了之后并不能保证同时访问web界面和shell,但是也算将80端口用来作为我们连接的shell端口,毕竟我们不能决定nginx反向代理服务器转发的端口。(因为当时没有打下来这个服务器>_< )
这样做了以后就可以通过80端口连接到shell了,但是这只是我的测试,中间并没有经过nginx反向代理这一层。

2、建立第二台虚拟机作为nginx反向代理服务器,将2222端口转发到目的主机的80端口,配置文件为/etc/nginx/nginx.conf

由于在实际环境中该台nginx服务器不可控,故使用最简单的配置,经过测试后发现只能转发http流量,nc的流量不能转发。

0x04 思考

1、可以自己写代码来实现真实的端口复用,略麻烦。
2、查询资料发现,nginx可以通过某些方法转发非http的tcp流量,有待测试。

3 comments
  • 咸鱼
    2018年2月7日 at 下午5:15

    泽泽好强啊

    Reply
    • Pav1 • Post Author •
      2018年2月7日 at 下午5:19

      张张666啊

      Reply
  • 币友
    2018年2月8日 at 下午5:59

    泽泽好强啊

    Reply

Leave a Comment

电子邮件地址不会被公开。 必填项已用*标注