<sub id="rh9z7"><thead id="rh9z7"><thead id="rh9z7"></thead></thead></sub><big id="rh9z7"><form id="rh9z7"><form id="rh9z7"></form></form></big>

    <cite id="rh9z7"><address id="rh9z7"><thead id="rh9z7"></thead></address></cite>
      <noframes id="rh9z7"><dfn id="rh9z7"><th id="rh9z7"></th></dfn><pre id="rh9z7"></pre>
      <p id="rh9z7"><big id="rh9z7"><span id="rh9z7"></span></big></p>

        <noframes id="rh9z7"><listing id="rh9z7"><nobr id="rh9z7"></nobr></listing>

        千鋒教育-做有情懷、有良心、有品質的職業教育機構

        手機站
        千鋒教育

        千鋒學習站 | 隨時隨地免費學

        千鋒教育

        掃一掃進入千鋒手機站

        領取全套視頻
        千鋒教育

        關注千鋒學習站小程序
        隨時隨地免費學習課程

        【熱點話題】 零基礎學IT IT學習教程 IT學習筆記 IT技術干貨 IT培訓機構 IT應聘面試 IT職場就業 Java培訓機構哪些好
        當前位置:首頁  >  關于學院  >  技術干貨  > 滲透測試——SSH的兩種遠程登錄方法詳解

        滲透測試——SSH的兩種遠程登錄方法詳解

        來源:千鋒教育
        發布人:wjy
        時間: 2022-11-08 13:32:02 1667885522

          最近在打靶場的過程中發現有時候 [SSH] 無需密碼就可以直接登陸,這確實是觸及到我的盲區了,上網查了一下才知道這原來是 ssh 的秘鑰登錄,花了一整天才弄懂,所以寫下這篇內容,希望能幫助到大家

          一:SSH 口令登錄

          【1】登錄原理

          SSH 服務默認登錄方式為口令登錄,也是我們平時最常用的,原理如下

          客戶端向服務端發起請求

          服務端收到請求將自己生成的公鑰返回給客戶端

          客戶端用返回來的公鑰加密自己的登錄密碼,發送給服務端

          服務端用自己的私鑰解密,并驗證密碼是否正確,如果正確,允許登錄

          可以看到整個流程存在四個步驟 ,下面給大家看看詳細步驟

          【2】使用教程

          SSH 的基本使用方法是:

          ssh user@remote -p port

          user 是你在遠程機器上的用戶名,如果不指定的話默認為當前用戶

          remote 是遠程機器的地址,可以是 IP,域名,或者是后面會提到的別名

          port 是 SSH Server 監聽的端口,如果不指定的話就為默認值 22(ssh 的默認端口)

          所以,SSH 口令登錄的前提就是知道目標的用戶名,地址和 SSH 服務的端口,缺一不可

          建立連接

          舉例:假如我正在使用 kali 機器做[滲透測試],探測到目標的地址是

          開啟了 22 端口,并且是SSH 服務,還知道了目標機器上的用戶名為 Tom,密碼為 123456,就可以用 SSH 遠程登良路目標機器,指令如下

          ssh tom@172.21.70.110 -p 22

          注:這里的-p 22 也可以不要,因為-p 22 是默認選項,如果是其他端口的 ssh 服務就需要用-p 來指定其他的端口了

          輸入密碼

          輸入上面的指令后頁面如下,提示輸入密碼,這里密碼的輸入是隱藏輸入(并不會顯示),輸入密碼后直接回車就好

        SSH的兩種遠程登錄方法1

          因為我已經連接過很多次了,但是第一次連接會彈出來一段話,意思是該遠程主機的真實性無法確定,確定想要繼續連接嗎?,直接輸入 yes 即可

          成功連接

          輸入密碼后頁面如下圖

        SSH的兩種遠程登錄方法2

          可以看到這里我們成功用 SSH [遠程登錄]了目標的tom 用戶,這就是SSH 口令登錄的大致內容了

          【3】缺點總結

          安全性

          整個驗證機制是沒什么問題的,但是當遇到 中間人攻擊這種機制的安全性便會遭到破壞,什么是 中間人攻擊?

          客戶端向服務端發起請求

          攻擊人截獲請求,并向客戶端返回自己的公鑰

          客戶端用公鑰加密登錄密碼并返回

          攻擊人用自己的私鑰解密,獲得服務器的登錄密碼

          繁瑣性

          每次登錄目標主機都要輸入密碼,短的密碼不安全,長的密碼又不好記,用戶體驗感較差

          為了解決上面這幾個問題,于是更新,更安全的方法隨之而生,那就是SSH 秘鑰登錄,下面我們來看看

          二:SSH [秘鑰]登錄

          【1】登錄原理

          很多人可能都聽過秘鑰登錄,知道它可以通過 SSH 在無需密碼的情況下登錄目標機器上的用戶,那這個流程是怎樣的呢?我們來詳細看看

          客戶端自己生成密鑰對,事先將公鑰上傳存儲到遠程服務器上,私鑰自己保管

          客戶端發起登錄請求

          服務器發一串隨機字符串給客戶端

          客戶端用自己的私鑰加密隨機字符串,返回給服務端

          服務端用事先存儲好的公鑰解密,確認字符串是原來發出的字符串,便允許登錄

          可以看到整個流程存在五個步驟 ,下面給大家看看詳細步驟

          【2】使用教程

          生成密鑰對

          ssh-keygen -t rsa #-t表示類型選項,這里采用rsa加密算法

          然后根據提示一步步的按回車鍵即可(總共三個),頁面如下

        SSH的兩種遠程登錄方法3

          這里為什么連續按三個回車就可以了呢,我們來看看這三個回車對應了什么

          第一個回車:讓我們輸入一個目錄路徑來保存生成的密鑰對,默認為/root/.ssh ,回車代表直接默認,也可以自己輸入一個路徑來保存

          第二個回車:讓我們設置私鑰密碼,如果設置了私鑰密碼,每次使用 SSH 進行操作都需要輸入私鑰密碼。這里直接空格就是密碼為空,這樣每次使用就不需要輸入密碼

          第三個回車:這個就是單純的再次輸入私鑰密碼(就是一個確認密碼),我們本來就是想設置密碼,所以還是至二級回車即可

          像我上面那樣的話密鑰對就已經生成了,我們到自己設置的秘鑰對路徑下看看,如果沒有設置路徑的話就是默認路徑/root/.ssh,查詢結果如下

        SSH的兩種遠程登錄方法4

          可以看到在/root/.ssh路徑下生成了密鑰對(即公鑰和私鑰),其中id_rsa 文件就是私鑰,id_rsa.pub 文件就是公鑰

          投遞公鑰到服務端

          上面我們已經生成了密鑰對,按照步驟需要將密鑰對中的公鑰保存到目標機器的~/.ssh/authorized_key文件中,這里給大家介紹三種投遞方式,但都是基于目標開啟了 ssh 服務和知道目標賬密的前提下

          注意:~ 表示代碼主目錄,也就是我們想用 SSH 登錄的用戶目錄。

          第一種:

          這是最簡單也是最常用的方式,需要ssh-copy-id,但是一般 linux 都自帶這個

          ssh-copy-id user@remote -p port

          user 是你在遠程機器上的用戶名,如果不指定的話默認為當前用戶

          remote 是遠程機器的地址,可以是 IP,域名,或者是后面會提到的別名

          port 是 SSH Server 監聽的端口,如果不指定的話就為默認值 22(ssh 的默認端口)

          實例:這里我直接把上面生成的密鑰對中的公鑰上傳到目標機器的tom 用戶目錄下

        SSH的兩種遠程登錄方法5

          可以看到在這里已經成功上傳了,因為這是我們自己搭建的環境,我們也可以去目標機器看看~/.ssh上有沒有我們上傳的公鑰文件,也就是authorized_keys 文件

        SSH的兩種遠程登錄方法6

          可以看到目標路徑下已經有了,現在我們再用 kali 來登錄試試

        SSH的兩種遠程登錄方法7

          可以看到已經成功登錄了,而且并沒有提示我們輸入密碼

          第二種:

          在沒有 ssh-copy-id的情況下(比如在 Windows 上),也是可以輕松做到這件事的。用命令的話也是一句話搞定

          ssh user@remote -p port 'mkdir -p .ssh && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

          這句話的意思是,在遠端執行新建 .ssh 文件夾,并把本地的 ~/.ssh/id_rsa.pub(也就是公鑰)復制到遠端的 .ssh/authorized_keys 文件中,因為 windows 用得少,這里就不實操舉例了,有興趣的同學可以試試

          第三種:

          咳咳,這個其實也不算方法,就是兩臺電腦均可控的情況下,手動把本地的 ~/.ssh/id_rsa.pub 復制到目標機器的~/.ssh/authorized_keys 文件中

          三:SSH 最簡單登錄方法——別名配置

          每次都輸入 ssh user@remote -p port,時間久了也會覺得很麻煩(不要覺得我懶哈哈),特別是當 user, remote和 port 都得輸入,而且還不好記憶的時候。配置別名可以讓我們進一步偷懶(咳咳)。

          比如我想用ssh host1 來替代上面這么一長串,那么在~/.ssh/config文件里面追加以下內容:

          Host host1 HostName remote User user Port port

          舉例:先在本地的~/.ssh里面創建一個名為config 的文件,里面代碼如下:

        SSH的兩種遠程登錄方法8

          現在我們就可以嘗試使用ssh host1 來登錄了,如下

        SSH的兩種遠程登錄方法9

          可以看到,也能成功登錄,并且與剛才配置的秘鑰登錄配合,不用輸入密碼,目標信息不用記,我說這是 ssh最簡單的登錄方法沒問題吧。

          注意:這個別名并不是必須配置公鑰登錄,這里如果沒有配置秘鑰登錄也可以使用別名,只是登錄時需要輸入密碼而已

          好了今天的 SSH 使用技巧分享就到這里了希望今天的內容能對大家有所幫助,感謝大家的閱讀,再見啦!

        聲明:本站稿件版權均屬千鋒教育所有,未經許可不得擅自轉載。

        10年以上業內強師集結,手把手帶你蛻變精英

        請您保持通訊暢通,專屬學習老師24小時內將與您1V1溝通

        免費領取

        今日已有369人領取成功

        劉同學 138****2860 剛剛成功領取
        王同學 131****2015 剛剛成功領取
        張同學 133****4652 剛剛成功領取
        李同學 135****8607 剛剛成功領取
        楊同學 132****5667 剛剛成功領取
        岳同學 134****6652 剛剛成功領取
        梁同學 157****2950 剛剛成功領取
        劉同學 189****1015 剛剛成功領取
        張同學 155****4678 剛剛成功領取
        鄒同學 139****2907 剛剛成功領取
        董同學 138****2867 剛剛成功領取
        周同學 136****3602 剛剛成功領取

        猜你喜歡LIKE

        最新文章NEW

        相關推薦HOT

        更多>>

        快速通道 更多>>

        開班信息
        北京校區
        • 北京校區
        • 大連校區
        • 廣州校區
        • 成都校區
        • 杭州校區
        • 長沙校區
        • 合肥校區
        • 南京校區
        • 上海校區
        • 深圳校區
        • 武漢校區
        • 鄭州校區
        • 西安校區
        • 青島校區
        • 重慶校區
        • 太原校區
        • 沈陽校區

        亚洲老熟女 @ tubeum tv

        <sub id="rh9z7"><thead id="rh9z7"><thead id="rh9z7"></thead></thead></sub><big id="rh9z7"><form id="rh9z7"><form id="rh9z7"></form></form></big>

          <cite id="rh9z7"><address id="rh9z7"><thead id="rh9z7"></thead></address></cite>
            <noframes id="rh9z7"><dfn id="rh9z7"><th id="rh9z7"></th></dfn><pre id="rh9z7"></pre>
            <p id="rh9z7"><big id="rh9z7"><span id="rh9z7"></span></big></p>

              <noframes id="rh9z7"><listing id="rh9z7"><nobr id="rh9z7"></nobr></listing>