메타스플로잇에서는 총 3개의 검색 엔진 (구글,빙,야후)을 이용하여 대상 도메인에 대한 이메일 계정 목록을 수집할 수 있다.
LoB - Redhat WriteUp
·
Lord_of_BoF_Redhat
PostgresSQL Server & Metasploit 연동 - 2 ( nmap )
·
Kali 2.0 & Metasploit/ETC
기존 포스팅에서 db 서버와 메타스플로잇을 연동시켰으니 이제 자동으로 스캔 결과를 저장하여 필요할 때 마다 볼 수 있게 해야 한다. 일반적인 nmap 사용 방법과는 2가지 다른 점이 있다. 1. 명령어가 nmap 이 아니라 db_nmap 이다. 2. 명령어를 입력하는 쉘이 일반적인 배시 쉘이 아니라 msf 콘솔 환경이다. 해당 스캐닝 결과는 자동으로 db에 저장되기 때문에 "db_services" 명령어를 이용하여 볼 수 있다. * 칼리 리눅스 버전이 높아지면서 명령어가 "services"로 변경되었다. 참고로 "services" 명령은 정말 스캔 결과 (ip, port, protocol, service name, state, service info)만 보여준다. 따라서 대상 서버에 관한 정보 (맥주소,..
PostgresSQL Server & Metasploit 연동 - 1
·
Kali 2.0 & Metasploit/ETC
칼리 2.0에는 기본적으로 postgreSQL 서버가 내재되어 있다. 보통 메타스플로잇과 연동하기 위한 용도로 사용하는데 예를 들어 msfconsole 에서 공격 대상 서버로 스캐닝 등을 수행할 경우 해당 결과를 자동으로 postgreSQL 서버에 저장시키는 용도이다. 이는 나중에 필요할 때 db 내용만 조회하면 되기 때문에 많은 시간을 줄여준다. 부팅 후 자동 시작이 설정되어 있지 않으면 기본적으로 "inactive" 상태이기 때문에 해당 서비스를 우선 실행해야 한다. 칼리 1.0 에서는 "service metasploit start"를 입력했지만, 2.0 이후 버전부터는 "msfdb init" 명령어를 입력해야 한다. 참고로 이미 해당 명령어를 실행한 적이 있으면 이미 설정되어 있기 때문에 초기화 과..
PLT & GOT
·
Linux
PLT ( Procedure Linkage Table ) 실제 호출 코드를 담고 있는 테이블로서, 해당 내용을 참조하여 "_dl_runtime_resolve"가 수행되고, 실제 시스템 라이브러리 호출이 이루어지게 된다. => 쉽게 말하면 외부 라이브러리를 "연결"해주는 함수 => 실제 바이너리에서도 사용하고자 하는 함수/라이브러리 주소 대신 PLT를 호출 GOT ( Global Offset Table ) PLT가 참조하는 테이블로써 프로시져들의 주소가 있다. PLT가 어떤 외부 프로시져를 호출할 때 이 GOT를 참조해서 해당 주소로 분기된다. => PLT 함수들은 GOT 라는 테이블의 주소로 분기한다. => GOT는 외부 라이브러리의 함수/변수의 주소를 저장한다. ex ) printf 함수 호출이 처음인..
All About Return to Library/LibC (RTL)
·
Buffer OverFlow
내용이 다소 길어 문서로 작성하였습니다.
Frame Pointer Overflow ( 프레임 포인터 오버플로우, FPO )
·
Buffer OverFlow
지난 번에 FakeEBP에 대한 글을 작성하였는데 비슷한 원리를 가지는 공격 기법으로 FPO가 있다. 사용 환경에는 다음과 같은 조건이 따른다. 1. SFP 영역에서 1 바이트 오버플로우가 반드시 일어나야 함 2. 메인 함수 이외 서브 함수가 필요함 이번에도 스택 구조를 대충 그려보면서 설명할 것이다. 일단 바이너리에서 버퍼를 40만큼 선언했다면 공격자의 페이로드는 총 41 바이트가 된다. FakeEBP와 달리 FPO는 리턴 주소는 변조하지 않고 SFP 역시 1바이트만 오버플로우 시키기 때문이다. 어쨋든 페이로드를 올리고 서브 함수의 에필로그 직전까지를 보면 우측과 같은 구조를 가지게 된다. 서브 함수의 에필로그 중 leave 명령어의 "mov esp,ebp"가 실행되면 좌측 구조처럼 esp/ebp 모두..
Fake EBP
·
Buffer OverFlow
BoF 공격을 할 때 사용되는 다양한 방법 중 하나인 Fake EBP (가짜 EBP)에 대하여 설명하고자 한다. 원래는 글로 쓸려고 했는데 내가 봐도 이해가 잘 안 가는 듯하여 PPT로 대충 스택 구조를 그려보았다. 새로운 공격 기법을 사용한다는건 특정한 환경과 이유가 존재하는데, 이 기법은 "RET 이후로 덮어 쓰기 불가능", "RET 자리에 스택/라이브러리 주소 필터링"이 되어 있을 때 사용할 수 있다. (사실 이런거 다 필요없고 ROP가 진리) 어쨌든 이런 경우에는 RET에서 원하는 위치로 실행되게 eip를 추출해야 하는데 이게 굉장히 어렵다. 따라서 ebp(sfp)의 위치를 옮겨 우리가 원하는 위치에서 원하는 RET 주소를 추출하는 것이 바로 Fake EBP 기법이다. 쉽게 말하면 함수의 에필로그..