エイシング プログラミング コンテスト 2020振り返り

AtCoderのコンテスト、また参加しました
今回は初手35分遅刻(子供寝かしつけにつき)という状況でしたが、
なんとかCまで解けました、やったね
ここに書いておきます

A
特に何も考えず解きました
ただ、rangeの範囲を毎回忘れてしまうのでprintで確認しました(タイムロス・・・)

L, R, w = map(int, input().split())
count = 0
for i in range(L, R+1):
  #print(i)
  if i % w == 0:
    count += 1
print(count)


B
偶数奇数の判断を%で計算しましたが、他にも組み込み関数的なものあるんだっけ?

N = int(input())
a = list(map(int, input().split()))
count = 0
for i in range(len(a)):
  #print(i)
  if (i+1) % 2 == 1:
    if a[i] % 2 == 1:
      count += 1
      
print(count)


C
最初はTLEを恐れてRANGEを短くしていたのでWA
そのあとはbreak書き忘れてTLE
今思うとちょっともったいなかった・・・

N = int(input())
ans = [0]*(N+1)
RANGE = 333
for i in range(1, RANGE):
  if i**2 <= N+1:
    for j in range(1, RANGE):
      if i**2 + j**2 + i*j <= N+1:
        for k in range(1, RANGE):
          wd = i**2 + j**2 + k**2 + i*j + j*k + k*i
          if wd < N+1:
            #print(wd)
            #print(i, j, k)
            ans[wd] += 1
          else:
            break
      else:
        break
  else:
    break
    
for i in range(1,N+1):
  print(ans[i])

以上

HackTheBox頑張る その15 ~攻略振り返り

先日に引き続き、

HackTheBoxの攻略に関して振り返ります

 

 

4台のマシンのうち、

3台はMetasploitのお世話になってしまいました

使うこと自体は悪くないはずですが、

OSCPを視野に入れているので、可能な限り単体で対応したいところ、、、

 

 

また、当たり前なのですが、

空いているポート、サービスが多ければ多いほど楽!と思いきや、

結局突ける脆弱性は一個、二個程度という事が多いです

関係ありそうな部分にさっと探りを入れられるようにならないといけない…これはきっと経験がモノを言うんだろうな

 

さらに、

ここまで攻略したものは、

exploit実行→即rootが多かった

実際はまずfootprinting、ついでユーザー権限、権限昇格に進む流れが多いはず

ちょうど攻略の流れの記事で権限昇格部分を読みきれてなかったので、

これをまとめてから臨みたいところです

 

最後に、

これも当たり前ですが、

探索から侵入部分について自身の体系立ったモノがちゃんとないです

これをしっかり確立していかないといけない…

他の人はどうやってるんでしょうかね?

何かしら参考になる記事などあれば読みたいところ

 

さて、

まだまだとっかかりフェーズなので、

習うより慣れろの精神で頑張ります

 

以上

 

HackTheBox頑張る その14 ~攻略済みマシン確認ポートと脆弱性

HackTheBoxの攻略対象4つ目が終わったので、
いったん攻略済のマシンに対して、確認したポートをまとめることにする

攻略済マシン
Legacy
Lame
Devel
Beep

今までの攻略対象で確認したポートおよびサービスは以下である
21/tcp ftp vsftpd 2.3.4 ☆Exploited
21/tcp ftp Microsoft ftpd
22/tcp ssh OpenSSH 4.3 (protocol 2.0)
22/tcp ssh OpenSSH 4.7p1 Debian 8ubuntu1 (protocol 2.0)
25/tcp smtp Postfix smtpd
80/tcp http Apache httpd 2.2.3 ☆Exploited
80/tcp http Microsoft IIS httpd 7.5
110/tcp pop3 Cyrus pop3d 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4
111/tcp rpcbind 2 (RPC #100000)
139/tcp netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP) ☆Exploited
139/tcp netbios-ssn Microsoft Windows netbios-ssn
143/tcp imap Cyrus imapd 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4
443/tcp ssl/https?
445/tcp netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
445/tcp microsoft-ds Windows XP microsoft-ds
878/tcp status 1 (RPC #100024)
993/tcp ssl/imap Cyrus imapd
995/tcp pop3 Cyrus pop3d
3306/tcp mysql MySQL (unauthorized)
3389/tcp ms-wbt-server
3632/tcp distccd distccd v1 *1
4190/tcp sieve Cyrus timsieved 2.3.7-Invoca-RPM-2.3.7-7.el5_6.4 (included w/cyrus imap)
4445/tcp upnotifyp?
4559/tcp hylafax HylaFAX 4.3.10
5038/tcp asterisk Asterisk Call Manager 1.1
10000/tcp http MiniServ 1.570 (Webmin httpd)


以上

*1:GNU) 4.2.4 (Ubuntu 4.2.4-1ubuntu4

またギターしてた

へへへ

やっぱりやりたくなっちゃう
たまには歌ってストレス発散もいいよね!
※22時

前はカポ使って原曲キーで歌ってましたが、
最近は同じキーで弾いてます
だって楽なんだもん

たまに外すのははずい
もっと声出したいけどご近所の耳もあるのでセーブ
そんな夜

良い夢を!

HackTheBox頑張る その13 ~他ポートの脆弱性確認

前回に引き続き・・・

今回、改めてnmapを実行する

kali@kali:~/SyachinekoLab/workspace/HTB/Beep$ sudo nmap -p 22,25,80,110,111,143,443,993,995,1309,3017,3306,4445,10000 --script vuln 10.10.10.7

kali@kali:~/SyachinekoLab/workspace/HTB/Beep$ sudo nmap -p 22,25,80,110,111,143,443,993,995,1309,3017,3306,4445,10000 --script vuln 10.10.10.7
[sudo] kali のパスワード:
Starting Nmap 7.80 ( https://nmap.org ) at 2020-07-05 03:48 EDT
Pre-scan script results:
| broadcast-avahi-dos: 
|   Discovered hosts:
|     224.0.0.251
|   After NULL UDP avahi packet DoS (CVE-2011-1002).
|_  Hosts are all up (not vulnerable).
Nmap scan report for 10.10.10.7
Host is up (0.42s latency).

PORT      STATE  SERVICE
22/tcp    open   ssh
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
25/tcp    open   smtp
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
| smtp-vuln-cve2010-4344: 
|_  The SMTP server is not Exim: NOT VULNERABLE
|_sslv2-drown: 
80/tcp    open   http
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
|_http-passwd: ERROR: Script execution failed (use -d to debug)
| http-slowloris-check: 
|   VULNERABLE:
|   Slowloris DOS attack
|     State: LIKELY VULNERABLE
|     IDs:  CVE:CVE-2007-6750
|       Slowloris tries to keep many connections to the target web server open and hold
|       them open as long as possible.  It accomplishes this by opening connections to
|       the target web server and sending a partial request. By doing so, it starves
|       the http server's resources causing Denial Of Service.
|       
|     Disclosure date: 2009-09-17
|     References:
|       http://ha.ckers.org/slowloris/
|_      https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-trace: TRACE is enabled
110/tcp   open   pop3
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
|_sslv2-drown: 
111/tcp   open   rpcbind
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
143/tcp   open   imap
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
|_sslv2-drown: 
443/tcp   open   https
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
|_http-csrf: Couldn't find any CSRF vulnerabilities.
|_http-dombased-xss: Couldn't find any DOM based XSS.
| http-fileupload-exploiter: 
|   
|_    Couldn't find a file-type field.
|_http-stored-xss: Couldn't find any stored XSS vulnerabilities.
|_http-trace: TRACE is enabled
|_http-vuln-cve2017-1001000: ERROR: Script execution failed (use -d to debug)
| ssl-ccs-injection: 
|   VULNERABLE:
|   SSL/TLS MITM vulnerability (CCS Injection)
|     State: VULNERABLE
|     Risk factor: High
|       OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h
|       does not properly restrict processing of ChangeCipherSpec messages,
|       which allows man-in-the-middle attackers to trigger use of a zero
|       length master key in certain OpenSSL-to-OpenSSL communications, and
|       consequently hijack sessions or obtain sensitive information, via
|       a crafted TLS handshake, aka the "CCS Injection" vulnerability.
|           
|     References:
|       http://www.cvedetails.com/cve/2014-0224
|       http://www.openssl.org/news/secadv_20140605.txt
|_      https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0224
| ssl-dh-params: 
|   VULNERABLE:
|   Diffie-Hellman Key Exchange Insufficient Group Strength
|     State: VULNERABLE
|       Transport Layer Security (TLS) services that use Diffie-Hellman groups
|       of insufficient strength, especially those using one of a few commonly
|       shared groups, may be susceptible to passive eavesdropping attacks.
|     Check results:
|       WEAK DH GROUP 1
|             Cipher Suite: TLS_DHE_RSA_WITH_DES_CBC_SHA
|             Modulus Type: Safe prime
|             Modulus Source: mod_ssl 2.2.x/1024-bit MODP group with safe prime modulus
|             Modulus Length: 1024
|             Generator Length: 8
|             Public Key Length: 1024
|     References:
|_      https://weakdh.org
| ssl-poodle: 
|   VULNERABLE:
|   SSL POODLE information leak
|     State: VULNERABLE
|     IDs:  CVE:CVE-2014-3566  BID:70574
|           The SSL protocol 3.0, as used in OpenSSL through 1.0.1i and other
|           products, uses nondeterministic CBC padding, which makes it easier
|           for man-in-the-middle attackers to obtain cleartext data via a
|           padding-oracle attack, aka the "POODLE" issue.
|     Disclosure date: 2014-10-14
|     Check results:
|       TLS_RSA_WITH_AES_128_CBC_SHA
|     References:
|       https://www.imperialviolet.org/2014/10/14/poodle.html
|       https://www.securityfocus.com/bid/70574
|       https://www.openssl.org/~bodo/ssl-poodle.pdf
|_      https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566
|_sslv2-drown: 
993/tcp   open   imaps
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
|_ssl-ccs-injection: No reply from server (TIMEOUT)
|_sslv2-drown: 
995/tcp   open   pop3s
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
|_ssl-ccs-injection: No reply from server (TIMEOUT)
|_sslv2-drown: 
1309/tcp  closed jtag-server
3017/tcp  closed event_listener
3306/tcp  open   mysql
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
|_mysql-vuln-cve2012-2122: ERROR: Script execution failed (use -d to debug)
4445/tcp  open   upnotifyp
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
10000/tcp open   snet-sensor-mgmt
|_clamav-exec: ERROR: Script execution failed (use -d to debug)
| http-vuln-cve2006-3392: 
|   VULNERABLE:
|   Webmin File Disclosure
|     State: VULNERABLE (Exploitable)
|     IDs:  CVE:CVE-2006-3392
|       Webmin before 1.290 and Usermin before 1.220 calls the simplify_path function before decoding HTML.
|       This allows arbitrary files to be read, without requiring authentication, using "..%01" sequences
|       to bypass the removal of "../" directory traversal sequences.
|       
|     Disclosure date: 2006-06-29
|     References:
|       http://www.exploit-db.com/exploits/1997/
|       http://www.rapid7.com/db/modules/auxiliary/admin/webmin/file_disclosure
|_      https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2006-3392
| ssl-ccs-injection: 
|   VULNERABLE:
|   SSL/TLS MITM vulnerability (CCS Injection)
|     State: VULNERABLE
|     Risk factor: High
|       OpenSSL before 0.9.8za, 1.0.0 before 1.0.0m, and 1.0.1 before 1.0.1h
|       does not properly restrict processing of ChangeCipherSpec messages,
|       which allows man-in-the-middle attackers to trigger use of a zero
|       length master key in certain OpenSSL-to-OpenSSL communications, and
|       consequently hijack sessions or obtain sensitive information, via
|       a crafted TLS handshake, aka the "CCS Injection" vulnerability.
|           
|     References:
|       http://www.cvedetails.com/cve/2014-0224
|       http://www.openssl.org/news/secadv_20140605.txt
|_      https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-0224
| ssl-poodle: 
|   VULNERABLE:
|   SSL POODLE information leak
|     State: VULNERABLE
|     IDs:  CVE:CVE-2014-3566  BID:70574
|           The SSL protocol 3.0, as used in OpenSSL through 1.0.1i and other
|           products, uses nondeterministic CBC padding, which makes it easier
|           for man-in-the-middle attackers to obtain cleartext data via a
|           padding-oracle attack, aka the "POODLE" issue.
|     Disclosure date: 2014-10-14
|     Check results:
|       TLS_RSA_WITH_AES_128_CBC_SHA
|     References:
|       https://www.imperialviolet.org/2014/10/14/poodle.html
|       https://www.securityfocus.com/bid/70574
|       https://www.openssl.org/~bodo/ssl-poodle.pdf
|_      https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2014-3566
|_sslv2-drown: ERROR: Script execution failed (use -d to debug)

Nmap done: 1 IP address (1 host up) scanned in 1066.87 seconds

ただ、ちょっと時間をかけすぎてしまっていたので、
そのままWalkthroughをみてそのまま攻略を進めてしまった
確認したところ、ちょっとたどり着ける内容でなかったので、今回は勉強かな・・・

形はともあれ4台攻略したので、
戦略チックな記事を書きたい

以上

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)

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

AtCoder ABC 173に参加しました

表題の通り

 

最近、スタートの21時にはなんとか妻の理解を得てスタートできるように・・・

といっても、子守に戻らなきゃならないのでじっくり解けずにそのまま解散、、、、となることもしばしば・・・

 

ということで、今回でしたが、

出だしは好調だったものの、C問題が解けず

いわゆるbit全探索だったはずなのですが、きちんと例題を理解して解いてなかったようで、ダメでした

これについてはまた時間を作って解きます!

ということで、A、Bについて

 

A

きれいさ無視して解いたんですが、おかげで美しくないコードができました・・・・

>|python|

N = int(input())
while (N > 1000):
N -= 1000
print(1000-N)

||<

 

B

これもめっちゃごり押しでした

>|python|

AC = 0
WA = 0
LTE = 0
RE = 0

N = int(input())
for k in range(N):
i = input()
if i == "AC":
AC += 1
elif i == "WA":
WA += 1
elif i == "TLE":
LTE += 1
elif i == "RE":
RE += 1

print("AC x",AC)
print("WA x",WA)
print("TLE x",LTE)
print("RE x",RE)

||<

 

ほんとにここまではいいペースだったんだけどなぁ・・・

 

以上