基于JXWAF快速搭建钓鱼网站

一、前言

前段时间为了加强内部安全意识,需要进行钓鱼邮件演练,于是通过JXWAF快速搭建了一个钓鱼网站,发现效果不错,特此分享。

PS:本文仅用于技术讨论及分享,严禁用于非法用途

二、规则配置

首先假设攻击场景为获取公司内部OA账号,内部OA域名为oa.testing.com。那么第一步就是注册域名,比如去万网注册钓鱼域名oa.testlng.com,地址指向为钓鱼网站IP地址。

为了方便这里以DVWA来当成OA进行演示。

先来分析登陆成功和登陆失败的特征。

15240370187151.png!small

登陆失败。

1524037030563.png!small

登陆成功。

如图,登陆失败和登陆成功的区别在于response中Location的指向,失败指向为login.php,成功指向为index.php,那么我们就以此为特征来设置两条规则,一条识别登陆失败的账号,一条来识别登陆成功的账号,当然也可以不用这么精细,直接设置规则记录输入的账号密码。

分析结束,接下来是搭建JXWAF及配置规则,搭建可以参考 https://github.com/jx-sec/jxwaf,规则配置如下:

登陆JXWAF,在自定义规则组中新建规则组 “钓鱼专用规则”。

15240364455909.png!small

先来设置第一条规则(不建议用这种方式),无论登陆成功失败直接记录输入账户密码,这是钓鱼网站通常的做法,因为他们没有用户数据库,也就只能这么处理了。规则配置如下,比较简单。

1524042225560.png!small

15240422358640.png!small

1524042249437.png!small

结果如下:

15240425519505.png!small

设置第二条规则,只有验证用户名密码失败时才记录(不截图直接放规则)。

{
    "rule_action": "deny",
    "rule_category": "其他",
    "rule_update_category": "resp",
    "rule_log": "true",
    "rule_serverity": "high",
    -
    "rule_matchs": [
        -
        {
            -
            "rule_transform": [
                "none"
            ],
            -
            "rule_vars": [
                -
                {
                    "rule_var": "URI"
                }
            ],
            "rule_operator": "rx",
            "rule_pattern": "login.php$",
            "rule_negated": "false"
        },
        -
        {
            -
            "rule_transform": [
                "none"
            ],
            -
            "rule_vars": [
                -
                {
                    "rule_var": "REQUEST_METHOD"
                }
            ],
            "rule_operator": "rx",
            "rule_pattern": "POST",
            "rule_negated": "false"
        },
        -
        {
            -
            "rule_transform": [
                "none"
            ],
            -
            "rule_vars": [
                -
                {
                    "rule_var": "RESP_HEADERS",
                    -
                    "rule_specific": [
                        "Location"
                    ]
                }
            ],
            "rule_operator": "rx",
            "rule_pattern": "index.php$",
            "rule_negated": "false"
        }
    ],
    "rule_id": "10012",
    "rule_detail": "记录用户登陆成功账号密码"
}

结果如下:

15240470592631.png!small

设置第三条规则,只有验证用户名密码成功时才记录(不截图直接放规则)。

{
    "rule_action": "deny",
    "rule_category": "其他",
    "rule_update_category": "resp",
    "rule_log": "true",
    "rule_serverity": "high",
    -
    "rule_matchs": [
        -
        {
            -
            "rule_transform": [
                "none"
            ],
            -
            "rule_vars": [
                -
                {
                    "rule_var": "URI"
                }
            ],
            "rule_operator": "rx",
            "rule_pattern": "login.php$",
            "rule_negated": "false"
        },
        -
        {
            -
            "rule_transform": [
                "none"
            ],
            -
            "rule_vars": [
                -
                {
                    "rule_var": "REQUEST_METHOD"
                }
            ],
            "rule_operator": "rx",
            "rule_pattern": "POST",
            "rule_negated": "false"
        },
        -
        {
            -
            "rule_transform": [
                "none"
            ],
            -
            "rule_vars": [
                -
                {
                    "rule_var": "RESP_HEADERS",
                    -
                    "rule_specific": [
                        "Location"
                    ]
                }
            ],
            "rule_operator": "rx",
            "rule_pattern": "index.php$",
            "rule_negated": "false"
        }
    ],
    "rule_id": "10012",
    "rule_detail": "记录用户登陆成功账号密码"
}

结果如下:

15240471952130.png!small

三、总结

只需花几分钟时间配置规则即可实现钓鱼网站的搭建,因为是通过jxwaf反向代理到真实的目标网站地址,所以整个钓鱼网站,除了域名外其他都跟实际网站是一致的,隐蔽性比起自建的钓鱼网站更强,也更不容易引起攻击目标的警觉。在钓鱼演练过程中发现,当有些用户反映过来时候,会通过XSS攻击,SQL注入等方式尝试反X钓鱼网站,所以这种方式的另一好处就是安全,因为攻击流量都导入真实网站去了,就是被成功攻击也是真实网站的事情,钓鱼网站在这个过程中全程打酱油。 而且在钓鱼过程中会有些用户故意”捣乱”,或者是谨慎的先尝试错误的密码看网站是不是都返回正确登陆,那么通过这种方式会使得钓鱼过程更真实,同时获取用户的输入数据也是真实的,方便事后统计结果。

本文转自FreeBuf.COM

上一篇:Fortinet在RSA大会发表演讲“基于群体智能的黑白对抗”

下一篇:继Mirai 僵尸网络攻击后,物联网的安全状况好转了吗?