3 人签到
    搜索
    Hi~登录注册
    查看: 7658|回复: 848
    收起左侧

    Tor隐身大法——linux版

    [复制链接]

    457

    主题

    4

    精华

    592 小时

    在线时间

    管理员

    积分
    407
    发表于 2015-3-1 17:39:14 | 显示全部楼层 |阅读模式
    0x00 背景

    (编者:在这篇文章里,Chris Crowley提供了一些利用Tor来进行渗透测试的方法,他提供的一些细节和脚本配置非常有用,尤其是他对Privoxy 的讨论部分,谢谢!)
    By Chris Crowley

           我认为渗透测试的真正价值是能模拟现实世界的真实攻击行为,所以渗透测试人员应该尽量将自己的行为与那些攻击者靠拢。但是与真的攻击者不一样的是,我们还是应该对我们的目标系统保持一定的谨慎和敏感,而攻击者肯定不会去管这些。

           在这篇文章里,我向大家分享了一个我经常用的隐藏源IP的方法。一般来说,渗透测试人员有两个原因需要隐藏他们的真实IP。首先,在测试过程中,我们需要访问的资源可能是非法的恶意资源(或者怀疑其是恶意的)。其次,我们需要尽量隐藏测试过程中的测试或攻击来源。

         为了研究一个恶意攻击者或者恶意软件的行为特征,我们有可能需要去访问一些攻击者控制的资源。比如一个很常见的场景是:用户在facebook或者一个社交媒体网站上会受到攻击者的诱骗而去访问一些url,我们还不太确定攻击者是如何成功的控制这些跳转,而这些资源里包含有很多附加链接和javascript。因为我们要对这样的一个场景进行渗透测试,我们必须伪装成一个普通用户去访问这些资源,同时又不能被攻击者识破。

          直接通过我们的真实IP去访问这些恶意网站是很不明智的,因为这无疑相当于直接告诉攻击者,我们在研究你的网站。此外,如果我们发出的请求看起来很像是一个小白用户发起的,这无疑告诉攻击者鱼儿上钩了。这也会使得攻击者来访问我们的系统,所以说隐藏我们的源IP是非常重要的。

          有些时候,恶意软件只会在接收到特意的指令才会运行。我们可以尝试各种各样的指令来触发它,但是让它连接到真实网络这样触发无疑是最快的。但是,我们又不想被攻击者注意到恶意软件已经在我们的系统上运行了,避免攻击者会来入侵我们的系统。我们只需要这些行为信息和整个攻击过程。我们想还原攻击过程,但是,我们希望在拿到这些信息之后能够马上断开恶意软件的连接。

          攻击者拥有各种各样的虚拟系统,他们不必担心自己的源IP暴露。对于一个渗透测试人员来说,一个虚拟的IP地址对于模拟一个真实的攻击者来说是非常重要的。以下的几个场景能说明这个道理:首先是网站踩点,一个熟练的攻击者不会使用相同的一个IP来扫描一个网站。其次是扫描服务类型,如果网站发现有人在不停的扫他,那么肯定会将这些扫描记录到日志里。试想来自四面八方的扫描,只扫那些常用服务是怎样的场景。攻击者会使用一些假IP来扫描目标,然后使用其他的IP来执行渗透。真正的坏蛋的目标只有一个,那就是敏感信息。你觉得一个聪明的家伙会把他的真实信息留下来莫?他会使用不同的系统来制造混乱。第四,是一些在未来今年对渗透测试人员来说很普遍的东西。渗透测试人员会越来越多的将精力花在移动设备上。

          下面概述的方法可以有几个不同的方式来实现。我只会概述一种可以用的方法,你们可以根据自己的需要来自己调整。

          这里还有一些有关政府部分比较介意的Tor在安装使用过程中的一些漏洞,(比如https://blog.torproject.org/blog ... -bundles-vulnerablehttps://www.mozilla.org/security/announce/2013/mfsa2013-53.html).当然,对于我们来说Tor已经能够满足我们了。如果你在找有关如何躲避联邦政府对Tor网络的监控的话,恐怕这篇文章不适合你。

    0x01 细节

    下面是基本步骤

    1、安装和设置Privoxy  2、安装和设置Tor  
    3、配置Privoxy将代理指向Tor
    4、通过Privoxy来上网

          虽然以上步骤我是在linux上面演示的,但是其他系统上的设置基本上大同小异,比如windows,mac ox x。Privoxy 和 Tor组合可以让你很轻松的在Tor网络里作为一个匿名节点翱翔,这个节点跟IP地址的概念不太一样。如果有人想通过Tor网络来监控你的数据包的话,他们有可能是知道你在跟谁通信,但是这个不是我关注的重点,重点是没有人会知道我们是从哪里发起这个通信的。

    1、安装和配置Privoxy
          Privoxyd官网(http://www.privoxy.org/)是这样介绍这款软件的:Privoxy 是一个拥有高级过滤、修改网页数据和http header、访问控制和屏蔽广告等互联网垃圾功能的无缓存web代理工具。Privoxy 拥有灵活的配置并且可以高度定制化,以满足各位黑阔的需求。它在单人操作系统和多人操作系统下均有对应的版本。

          它非常容易安装,不会的话去这里看看http://www.privoxy.org/user-manual/index.html,找到你自己的系统,然后按照步骤来就ok了。比如在Fedora 里只需这样:
    • yum -y install privoxy

    [color=rgb(0, 0, 0) !important]复制代码


         当然你也可以使用其他的http代理工具,比如polipo 。

    2、安装和配置Tor
          Tor的官网(https://www.torproject.org/)是这样介绍她的:Tor最初是美国海军研究实验室设计用来作为第三代洋葱头路由的项目。她最初是美国海军为了保护政府的通信隐私而开发的。今天,全世界所有的普通人都可以用它来做各种各样的事情,比如军人,记者,政府人员,政治分子等等。

    这里有Tor的工作背景:
    如果它勾起你的好奇心,可以在这里下载安装:
    https://www.torproject.org/docs/documentation.html.en
    对于那些已经熟悉Tor,但是可能因为某些大家都懂的原因,比如被墙了之类的,连接不上Tor的专有网络的人,可以看看这里看如何通过bridge 来连接到Tor网络:
    https://www.torproject.org/docs/bridges.html.en
    3、配置Privoxy 指向到Tor
         我选择使用Privoxy 和 Tor组合最主要的原因就是DNS。如果我想控制本地的dns请求,以便我所有的dns请求都不泄露我的信息,我可以不停的换用一些公用dns服务器(比如8.8.8.8)。但是Privoxy还提供了一些附加功能用来阻断请求,而且它还会阻止那些有可能会暴露我们IP的请求。

         这配置其实非常简单。在Linux里,只需要简单的配置下Privoxy让它链接到Tor,那么Privoxy就会将所有的DNS和HTTP请求转发到Tor网络里。
    要让Tor帮你转发请求,只需在Privoxy里这样配置:
                                 forward-socks5 / 127.0.0.1:9050

          下面是privoxy 的完整配置文件(没有注释)。从里面可以很清楚的看到它并没有监听所有的端口,而是直接把请求转发给了Tor。

    • $ grep -v "^#" /etc/privoxy/config
    • confdir /etc/privoxy
    • logdir /var/log/privoxy
    • actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
    • actionsfile default.action # Main actions file
    • actionsfile user.action # User customizations
    • filterfile default.filter
    • logfile logfile
    • listen-address :8123
    • toggle 1
    • enable-remote-toggle 0
    • enable-remote-http-toggle 0
    • enable-edit-actions 0
    • enforce-blocks 0
    • buffer-limit 4096
    • forward-socks5 / 127.0.0.1:9050 .
    • forwarded-connect-retries 0
    • accept-intercepted-requests 0
    • allow-cgi-request-crunching 0
    • split-large-forms 0
    • keep-alive-timeout 5
    • socket-timeout 300
    • handle-as-empty-doc-returns-ok

    复制代码



    4、通过代理上网
    a)配置环境变量(http_proxy, https_proxy, ftp_proxy)和命令行工具,以便通过代理上网。

           举个例子,wget: wget是一个命令行的浏览器。它能跨域和递归地向指定地址发出请求,比如:

               $ export http_proxy=127.0.0.1:8123  
               $ wget -nc -nd http://www.willhackforsushi.com/subscriptions.xml


            在上面的例子中,我想查看Josh的rss feed列表,但是我又不想让他知道是我看的。我会大概每分钟左右发出一个请求

                     * * * * * wget -nc -nd http://www.willhackforsushi.com/subscriptions.xml

                  来监视这个页面,以防万一该页面会发生变化。

            现在,wget对于我来说是一个很乖的web机器人。首先它会按照规定请求网站的robots.txt文件,并严格遵守该文件定义的内容。而且,wget也有nc选项,这个在我之前的例子中也用到了。这个选项的意思是”no-clobber“,或者说不要重复下载已经下载过的文件。事实上,它下载了但是并不保存。那么wget是怎么知道这个文件是不是已经下载了呢?毫无疑问,它会监控文件系统。所以

    [color=rgb(0, 0, 0) !important]复制代码


           将告诉wget不要保存 willhackforsushi.com这个网站的robots.txt文件,而是保存之前就保存过的一个空的robots.txt文件。

    b)用-http-proxy选项来开启安卓虚拟机

           通过一个安卓虚拟机安装一些app来进行渗透测试是一个不错的方法,当你在虚拟机里输入命令时,多半会用到 "-http-proxy ipaddr:port"。
    确保你先运行了privoxy 。如果虚拟机不能访问privoxy 的本地端口,那么这些设置会失效。还会以图解的方式出现警告。

    举个例子:
    • emulator -avd IceCreamSandwich -partition-size 256 -qemu -http-proxy 127.0.0.1:8123

    [color=rgb(0, 0, 0) !important]复制代码



          现在,所有虚拟机里的数据包都会通过privoxy转发到Tor网络里。

          不得忽视的一点是:在虚拟机启动前,必须先开启privoxy ,并确保本地端口监听是正常的。如果虚拟机在启动了之后不能连接到privoxy 的端口,那么它就会忽略这些代理选项,而且虚拟机还会直接使用本地网络来与外界通信,这无疑会暴露我们的源IP。

    c)配置一个应用程序(或者设备)来使用代理

         http_proxy环境变量对基于命令行的工具来说非常有用,因为大部分的命令行工具都会使用到它。但是,窗口工具不同于BASH的环境变量,他们有自己独立的代理设置。所以你可以通过配置好的应用来连接到代理。比如在chrome里可以这样:

           打开chrome,输入"chrome://settings/"  选择高级选项  在网络选项里,点击“更改代理设置”按钮  配置http和https代理到127.0.0.1:8123
    (所有主流浏览器的设置基本上大同小异)

    d)通过 iptables 规则来分配数据包

          如果你的应用程序不使用命令行代理环境变量,而且你也不能通过配置一个应用程序来连接代理,你还可以通过配置iptables 来使用NAT转换数据包到代理上。

          下面是一个我经常用的bash脚本:
    • #!/bin/bash
    • ## CHECK FOR ROOT
    • wai=`whoami`
    • if [[ "$wai" != "root" ]]
    • then
    • echo "
    • You need to be uid 0. Re-run as:
    • sudo $0
    • "
    • exit
    • fi
    • ## SET SYSTEM TO PREROUTING IP PACKETS
    • echo "1" > /proc/sys/net/ipv4/ip_forward
    • ## HTTP TRAFFIC
    • iptables -t nat -A PREROUTING -p tcp --destination-port 80 -j REDIRECT --to-port 8123
    • ## HTTPS TRAFFIC
    • iptables -t nat -A PREROUTING -p tcp --destination-port 443 -j REDIRECT --to-port 8123
    • ## CHECK FOR BURP
    • pgrep -fl privoxy 2>&1 > /dev/null || echo "Are you sure privoxy is running?\nOr mayb

    [color=rgb(0, 0, 0) !important]复制代码




    我认为我已经设置好了后,我测试了下看它咋样。先来wget谷歌一下,

    [color=rgb(0, 0, 0) !important]复制代码



    然后我用tcpdump抓包看了下
    • tcpdump -Xnnv -i eth0 port 80 or port 443 or port 53

    [color=rgb(0, 0, 0) !important]复制代码



    因为如果我的代理工作正常的话,我在本地用tcpdump应该是抓不到任何数据包的。
    注意我的请求被重定向到了google.fr,因为我是在Tor的匿名节点当中。
    现在,你们可以尽情的干坏事了!各位大黑阔们!确保你们的访问都得到了授权哈。。。比如你可以看看那些高大上的软件是如何和自己家庭网络互通的。

         现在,你已经具备了一定的匿名性了(前提是你们要有一定的授权哈),你可以用爬虫爬爬目标网站,下一些恶意软件来研究一下,或者跑一些你正在测试的app,与此同时,你不必担心你的源位置会被暴露。




    上一篇:XP停止服务后对普通网民的影响
    下一篇:借小明,说网络 计算机高级知识科普 值得每一个人看
    150830r1aader11bc81rdc.jpg
    回复

    使用道具 举报

    12

    主题

    0

    精华

    2 小时

    在线时间

    论坛元老

    Rank: 8Rank: 8

    积分
    3525
    发表于 2015-3-2 14:31:57 | 显示全部楼层
    真心顶
    回复 支持 反对

    使用道具 举报

    玩爱之徒∫ 该用户已被删除
    发表于 2015-3-2 14:24:03 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    寵ψǒ①輩子 该用户已被删除
    发表于 2015-3-2 14:20:48 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    怕痛就别爱ゝ 该用户已被删除
    发表于 2015-3-2 14:29:44 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    放手一搏 该用户已被删除
    发表于 2015-3-2 14:20:10 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    谎言学家づ 该用户已被删除
    发表于 2015-3-2 16:25:44 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    你女友@ 该用户已被删除
    发表于 2015-3-2 16:21:07 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    谎言学家づ 该用户已被删除
    发表于 2015-3-2 16:11:55 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    寵ψǒ①輩子 该用户已被删除
    发表于 2015-3-2 16:23:49 | 显示全部楼层
    提示: 作者被禁止或删除 内容自动屏蔽
    回复 支持 反对

    使用道具 举报

    游客
    回复
    您需要登录后才可以回帖 登录 | 获取账号

    快速回复 返回顶部 返回列表