前段时间为了加强内部安全意识,需要进行钓鱼邮件演练,于是通过JXWAF快速搭建了一个钓鱼网站,发现效果不错,特此分享。
PS:本文仅用于技术讨论及分享,严禁用于非法用途
首先假设攻击场景为获取公司内部OA账号,内部OA域名为oa.testing.com。那么第一步就是注册域名,比如去万网注册钓鱼域名oa.testlng.com,地址指向为钓鱼网站IP地址。
为了方便这里以DVWA来当成OA进行演示。
先来分析登陆成功和登陆失败的特征。
登陆失败。
登陆成功。
如图,登陆失败和登陆成功的区别在于response中Location的指向,失败指向为login.php,成功指向为index.php,那么我们就以此为特征来设置两条规则,一条识别登陆失败的账号,一条来识别登陆成功的账号,当然也可以不用这么精细,直接设置规则记录输入的账号密码。
分析结束,接下来是搭建JXWAF及配置规则,搭建可以参考 https://github.com/jx-sec/jxwaf ,规则配置如下:
登陆JXWAF,在自定义规则组中新建规则组 “钓鱼专用规则”。
先来设置第一条规则(不建议用这种方式),无论登陆成功失败直接记录输入账户密码,这是钓鱼网站通常的做法,因为他们没有用户数据库,也就只能这么处理了。规则配置如下,比较简单。
结果如下:
设置第二条规则,只有验证用户名密码失败时才记录(不截图直接放规则)。
{ "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": "记录用户登陆成功账号密码" }
结果如下:
设置第三条规则,只有验证用户名密码成功时才记录(不截图直接放规则)。
{ "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": "记录用户登陆成功账号密码" }
结果如下:
只需花几分钟时间配置规则即可实现钓鱼网站的搭建,因为是通过jxwaf反向代理到真实的目标网站地址,所以整个钓鱼网站,除了域名外其他都跟实际网站是一致的,隐蔽性比起自建的钓鱼网站更强,也更不容易引起攻击目标的警觉。在钓鱼演练过程中发现,当有些用户反映过来时候,会通过XSS攻击,SQL注入等方式尝试反X钓鱼网站,所以这种方式的另一好处就是安全,因为攻击流量都导入真实网站去了,就是被成功攻击也是真实网站的事情,钓鱼网站在这个过程中全程打酱油。 而且在钓鱼过程中会有些用户故意”捣乱”,或者是谨慎的先尝试错误的密码看网站是不是都返回正确登陆,那么通过这种方式会使得钓鱼过程更真实,同时获取用户的输入数据也是真实的,方便事后统计结果。
*本文作者:chenjc,转载请注明来自FreeBuf.COM