LOB - xavius -> death_night (End)

해킹대회 문제 풀이 연습장소

Moderator: amesianx

Post Reply
KSH
Posts: 24
Joined: Thu Jul 21, 2016 5:39 pm

LOB - xavius -> death_night (End)

Post by KSH » Sun Aug 14, 2016 3:23 pm

xavius를 잡아봅시다.
1.홈 디렉터리
1.png
1.png (4.73 KiB) Viewed 514 times
2.소스코드
소스_1.png
소스_1.png (15.63 KiB) Viewed 514 times
소스_2.png
소스_2.png (16.6 KiB) Viewed 514 times
길어요.. 이번소스는 게다가 소켓프로그래밍으로 되어있어요

이 프로그램은 40byte buffer선언 뒤 server와 client의 fd를 선언합니다.
sockaddr_in(네트워크소켓)구조체의 server_addr과 client_addr을 선언합니다.
socket함수로 네트워크 도메인 소켓을 스트림형으로 만들어 server_fd에 저장합니다.
server_addr구조체의 sin_family를 네트워크 도메인 소켓으로, 포트를 6666으로 하고, 어떤 IP든 매칭되도록 합니다.

그리고 bind로 server_fd소켓을 등록해준 뒤, listen으로 활성화 시킨후 10개의 호스트까지 허용합니다.
그 이후 client_fd가 연결할 수 있도록 accept함수로 수용해줍니다.

send함수로 클라이언트에 문자열을 보내고 클라이언트에게서 문자열을 받아 buffer에 256byte만큼 복사합니다.
클라이언트소켓을 종료하고 서버소켓을 닫습니다. recv함수에서 bof취약점이 생깁니다. 이 문제는 remote bof로 공략해야 합니다.

페이로드는 |buffer + SFP| + | RET | + | NOP | + | ShellCode |가 됩니다.
remote 문제인지라 리턴주소를 정확히 알 수 없으므로 RET부분의 하위 2byte는 brute force로 대입하기로 하였습니다.

3.파이썬
exploit.png
exploit.png (466.43 KiB) Viewed 514 times
여기서 shell은 bind shell입니다. 로컬과 리모트에서 사용해야하는 쉘코드가 다르기 때문에
쉘코드는 https://www.exploit-db.com/exploits/25497/ 를 참고했습니다.
<bind shell>
bind_shell.png
bind_shell.png (14.59 KiB) Viewed 514 times
IPADDR와 PORT부분에는 공격자의 IP주소 네자리와 포트번호를16진수로 표현한 뒤 빅 엔디언으로 입력하면 됩니다.

IP ex) 192.168.10.1 -> "\xc0\xa8\x0a\x01"
PORT ex) 7777 -> "\x1e\x61"

exploit.py는 쉘코드를 선언해주고
0xff 부터 0x00까지 반복하는 for문을 2개돌립니다.
그리고 페이로드를 구성하여 brute force를 수행합니다.
클라이언트 소켓을 AF_INET(네트워크 소켓), SOCK_STREAM(TCP) 만듭니다.
LOB의 ip, PORT에 연결합니다. 그리고 send로 payload를 보냅니다. LOB의 입장에서는 recv(payload)가 됩니다.
그러면 buffer에 payload가 전송되면서 bof가 발생하면서 쉘을 얻게됩니다.

4.공격
attack.png
attack.png (244.85 KiB) Viewed 514 times
death_knight의 쉘과 패스워드를 얻었습니다.

이후 death_knight의 홈 디렉터리를 확인했습니다.
home.png
home.png (44.49 KiB) Viewed 514 times
drop_item.txt를 살펴보면
Item.png
Item.png (378.85 KiB) Viewed 514 times
LOB의 마지막을 보았습니다. 이후에도 열심히 하겠습니다.
이상으로 LOB를 마칩니다.

Post Reply

Who is online

Users browsing this forum: No registered users and 1 guest