前言
在做vulnhub靶機——ai-web-1 .0的時候,getshell使用者具有/etc/passwd寫許可權,/etc/shadow無讀寫許可權。傻子將/etc/passwd密碼直接以明文寫進去,不能登入。
前提操作使用者對檔案/etc/passwd有寫許可權。
一、簡單介紹/etc/passwd檔案格式:
詳細可參考大佬文章linux /etc/passwd內容解釋(超詳細)
/etc/passwd儲存了本地使用者的基本資訊
以:作為分隔符:
第乙個引數(root):使用者名稱。
第二個引數(x):密碼。x代表有密碼,密碼儲存在/etc/shadow檔案中。若此引數為空,則代表不用密碼就可以登入此使用者。
第三個引數(0):使用者id(uid)。0:超級使用者 uid。1~499:系統使用者uid。500 ~ 65535:普通使用者 uid。
第四個引數(0):使用者組id(gid)。
第五個引數 (root):使用者的簡單說明。可為空。
第六個引數(/root):使用者家目錄。使用者登入後具有操作許可權的訪問目錄。
第七個引數(/bin/bash):使用者登入shell。/bin/bash為可登入系統的shell,/sbin/nologin為禁止登入的shell(很多系統使用者為禁止登入shell)。
二、openssl passwd加密簡單用法
詳細參考大佬文章(6) openssl passwd(生成加密的密碼)
openssl passwd引數列表
-crypt:unix標準加密演算法,此為預設演算法。如果加鹽(-salt)算密碼,只取鹽的前2位,2位後面的所有字元都忽略。
-1(數字):基於md5的演算法代號。
-apr1(數字):apache中使用的備選md5演算法代號,不能和"-1"選項一起使用,因為apr1本身就預設了md5。htpasswd工具生成的身份驗證密碼就是此方法。
-salt:加密時加點鹽,可以增加演算法的複雜度。但加了鹽會有***:鹽相同,密碼也相同,則加密的結果將一樣。
-in file:從檔案中讀取要計算的密碼列表。
-stdin:從標準輸入中獲取要輸入的密碼。
-quiet:生成密碼過程中不輸出任何資訊。
(摘自(6) openssl passwd(生成加密的密碼))
測試結果:
由上可知:不加鹽值,同一加密演算法,同一密碼加密結果不同。加鹽值,則加密結果一致(三種演算法是如此,其中預設演算法鹽值至少要兩位)。如參考文章所述,預設演算法加鹽值,值取鹽值前兩位,即鹽值 123與124結果相同。
md5/apr1演算法加鹽,結果:$id$鹽值$加密後字串;id為1,md5演算法;為arp1;arp1演算法。
linux密碼加密鹽值為固定長度
、可見
的隨機字串,若能讀取/etc/shadow檔案可爆破密碼。詳細見文章
linux 使用者密碼加密分析
三、寫入/etc/passwd檔案
echo 'hack:zsz7whrr8hgwy:0:0::/root/:/etc/bash'
>>
/etc/passwd
(6) openssl passwd(生成加密的密碼)
linux 使用者密碼加密分析
llinux基礎命令
一 ls 命令 1.root chy ls l 列出檔案的詳細資訊 總用量 4 rw 1 root root 1695 5月 26 03 22 anaconda ks.cfg 第一列是許可權,第二列是有幾個檔案使用了inode 第三列是所有者 第四列是所屬組。第五列是檔案的大小 第六列是檔案建立的時...
llinux 壓縮 解壓
1.zip 1 將資料夾 mydir 壓縮為 mydir.zip zip r mydir.zip mydir 2 將檔案 one two 壓縮到 ot.zip zip r ot.zip one two 3 將 mydir.zip 解壓為 mydir a.unzip mydir.zip d anoth...
llinux菜鳥學習
1 sudo su 臨時獲得root許可權,使用的密碼是使用者的密碼,而不是root的密碼 2 與 是根目錄,是 root root身份登入 或者 home name 普通使用者登入 3 ls al 看隱藏檔案 5 etc profile與 home bash profile etc profile...