분류 전체보기

    OpenSSH 서버

    OpenSSH 서버 텔넷보다 보안이 강화된 SSH 서버 텔넷과 거의 유사하고, 데이터 전송 시 암호화 한다는 차이점이 있다. 암호화관련 주요 기능 - 암호화된 터미널 접속 (telnet과 동일) - 암호화된 file 송수신 기능 (FTP 기능) - 통신 선로 암호화 기능 (클라이언트와 서버 사이의 네트워크 연결을 암호화) ssh >> 리눅스와 윈도우에서의 사용법 같음 Openssh 서버 구축 openssh 서버 확인 # rpm -qa openssh-server # systemctl status sshd >> sshd는 22번 포트를 사용하고 있음을 확인할 수 있다. client (linux) 에서 접속 # ssh 사용자이름@호스트 이름 또는 # ssh 사용자이름@IP 주소 또는 # ssh -l 사용자 이..

    텔넷(Telnet) 서버

    텔넷 서버 오랫동안 사용된 원격 접속 방법으로, 보안이 취약하나 가장 기본적인 원격 접속방법으로 여전히 쓰이고 있다고 한다. * 실습 환경: CentOS 7 텔넷 서버 구축 텔넷 서버 설치 # dnf -y install telnet-server >> telnet client는 대부분의 운영체제에서 내장되어있다. 텔넷 서비스 시작 # systemctl start telnet.socket >> telnet은 socket 형시으로 되어 있어서 항시 떠있지 않고 해당 요청이 들어왔을 때 뜨게해서 효율성을 높인다. >> Listen 영역에 있는 "23"이 telnet이 사용하는 포트번호이다. 23번 포트는 다른 서비스를 사용하는 포트로 사용하면 안된다! 더보기 **포트(port)** TCP/UDP 포트를 줄여서 ..

    [Heap] Memory Leak

    Memory Leak 메모리가 해제되면서 unsorted bin에 들어가는 힙은 main_arena 영역의 주소가 FD와 BK에 저장된다. main_arena는 libc.so.6 라이브러리의 구조체이기 때문에 main_arena의 주소를 알아내 계산을 하면 라이브러리 함수의 주소를 구할 수 있게 된다. leak1 // gcc -o leak1 leak1.c #include #include int main() { char *ptr = malloc(0x100); char *ptr2 = malloc(0x100); free(ptr); ptr = malloc(0x100); printf("0x%lx\n", *(long long *)ptr); return 0; } 0x100 크기의 힙을 할당-해제하며 unsorted ..

    [DS] Delete duplicate-value nodes from a sorted linked list

    값이 같은 노드를 삭제하는 함수를 작성해야 한다. SinglyLinkedListNode* removeDuplicates(SinglyLinkedListNode* head) { SinglyLinkedListNode* tmp1 = head; SinglyLinkedListNode* tmp2 = head->next; SinglyLinkedListNode* t_free; while(tmp1->next != NULL){ if(tmp1->data == tmp2->data){ t_free = tmp2->next; tmp1 -> next = t_free; free(tmp2); tmp2 = tmp1->next; } else{ tmp1 = tmp1->next; tmp2 = tmp2->next; } } return head; ..

    [DS] Print in Reverse

    연결리스트의 head 노드를 파라미터로 전달받고 해당 연결리스트를 역순으로 출력하는 코드를 작성해야 한다. 처음엔 while문을 이용해 역순의 연결리스트를 생성해서 다시 while문을 사용해 값들을 출력하도록 했었는데 Time Limit에 걸려 통과되지 않았다.. 그래서 재귀함수의 형태로 코드를 작성했다. next); } printf("%d\n", head->data); }

    Angry Professor

    교수님이 학생들이 제 시간에 수업에 들어오지 않아서 화나셨다... 그래서 수업시작 시각까지 오는 학생의 수가 k 명이 되지 않는다면 수업을 취소시키기로 다짐하셨다고 한다. 수업이 취소된다면 "YES"를 리턴, 수업을 진행한다면 "NO"를 리턴하는 함수 angryProfessor를 작성해야한다. #include #include #include #include #include #include #include #include #include char* readline(); char** split_string(char*); // Complete the angryProfessor function below. // Please either make the string static or allocate on the ..

    Eletronics Shop

    주어진 budget(b)내에서 keyboard하나와 drive 하나를 가장 값이 많이 나가게 골랐을 때의 가격을 리턴하는 함수 getMoneySpent를 작성해야한다. 만약 최소가격이 budget을 넘는다면 -1을 리턴한다. #include #include #include #include #include #include #include char* readline(); char** split_string(char*); /* * Complete the getMoneySpent function below. */ int getMoneySpent(int keyboards_count, int* keyboards, int drives_count, int* drives, int b) { int cost=0; for(i..

    [Dreamhack] house_of_force

    checksec 32bit Canary발견되지만 heap문제니까...상관없을듯 Pseudo code int __cdecl main(int argc, const char **argv, const char **envp) { int v3; // eax int v5; // [esp+0h] [ebp-10h] int v6; // [esp+4h] [ebp-Ch] int v7; // [esp+8h] [ebp-8h] unsigned int v8; // [esp+Ch] [ebp-4h] v8 = __readgsdword(0x14u); v6 = 0; v7 = 0; initialize(); while ( 1 ) { while ( 1 ) { puts("1. Create"); puts("2. Write"); puts("3. Exi..

    [Heap] House of Force

    House of Force top chunk의 size를 조작함으로써 임의의 주소에 힙 청크를 할당할 수 있게 하는 공격 기법 static void * _int_malloc (mstate av, size_t bytes) { INTERNAL_SIZE_T nb; /* normalized request size */ ... mchunkptr remainder; /* remainder from a split */ unsigned long remainder_size; /* its size */ ... use_top: victim = av->top; size = chunksize (victim); if ((unsigned long) (size) >= (unsigned long) (nb + MINSIZE)) { re..

    [Linux/CentOS] 시간 예약 서비스 - cron, at

    cron 주기적으로 반복되는 일을 자동으로 실행할 수 있도록 시스템 작업을 예약해 놓는 것이다. (= cron) cron 과 관련된 서비스(데몬)을 crond 라고 한다. 이와 관련된 파일은 /etc/crontab 이다. 분(00~59) 시(00~23) 일(1~31) 월(1~12) 요일(0~6) 사용자 실행명령 요일은 0을 일요일로 두고 이어진다. 사용자는 해당명령을 실행할 사용자를 지정해준다. 시간 조건에 상관 없을 때는 '*'로 표시한다. /etc/crontab 파일에 반복하고 싶은 작업에 대한 세부적인 사항들을 적어주면 된다. 주기적으로 실행할 내용을 디렉터리 넣고 작동한다. /etc/crontab 파일이 시간별, 일별, 주별, 월별로 호출하는 디렉터리들이다. >> 00 * * * * root ru..