对于我的IT安全课暑期项目,我们必须以不同的方式规避学校/公司networking上的安全措施设置,并解释如何检测和避免这些黑客行为。
其中一个话题是(请原谅我的翻译不好):
阿尔伯特与他的笔记本电脑连接到学校networking。 他只能通过学校过滤代理访问万维网。 此代理configuration为只允许HTTP(TCP 80)和HTTPS(443)请求,并且某些网站(比如www.forbidden-forum.com)被过滤掉。 ICMP回应请求/回复是允许的。
阿尔伯特可以使用什么技巧从学校networking访问www.forbidden-forum.com? networking和系统pipe理员如何检测/防止这些技巧?
现在我不要求这个练习的答案 (这将会使我join这个课程的整个观点并没有教会我)。
到目前为止,我想到了以下几个技巧:
我的问题实际上是关于最后一点。 我认为有可能有这样做的软件,但它将不得不:
实际上,我希望能够在学校访客networking(具有类似的限制)的项目演示中展示这个PoC,但是我真的很想避免自己“开发”一些东西。
我的开发人员的技能实际上并不好,我想知道:有没有一种软件能够做到这一点? 也许一个Apache模块或configuration?
它被称为反向代理,并且需要加载mod_proxy
。
configuration指令是:
ProxyPass /localpath http://remote-site.example.com:8080/remotepath ProxyPassReverse /localpath http://remotesite.example.com:8080/remotepath ProxyPassReverseCookieDomain remote-site.example.com proxy.fully.qualified.domain.com ProxyPassReverseCookiePath /remotepath /localpath
所以对于你的例子(再加上一点点):
ProxyPass /ff http://www.forbidden-forum.com/ ProxyPassReverse /ff http://www.forbidden-forum.com/ ProxyPassReverseCookieDomain www.forbidden-forum.com benign.proxy.com ProxyPassReverseCookiePath / /ff ProxyPass /wl http://wikileaks.org/ ProxyPassReverse /wl http://wikileaks.org/ ProxyPassReverseCookieDomain wikileaks.org benign.proxy.com ProxyPassReverseCookiePath / /wl
打开http://benign.proxy.com/ff
将显示来自http://www.forbidden-forum.com/
的内容, http://www.forbidden-forum.com/
http://benign.proxy.com/wl
将打开http://wikileaks.org/
。
在http://benign.proxy.com/
上提供完全无害的(可信的)。 如果有人试图“检查有效性”,他们会看到一些值得信赖的页面。
更好的是,通过HTTPS提供代理来隐藏转发的URL(我将作为一个练习离开你)。
这种方法可以通过所谓的“线路中的颠簸”(一种完全可信的中间人透明代理)来绕开。
如果用户没有完全控制客户端主机,他们将容易受到networking中的碰撞,但是可以手动validation密钥指纹以确保隐私,并且如果密钥不validation,则避免build立连接。
用户还需要注意其他SSL问题(例如,无效证书,sslstrip等)。
你所描述的基本上是一个代理本身; 一个接收来自浏览器的web请求的软件,满足它们,并将接收到的数据传回给浏览器。 整个URL重写的问题可以通过让浏览器预先知道它通过代理连接到Web来避免。 然后,这个问题简化为:“我如何访问这样一个代理服务器,考虑到我拥有的networking访问权限,这样就不能轻易发现我正在这样做”。
Apache有这样一个模块,之前有人问过这个模块, 请参阅如何使用Apache作为浏览器的代理? 更多细节。