HackTheBox頑張る その12 ~Beep攻略中 elastixとPBX

現在、HTBBeepというマシンを攻略中だ

nmapした結果、以下のサービスが動いていることがわかった

PORT      STATE    SERVICE        VERSION
22/tcp    open     ssh            OpenSSH 4.3 (protocol 2.0)
| ssh-hostkey: 
|   1024 ad:ee:5a:bb:69:37:fb:27:af:b8:30:72:a0:f9:6f:53 (DSA)
|_  2048 bc:c6:73:59:13:a1:8a:4b:55:07:50:f6:65:1d:6d:0d (RSA)
25/tcp    open     smtp           Postfix smtpd
|_smtp-commands: beep.localdomain, PIPELINING, SIZE 10240000, VRFY, ETRN, ENHANCEDSTATUSCODES, 8BITMIME, DSN, 
80/tcp    open     http           Apache httpd 2.2.3
|_http-server-header: Apache/2.2.3 (CentOS)
|_http-title: Did not follow redirect to https://10.10.10.7/
|_https-redirect: ERROR: Script execution failed (use -d to debug)
110/tcp   open     pop3           Cyrus pop3d 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4
|_pop3-capabilities: PIPELINING USER STLS EXPIRE(NEVER) UIDL LOGIN-DELAY(0) AUTH-RESP-CODE RESP-CODES APOP IMPLEMENTATION(Cyrus POP3 server v2) TOP
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
|_imap-capabilities: MAILBOX-REFERRALS Completed RIGHTS=kxte RENAME BINARY ATOMIC STARTTLS ACL UIDPLUS X-NETSCAPE MULTIAPPEND LITERAL+ THREAD=ORDEREDSUBJECT CATENATE LIST-SUBSCRIBED ID QUOTA LISTEXT CONDSTORE IDLE ANNOTATEMORE NAMESPACE THREAD=REFERENCES SORT=MODSEQ NO SORT CHILDREN UNSELECT IMAP4 URLAUTHA0001 OK IMAP4rev1
443/tcp   open     ssl/https?
|_ssl-date: 2020-06-27T07:38:07+00:00; -5s from scanner time.
993/tcp   open     ssl/imap       Cyrus imapd
|_imap-capabilities: CAPABILITY
995/tcp   open     pop3           Cyrus pop3d
1309/tcp  filtered jtag-server
3017/tcp  filtered event_listener
3306/tcp  open     mysql          MySQL (unauthorized)
4445/tcp  open     upnotifyp?
10000/tcp open     http           MiniServ 1.570 (Webmin httpd)
|_http-server-header: MiniServ/1.570
|_http-title: Site doesn't have a title (text/html; Charset=iso-8859-1).
19801/tcp filtered unknown
Service Info: Hosts:  beep.localdomain, 127.0.0.1, example.com


前の記事にあったやり方に従っていくと、Webサービスがあればそれを確認すべし、とある
syachineko.hatenablog.com

web上では、elastixというサービスのログイン画面があった
検索すると、

Elastixは、IP PBX、電子メール、IM、FAX、およびコラボレーション機能を統合する統合コミュニケーションサーバーソフトウェアです。 Webインターフェイスがあり、予測ダイヤル機能を備えたコールセンターソフトウェアなどの機能が含まれています。

とある

ははぁ、なるほどな
そのままelastix vulnで検索すると。。。
jvndb.jvn.jp

やはり、いくつか脆弱性はあるようだ
ということで、Kali側でsearchする

kali@kali:/usr/share$ searchsploit elastix
------------------------------------------------------------------------------------------------------------------ ----------------------------------------
 Exploit Title                                                                                                    |  Path
                                                                                                                  | (/usr/share/exploitdb/)
------------------------------------------------------------------------------------------------------------------ ----------------------------------------
Elastix - 'page' Cross-Site Scripting                                                                             | exploits/php/webapps/38078.py
Elastix - Multiple Cross-Site Scripting Vulnerabilities                                                           | exploits/php/webapps/38544.txt
Elastix 2.0.2 - Multiple Cross-Site Scripting Vulnerabilities                                                     | exploits/php/webapps/34942.txt
Elastix 2.2.0 - 'graph.php' Local File Inclusion                                                                  | exploits/php/webapps/37637.pl
Elastix 2.x - Blind SQL Injection                                                                                 | exploits/php/webapps/36305.txt
Elastix < 2.5 - PHP Code Injection                                                                                | exploits/php/webapps/38091.php
FreePBX 2.10.0 / Elastix 2.2.0 - Remote Code Execution                                                            | exploits/php/webapps/18650.py
------------------------------------------------------------------------------------------------------------------ ----------------------------------------
Shellcodes: No Result

今回のElastixのバージョンがわからないが、この一番したとか使えたらうれしいなぁ


ということで、コピーして使ってみる
RHOSTSとLHOSTS、LPORTを変更して・・・・

kali@kali:~/SyachinekoLab/workspace/HTB/Beep$ python 18650_.py 
Traceback (most recent call last):
  File "18650_.py", line 27, in <module>
    urllib.urlopen(url)
  File "/usr/lib/python2.7/urllib.py", line 87, in urlopen
    return opener.open(url)
  File "/usr/lib/python2.7/urllib.py", line 215, in open
    return getattr(self, name)(url)
  File "/usr/lib/python2.7/urllib.py", line 445, in open_https
    h.endheaders(data)
  File "/usr/lib/python2.7/httplib.py", line 1078, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python2.7/httplib.py", line 894, in _send_output
    self.send(msg)
  File "/usr/lib/python2.7/httplib.py", line 856, in send
    self.connect()
  File "/usr/lib/python2.7/httplib.py", line 1303, in connect
    server_hostname=server_hostname)
  File "/usr/lib/python2.7/ssl.py", line 369, in wrap_socket
    _context=self)
  File "/usr/lib/python2.7/ssl.py", line 599, in __init__
    self.do_handshake()
  File "/usr/lib/python2.7/ssl.py", line 828, in do_handshake
    self._sslobj.do_handshake()
IOError: [Errno socket error] [SSL: UNSUPPORTED_PROTOCOL] unsupported protocol (_ssl.c:727)


ありゃ、動かない

とあるモジュールでエラー吐いてる・・・よくわからない

検索したらありました
github.com

見てみると、SSLをサポートしていないのでは?と
最近のKaliなどはサポートしている暗号方式の下限を決めていて、引っかかっているらしい

kali@kali:~/SyachinekoLab/workspace/HTB/Beep$ cat /etc/ssl/openssl.cnf
..
.
..
[system_default_sect]
MinProtocol = TLSv1.2
CipherString = DEFAULT@SECLEVEL=2

確かに、指摘通りである
ということで、これを以下に変更する

MinProtocol = None
CipherString = DEFAULT

で、もう一回試す!

kali@kali:~/SyachinekoLab/workspace/HTB/Beep$ python 18650_.py 
Traceback (most recent call last):
  File "18650_.py", line 27, in <module>
    urllib.urlopen(url)
  File "/usr/lib/python2.7/urllib.py", line 87, in urlopen
    return opener.open(url)
  File "/usr/lib/python2.7/urllib.py", line 215, in open
    return getattr(self, name)(url)
  File "/usr/lib/python2.7/urllib.py", line 445, in open_https
    h.endheaders(data)
  File "/usr/lib/python2.7/httplib.py", line 1078, in endheaders
    self._send_output(message_body)
  File "/usr/lib/python2.7/httplib.py", line 894, in _send_output
    self.send(msg)
  File "/usr/lib/python2.7/httplib.py", line 856, in send
    self.connect()
  File "/usr/lib/python2.7/httplib.py", line 1303, in connect
    server_hostname=server_hostname)
  File "/usr/lib/python2.7/ssl.py", line 369, in wrap_socket
    _context=self)
  File "/usr/lib/python2.7/ssl.py", line 599, in __init__
    self.do_handshake()
  File "/usr/lib/python2.7/ssl.py", line 828, in do_handshake
    self._sslobj.do_handshake()
IOError: [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:727)

またエラーか。。。
ちょっと見当がつかないので、この線はあきらめるしかない・・・
うーーん、弱った
次回につづく