llinux 寫 etc passwd檔案新增使用者

2021-10-23 03:45:28 字數 1897 閱讀 1105

前言

在做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...