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
-
METASPLOIT 사용법 Metasploit 은 펄스크립트를 사용하는 침투테스트도구이다 . 1. METASPLOIT 경로 metasploit 은 Kali Linux 에 기본적으로 설치되어 있다 . Kali 기준으로 경로는...
-
Bigbof.c source code Stack Frame Redhat 6.2 vuln : stack overflow vuln func : strcpy() 24byte shellcode exploit code : ...
-
fedora 원정대 core 3 hell_fire -> evil_wizard evil_wizard.c hint 를 보면 GOT overwritting이 써있다. GOT overwritting 공격을 시도하여 쉘을 얻을 수 있다. ...
-
UPX packing 개발자는 파일의 크기를 줄이거나 분석하기 어렵게 하기 위해서 packer를 사용하여 응용프로그램을 packing한다. packer에는 여러 종류가 있는데 가장 기본적인 UPX 패커의 동작원리를 보면서 packer에 대해 이해해...
-
BOF redhat 원정대 succubus -> nightmare nightmare, nightmare.c 코드를 보면 RET부분에 strcpy의 주소가 들어가야하고 strcpy함수가 끝나고 RET할 주소인 다음 4바이트를 AAAA로...

0 개의 댓글:
댓글 쓰기