BOF redhat 원정대 xavius -> death_night
death_night, death_night.c
코드를 보면 remote BOF라는 것을 알 수 있다. 소켓통신을 하기 위해서 소켓구조체들에 값을 넣어주고 bind, listen, accept를 거치는 기초적인 서버 코드이다.
클라이언트와 서버의 tcp연결이 맺어지면 fork로 자신과 같은 프로세스를 낳고 문자열을 보내고 recv에서 클라이언트의 입력을 대기하게 된다.
recv과정에서 40사이즈의 버퍼에 256을 받아오기 때문에 이를 이용해서 RET를 이동하게 할 수 있다.
6666포트로 클라이언트의 연결을 리슨하고 있는 것을 확인 할 수 있다.
페이로드는
[놉][RET][놉+쉘코드]
로 구성 하고 스택의 주소를 알 수 없기 때문에 0xbfff0000 ~ 0xbfffffff까지 주소를 브루트포싱해서 쉘을 얻을 것이고 쉘코드는 리버스쉘을 이용하여 포크된 자식프로세스가 내 컴퓨터에 접속하여 쉘을 넘기는 방법으로 공격을 할 것이다.
*쉘코드는 msfpayload를 사용하여 만들었다.
놉 개수와 메모리 증가 값을 적절히 수정하다 보면 공격에 성공하여 쉘을 얻을수 있다.
Categories
- programming (17)
- security (46)
- study (22)
- system (35)
Recent 7 Days Popular Posts
-
프로그램은 실행하면서 많은 함수를 호출한다. 함수가 호출되고 호출받은 함수가 실행되려면 레지스터와 스택을 사용해야 한다. 버퍼오버플로우 공격을 공부하면서 호출된 함수가 어떻게 esp (스택을 관리하는 레지스터)를 백업하는지 어떻게 스택을 독립적으로 ...
-
Bigbof.c source code Stack Frame Redhat 6.2 vuln : stack overflow vuln func : strcpy() 24byte shellcode exploit code : ...
-
METASPLOIT 사용법 Metasploit 은 펄스크립트를 사용하는 침투테스트도구이다 . 1. METASPLOIT 경로 metasploit 은 Kali Linux 에 기본적으로 설치되어 있다 . Kali 기준으로 경로는...
-
c로 작성된 python module 만들기 C로 작성된 함수를 파이썬에서 import 해서 사용하기 위해서는 C로 작성된 프로그램 코드를 파이썬이 import할 수 있는 라이브러리 파일로 변환해 주어야 한다. (ubuntu 환경에서 할거임) ...
-
VIM CHEAT SHEET Cursor movement h - move cursor left j - move cursor down k - move cursor up l - move cursor right w - jump forwar...

0 개의 댓글:
댓글 쓰기