前段時(shí)間為了加強(qiáng)內(nèi)部安全意識(shí),需要進(jìn)行釣魚郵件演練,于是通過(guò)JXWAF快速搭建了一個(gè)釣魚網(wǎng)站,發(fā)現(xiàn)效果不錯(cuò),特此分享。
PS:本文僅用于技術(shù)討論及分享,嚴(yán)禁用于非法用途
首先假設(shè)攻擊場(chǎng)景為獲取公司內(nèi)部OA賬號(hào),內(nèi)部OA域名為oa.testing.com。那么第一步就是注冊(cè)域名,比如去萬(wàn)網(wǎng)注冊(cè)釣魚域名oa.testlng.com,地址指向?yàn)獒烎~網(wǎng)站IP地址。
為了方便這里以DVWA來(lái)當(dāng)成OA進(jìn)行演示。
先來(lái)分析登陸成功和登陸失敗的特征。
登陸失敗。
登陸成功。
如圖,登陸失敗和登陸成功的區(qū)別在于response中Location的指向,失敗指向?yàn)閘ogin.php,成功指向?yàn)閕ndex.php,那么我們就以此為特征來(lái)設(shè)置兩條規(guī)則,一條識(shí)別登陸失敗的賬號(hào),一條來(lái)識(shí)別登陸成功的賬號(hào),當(dāng)然也可以不用這么精細(xì),直接設(shè)置規(guī)則記錄輸入的賬號(hào)密碼。
分析結(jié)束,接下來(lái)是搭建JXWAF及配置規(guī)則,搭建可以參考 https://github.com/jx-sec/jxwaf,規(guī)則配置如下:
登陸JXWAF,在自定義規(guī)則組中新建規(guī)則組 “釣魚專用規(guī)則”。
先來(lái)設(shè)置第一條規(guī)則(不建議用這種方式),無(wú)論登陸成功失敗直接記錄輸入賬戶密碼,這是釣魚網(wǎng)站通常的做法,因?yàn)樗麄儧]有用戶數(shù)據(jù)庫(kù),也就只能這么處理了。規(guī)則配置如下,比較簡(jiǎn)單。
結(jié)果如下:
設(shè)置第二條規(guī)則,只有驗(yàn)證用戶名密碼失敗時(shí)才記錄(不截圖直接放規(guī)則)。
{
??? "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": "記錄用戶登陸成功賬號(hào)密碼"
}
結(jié)果如下:
設(shè)置第三條規(guī)則,只有驗(yàn)證用戶名密碼成功時(shí)才記錄(不截圖直接放規(guī)則)。
{
??? "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": "記錄用戶登陸成功賬號(hào)密碼"
}
結(jié)果如下:
只需花幾分鐘時(shí)間配置規(guī)則即可實(shí)現(xiàn)釣魚網(wǎng)站的搭建,因?yàn)槭峭ㄟ^(guò)jxwaf反向代理到真實(shí)的目標(biāo)網(wǎng)站地址,所以整個(gè)釣魚網(wǎng)站,除了域名外其他都跟實(shí)際網(wǎng)站是一致的,隱蔽性比起自建的釣魚網(wǎng)站更強(qiáng),也更不容易引起攻擊目標(biāo)的警覺。在釣魚演練過(guò)程中發(fā)現(xiàn),當(dāng)有些用戶反映過(guò)來(lái)時(shí)候,會(huì)通過(guò)XSS攻擊,SQL注入等方式嘗試反X釣魚網(wǎng)站,所以這種方式的另一好處就是安全,因?yàn)楣袅髁慷紝?dǎo)入真實(shí)網(wǎng)站去了,就是被成功攻擊也是真實(shí)網(wǎng)站的事情,釣魚網(wǎng)站在這個(gè)過(guò)程中全程打醬油。 而且在釣魚過(guò)程中會(huì)有些用戶故意”搗亂”,或者是謹(jǐn)慎的先嘗試錯(cuò)誤的密碼看網(wǎng)站是不是都返回正確登陸,那么通過(guò)這種方式會(huì)使得釣魚過(guò)程更真實(shí),同時(shí)獲取用戶的輸入數(shù)據(jù)也是真實(shí)的,方便事后統(tǒng)計(jì)結(jié)果。