項(xiàng)目13:SickOs1.2
##Nmap信息收集
---靶機(jī)IP:192.168.95.181

---全端口掃描:只開了22和80端口
---思路:枚舉web頁(yè)面獲取WebShell或者SSH爆破

---搜索一下版本信息和操作系統(tǒng)信息,沒(méi)有什么有用信息

##Web信息枚舉
---訪問(wèn)80發(fā)現(xiàn)一張圖
---查看前端源碼,沒(méi)有什么信息,下載圖片
---使用binwalk、exiftool、strings分析,也沒(méi)有什么信息

---dirb進(jìn)行目錄爆破,發(fā)現(xiàn)存在test目錄

---訪問(wèn)一下,發(fā)現(xiàn)存在目錄泄露,而且存在:lighttpd/1.4.28
---Lighttpd是一個(gè)德國(guó)人領(lǐng)導(dǎo)的開源軟件,其根本的目的是提供一個(gè)專門針對(duì)高性能網(wǎng)站,安全、快速、兼容性好并且靈活的web server環(huán)境。具有非常低的內(nèi)存開銷,cpu占用率低,效能好,以及豐富的模塊等特點(diǎn)(類似于Apache的輕量級(jí)中間件)
---思路1:搜索lighttpd/1.4.28是否存在漏洞

---niKto掃描也發(fā)現(xiàn)了/test目錄,還發(fā)現(xiàn)了Phpinfo的信息泄露

---但是這里phpinfo的信息看不出什么

##不安全的HTTP方法
---HTTP請(qǐng)求方法并不是只有GET和POST,只是最常用的
---據(jù)RFC2616標(biāo)準(zhǔn)(現(xiàn)行的HTTP/1.1)通常有以下8種方法:
---接下來(lái)用OPTIONS來(lái)進(jìn)行請(qǐng)求:OPTIONS一般是對(duì)CORS(跨域資源共享)枚舉的
---通過(guò)這里測(cè)試,發(fā)現(xiàn)允許PUT請(qǐng)求(可以上傳文件)

---也可以直接通過(guò)Curl進(jìn)行測(cè)試
-v?? ---列出詳細(xì)的信息
-X?? ---指定請(qǐng)求OPTIONS選項(xiàng)信息(GET/POST/PUT等)
---這兩個(gè)Allow
字段反映了服務(wù)器允許客戶端使用的不同HTTP方法
---第一個(gè)字段涵蓋了更多WebDAV相關(guān)的方法,而第二個(gè)字段包括了通用的HTTP方法
---WebDAV是一種擴(kuò)展了HTTP協(xié)議的標(biāo)準(zhǔn),用于支持文件的創(chuàng)建、修改、移動(dòng)、復(fù)制等操作,以及一些屬性的管理等

##文件上傳獲取WebShell
---方法1:通過(guò)Curl+POST傳遞數(shù)據(jù)
---注意:這里的系統(tǒng)命令執(zhí)行還有:passthru、system、exec等
---PHP的代碼執(zhí)行和系統(tǒng)命令執(zhí)行函數(shù)如下

---:-d/--data <data>? : HTTP POST方式傳送數(shù)據(jù)

---直接瀏覽器訪問(wèn)進(jìn)行系統(tǒng)命令執(zhí)行

---然后利用Python進(jìn)行一句話反彈
---但是監(jiān)聽的端口一直沒(méi)有動(dòng)靜,說(shuō)明存在防火墻(只允許指定端口進(jìn)行聯(lián)網(wǎng))
---可能1:找不到6677端口
---可能2:禁ping,找不到我們的Kail,只允許Kail去訪問(wèn)靶機(jī)(直連shell)
---這里是只允許443和8080端口進(jìn)行外部連接

---方法2:上傳weevely的馬子
---weevely生成密碼為passdayu的名為dayu.php的馬子

---curl進(jìn)行--upload-file文件上傳
-0/--http1.0 :使用HTTP 1.0
-1/--tlsv1? 使用TLSv1(SSL)
-2/--sslv2 使用SSLv2的(SSL)
-3/--sslv3 使用的SSLv3(SSL)
---其中http1.0/1.1/2的區(qū)別

---HTTP和HTTPS區(qū)別

---發(fā)現(xiàn)上傳成功

---通過(guò)weevely進(jìn)行連接
---注意:只有這個(gè)工具可以自動(dòng)的去找端口連接,其它的不行

##內(nèi)網(wǎng)信息收集
---使用http.server進(jìn)行上傳,發(fā)現(xiàn)防火墻不能傳遞

---使用curl上傳linpeas.sh
--在linpeas.sh文件的目錄上傳

---然后執(zhí)行賦予權(quán)限執(zhí)行腳本,但是這個(gè)shell存在問(wèn)題,不再執(zhí)行l(wèi)inpeas.sh

---需要使用443端口才能繞過(guò)防火墻(這個(gè)可以測(cè)試除了,因該需要循環(huán)去嘗試)

---這里出現(xiàn):1,內(nèi)核版本提權(quán) 2.Sudo版本漏洞

---普通用戶存在SUDO權(quán)限

---SUID里面沒(méi)有可以提權(quán)的命令

---本地端口只開啟了22和80端口

---查看/etc目錄下的計(jì)劃任務(wù):find /etc -name "*cron*" 2>/dev/null
---但是/etc/cron.d里面沒(méi)有進(jìn)行權(quán)限

---進(jìn)入/etc/cron/daily查看計(jì)劃任務(wù)下面存在chkrootkit文件(其它用戶只存在執(zhí)行權(quán)限)
---Rootkit是一個(gè)惡意軟件,它可隱藏自身以及指定的文件、進(jìn)程、網(wǎng)絡(luò)、鏈接、端口等信息
---Rootkit通過(guò)加載特殊的驅(qū)動(dòng)修改系統(tǒng)內(nèi)核,進(jìn)而達(dá)到隱藏信息,Rootkit的三要素就是:隱藏、操縱、收集數(shù)據(jù)
---Rootkit具有隱身功能,無(wú)論靜止時(shí)作為文件存在,還是活動(dòng)時(shí)作為進(jìn)程存在,都不會(huì)被察覺(jué),它可能永遠(yuǎn)存在于計(jì)算機(jī)中
---Chkrootkit是一款用來(lái)檢測(cè)rootkit的軟件,運(yùn)行環(huán)境為linux,可以直接通過(guò)http://www.chkrootkit.org/download/地址來(lái)下載,隨后進(jìn)行解壓縮。

---查找chkrootkit文件的路徑
----這兩個(gè)分別對(duì)應(yīng):配置信息和環(huán)境變量 信息

---將2個(gè)文件拷貝到目錄泄露目錄:cat /usr/sbin/chkrootkit > /var/www/test/1.txt

---在瀏覽器進(jìn)行訪問(wèn)查看

---注意:Chkrootkit的版本是0.49(注意:普通用戶只存在執(zhí)行權(quán)限)

---剛好這里存在一個(gè)Chkrootkit的0.49的本地提權(quán)漏洞

---exp如下
---存在漏洞的原因是:行“file_port=$file_port$i,因該“”修改成file_port="$file_port $i"
---根據(jù)exp借助chatgpt仔細(xì)分析一下chkrootkit的配置文件
---該腳本定義了一個(gè)名為slapper
的函數(shù),旨在在Shell環(huán)境中執(zhí)行。
---它的目的是通過(guò)檢查網(wǎng)絡(luò)統(tǒng)計(jì)信息和與蠕蟲相關(guān)的特定文件的存在
---來(lái)檢測(cè)Slapper Worm的存在,如果發(fā)現(xiàn)任何感染跡象,它會(huì)提供警告消息;
---否則,它會(huì)指示未檢測(cè)到感染
#chkrootkit 0.49
漏洞總結(jié)
---1)/tmp目錄創(chuàng)建update文件,.cinik文件,.b文件
---2)update在Linux下可執(zhí)行,而且具有root權(quán)限
---3)產(chǎn)生原因:file_port=$file_port $i
這種寫法實(shí)際上是不正確的,Shell 會(huì)嘗試將 $i
所代表的文件路徑(/tmp/update)作為一個(gè)命令來(lái)執(zhí)行,而不是將它作為變量進(jìn)行處理,“file_port $i” 會(huì)調(diào)用$SLAPPER_FILES中指定的所有文件作為chkrootkit用戶進(jìn)行執(zhí)行命令(通常是root),原因是file_port是空的,因?yàn)樵谧兞抠x值周圍缺少引號(hào)!
---4)防護(hù)手段:file_port="$file_port $i"?? ---加上引號(hào)
---5)chkrootkit 0.49
漏洞的產(chǎn)生是由于
chkrootkit
有
crontab
(可以定時(shí)執(zhí)行任務(wù)),會(huì)定期以
root身份
執(zhí)行
/tmp/update
文件(沒(méi)有這個(gè)文件要自己建)
##chkrootkit 0.49
漏洞提權(quán)
#方法1:使用printf或者echo構(gòu)建sh文件寫入update
---賦予執(zhí)行權(quán)限

---等待一會(huì),直接獲取到root權(quán)限

#方法2:給www-data加入sudo權(quán)限:
---修改/etc/sudoers的文件,添加SUID用戶
---等待一會(huì)查看

#方法3:編寫個(gè)一個(gè).c
文件上傳到網(wǎng)站的test
目錄中,然后gcc編譯成update
---.c
文件的內(nèi)容是
---方法4:MSF生成elf后門
---使用http.server進(jìn)行

---靶機(jī)進(jìn)行下載
---msf監(jiān)聽
---在root的根目錄下存在newRule
---只開啟22、80、443端口

---補(bǔ)充:這里可以探測(cè)lighttpd1.4.28可能存在的漏洞(都不能進(jìn)行提權(quán))
---lighttpd 1.4.31-拒絕服務(wù)(PoC)
---Lighttpd 1.4.x-mod_userdir信息披露

##知識(shí)點(diǎn)總結(jié)
---1.Nmap掃描端口發(fā)現(xiàn)22和80端口
---2.nikto和dirb配合進(jìn)行敏感目錄發(fā)現(xiàn)和漏洞掃描
---3.Burp抓包通過(guò)OPTION發(fā)現(xiàn)允許PUT上傳
---4.curl使用-X指定put方法,進(jìn)行文件上傳,-p以POST的方式上傳數(shù)據(jù),也可以使用--upload-file參數(shù)直接上傳文件
---5.上傳的文件:一句話命令執(zhí)行(80)、weevely可以自動(dòng)尋找端口連接(443),以及系統(tǒng)漏洞掃描linpeas.sh
---6.linpeas分析:系統(tǒng)漏洞、sudo版本漏洞、用戶SUID漏洞
---7.計(jì)劃任務(wù)枚舉,在/etc/cron.day目錄下發(fā)現(xiàn)chkrootkit文件(其它用戶可執(zhí)行權(quán)限)
---8.chkrootkit產(chǎn)生的功能了解、find查找配置文件和環(huán)境變量文件上傳到Web分析
---9.查看chkrootkit0.49漏洞提示,進(jìn)行替換/tmp/update提權(quán)
---10.提權(quán)的方式:寫入反彈Shell的sh腳本,寫入c腳本命令執(zhí)行shell編譯成update,msf生成elf文件修改為update,修改/etc/passwd將www-data賦予SUID權(quán)限
---11.HTTP1.0(每次建立TCP連接,隊(duì)頭阻塞:必須前一個(gè)請(qǐng)求到達(dá)才能發(fā)生請(qǐng)求)
---12.HTTP1.1(一直保持TCP連接超時(shí)斷開;管道傳輸:同一個(gè)TCP客戶端可以發(fā)送多個(gè)請(qǐng)求不必等響應(yīng),解決了請(qǐng)求隊(duì)頭阻塞但是沒(méi)解決響應(yīng)隊(duì)頭阻塞),缺點(diǎn):無(wú)狀態(tài)(session),明文傳輸(對(duì)稱加密),不安全(不安全),HTTP需要將頭轉(zhuǎn)化為二進(jìn)制
---13.HTTP2.0(頭部壓縮消除重發(fā)頭部、二進(jìn)制幀分層以Stream發(fā)送二進(jìn)制數(shù)據(jù)、多路復(fù)用解決隊(duì)頭阻塞,服務(wù)器推送減少消息傳遞次數(shù),TCP協(xié)議導(dǎo)致隊(duì)頭阻塞)

---14.非對(duì)稱加密:C/S均勻公鑰和私鑰,C使用S的公鑰加密消息發(fā)送,S接受消息使用自己的私鑰解密,缺點(diǎn):(公鑰不保密,中間人替換客戶端公鑰、中間人截獲客戶端消息,使用S公鑰加密偽造發(fā)送給S)
---15.數(shù)字簽名與數(shù)字證書:S發(fā)送公鑰等信息先Hash然后給CA,CA添加自己私鑰生成數(shù)字證書給S,S發(fā)送數(shù)字證書給C,C通過(guò)CA公鑰解密,對(duì)比不通過(guò)CA證書的hash(優(yōu)點(diǎn):C不需要S的公鑰)
---16.SSL/TTL協(xié)議的基本過(guò)程

參考文章:
【1】Linux curl命令最全詳解:http://t.csdn.cn/ec2KD
【2】詳解HTTP協(xié)議版本(HTTP/1.0、1.1、2.0、3.0區(qū)別):http://t.csdn.cn/5hro9
【3】HTTP與HTTPS的區(qū)別,詳細(xì)介紹:http://t.csdn.cn/1mBZN
【4】深入理解http2.0協(xié)議,看這篇就夠了?。篽ttps://mp.weixin.qq.com/s/a83_NE-ww36FZsy320MQFQ
