일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Metasploit
- 시스템 해킹
- root권한
- 칼리리눅스
- 침투테스트
- Los
- 권한상승
- web hacking
- 해킹툴
- SQL Injection
- 취약점
- 모의해킹
- sql
- Kioptrix
- 취약점 스캔
- SQLINJECTION
- CTF
- 해킹도구
- Samba
- load of sqlinjection
- 내부침투
- 스캐닝
- 포트스캔
- smb
- 암호해독
- 해킹
- Hacking
- 스캔
- 메타스플로잇
- 취약점분석
- Today
- Total
목록System (31)
감자 텃밭
블로그 이전중입니다. 아래 링크에서 확인 가능합니다. 😁https://g2hsec.github.io/system-vuln/%EB%B0%94%EC%9D%B8%EB%93%9C-%EC%89%98-Bind-Shell-%EB%A6%AC%EB%B2%84%EC%8A%A4-%EC%89%98-Reverse-Shell/ 보통 쉘을 획득할떄는 두 가지 방법을 사용한다.대표적으로 바인드 쉘과, 리버스 쉘이라는것을 사용한다.1. 바인드 쉘[Bind Shell] - 바인드 쉘의 경우, 서버에서 포트가 열려있고 클라이언트에서 접속하여 쉘을 얻는 방식이다.일반적으로 가장 많이 사용되는 방식이며, 아래와 같이 사용된다.nc(netcat)을 통해 서버를 열어준다-l : listen모드로 port를 열어준다.-v : verbosity를..
블로그 이전중입니다. 아래 링크에서 확인 가능합니다. 😁https://g2hsec.github.io/system-vuln/Frame-Pointer-Overflow-FPO-,-SFP-Overflow,-SFPO/시스템 해킹을 하다보면 보통 ret영역의 값을 악의적으로 변형시켜system함수를 실행시키는 등 해당 프로그램을 제어하지만, 입력버퍼의 제한으로ret영역까지 접근을 하지 못 할 수 있다. 하지만 SFP영역의 단 하위1바이트만으로 ret영역 제어와 비슷한 흐름을 이끌어 낼 수 있다. 그것이 바로 FPO기법이다.해당 기법을 이해하기 위해서는 스택 에필로그 과정과 프롤로그 과정에 대한 이해도가 필요합니다.해당 기법을 사용하기 위해서는 2가지의 조건이 충족 되어야 한다.1. 서브 함수가 존재하여야 한다.2..
블로그 이전중입니다. 아래 링크에서 확인 가능합니다. 😁https://g2hsec.github.io/other-knowledge/vi%ED%8E%B8%EC%A7%91%EA%B8%B0%EC%97%90%EC%84%9C-%EC%9E%90%EB%8F%99-%EC%A4%84-%EB%A7%9E%EC%B6%A4/ 대량의 소스코드등을 vi를 이용해 내용을 저장했을때줄맞춤, 정렬등이 밀려있게된다. 이를 깔끔하게 정리하기위해서는ctrl + v를 누른상태에서 키보드커서로 영역을 잡아준 후= 키보드를 누르면 자동으로 줄 맞춤이 된다.
read() 함수로 입력값을 주게 될 경우 마지막에 \n(개행) 이 붙어 연속적으로 read() 함수가 쓰여질 경우 버퍼를 초기화 시켜줘야한다 그렇기에 Pwntools에서 제공하는 send함수를 사용하면 read()함수를 버퍼초기화와 유사한 방법으로 입력값을 전달할 수 있다. r.send(payload)로 보내면 된다. r.sendline(payload)로 보낼경우 뒤에 \n(개행) 이 붙어, 다음 입력함수에서 자동으로 \n(개행)이 들어가 입력을 받지 못하고 프로그램이 종료된다.
포너블(시스템 해킹)을 하면서 많은 기능을 제공해주는 Pwntools는 엄청 많은 도움이 되며, 정말 Exploit에 큰 도움이 된다. pip를 통해 설치후에 Exploit 파일인 .py 내에서 사용이 가능하며, 불러오기 위해 제일 상단에 from pwn import * 로 해당 모듈을 불러올 수 있다. from pwn import * 1.연결 1. 원격 접속 - 공격서버에 공격을하기위해 원격으로 붙기위해 사용 (nc) remote("ip",port) ex) r = remote("192.168.10.101", 8080) 2. 로컬 접속 - 공격서버에 원격으로 붙기전에 로컬에서 우선 Exploit코드를 실행시켜보기 위해 사용 process("파일") ex) p = process("./test") 3. ss..
보통 ROP는 Dynamic Link 바이너리에서 plt와 got를 이용하여 해결하는 기법이다. 하지만 주어진 바이너리파일이 Dynamic Link된 파일이 아닌 Static Link된 파일일 경우 사용할 수 없게 된다. 필요한 모든 함수구현 코드들이 실행파일 안에 존재하기 때문이다 하지만 해당 함수코드중 system()함수가 없는 경우 공격이 힘들어진다. 이렇게 system()함수가 존재하지않고 Static Link된 바이너리 파일에서의 ROP공격을 하기 위한 기법이 mprotect ROP이다. 특정 메모리 영역에 ShellCode를 삽입하여 사용하는 기법이다. 일단 해당 ROP를 하기위해서는 mprotect 함수에 대해 우선적으로 알아보자. mprotect() 함수는 할당된 메모리 영역의 권한을 변경..
기본적인 ROP사용법은 32bit ROP에서 확인하자. https://hg2lee.tistory.com/71 [시스템] Return-Oriented-Programming - ROP [x86-32bit] ROP기법이란 Return-Oreinted-Programming의 약자로 반환 지향형 프로그래밍 이다. ret영역에 가젯을 이용하여 연속적으로 함수를 호출하며 공격자가 원하는 흐름대로 프로그래밍 하듯 공격한다는 뜻의 hg2lee.tistory.com 64bit ROP는 32bit ROP와 사용법이 살짝 다르다. 32bit ROP에서는 POP POP ret 등의 가젯에서, pop 명령어의 피연산자의 종류가 상관이 없었다. 하지만 64bit 환경에서는 이 피연산자의 종류가 중요하다 그 이유는 호출 규약인 Sy..
블로그 이전중입니다. 아래 링크에서 확인 가능합니다. 😁https://g2hsec.github.io/system-vuln/system-vuln-Return-Oriented-Programming-ROP-x86-32bit/ ROP기법이란 Return-Oreinted-Programming의 약자로 반환 지향형 프로그래밍 이다.ret영역에 가젯을 이용하여 연속적으로 함수를 호출하며 공격자가 원하는흐름대로 프로그래밍 하듯 공격한다는 뜻의 기법이다. ROP는 ASLR, DEP/NX등의 메모리 보호기법을 우회하여 공격할 수 있는 기법이며,해당 기법을 사용하기위해서는 몇가지의 사전지식이 필요하다.우선 RTL, RTL-Chaining, PLT,GOT, GOT_Overwrite, Gadget등이 필요하다. 또한 해당 기..