zoukankan      html  css  js  c++  java
  • 迂回渗透某APP站点

    本文主要从技术角度探讨某次渗透目标拿取数据的过程,不对目标信息做过多描述,未经本人许可,请勿转载。今年开年以来由于各种原因,自己心思也不在渗透上,没怎么搞渗透,除了这次花了比较长时间搞得一个目标外,就是上次护网打了一个垃圾的域了。本文要描述的渗透过程由于断断续续搞了比较长的时间,中间走了不少弯路耽误了不少时间,这也是我第一次在博客发渗透实战类文章,欢迎交流。

    0x01 信息

    2019年3月第二周,接到相关单位授权对某色情app进行渗透,获取目标关键数据用于取证分析。在获取本次渗透目标信息后,3月第三周我开始对目标进行简单分析,并进行信息收集。由于目标是一个app,而我又不会很专业的逆向技术,因此我还是选择使用模拟器安装app,接入burp代理抓包,看看能不能获取目标相关的域名或ip信息。
    通过分析我获取了目标第一个域名share.xxx018.com:10099,域名包含目标app名称的字段。通过对ip进行分析,以及使用各类开源情报收集工具、子域名爆破、dns反查、历史记录反查域名获取大量的目标资产信息。
    目标资产信息
    经过整理为ip如下:
    目标ip资产
    对目标进行分析简单总结如下:
    1.目标域名大多采用Cloudflare DNS
    2.ip多为新加坡机房Linode VPS、阿里云香港机房、某IDC国外机房(托管视频)
    3.目标域名量多且变更频繁,有一些规律,其中使用了github托管域名,app每次启动后会检测域名状态,访问该域名下.txt
    4.发现github一处疑似目标站点源码数据
    5.目标业务包含:xx热app、撸xxapp、xx小说、xx加速器、工xxapp等
    6.目标后台路径admin/
    .php或*.php,后台登录失败有次数限制
    7.有.git源码泄露,但是未能成功还原仓库
    8.目标app内接口有签名验证、web站点只有个主页面用于下载app,其他的通过接口提供给app使用,后台进不去
    9.目标服务器限制密码登录,只允许私钥登录

    0x02 漏洞发现

    在理清目标资产情况后,开始对目标的主要站点进行漏洞发现,这里主要是两个方向,对发现的代码进行审计,对资产进行端口扫描,以发现其他应用或漏洞点。
    经过了大概三四天的不断尝试,只发现了两个ip下memcache存在未授权访问
    memcache未授权
    代码审计未发现漏洞点,这里后来想尝试通过反序列化来搞,因为可以控制Memcache数据库,但是因为代码似乎不是最新的,未能成功。
    截止目前有点被动,目标资产都是一套代码改的,漏洞审不出来,也没有其他突破口
    就这样有折腾了几天,想了想可以看托管视频服务器的IDC。

    0x03 IDC

    对IDC做了简单的信息收集,发现该IDC一销售站点git泄露,git配置地址为一gitlab仓库,可以直接访问,获取源码三份,另外两份,一份为python开发的某平台代码,一份为静态页面数据。
    gitlab
    迅速对代码做了审计,发现一处注入
    IDC注入
    尝试注入后台账户密码进行登录,通过代码得知其后台目录为/oos/但是访问403,尝试访问其目录下其他文件均为403,推测后台不对外访问,遂dump数据库数据,获取订单数据,在订单中发现目标IP信息,但是购买者却是另外一个IDC,简单看了一下估计是代理商。到这里还利用工单中信息获取了目标视频服务器同网段一台机器权限,server2008机器,没有内网ip,上去后没啥卵用,arp欺骗啥的没尝试,已经不太适合这个时代。种了远控,没几天后远控掉了,也就没管了。这里没截图了。
    到这里的时候我把目标转移到代理IDC上去了,对代理IDC进行了一波操作,通过某处漏洞,获取了其运维数据。在其中发现了目标IP信息,但是没有发现其他有价值信息。
    idc代理商
    到这里两周过去了,还是没能发现能直接威胁到目标的东西。

    0x04 Confluence进入IDC内网

    清明节前,Confluence突然爆出了RCE漏洞,由于在对IDC做信息收集时记得发现过其有一个Wiki站点(时最早那个IDC不是代理商,后面就没管代理商了)果断进行了测试。存在该漏洞,但是当时漏洞刚出来时我并不知道该如何RCE也不知道如何跨目录读文件,为此还咨询了宝哥哥。
    confluence咨询
    第二天清明节了,我就跑去宜昌看三峡大坝去了,没怎么关注了。7号晚上回学校后,看到网上使用file协议跨目录和使用远程模板RCE,第二天研究了一下,成功了!
    当时使用的payload见下图
    confluencerce rce
    进入IDC后发现处于内网10.222.x.x网段,低权限用户,未考虑提权操作,wiki系统估计会有大量数据,于是先通过修改管理密码获取了wiki系统权限。

    登录wiki
    通过该系统获取了IDC内部资产一份。
    wiki获取资产信息一份
    wiki中资料显示运维人员通过IPMI的方式管理机器,使用的地址是叫管理地址的东西。
    ipmi
    这个东西之前没见过,查了一下,是用叫管理卡的东西,可以像在本地一样管理远程主机,进行加载镜像装机等操作。通过wiki系统还获取了IDC管理跳板机密码,在跳板机上可以使用IP*I工具指定管理地址进行登录。考虑后续可能会用来登录目标主机,决定对视频服务器对应机房的管理跳板机植入远控。
    yuan-kong

    0x05 重新规划攻击路径

    在进入了IDC内网后,在内网进行了一段时间信息收集和横行移动,这个地方当时我的思路有点混乱。主要是因为获取的Confluence权限较低,没有很好的方法做权限维持,我希望能在IDC内网找到一个落脚点。在内网中没有做任何扫描,避免触发监控,而是使用信息收集中的信息进行拓展。通过前期在gitlab上获取的代码中发现存在192.168.1.xx的IP作为数据库,并且有密码。
    数据库配置
    通过代理顺利连入该数据库,发现是windows系统,80上开了和之前存在注入相同的系统,推测是测试机,根据gitlab中代码信息发现了该数据库可能使用了wamp组件,于是顺利猜到了web目录,通过写文件顺利获取webshell.
    99webshell
    进入该机后发现,机器里面安装了QQ、微信、电脑管家、XShell等,觉得可能不止测试机这么简单,遂植入远控,在该机上收集了该机使用者大量资料,使用了包括不限于抓本地密码、提取xshell密码、提取浏览器密码、提取Navicate密码、QQ微信下载文件目录信息收集、文件信息收集、键盘记录等,收集一些服务器权限、账号密码等
    获取大量信息
    数据库密码
    VPN账号密码已经不可用。后来该机大概权限维持了几天,远控掉了,推测是开机启动掉了,但是webshell还在,由于我不熟悉exe免杀,于是重新做了CS shellcode免杀,继续保持对该机的控制权限。
    CobaltStrike上线
    后续在已经获取权限的机器中发现IDC wiki/zabbix/cacti等系统使用了ldap验证,通过配置信息获取了ldap连接密码,成功获取了IDC大量用户密码信息(此处获取wiki权限时就应该发现,但是当时并未注意到)
    ldap
    用户密码
    还根据IDC Zabbix告警邮件账号,登录邮箱获取了IDC内部系统导航站点,以及jumpserver堡垒机数据库密码,登录堡垒机发现管理的机器都是IDC机房的交换机,服务器很少;还获取了VPN登录方法,并顺利使用收集的账号密码登录VPN。
    导航站点
    截止到目前对该IDC收集了大量的信息,因为思路有些混乱迟迟没能找到直接威胁目标的突破点,期间尝试通过收集的信息直接通过IDC管理跳板机使用IPI工具进行远程连接,但是发现管理地址不对,于是重新思考了攻击路径,决定进入IDC工单系统,通过工单系统获取目标相关信息,甚至可以通过伪造工单的方式来获取目标系统权限。
    通过导航站点和邮件发现IDC导航站点不一致,信息存在差异,后来在邮件中发现IDC正在进行工单升级。
    工单系统升级
    也是为啥我之前尝试使用IP
    I连接显示的信息不一致的原因。
    通过两个工单系统,通过老工单系统收集目标密码信息
    旧工单系统
    通过新工单系统获取目标视频服务器管理ip信息
    新工单系统
    再使用IPI进行登录,IPI相当于本地登录,成功登录目标一些未修改密码的服务器。
    ipmi登录成功
    继续通过新工单系统,获取了目标一些其他之前未收集到的服务器信息及权限。
    视频服务器
    根据工单中信息得知,这些服务器大多宽带为300M,购买了4*10T SSD,并且组建了单独内网111.0.0.1/24,通过服务器上信息得知,这些服务器间使用rsync同步视频。截止我获取服务器权限当时,服务器上色情视频共计18641部,文件目录见附件。
    视频服务器信息

    0x06 从视频服务器跨到web站点

    在获取视频服务器权限后,在服务器上做信息收集,发现一机器与目标一Web服务器存在数据库连接,这台数据库就是最早信息收集里存在memcache未授权中的一台,在相关文件中发现数据库连接信息,连接数据库后为root权限。
    数据库连接信息
    登录数据库
    发现居然有个zabbix数据库,对该数据库服务器进行端口扫描,获取了zabbix服务端口,由于密码解不开,直接改密码登录,里面除了zabbix-server没机器了,直接脚本弹shell出来,并通过redis提权获取了root权限。目标数据库中用户数据数十万。广大狼友是真滴多,还有在大中午看片的
    后台
    对该机进行取证的过程中,发现该机管理员每天会登录该机器从另一台机器git pull拉取代码更新,认证方式为ssh私钥,但该私钥使用了密码加密,我使用了一点小技巧成功获取了私钥密码
    小技巧获取私钥密码
    成功登录该服务器,发现代码裸仓库,该服务器为目标代码服务器。
    代码服务器权限
    并通过信息收集获取大量其他服务器、数据库权限,至此已基本完成本次任务。

    0x07 反思

    对于需要进行长期定向打击的目标,应当对其资产建立定时的监控,以日、周为单位对资产情况进行更新
    渗透过程中应当不断思考攻击路径,避免出现偏移,浪费时间
    平时多磨刀/多研究工具

  • 相关阅读:
    C# winform判断窗体是否已打开
    对象与json字符串转换类设计
    Redis 操作帮助类
    C# redis客户端帮助类
    RedisHelper Redis帮助类
    Vue.js实现tab切换效果
    Uni-app 使用总结
    C#中的委托和事件(续)
    12小时超级马拉松赛记
    2016年8月份
  • 原文地址:https://www.cnblogs.com/donot/p/13949165.html
Copyright © 2011-2022 走看看