久久精品国产亚洲高清|精品日韩中文乱码在线|亚洲va中文字幕无码久|伊人久久综合狼伊人久久|亚洲不卡av不卡一区二区|精品久久久久久久蜜臀AV|国产精品19久久久久久不卡|国产男女猛烈视频在线观看麻豆

千鋒教育-做有情懷、有良心、有品質(zhì)的職業(yè)教育機(jī)構(gòu)

手機(jī)站
千鋒教育

千鋒學(xué)習(xí)站 | 隨時(shí)隨地免費(fèi)學(xué)

千鋒教育

掃一掃進(jìn)入千鋒手機(jī)站

領(lǐng)取全套視頻
千鋒教育

關(guān)注千鋒學(xué)習(xí)站小程序
隨時(shí)隨地免費(fèi)學(xué)習(xí)課程

當(dāng)前位置:首頁(yè)  >  技術(shù)干貨  > 滲透測(cè)試——SSH的兩種遠(yuǎn)程登錄方法詳解

滲透測(cè)試——SSH的兩種遠(yuǎn)程登錄方法詳解

來(lái)源:千鋒教育
發(fā)布人:wjy
時(shí)間: 2022-11-08 13:32:02 1667885522

  最近在打靶場(chǎng)的過(guò)程中發(fā)現(xiàn)有時(shí)候 [SSH] 無(wú)需密碼就可以直接登陸,這確實(shí)是觸及到我的盲區(qū)了,上網(wǎng)查了一下才知道這原來(lái)是 ssh 的秘鑰登錄,花了一整天才弄懂,所以寫(xiě)下這篇內(nèi)容,希望能幫助到大家

  一:SSH 口令登錄

  【1】登錄原理

  SSH 服務(wù)默認(rèn)登錄方式為口令登錄,也是我們平時(shí)最常用的,原理如下

  客戶(hù)端向服務(wù)端發(fā)起請(qǐng)求

  服務(wù)端收到請(qǐng)求將自己生成的公鑰返回給客戶(hù)端

  客戶(hù)端用返回來(lái)的公鑰加密自己的登錄密碼,發(fā)送給服務(wù)端

  服務(wù)端用自己的私鑰解密,并驗(yàn)證密碼是否正確,如果正確,允許登錄

  可以看到整個(gè)流程存在四個(gè)步驟 ,下面給大家看看詳細(xì)步驟

  【2】使用教程

  SSH 的基本使用方法是:

  ssh user@remote -p port

  user 是你在遠(yuǎn)程機(jī)器上的用戶(hù)名,如果不指定的話(huà)默認(rèn)為當(dāng)前用戶(hù)

  remote 是遠(yuǎn)程機(jī)器的地址,可以是 IP,域名,或者是后面會(huì)提到的別名

  port 是 SSH Server 監(jiān)聽(tīng)的端口,如果不指定的話(huà)就為默認(rèn)值 22(ssh 的默認(rèn)端口)

  所以,SSH 口令登錄的前提就是知道目標(biāo)的用戶(hù)名,地址和 SSH 服務(wù)的端口,缺一不可

  建立連接

  舉例:假如我正在使用 kali 機(jī)器做[滲透測(cè)試],探測(cè)到目標(biāo)的地址是

  開(kāi)啟了 22 端口,并且是SSH 服務(wù),還知道了目標(biāo)機(jī)器上的用戶(hù)名為 Tom,密碼為 123456,就可以用 SSH 遠(yuǎn)程登良路目標(biāo)機(jī)器,指令如下

  ssh tom@172.21.70.110 -p 22

  注:這里的-p 22 也可以不要,因?yàn)?p 22 是默認(rèn)選項(xiàng),如果是其他端口的 ssh 服務(wù)就需要用-p 來(lái)指定其他的端口了

  輸入密碼

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

SSH的兩種遠(yuǎn)程登錄方法1

  因?yàn)槲乙呀?jīng)連接過(guò)很多次了,但是第一次連接會(huì)彈出來(lái)一段話(huà),意思是該遠(yuǎn)程主機(jī)的真實(shí)性無(wú)法確定,確定想要繼續(xù)連接嗎?,直接輸入 yes 即可

  成功連接

  輸入密碼后頁(yè)面如下圖

SSH的兩種遠(yuǎn)程登錄方法2

  可以看到這里我們成功用 SSH [遠(yuǎn)程登錄](méi)了目標(biāo)的tom 用戶(hù),這就是SSH 口令登錄的大致內(nèi)容了

  【3】缺點(diǎn)總結(jié)

  安全性

  整個(gè)驗(yàn)證機(jī)制是沒(méi)什么問(wèn)題的,但是當(dāng)遇到 中間人攻擊這種機(jī)制的安全性便會(huì)遭到破壞,什么是 中間人攻擊?

  客戶(hù)端向服務(wù)端發(fā)起請(qǐng)求

  攻擊人截獲請(qǐng)求,并向客戶(hù)端返回自己的公鑰

  客戶(hù)端用公鑰加密登錄密碼并返回

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

  繁瑣性

  每次登錄目標(biāo)主機(jī)都要輸入密碼,短的密碼不安全,長(zhǎng)的密碼又不好記,用戶(hù)體驗(yàn)感較差

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

  二:SSH [秘鑰]登錄

  【1】登錄原理

  很多人可能都聽(tīng)過(guò)秘鑰登錄,知道它可以通過(guò) SSH 在無(wú)需密碼的情況下登錄目標(biāo)機(jī)器上的用戶(hù),那這個(gè)流程是怎樣的呢?我們來(lái)詳細(xì)看看

  客戶(hù)端自己生成密鑰對(duì),事先將公鑰上傳存儲(chǔ)到遠(yuǎn)程服務(wù)器上,私鑰自己保管

  客戶(hù)端發(fā)起登錄請(qǐng)求

  服務(wù)器發(fā)一串隨機(jī)字符串給客戶(hù)端

  客戶(hù)端用自己的私鑰加密隨機(jī)字符串,返回給服務(wù)端

  服務(wù)端用事先存儲(chǔ)好的公鑰解密,確認(rèn)字符串是原來(lái)發(fā)出的字符串,便允許登錄

  可以看到整個(gè)流程存在五個(gè)步驟 ,下面給大家看看詳細(xì)步驟

  【2】使用教程

  生成密鑰對(duì)

  ssh-keygen -t rsa #-t表示類(lèi)型選項(xiàng),這里采用rsa加密算法

  然后根據(jù)提示一步步的按回車(chē)鍵即可(總共三個(gè)),頁(yè)面如下

SSH的兩種遠(yuǎn)程登錄方法3

  這里為什么連續(xù)按三個(gè)回車(chē)就可以了呢,我們來(lái)看看這三個(gè)回車(chē)對(duì)應(yīng)了什么

  第一個(gè)回車(chē):讓我們輸入一個(gè)目錄路徑來(lái)保存生成的密鑰對(duì),默認(rèn)為/root/.ssh ,回車(chē)代表直接默認(rèn),也可以自己輸入一個(gè)路徑來(lái)保存

  第二個(gè)回車(chē):讓我們?cè)O(shè)置私鑰密碼,如果設(shè)置了私鑰密碼,每次使用 SSH 進(jìn)行操作都需要輸入私鑰密碼。這里直接空格就是密碼為空,這樣每次使用就不需要輸入密碼

  第三個(gè)回車(chē):這個(gè)就是單純的再次輸入私鑰密碼(就是一個(gè)確認(rèn)密碼),我們本來(lái)就是想設(shè)置密碼,所以還是至二級(jí)回車(chē)即可

  像我上面那樣的話(huà)密鑰對(duì)就已經(jīng)生成了,我們到自己設(shè)置的秘鑰對(duì)路徑下看看,如果沒(méi)有設(shè)置路徑的話(huà)就是默認(rèn)路徑/root/.ssh,查詢(xún)結(jié)果如下

SSH的兩種遠(yuǎn)程登錄方法4

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

  投遞公鑰到服務(wù)端

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

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

  第一種:

  這是最簡(jiǎn)單也是最常用的方式,需要ssh-copy-id,但是一般 linux 都自帶這個(gè)

  ssh-copy-id user@remote -p port

  user 是你在遠(yuǎn)程機(jī)器上的用戶(hù)名,如果不指定的話(huà)默認(rèn)為當(dāng)前用戶(hù)

  remote 是遠(yuǎn)程機(jī)器的地址,可以是 IP,域名,或者是后面會(huì)提到的別名

  port 是 SSH Server 監(jiān)聽(tīng)的端口,如果不指定的話(huà)就為默認(rèn)值 22(ssh 的默認(rèn)端口)

  實(shí)例:這里我直接把上面生成的密鑰對(duì)中的公鑰上傳到目標(biāo)機(jī)器的tom 用戶(hù)目錄下

SSH的兩種遠(yuǎn)程登錄方法5

  可以看到在這里已經(jīng)成功上傳了,因?yàn)檫@是我們自己搭建的環(huán)境,我們也可以去目標(biāo)機(jī)器看看~/.ssh上有沒(méi)有我們上傳的公鑰文件,也就是authorized_keys 文件

SSH的兩種遠(yuǎn)程登錄方法6

  可以看到目標(biāo)路徑下已經(jīng)有了,現(xiàn)在我們?cè)儆?kali 來(lái)登錄試試

SSH的兩種遠(yuǎn)程登錄方法7

  可以看到已經(jīng)成功登錄了,而且并沒(méi)有提示我們輸入密碼

  第二種:

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

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

  這句話(huà)的意思是,在遠(yuǎn)端執(zhí)行新建 .ssh 文件夾,并把本地的 ~/.ssh/id_rsa.pub(也就是公鑰)復(fù)制到遠(yuǎn)端的 .ssh/authorized_keys 文件中,因?yàn)?windows 用得少,這里就不實(shí)操舉例了,有興趣的同學(xué)可以試試

  第三種:

  咳咳,這個(gè)其實(shí)也不算方法,就是兩臺(tái)電腦均可控的情況下,手動(dòng)把本地的 ~/.ssh/id_rsa.pub 復(fù)制到目標(biāo)機(jī)器的~/.ssh/authorized_keys 文件中

  三:SSH 最簡(jiǎn)單登錄方法——別名配置

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

  比如我想用ssh host1 來(lái)替代上面這么一長(zhǎng)串,那么在~/.ssh/config文件里面追加以下內(nèi)容:

  Host host1 HostName remote User user Port port

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

SSH的兩種遠(yuǎn)程登錄方法8

  現(xiàn)在我們就可以嘗試使用ssh host1 來(lái)登錄了,如下

SSH的兩種遠(yuǎn)程登錄方法9

  可以看到,也能成功登錄,并且與剛才配置的秘鑰登錄配合,不用輸入密碼,目標(biāo)信息不用記,我說(shuō)這是 ssh最簡(jiǎn)單的登錄方法沒(méi)問(wèn)題吧。

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

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

tags:
聲明:本站稿件版權(quán)均屬千鋒教育所有,未經(jīng)許可不得擅自轉(zhuǎn)載。
10年以上業(yè)內(nèi)強(qiáng)師集結(jié),手把手帶你蛻變精英
請(qǐng)您保持通訊暢通,專(zhuān)屬學(xué)習(xí)老師24小時(shí)內(nèi)將與您1V1溝通
免費(fèi)領(lǐng)取
今日已有369人領(lǐng)取成功
劉同學(xué) 138****2860 剛剛成功領(lǐng)取
王同學(xué) 131****2015 剛剛成功領(lǐng)取
張同學(xué) 133****4652 剛剛成功領(lǐng)取
李同學(xué) 135****8607 剛剛成功領(lǐng)取
楊同學(xué) 132****5667 剛剛成功領(lǐng)取
岳同學(xué) 134****6652 剛剛成功領(lǐng)取
梁同學(xué) 157****2950 剛剛成功領(lǐng)取
劉同學(xué) 189****1015 剛剛成功領(lǐng)取
張同學(xué) 155****4678 剛剛成功領(lǐng)取
鄒同學(xué) 139****2907 剛剛成功領(lǐng)取
董同學(xué) 138****2867 剛剛成功領(lǐng)取
周同學(xué) 136****3602 剛剛成功領(lǐng)取
相關(guān)推薦HOT
為什么SpringBoot的 jar 可以直接運(yùn)行?

一、JAR文件的結(jié)構(gòu)與執(zhí)行方式Spring Boot的JAR包是Java Archive的縮寫(xiě),它是一種壓縮文件格式,可以將Java項(xiàng)目的類(lèi)文件、資源文件以及依賴(lài)庫(kù)等...詳情>>

2023-10-14 23:01:49
站群服務(wù)器是什么?

站群服務(wù)器的含義與用途站群服務(wù)器主要用于支持站群,即由一組相互鏈接的網(wǎng)站組成的群體。這些網(wǎng)站通常由同一組織或個(gè)人擁有,并且經(jīng)常會(huì)互相鏈...詳情>>

2023-10-14 22:46:12
自編碼器是什么?

一、自編碼器原理自編碼器的設(shè)計(jì)靈感源于神經(jīng)科學(xué)中關(guān)于感知系統(tǒng)的認(rèn)知原理,它的核心思想是將輸入數(shù)據(jù)經(jīng)過(guò)編碼過(guò)程,形成一個(gè)隱藏層的特征表示...詳情>>

2023-10-14 22:41:10
什么是云網(wǎng)融合?

一、云網(wǎng)融合的定義云網(wǎng)融合是指將云計(jì)算與網(wǎng)絡(luò)技術(shù)相結(jié)合,實(shí)現(xiàn)資源的共享、業(yè)務(wù)的協(xié)同,將網(wǎng)絡(luò)與云端服務(wù)深度融合,提供更靈活、高效、安全的...詳情>>

2023-10-14 22:31:47
什么是setnx、Redlock、Redisson?

一、setnxsetnx是Redis中的一個(gè)命令,用于將鍵值對(duì)(key-value)設(shè)置到Redis數(shù)據(jù)庫(kù)中。其中,setnx表示”Set if Not Exists”,即當(dāng)...詳情>>

2023-10-14 22:22:53