[Webhacking] wireshark
2021. 3. 26. 13:55
Hacking/Webhacking
실습 환경 : kali-linux 2021 (공격자 pc) -----> Bee-box 1. kali-linux 2021에는 wireshark가 자동으로 설치되있음. sudo wireshark 2. kali-linux( 공격자 pc )에서 bee-box로 ping을 날림 3. wireshark에서 패킷을 캡처한 모습 - Source IP - Destination IP - Protocol : ICMP Nmap을 이용한 포트스캔과 와이어샤크 패킷 분석 TCP 프로토콜에 대해서 포트 스캔을 한 결과이다. 다음과 같은 TCP 3-way handshaking을 볼 수 있음. SYN SYN, ACK ACK 패킷을 주고 받은 pc의 ip, port, 패킷 길이 등을 확인할 수 있음. packet 개수가 좀 더 많거나 ..
[Webhacking] 포트 스캔
2021. 3. 26. 12:42
Hacking/Webhacking
정보 수집 - 포트 스캔 오픈된 포트의 중요성 포트는 서비스와 연결되어 있는 통로이다. 불필요한 포트가 열려있다면 범죄자가 침해할 수 있는 보안 위협이 높아진다. 외부 서비스를 이용한 정보 수집 - OSINT(Open-source inteliigence)을 이용하여 대외 서비스의 오픈된 정보 확인 - Shodan 검색 서비스, censys, 구글 검색 서비스 등 서버 대상으로 직접 스캔을 통한 정보 수집 - Nmap 포트 스캔과 취약점 분석 스캔을 이용하여 많은 정보 수집 보통은 80 port와 443 port만 열려있음. 참고 : blockdmask.tistory.com/195 [데통] Port 번호 에 대해서 안녕하세요. BlockDMask 입니다. 오늘은 Port 번호 (Port number)에 대..
[Pwnable] PLT, GOT
2021. 3. 21. 20:48
Hacking/Pwnable
PLT, GOT example4의 디스어셈블리 결과를 보면 puts와 scanf 함수를 호출할 때 해당 함수의 라이브러리 코드 주소로 바로 점프하지 않고 PLT 영역으로 점프하는 것을 확인할 수 있다. Procedure Linkage Table(PLT)는 외부 라이브러리 함수를 사용할 수 있도록 주소를 연결해주는 역할을 하는 테이블이다. Global Offset Table(GOT)는 PLT에서 호출하는 resolve 함수를 통해 구한 라이브러리 함수의 절대 주소가 저장되어 있는 테이블이다. ASLR이 적용되어 있는 환경에서, 동적으로 라이브러리를 링크하여 실행되는 바이너리(Dynamically linked binary)는 바이너리가 실행될 때마다 라이브러리가 매핑되는 메모리의 주소가 변한다. 따라서 PL..
[Pwnable] Lazenca - RTL(x64) 정리
2021. 3. 21. 01:49
Hacking/Pwnable
RTL(Return to Libc) RTL이란 Return address 영역에 공유 라이브러리 함수의 주소로 변경해, 해당 함수를 호출하는 방식이다. 해당 기법을 이용해 NX bit(DEP)를 우회할 수 있다. 이번엔 x64에서 RTL을 실습해볼 것이다. x86과 x64 차이는 쉽게 말해 x86은 32비트, x64는 64비트인것으로 구분을 하면 된다. 그렇다면 이번에도 먼저 함수 호출 규약에 대해 공부해보자! Calling Convention System V AMD64 ABI Solaris, Linux, FreeBSD, macOS 에서 "System V AMD64 ABI" 호출 규약을 사용하기 때문이다. Unix, Unix 계열 운영체제의 표준이라고 할 수 있다. Calling convention fe..
[Pwnable] Lazenca - RTL(x86) 정리
2021. 3. 20. 21:48
Hacking/Pwnable
RTL(Return to Library) RTL이란 Return address 영역에 공유 라이브러리 함수의 주소로 변경해, 해당 함수를 호출하는 방식이다. 해당 기법을 이용해 NX bit(DEP)를 우회 할 수 있다. RTL 이해하기 위해 잠깐 Calling Convention을 공부하고 가자! Calling Convention Cdecl(C declaration) 해당 호출 규약(Calling Convention)은 인텔 x86 기반 시스템의 C/C ++ 에서 사용되는 경우가 많다. 기본적으로 Linux kernel에서는 Cdecl 호출 규약(Calling Convention)을 사용한다. Calling convention features 인자 전달 방법 Stack을 이용 인자 전달 순서 오른쪽에서 ..
[Pwnable] Format String Bug
2021. 3. 18. 23:57
Hacking/Pwnable
포맷 스트링 버그는 대표적으로 printf와 sprintf와 같은 포맷 스트링을 사용하는 함수에서 사용자가 포맷 스트링 문자열을 통제할 수 있을 때 발생하는 취약점이다. 포맷 스트링에는 다양한 종류가 있고, 주어진 인자에 대해 각 포맷 별로 정해진 기능을 수행한다. 만약 공격자가 이러한 포맷 스트링을 조작할 수 있다면, printf 함수의 인자가 저장되는 스택의 내용을 읽거나 %n 혹은 %s 등 메모리 참조 포맷 스트링을 이용해 메모리 커럽션을 유발할 수 있다. 다음은 실습에 쓸 fsb.c 파일이다. // gcc -o fsb1 fsb1.c -m32 -mpreferred-stack-boundary=2 #include #include #include #include char flag_buf[50]; void..
[Webhacking] 웹 해킹 환경 구축
2021. 3. 15. 19:25
Hacking/Webhacking
환경 구축 : 칼리리눅스(공격자 서버) -> 취약한 웹서버(Beebox), MetasploitableV2, windows pc vmware에 kali-linux(공격자 서버)와 bee-box(웹서버)를 설치할 것이다. vmware workstation 다운 칼리리눅스(공격자 서버) 설치 칼리리눅스 = 해킹 도구가 많이 포함된 OS (데미안 리눅스 기반) www.kali.org/downloads/ Downloads | Kali Linux Kali Linux Downloads We generate fresh Kali Linux image files every few months, which we make available for download. This page provides the links to do..
[P4C] 우리집에 GDB 있는데… 메모리 보고갈래? (3) 정리
2021. 3. 13. 02:09
Hacking/Pwnable
DEBUGGING (IDA, GDB 사용) 우리는 이미 tomato.c 소스가 있지만, 보통 소스는 잘 주지 않기에 없다는 가정하에 디버깅을 해보겠다. IDA로 취약점 발견 헥스레이라는 강력한 기능을 제공하는 디스어셈블러이다. 헥스레이는 바이너리를 디컴파일해서 원본 코드와 흡사한 소스를 떨궈준다. F5 단축키를 누르면 다음과 같이 디컴파일한 소스(pseudocode)가 나온다. IDA에서 8번째 라인을 보면, buffer overflow 취약점이 나는 것을 쉽게 확인할 수 있다. strcpy를 할 때 복사 버퍼의 길이를 검증하지 않기에 버퍼 크기인 10보다 더 넣어줘서 bof를 일으켜 num의 값을 1로 바꾸면 될 것으로 보인다. (strcpy는 버퍼 오버플로우 취약점이 발생할 가능성이 농후하기 때문에 ..