实验主机:Os-hackerNos靶机一台/Kali linux攻击机一台

实验网络:桥接网络

实验目标:获取靶机的Root权限

难易程度:简单

前期工作:

1:下载Virtualbox虚拟化软件(也可以使用Vmware导入靶机的OVA文件)
  下载地址:https://www.virtualbox.org/wiki/Downloads
  2:下载目标靶机并导入Virtualbox
  下载地址:https://www.vulnhub.com/entry/hacknos-os-hacknos,401/
  将Os-hackNos-1.ova下载下来之后打开Virtualbox按下快捷键Ctrl+i将其导入

导入之后需要修改几个地方:

3:安装并配置好自己的Kali linux主机,这里我用的版本是最新版201904

Target:信息收集

思路:既然是要对目标主机进行入侵,就要找出目标主机的真实性IP地址的所开放的端口,
  因为服务器或者个人主机对外提供服务都是通过端口来进行数据之间的通行;
  注意:一个服务可以占用多个端口,但是一个端口只能被一个服务占用
  首先确定我们是谁?

扫描我们的目标在哪里???

给几个有意思的截图吧…猜下这些都是什么设备,嘻嘻

看到这,我只想说:放下苹果手机我们还能做朋友

想必,已经猜出来那个是我们的目标了吧!!!

targetIP:172.16.1.16

那么接下来我们需要确定目标主机开起了什么服务???

看到这里是不是想杀人?别慌作为一个专业黑客要冷静
  22端口用于SSH服务,前身是RSH,之后因为传输的数据被加密所以改成了SSH,
  针对于这个端口的最好办法就是暴力破解,但是太费时间不是首要的攻击方式,后面拿不下的时候可以先用暴力破解
  80端口用于HTTP服务,还有一个安全的HTTPS,接下来我们就要转到WEB渗透才是目前最好的选择
  WEB信息收集:
  首先要去目标网站浏览一番,发现这好像是个新建立的站点,但也不确定,毕竟要知道椰树的能力是强大的,但这里我们用dirb这款kali中的工具

这个才是我们今天的主角,整个服务器的安全短板就在于此

我们先从github找下关于这个drupal cms的POC和EXP

下载地址:https://github.com/dreadlocked/Drupalgeddon2

接下来我们就需要下载这个脚本并运行拿到网站的WEBshell

Target:获取目标网站的WEBShell

此时,我们已经拿到一个shell,然而我们的权限太小,需要提权

Target:权限维持

拿到shell第一步:权限维持,我们需要kali中自带网站管理工具来做

我们现在本地做个测试,看看能否连接上

这样我们的权限维持就已经做好了,接下来才是重头戏

Target:提权

Base64加密—>解密:

解密网站:

https://base64.supfree.net/   //base64加密解密网站

https://www.dcode.fr/brainfuck-language  //脑残密码学加密解密网站

如果不出意外的话就是系统用户账号密码了

没办法在shell中,看来必须在msfshell终端中才能切换用户身份了

Root用户的家目录没法进去,但是存储用户密码文件却能被访问

这里我们不能直接通过webshell修改,只能想办法修改掉passwd文件,
  我们先制作一个具有root权限的用户,即为uid和gid都为0,
  并且按照passwd格式添加到文件中,使其保存,我们可以通过小马的file_download功能下载passwd文件,
  并在本地修改回传到靶机上,(o゜▽゜)o☆[BINGO!]

此刻我们只需要一个与其交互的shell即可大功告成!!!

糟糕,忘了设置payload,,,那就随机应变吧

Target:权限维持

以为到这里就完事了,想多了…略略略

接下来还是权限维持,只不过我们要维持Root用户的权限

首先我们分别在本地主机和目标主机上执行ssh-keygen命令

在msfshell中执行:

接下来最激动人心的时刻到啦:

完结撒花,✿✿ヽ(°▽°)ノ✿

作者:黑壳攻击小组(xhong)

欢迎留言评论,如有不足恳请指正!

Os-HackNos-Report的更多相关文章

  1. 最新版ffmpeg源码分析

    最新版ffmpeg源码分析一:框架 (ffmpeg v0.9) 框架 最新版的ffmpeg中发现了一个新的东西:avconv,而且ffmpeg.c与avconv.c一个模样,一研究才发现是libav下 ...

  2. python使用SMTP发送邮件

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式.SMTP协议属于TCP/IP协议簇,它 ...

  3. python+selenium自动化软件测试(第3章):unittest

    3.1 unittest简介 前言(python基础比较弱的,建议大家多花点时间把基础语法学好,这里有套视频,可以照着练习下:http://pan.baidu.com/s/1i44jZdb 密码:92 ...

  4. selenium实现自动下载文件

    #coding:utf-8'''说明:导出'''from selenium import webdriverfrom public.highlightElement import highlightf ...

  5. 基于python的接口自动化测试+ddt数据驱动

    在测试接口时,一个接口会先写好测试用例,这个用例主要针对功能,传入参时考虑到各种场景,正常的,异常的,如:参数缺省,参数传一个六位数字写用例时考虑边界情况等. 一个接口设计用例时有可能会十几条到几十条 ...

  6. python——在文件存放路径下自动创建文件夹!

    1.a.py文件存放的路径下为(D:\Auto\eclipse\workspace\Testhtml\Test) 2.通过os.getcwd()获取的路径为:D:\Auto\eclipse\works ...

  7. python自动化-unittest批量执行用例(discover)

    前言 我们在写用例的时候,单个脚本的用例好执行,那么多个脚本的时候,如何批量执行呢?这时候就需要用到unittet里面的discover方法来加载用例了. 加载用例后,用unittest里面的Text ...

  8. python接口自动化测试(八)-unittest-生成测试报告

    用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: ...

  9. python接口自动化测试(七)unittest 生成测试报告

    用例的管理问题解决了后,接下来要考虑的就是报告我问题了,这里生成测试报告主要用到 HTMLTestRunner.py 这个模块,下面简单介绍一下如何使用: 一.下载HTMLTestRunner下载: ...

  10. 自动化测试-18.selenium之bugFree代码注释

    #encoding=utf-8 import xlrd,time,os from xlutils.copy import copy from selenium import webdriver def ...

随机推荐

  1. HDU1847 Good Luck In CET4 Everybody

    大学英语四级考试就要来临了,你是不是在紧张的复习?也许紧张得连短学期的ACM都没工夫练习了,反正我知道的Kiki和Cici都是如此.当然,作为在考场浸润了十几载的当代大学生,Kiki和Cici更懂得考 ...

  2. ThreadLocal的进化——TransmittableThreadLocal

    上一篇文章中,我们谈到了 InheritableThreadLocal,它解决了 ThreadLocal 针对父子线程无法共享上下文的问题.但我们可能听说过阿里的开源产品TransmittableTh ...

  3. python学习笔记-生成随机数

    更多大数据分析.建模等内容请关注公众号<bigdatamodeling> 在实现算法时经常会用到随机数,有时会忘记各种随机数的生成方法,这里对Python中的随机数生成方法进行汇总,以供以 ...

  4. 【Cute-Webpack】Webpack4 入门手册(共 18 章)

    介绍 1. 背景 最近和部门老大,一起在研究团队[EFT - 前端新手村]的建设,目的在于:帮助新人快速了解和融入公司团队,帮助零基础新人学习和入门前端开发并且达到公司业务开发水平. 本文也是属于[E ...

  5. 【Selenium】selenium.common.exceptions.ElementClickInterceptedException

    出现问题: 使用代码点击提交按钮: driver.find_element(By.CSS_SELECTOR,"#submit").click() 出现如下异常: selenium. ...

  6. ES6,箭头函数 (=>)注意点

    函数体内的this对象,就是定义时所在的对象,而不是使用时所在的对象. 不可以当作构造函数,也就是说,不可以使用new命令,否则会抛出一个错误. 不可以使用arguments对象,该对象在函数体内不存 ...

  7. Java_输入整数求阶乘

    import java.util.Scanner;public class Work4{ public static void main(String[] args){ // 创建Scanner对象 ...

  8. JS基础-正则

    正则表达式 创建正则表达式 使用一个正则表达式字面量 const regex = /^[a-zA-Z]+[0-9]*\W?_$/gi; 调用RegExp对象的构造函数 const regex = ne ...

  9. Linux 怎么清理缓存

    linux清理缓存的命令   查看缓存的命令 free -m 清理缓存的命令  echo 1 > /proc/sys/vm/drop_caches echo 2 > /proc/sys/v ...

  10. 《Java练习题》习题集一

    编程合集: https://www.cnblogs.com/jssj/p/12002760.html Java总结:https://www.cnblogs.com/jssj/p/11146205.ht ...