提权学习之旅——基础篇
首發于先知社區
https://xz.aliyun.com/t/8054
前言:
無論是CTF賽題還是滲透測試,有很多時候拿到WebShell的權限并不高,沒有辦法繼續深入,所以需要進行提權操作,方便下一步的進行。
基礎知識
0x00:什么是提權
提高自己在服務器中的權限,主要針對網站入侵過程中,當入侵某一網站時,通過各種漏洞提升WEBSHELL權限以奪得該服務器權限。
簡單的一句話就是權限提升。例如:
Windows:User >> System Linux:User >> Root0x01:什么情況下使用提權
一般會產生提權的原因是因為當前權限無法做到某些我們需要做到的事情
以下這幾種會產生提權
因為服務器有Linux的,也有Windows的,所以要先進行提權首先要先了解各個系統權限高低的劃分。
0x02:Windows下的權限劃分
Windows是一個支持多用戶、多任務的操作系統,這是權限設置的基礎,一切權限設置都是基于用戶和進程而言的,不同的用戶在訪問這臺計算機時,將會有不同的權限。
WindowsNT用戶組:
- Administrators:管理員組,默認情況下,Administrators中的用戶對計算機/域有不受限制的完全訪問權。
- Power Users:高級用戶組,Power Users 可以執行除了為 Administrators 組保留的任務外的其他任何操作系統任務。
- Users:普通用戶組,這個組的用戶無法進行有意或無意的改動。
- Guests:來賓組,來賓跟普通Users的成員有同等訪問權,但來賓帳戶的限制更多
- Everyone:所有的用戶,這個計算機上的所有用戶都屬于這個組。
0x03:Linux下的權限劃分
在Linux系統中,用戶是分角色的,角色不同,對應權限不同。用戶角色通過UID和GID識別。特別是UID,一個UID是唯一標識一個系統用戶的賬號。
- 超級用戶(0):默認是root用戶,其UID和GID都是0。root用戶在每臺Unix和Linux系統中都是唯一且真是存在的,通過它可以登陸系統,操作系統中任何文件執行系統中任何命令,擁有最高管理權限。
- 普通用戶(1~499):系統中大多數用戶都是普通用戶,實際中也一般使用普通用戶操作,需要權限是用sudo命令提升權限。
- 虛擬用戶(500~65535):與真實的普通用戶區分開來,這類用戶最大特點是安裝系統后默認就會存在,且默認情況大多數不能登陸系統,其在/etc/passwd文件中,最后字段為/sbin/nologin。是系統正常運行不可缺少的,主要是方便系統管理,滿足相應的系統進程對文件屬主的要求
0x04:Windows基礎命令
query user //查看用戶登陸情況 whoami //當前用戶權限 systeminfo //查看當前系統版本與補丁信息(利用系統較老,沒有打對應補丁來進行提權) ver //查看當前服務器操作系統版本 Net start //查看當前計算機開啟服務名稱#添加管理員用戶 net user username(用戶名) password(密碼) /add (先添加一個普通用戶) net localgroup adminstrators username /add (把這個普通用戶添加到管理員用戶的組中) 如果遠程桌面連接不上可以添加遠程桌面組 net localgroup "Remote Desktop Users" username /addnetstat -ano //查看端口情況 tasklist //查看所有進程占用的端口 taskkil /im 映像名稱.exe /f //強制結束指定進程 taskkil -PID pid號 //結束某個pid號的進程0x05:Linux基礎命令
查看發行版 cat /etc/issue cat /etc/*-release 查看內核版本 uname -a0x06:常用提權方法
如果拿到Webshell權限,可以從以下幾個方面進行提權
如果拿到的是數據庫權限,可以使用下面方法進行提權
拿到的如果是普通用戶權限,可以從這幾個方面入手
實踐—基于密碼破解的提權
0x01:環境準備
實驗環境: Windows Server 20030x02:Windows密碼原理
Windows使用使用兩種方法對用戶密碼進行哈希處理
Windows的系統密碼hash默認情況下由兩部分組成
格式為:
用戶名:RID:LM-HASH值:NT-HASH值如果已知HASH值,可以通過在線查詢得到密碼明文
http://cracker.offensive-security.com/index.php
https://www.objectif-securite.ch/ophcrack
如果得到對應的hash值,便可以利用上面的網站進行破解,但要怎樣抓取想要的hash值哪?可以通過以下的方法:
0x03:抓取hash及暴力破解
在C:\windows\system32目錄下,如果直接去移動SAM文件會出現
必須使用工具進行導出操作(需管理員運行才行)
除此之外,還可以使用其他方法獲取到該文件
Quarks PwDump
Quarks PwDump -dh1 // 導出本地哈希值 Quarks PwDump -dhdc // 導出內存中域賬戶哈希值 Quarks PwDump -dhd // 導出域哈希值(指定NTDS文件)WCE
wce -a //獲取所有賬戶哈希值獲取到了hash,便可以利用以下工具進行暴力破解
Saminside字典破解 Ophcrack加載彩虹表破解0x04:Windows明文密碼抓取
3. Getpass明文密碼獲取
0x04:Linux密碼原理
在Linux系統中,涉及系統登陸密碼的重要文件有兩個:
/etc/passwd #用戶信息 /etc/shadow #密碼信息Linux密碼文件存放位置
Linux:/etc/shadow AIX3:/etc/security/passwd HP-UX:/.secure/etc/passwdLinux操作系統采用5中常用的加密算法,主要通過賬號后面的$x進行判斷
$1:Md5加密算法 $2:Blowfish加密算法 $5:sha-256加密算法 $6:sha-512加密算法 其他均為標準DES加密算法0x05:Linux密碼破解
使用工具john進行破解,具體步驟如下:
首先使用unshadow命令結合/etc/passwd的數據和/etc/shadow的數據,創建1個含有用戶名和密碼詳細信息的文件。
unshadow /etc/passwd /etc/shadow > shadow生成一個名為shadow的密碼文件,接下來使用john自帶的密碼字典進步暴力破解
(密碼字典位于/usr/share/john/password.lst)
破解成功,如果需要想要查看結果,也可以使用如下命令
橫向滲透與縱向滲透
密碼破解的提權主要作用是方便在內網做滲透,而內網滲透又涉及到兩個名詞,一個是橫向滲透,一個是縱向滲透。
橫向滲透就是已經拿到了目標內網中的部分主機,即已經進入對方的內網環境。利用最先得到的主機,以及之后新得到的主機,會成為突破口、跳板,進一步攻擊內網中其他的主機。密碼的破解主要就運用在橫向滲透中。
縱向滲透簡單理解就是
1.匿名訪問 2.進入后臺 3.拿到webshell 4.最終拿到系統權限 (以一臺主機為例)總結
基礎知識掌握后,下次就來學習下Windows操作系統提權和Linux操作系統提權
參考博客
https://www.cnblogs.com/y0umer/archive/2011/03/23/3839041.html
https://blog.csdn.net/FunkyPants/article/details/78648109
總結
以上是生活随笔為你收集整理的提权学习之旅——基础篇的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2018.5.18信息安全铁人三项赛数据
- 下一篇: CTF训练计划—[CISCN2019]E