System
CentOS 에디터 - gedit, vi(vim)
gedit $ gedit X 윈도우에서 제공하는 편리한 에디터 vi 에디터 = visual; 모든 유닉스/리눅스 시스템에 기본으로 포함되어 있는 text-based 에디터 특히, 텍스트 모드로 설정한 Server(B)에서는 X 윈도우 창을 열 수 없기 때문에 gedit을 사용할 수 없다,, 따라서 vi 사용법에 익숙해져야 한다. centOS 8에서는 자동으로 vi 에디터를 좀 더 편리하게 사용할 수 있는 vim 에디터가 설치되어 있다. 그냥 vi 에디터는 오로지 키보드에만 의존하여 많은 부분 제한적이다. $ vi [파일] 명령모드: 입력모드 또는 ex모드에서 [ESC]키를 눌러 진입 입력모드: 문서를 작성하는 실제 작업 ex 모드(=라인 명령 모드): 명령모드에서 콜론(:)을 입력하고 실행 [명령모드: ..
[HackCTF] uaf
checksec 32bit Canary발견 (pwntools 새로운 버전이 나왔다..업데이트 해야지..) Pseudo Code IDA 32bit 로 확인 int __cdecl __noreturn main(int argc, const char **argv, const char **envp) { int v3; // eax char buf; // [esp+8h] [ebp-10h] unsigned int v5; // [esp+Ch] [ebp-Ch] v5 = __readgsdword(0x14u); setvbuf(stdout, 0, 2, 0); setvbuf(stdin, 0, 2, 0); while ( 1 ) { while ( 1 ) { menu(); read(0, &buf, 4u); v3 = atoi(&buf);..
[리눅스 명령어] 도움말 사용법 - man
도움말 사용법 $ man 명령어 = 'manual'의 약어, 리눅스에 포함된 도움말 → vi 에디터와 비슷하게 사용된다. 위쪽 행으로 이동 ↑ 또는 k 아래쪽 행으로 이동 ↓ 또는 j 이전 페이지로 이동 PgUp 또는 SpaceBar 다음 페이지로 이동 PgDn 또는 b 특정 단어 검색 /단어 다음 단어로 이동 n man 명령어에 대한 도움말 h 종료 q [섹션] man 명령어는 1~9 까지의 섹션을 나눠 사용할 수 있다. ==> $ man [섹션번호] 명렁어 섹션 1 명령어 섹션 2, 섹션 3 프로그래밍 섹션 4 디바이스 섹션 5 파일 형식 섹션 6 게임 섹션 7 기타 주제 섹션 8 시스템 관리 섹션 9 커널 관련 설명 지정한 섹션 번호에 있는 도움말을 출력하게 한다. 특별히 섹션 번호를 지정하지 않으..
[Heap] UAF(Use-After-Free)
UAF (Use-After-Free) Use-After-Free vulnerabilities are a type of memory corruption flaw that can be leveraged by hackers to execute arbitrary code. Use After Free specifically refers to the attempt to access memory after it has been freed, which can cause a program to crash or, in the case of a Use-After-Free flaw, can potentially result in the execution of arbitrary code or even enable full re..
[Heap] Double Free 취약점
◾ 실습 환경: Ubuntu 16.04 (glibc 2.23) Double Free와 U-A-F 취약점은 C 언어에서 동적 메모리를 관리를 올바르지 않은 방식으로 했을 때 발생하는 취약점들이다. Double Free 해제된 메모리를 다시 한 번 해제하는 취약점이다. 📌 힙을 할당했다가 해제하면서 할당되었던 힙 청크의 주소가 크기에 맞는 bin (fastbin/unsorted bin/samllbin/largebin)에 들어가고, 같은 bin에 해당되는 크기로 재할당 요청이 오면 순차적으로 할당이 된다. 이 때, double free가 발생해 중복된 주소가 bin에 들어가게 되었을 때, 같은 크기로 할당 요청이 여러 번 들어오게 되면 동일한 메모리에 두 개의 객체가 할당될 수 있다. 이 점을 이용해 이미 해..
LINUX 기초 개념 - 시작과 종료, 재부팅, 가상콘솔, 자동완성, history
시작과 종료 종료 # shutdown -P now # halt -p # init 0 # poweroff 재부팅 # shutdown -r now # reboot # init 6 # shutodwn [옵션] [시간] (△ root 사용자에서 사용 가능한 명령어) [옵션] -p / -P poweroff 종료 (# halt -p, # init 0) -r reboot 재부팅 (# reboot 도 가능) -c cancel 예약된 shutdown 취소 -k 종료된다는 메시지를 보내지만 실제로는 종료되지 않음 ; 시스템을 종료하지 않고 다른 사용자가 시스템 접속을 로그아웃하도록 유도 [시간] +N : N분 후에 동작 실행 NN:NN : NN시 NN분에 동작 실행 now : 바로 실행 # init [런레벨] [런레벨] ..
CentOS Client 가상 머신 설치
소프트웨어 선택 워크스테이션 > GNOME 응용 프로그램 선택 Client 설치 목적지 선택 이전 가상머신들과 달리 저장소 구성을 오토매특으로 설정되게 함 자동 업데이트 기능 끄기 # gsettings set org.snome.software download-updates false # systemctl disable dnf-makecache.service # systemctl disable dnf-makecache.timer dnf 저장소 설정 # cd /etc/yum.repos.d/ # rm -f *.repo # ls # wget http://download.hanbit.co.kr/centos/8/This.repo #ls -l # dnf clean all 해상도 설정 # gedit /etc/grub...
[Heap] Security Check
_int_malloc, _int_free는 heap이 정상동작 하지 못하는 경우를 방지하기 위해 검증 코드가 존재한다. 이 검증 코드를ㄹ 이해하고 있어야 익스플로잇 할 때 우회해서 공격할 수 있다. _int_malloc malloc(): memory corruption (fast) #define fastbin_index(sz) \ ((((unsigned int) (sz)) >> (SIZE_SZ == 8 ? 4 : 3)) - 2) idx = fastbin_index (nb); if (victim != 0) { if (__builtin_expect (fastbin_index (chunksize (victim)) != idx, 0)) { errstr = "malloc(): memory corruption (f..
centOS 텍스트 모드(Server(B)) 설치 및 설정
wget 프로그램 패키지 설치 # dnf -y install bind-utils net-tools wget unzip bzip2 dnf 저장소 설정 # cd /etc/yum.repos.d/ # rm -f *.repo # ls # wget http://download.hanbit.co.kr/centos/8/This.repo # ls -l #dnf clean all 네트워크 설정 # cd /etc/sysconfig/network-scripts # ls # vi ifcfg-ens160 BOOTPROTO="none" IPADDR=192.168.111.200 NETMASK=255.255.255.0 GATEWAY=192.168.111.2 DNS1=192.168.111.2 [A] → 위의 내용으로 수정 → [ESC]..
[Heap] ptmalloc2
Memory Allocator dlmalloc, ptmalloc2, jemalloc, tcmalloc, libumem 등의 메모리 할당자 대부분의 운영체제에서 동적할당 시, 힙 페이지 생성 ptmalloc2 리눅스 GLIBC (GNU C Library)에서 사용하는 메모리 할당자 서로 다른 스레드가 서로 간섭X ,서로 다른 메모리 영역에 접근 dlmalloc 코드를 기반으로 멀티 스레드에서 사용되도록 확장; 한 번에 두개 이상의 메모리 영역을 활성화 해 멀티 스레드 효율적으로 처리복수의 스레드가 동시에 malloc을 호출: 각 스레드는 별도의 heap segment 생성 + 해당 heap을 유지 보수하는 데이터 구조 분리해 메모리에 할당 $ wget https://ftp.gnu.org/gnu/glibc/..