端口碰撞:Hackable3靶机

admin 2024年3月17日02:10:51评论7 views字数 2722阅读9分4秒阅读模式

这个靶机有个知识点:端口碰撞,是我以前不曾知晓的,特推荐。

当整个走完回头看,这个靶机设计得非常精彩,收获很大。

配置靶机:

在配置这个靶机的NAT网络、绕过Ubuntu21登录后,发现vi不正常,好在nano可用;有ens33接口但未激活,如下命令激活:

dhclient ens33

ifconfig -a ens33

==========

最后还是按以下修改成eth0,

端口碰撞:Hackable3靶机

====================================

工作开展:

arp-scan 发现靶机ip为192.168.137.132;

1、nmap扫描,发现ssh的22端口有filtered,如下:

端口碰撞:Hackable3靶机

2、发现有80端口,遂扫描目录,

端口碰撞:Hackable3靶机

3、发现有上图红框中列出的目录,分别查看,

端口碰撞:Hackable3靶机

wordlist.txt是个字典文件;端口碰撞:Hackable3靶机

1.txt中为base64编码,解码出来为10000,可能是端口号;

端口碰撞:Hackable3靶机

2.txt中一串,问了GPT,如下回答:

端口碰撞:Hackable3靶机

是Brainfuck编码,https://www.splitbrain.org/services/ook解下,是:4444,还是端口;

这里用GPT解码时出现了错误,但它发现了问题所在,挺好玩的,如下:

端口碰撞:Hackable3靶机

端口碰撞:Hackable3靶机

全部下载下来。

访问下80端口,原来是一张open字样的页面,看下源码,有登录后台的url,同时还有个注释掉的提示:激活端口碰撞以及一个用户名jubiscleudo,还有支持.jpg文件的字样

端口碰撞:Hackable3靶机

"Please, jubiscleudo, don't forget to activate the port knocking when exiting your section, and tell the boss not to forget to approve the .jpg file - [email protected]

4、扫描.jpg文件

端口碰撞:Hackable3靶机

发现有个3.jpg文件,当下来,隐写解码,是个端口号,

端口碰撞:Hackable3靶机

这样就有3个端口号了:10000,4444,65535

5、打开config.php、login.php,

端口碰撞:Hackable3靶机

数据库的内容;

端口碰撞:Hackable3靶机

用户名和密码;用户名有了:jubiscleudo,密码还不知道;

6、端口碰撞打开ssh的22端口

端口碰撞是一种攻击技术,它利用了服务器上同时侦听多个服务的多个端口。攻击者可以向这些端口发送精心设计的请求,导致服务器崩溃或泄露敏感信息。从外部打开防火墙上的端口的方法。一旦收到正确的连接请求序列,防火墙规则就会被动态修改,以允许发送连接请求的主机通过特定端口进行连接。

端口碰撞:Hackable3靶机

这里用到一个攻击命令:knock,

端口碰撞:Hackable3靶机

这里GPT给出了详细的用法。

在《鸟哥私房菜》中有关于knockd的描述(https://linux.vbird.org/linux_server/others/knockd.php),如下图:

端口碰撞:Hackable3靶机

在这里碰撞时有3个端口 10000,4444,65535,必须和靶机中的knockd.conf里配置的序列保持一致,端口碰撞才有效果,如下图,

端口碰撞:Hackable3靶机

在这过程中发现了几个问题,前期一直无法knock成功,后来修改了如下的几个参数才可以的,

端口碰撞:Hackable3靶机

这里原来设置超时为5秒,后来改大了些,才ok。

7、破解ssh密码

hydra -l jubiscleudo -P wordlist.txt 192.168.137.132 ssh

端口碰撞:Hackable3靶机

密码为:onlymy

8、登录ssh

端口碰撞:Hackable3靶机

端口碰撞:Hackable3靶机

端口碰撞:Hackable3靶机

用户名为hackable_3,密码为TrOLLED_3;切换下用户,

9、切换用户到hackable_3

端口碰撞:Hackable3靶机

端口碰撞:Hackable3靶机

端口碰撞:Hackable3靶机

10、lxd提权

当前用户具有lxd权限时(通过id命令可以查看),可以通过创建任意镜像,并将当前系统根目录挂载到镜像mnt目录下,然后通过chroot命令即可获取当前系统的root权限。

端口碰撞:Hackable3靶机

a)首先,在攻击机中下载好镜像,生成tar包,

git clone  https://github.com/saghul/lxd-alpine-builder.gitcd lxd-alpine-builder ./build-alpine python3 -m http.server 9000

端口碰撞:Hackable3靶机

端口碰撞:Hackable3靶机

端口碰撞:Hackable3靶机

b)在靶机中执行,上传到靶机中

端口碰撞:Hackable3靶机

导入image,加载到lxd中

端口碰撞:Hackable3靶机

初始化,一路回车,

端口碰撞:Hackable3靶机

通过以下四步命令的执行,获得root权限

端口碰撞:Hackable3靶机

含义:

(1)lxc init cec6171bc7ab ignite -c security.privileged=true 

(这里lxc init后面跟的是image的Fingerprint)

命令的详细解释如下:

  • lxc init:这会初始化一个新的容器。

  • cec6171bc7ab:这是要初始化新容器的现有容器的ID。

  • ignite:这是你给新容器的名称。

  • -c security.privileged=true:这个参数将容器设置为特权模式。


(2)lxc config device add ignite mydevice disk source=/ path=/mnt/root recursive=true

这条命令用于向名为 "ignite" 的容器添加一个名为 "mydevice" 的设备,该设备是一个磁盘设备。具体的参数设置如下:

  • disk:指定要添加的设备类型为磁盘。

  • source=/:指定设备的源路径为根目录。这表示将根目录挂载到容器中的设备。

  • path=/mnt/root:指定设备在容器中的挂载路径为 "/mnt/root"。换句话说,根目录将被挂载到容器的 "/mnt/root" 目录下。

  • recursive=true:指定挂载操作应该递归进行,以便包含源路径下的所有内容。

这条命令的完整含义是将宿主机的根目录挂载到名为 "ignite" 的容器中的 "/mnt/root" 目录下,并且这个挂载操作是递归的,会包含根目录下的所有内容。


 (3)lxc start ignite

这个命令用于启动名为 "ignite" 的容器。当容器处于停止状态时,使用此命令可以将其启动并开始运行容器内的服务和应用程序。

 (4)lxc exec ignite /bin/sh

这个命令用于在名为 "ignite" 的容器中执行 "/bin/sh" 命令,从而启动一个交互式的 shell 会话。在这个 shell 会话中,你可以执行各种命令来与容器进行交互,例如查看文件、安装软件、配置环境等。


11、flag

端口碰撞:Hackable3靶机

12、有个knockrestart.sh

端口碰撞:Hackable3靶机


总结:虽然流程走完了,但有很多知识点值得回味;

现将流程归纳如下:

22端口被filter--->发现用户名--->三个文件分别解码出3个端口号--->knock碰撞--->打开ssh的22端口--->ssh登录--->备份文件中发现数据库登录用户--->切换到此用户--->属于lxd用户组--->上传挂载包到靶机--->执行提权。


原文始发于微信公众号(MicroPest):端口碰撞:Hackable3靶机

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年3月17日02:10:51
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   端口碰撞:Hackable3靶机https://cn-sec.com/archives/2580999.html

发表评论

匿名网友 填写信息