일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 침투테스트
- 스캐닝
- Hacking
- Los
- 암호해독
- Samba
- SQLINJECTION
- Kioptrix
- 취약점 스캔
- CTF
- 내부침투
- smb
- 칼리리눅스
- web hacking
- sql
- 취약점분석
- load of sqlinjection
- 해킹툴
- 취약점
- root권한
- 해킹도구
- 스캔
- 시스템 해킹
- 권한상승
- 메타스플로잇
- 포트스캔
- 해킹
- SQL Injection
- 모의해킹
- Today
- Total
목록System/Tips (11)
감자 텃밭
블로그 이전중입니다. 아래 링크에서 확인 가능합니다. 😁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..
readelf -s [파일명] - 해당 명령어로 해당 파일의 섹션값들을 보여줌
ASLR이란 특점 프로그램에서 스택, 힙, 공유라이브러리들의 메모리 주소를 랜덤화 즉 실행시킬 때 마다 주소값이 바뀌게 하는 메모리 보호 기법이다. 해당 기법이 걸려있을 때 우회 방법은 대표적으로 아래의 2가지 방법이다. 1. "A" 또는 "\x90" 사용 - 더미값으로 불리며 프로그램에 아무런 영향을 끼치지 않고 eip를 다음 명령어로 넘김. 그러므로 버퍼안에 더미값을 충분히 채워놓은 후 뒤쪽에 쉘코드를 삽입하여 프로그램이 랜덤한 주소로 리턴하거나 점프해도 더미값 안에 eip가 떨어질 확률을 높히는 것 여러개의 더미값 중 한군데에만 떨어져도 eip는 더미값을 타고 끝까지 가서 쉘코드를 실행시키기 때문 하지만 버퍼의 크기가 작으면 대량의 더미값을 넣을 공간이 부족할 수 있음. 2. 반복 실행 - 더미값을..
RTL이란 RET 즉 리턴주소에 함수 공유 라이브러리에 있는 함수들 execv(), system()등의 함수를 불러와 사용할 수 있는 방법이다. RTL방법은 NX메모리 보호기법을 우회할 수 있다. 여기서 NX란 쉽게 설명해서 권한을 없애는것 HEAP, STACK등 메모리상에서 쉘코드등을 이용한 공격코드를 실행하지 못하게 하는것이다. PAYLOAD는 dummy+(ret위치(system()))+dummy(4byte)+/bin/sh 같이 쓰인다. 함수와 인자값 사이에 더미가 들어가는것이 이상하게 느껴질 수 있다. 이는 32bit환경에서 함수가 호출될 때 인자 값을 가지고오기위해 ebp+0x8의 주소에서 가져오기 때문이다.그러기때문에 ebp+0x8위치에 /bin/sh를 넣는다.
[ASLR 해제]sudo또는 root로1. sudo sysctl -w kernel.randomize_va_space=02. sysctl -w kernel.randomize_va_space=0 0 - 해제1 - 랜덤 스택 , 라이브러리2 - 랜덤 스택 , 라이브러리 , 힙 gcc 컴파일시에 메모리보호기법 해제gcc yncflag.c -fno-stack-protector -mpreferred-stack-boundary=2 -z execstack -no-pie -fno-pic -m32
#include int main(int argc, char **argv) { long shell; shell = [system() 함수 주소] while (memcmp((void *)shell, "/bin/sh",8)) { shell++; } printf("\"/bin/sh\" : 0x%x\n", shell); printf("print %s\n", shell); return 0; } long타입 변수 shell을 선언 shell변수에 시스템함수의 주소를 대입 while문을 사용 memcmp함수를 사용하여 shell함수에 존해자는 "/bin/sh"라는 문자열을 null문자포함 8바이트를 비교하며 찾음