對於只是給定一個對應ip地址的靶場機器,咱們須要對其進行掃描,探測其開放服務。我原來理解的滲透就是找到目標的漏洞,而後利用這些(這種)漏洞,最後拿到機器的最高權限;其實個人理解的有偏差:滲透實際上是針對服務的漏洞探測,而後進行對應的數據包發送,經過構造畸形數據包得到異常回應,根據這些異常回應從而拿到機器的最高權限。服務器
1.探測靶場ip:netdiscover -r ip/netmask ,而後測試連通性ssh
探測到靶場,且可ping通工具
2.掃描已開啓的服務:namp -sV ip測試
分析結果:每個服務對應一個端口,端口用來通訊,若是看到特殊端口(3306),對其進行深刻探測。好比那種大端口(http服務端口),就可採用某些手段進行訪問。搜索引擎
3.發現開啓http服務大端口,採用形式訪問:http://ip:port/spa
查看一下大端口號313373d
返回的對應界面沒有flag值。先看看頁面源代碼吧。發現源代碼裏面也沒有flag值:blog
4.探測是否有隱藏頁面:dirb http://ip:port/索引
看到了比較敏感的.ssh和robots.txt文件ip
Robots.txt:存放搜索引擎容許或者不被容許的的文件
打開每個文件試試,找到第一個flag:
5.Robots.txt目前沒有價值了,繼續挖掘ssh信息,不斷訪問獲取更多泄露的ssh密鑰信息。
ssh 的驗證:客戶端公鑰與服務器私鑰進行對比,對比成功則驗證經過,可遠程登陸
打開ssh文件發現裏面有三個內容,因此咱們應該思考這三個內容裏面了是否包含了更多的內容,繼續加「/」,試一試能否下載
而後發現,個人天,竟然所有都有內容且可下載:
公鑰能夠不下載,畢竟是任何人均可以訪問的。
6.如今已經有了公鑰和私鑰,那麼嘗試登錄一下遠程服務器
首先切換到存放這些文件的位置:
查看權限:ls -alh
查詢結果:可讀可寫
而後開始嘗試遠程登陸:ssh -i (私鑰) 用戶名@ip
結果發現,,沒有用戶名,而後咱們就在咱們下載好的認證文件裏面找到了用戶名
那麼就是:ssh -I id_rsa simon@192.168.43.42
觀察這三個點:告訴咱們不能創建遠程鏈接,只能識別,yes;644告訴咱們權限不夠;再一次告訴咱們沒有創建鏈接,權限拒絕。
7.能夠識別可是鏈接沒法創建,嘗試提高權限:chmod 600 id_rsa
從新賦予讀寫權限,接下來從新登陸:
可是這一次,又出現了新的關卡:須要輸入鏈接密碼,只有三次機會;可是咱們不知道密碼,只有一個私鑰以及認證文件。咱們能夠經過這兩個文件,看看是否有其餘信息。進一步探取私鑰信息
=======================================
在這裏插播一個電腦小問題,我仍是單獨開一篇文章記錄我這些充滿神奇力量、能給我帶來毀滅性驚喜的設備們吧。耳機OK,筆記本外放OK,可是兩者相結合就是噩夢開始了:
筆記本聲卡OK,耳機OK,可是耳機插進筆記本就是無聲:
解決方案:控制面板—》這啥管理器—》設置—》選擇單獨(反正能讓他重啓就好了)
最後,見證奇蹟的時刻,插頭已塞入插孔!因此,每個提醒,都應該關注一下下面的詳情。。以防將來的驚喜我都找不到來源。。
8.進一步探取私鑰信息:
解密ssh密鑰信息
使用ssh2John 將id_rsa密鑰信息轉換爲可識別的信息
ssh2john id_rsa > isacrack #使用John這個工具,將id_rsa 這個文件轉化爲isacrack這個文件,位置和前者相同;
解密該文件,利用字典解密isacrack信息,使用zcat這個工具:
zcat/usr/share/wordlists/rockyou.txt.gz |john –pipe –rules isacrack /#使用zcat來取得usr/share/wordlists/這個路徑下,/rockyou.txt.gz的文件密碼,管道標誌符,使用John這個工具使用isacrack這個字典的規則
這個文件貌似只能開一次,而後密碼就在starwars裏面,接下來繼續嘗試登錄
9.使用starwars密碼登錄:
Ssh -i (私鑰) name@ip
登錄成功,還看到了robots.txt文件
可是咱們仍是沒有得到想要的flag文件,務必記住root這個文件夾很重要
切到root目錄下,發現有咱們想要的flag文件,可是咱們沒有權限閱讀:
這個時候的查看權限ls -alh,還有提權chmod命令就無論用了。。。由於這些命令只限於本機,或者說拿到靶機的很高的權限。
10.提高權限,Simon只是爲普通用戶,咱們要獲得root權限,因此咱們要查看哪些文件具備root權限:
find /-perm -4000 2>/dev/null #從根目錄開始,查找具備執行權限的文件(-perm 4000),避免錯誤輸出(2>/dev/null)
注意啊,輸入錯誤可能就是錯誤!
咱們選擇我的以爲有意義的文件進行查閱,從而進一步得出:
第二個flag出現:
這裏有一段C語言代碼,也有flag2,讀出來了說不定就是flag值。理解代碼的意思之後,運行代碼
11.進一步提權,咱們經過溢出(我本身想的??),讓程序執行很是規操做:
20字符/bin/sh #首先這個文件擁有root權限,其次咱們將其切換到bin/sh這個遠程文件夾裏面,可創建遠程鏈接(???)
第三個flag出現