Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
81082b2
notion markdown 변환기능을 이용한 export 원본 md 포맷 업로드
sprout88 Dec 30, 2024
d60a19d
md 정리
sprout88 Dec 30, 2024
4f52a9a
폴더 구조 변경
sprout88 Dec 30, 2024
12b16a3
md 정리
sprout88 Dec 30, 2024
7dc6c32
Create CNAME
sprout88 Jan 5, 2025
f8237bb
Delete CNAME
sprout88 Jan 5, 2025
383276c
리눅스와 쉘커맨드 - url 인코딩을 평문으로 작성하고 언더스코어로 구분하였음
sprout88 Jan 5, 2025
88fed75
Notion 고유 식별코드 삭제
sprout88 Jan 5, 2025
a68b647
Merge branch 'notion-md' of https://github.com/GRAPE-SEC/Hackademy in…
sprout88 Jan 5, 2025
d594fd7
공백과 쉼표를 언더스코어(_)로 변경
sprout88 Jan 5, 2025
c2493b1
edit.py : 파일이름 변경 스크립트 작성
sprout88 Jan 5, 2025
42c7a64
파일포맷구분자(.) 없음 수정
sprout88 Jan 5, 2025
02d18b9
파일 수정 스크립트(edit.py) 경로 수정
sprout88 Jan 5, 2025
ee4ca2f
정리되지 않은 이미지와 md 파일을 각각 unsorted_img, unsorted_md 에 구분하여 정리
sprout88 Jan 5, 2025
c766265
Update Hackademy_2024-2.md
sprout88 Jan 5, 2025
f4091dd
파일이름변경 스크립트(edit.py) 위치 변경
sprout88 Jan 5, 2025
7d3ab72
상위 문서 목차 sorted
sprout88 Jan 5, 2025
7aae7dc
md 파일명과 동일한 폴더에 이미지를 함께 정리할 수 있도록 링크 경로 수정
sprout88 Jan 6, 2025
ba0094b
md 파일명과 동일한 폴더에 이미지를 함께 정리할 수 있도록 링크 경로 수정
sprout88 Jan 6, 2025
f7d1bdd
폴더가 순서대로 표시되도록 앞에 숫자를 붙임
sprout88 Jan 6, 2025
5fc3969
Hackademy 소개 페이지 완료
sprout88 Jan 6, 2025
52e16bf
레거시 제거
sprout88 Jan 6, 2025
396433a
리눅스와_쉘_커맨드 폴더명에 숫자추가
sprout88 Jan 6, 2025
16d3712
리눅스와_쉘_커맨드 md 파일 매칭
sprout88 Jan 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
# Hackademy 소개

<aside>
👨🏻‍💻 author : 전재호(sprout88) 2024-03-13

</aside>

반갑습니다.

Hackademy (해카데미)는 저희 동아리에서 만든 교육용 문서입니다.

Hackademy 를 완료하면 아래와 같은 지식을 얻을 수 있습니다.

- 기본적인 컴퓨터 사용 지식
- 기본적인 코딩
- 기본적인 해킹툴 사용 방법
- 기본적인 해킹
- 기본적인 서버 관리 지식

Hackademy 전부 완료하면 보안이 취약한 시스템은 어느정도 해킹할 수 있게 될 것 입니다.

# Hackademy 로 공부해요

우리 다함께 해킹을 하려면 기본적인 지식이 필요합니다.

Hackademy 는 신입 회원 및 컴린이들을 위해 준비한 교육 코스입니다.

원활한 활동을 위해 반드시 이수하여 주시기 바랍니다.

**Hackadmy 의 내용을 모두 공부하여야 동아리에서 진행하는 다양한 해킹 관련 활동에 참여하는데 지장이 없을 것 입니다.**

# 댓글 당부

모르는 내용이나 어려운 내용이 있으면 아마 남들도 똑같이 어려울 것 입니다.

(더 쉽게 쓰지 못해 미안합니다)

설명이 모호하거나, 따라가기 힘든 부분에는 댓글을 꼭 달아주시기 바랍니다.

댓글을 달아주면 Hackademy 가 더 친절하게 바뀔 수 있습니다.

계속
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
# 당부 말씀 : Google 과 ChatGPT 를 애용할 것

<aside>
👨🏻‍💻 author : 전재호(sprout88) 2024-03-13

</aside>

# Google 은 신이다.

우리가 다루는 것은 컴퓨터/IT 기술입니다.

빠르게 발전해왔고, 빠르게 발전하고 있습니다.

지구상의 그 누구도 모든 기술을 완벽히 알 수 없습니다.

오늘 알고 있던 것은 내일이 되면 바뀝니다.

**반드시 Google 에 검색하세요.**

Google 에 검색해서 모르는 것을 빠르게 습득하는 능력이, 머리에 암기하여 저장하는 것보다 중요합니다.

다시 한번 말합니다.

모르는 내용이 생기면 반드시 구글에 검색을 먼저 하세요.

# ChatGPT 는 신이다.

모르는게 있으면 반드시 ChatGPT 에게 물어보세요.

ChatGPT 는 높은 확률로 그것을 알고 있을 것 입니다.

[https://www.youtube.com/watch?v=xAUuLECuyd0](https://www.youtube.com/watch?v=xAUuLECuyd0)

ChatGPT 에게 질문을 잘 작성해서, 그 답변을 해석하는 능력이 코딩보다 더 중요합니다.

다시 한번 말합니다.

모르는게 있으면 반드시 ChatGPT 에게 물어보세요.

계속
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# 이용 꿀팁 및 댓글 당부

<aside>
👨🏻‍💻 author : 전재호(sprout88) 2023-11-29

</aside>

## 노션 즐겨찾기를 등록

자기가 지금 공부하고 있는 페이지를 즐겨찾기에 등록해서 쉽게 이용할 수 있습니다.

![Untitled](Untitled%202.png)

## 댓글 달기

오타가 있거나, 잘못된 내용 또는 이렇게 적으면 더 이해가 잘 갈 것 같다, 이해가 안간다 등의 의견을 운영진이 문서에 반영할 수 있게 댓글에 달아주세요.

![Untitled](Untitled%203.png)

# 댓글 부탁

글에도 댓글을 달 수 있습니다.

글 위에 마우스를 올리고 댓글 달기를 누르면 됩니다

![Untitled](Untitled%204.png)

![Untitled](Untitled%205.png)

계속
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# 해킹은 실수 찾기

<aside>
💡 author : 전재호(agamtt) 2024-03-17

</aside>

![Untitled](Untitled%206.png)

[https://namu.wiki/w/해킹](https://namu.wiki/w/%ED%95%B4%ED%82%B9)

![Untitled](Untitled%207.png)

![Untitled](Untitled%208.png)

[https://www.lgcns.com/blog/cns-tech/security/14543/](https://www.lgcns.com/blog/cns-tech/security/14543/)

# 해킹

해킹은 가장 자유롭고 싶은 사람들의 기술입니다.

세상에 누구던지 자유롭게 궁금한 것을 알 수 있어야 합니다.

# 해킹은 실수 찾기

해킹은 컴퓨터에 국한되는 것이 아닙니다.

누군가 만든 복잡한 시스템을 분석하다보면, 실수가 발견됩니다.

실수를 이용하면 시스템을 의도하지 않은 방향으로 사용할 수 있습니다.

해킹은 남의 실수를 찾아내는 체계적인 방법입니다.

계속
11 changes: 11 additions & 0 deletions Hackademy_2024/00_Hackademy_소개/Hackademy_소개.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Hackademy 소개

## 반드시 읽어야 하는 부분

[Hackademy 설명](00_Hackademy_설명/Hackademy_설명.md)

[당부 말씀 : Google 과 ChatGPT 를 애용할 것](01_당부_말씀_Google_과_ChatGPT_를_애용할_것/당부_말씀_Google_과_ChatGPT_를_애용할_것.md)

[이용 꿀팁 및 댓글 당부](02_이용_꿀팁_및_댓글_당부/이용_꿀팁_및_댓글_당부.md)

[해킹은 실수 찾기](03_해킹은_실수_찾기/해킹은_실수_찾기.md)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
# 가상화 기술, 가상환경, 가상머신

<aside>
👨🏻‍💻 author : 전재호(agamtt) 2023-11-24

</aside>

<aside>
💡 가상환경이 뭔가요?

</aside>

가상화 기술이란 컴퓨터 안에 프로그램으로 또다른 컴퓨터를 작동시키는 기술을 말합니다.

# 가상머신(Virtual Machine)

예를 들어, MacOS 에 설치할 수 있는 UTM (Universal Turing Machine) 은 MacOS 안에서 Windows 등 다른 OS 를 설치할 수 있게 합니다. 그래서 맥북으로 Windows용 프로그램을 실행할 때 주로 사용됩니다.

이렇게, 실제로 존재하는 컴퓨터는 아니지만, 가상화 기술을 통해 생성된 컴퓨터를 **가상머신(Virtual Machine)** 이라고 부릅니다.

![image.png](image.png)

완전히 반대의 경우도 가능합니다. Windows 안에 MacOS 를 실행할 수도 있습니다.

![image.png](image_1.png)

Qemu, Virtual Box, VMware Workstation, VMware Fusion 등 프로그램을 통해 가상환경을 만들 수 있습니다. 이런 프로그램들은 가상머신을 만들고, 그 가상머신과 실제 존재하는 모니터, 키보드, 마우스 등을 자동으로 연결해줍니다.

![image.png](image_2.png)

![image.png](image_3.png)

그 중에서 가장 세팅하기 쉬운 docker 를 사용하도록 하겠습니다.

docker 를 사용하면 여러개의 가상환경을 생성하고 삭제하는 것이 다른 프로그램들에 비해 훨씬 쉽습니다.

![image.png](image_4.png)

# 게스트(Guest), 호스트(Host)

가상머신(Virtual Machine) 을 생성했을때, 가상머신 안에서 작동하는 OS 를 손님이라는 의미에서 Guest OS 라고 부릅니다. 가상머신을 작동시키는 OS, 그러니까 먼저 설치된 OS 를 주인이라는 의미에서 호스트(Host) 라고 부릅니다.

![image.png](image_5.png)

예를 들어, MacOS 안에 Windows 를 설치하면,

Host OS = MacOS

Guest OS = Windows

가 되는 것 입니다.

![image.png](image_6.png)
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
# 운영체제(OS)와 Linux

<aside>
💡 author : 전재호(agamtt) 2023-09-23

</aside>

# 운영체제(OS)

운영체제(Operating Systen, OS) 는 “프로그램을 실행시키는 프로그램” 입니다.

![image.png](image_7.png)

# Linux

![image.png](imag_8.png)

리눅스는 무료 운영체제입니다.

일반적으로 사용되는 운영체제들은 유료인 경우가 많습니다.

![image.png](image_9.png)

# Ubuntu Linux

Linux 는 Redhat, Fedora, Arch 등 아주 많은 종류가 있습니다.

우리는 요즘 자주 사용되는 Ubuntu Linux 를 사용할겁니다

![image.png](image_10.png)

![image.png](image_11.png)

![image.png](image_12.png)

![image.png](image_13.png)
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
# docker container 에 root 권한으로 접속하기

<aside>
💡

author : agamtt 2023-11-30

</aside>

# 실습 환경 만들기

<aside>
💡 **여기를 참고합니다.**

[실습 : 컨테이너 두개 만들고 포트포워딩하기](%E1%84%89%E1%85%B5%E1%86%AF%E1%84%89%E1%85%B3%E1%86%B8%20%E1%84%8F%E1%85%A5%E1%86%AB%E1%84%90%E1%85%A6%E1%84%8B%E1%85%B5%E1%84%82%E1%85%A5%20%E1%84%83%E1%85%AE%E1%84%80%E1%85%A2%20%E1%84%86%E1%85%A1%E1%86%AB%E1%84%83%E1%85%B3%E1%86%AF%E1%84%80%E1%85%A9%20%E1%84%91%E1%85%A9%E1%84%90%E1%85%B3%E1%84%91%E1%85%A9%E1%84%8B%E1%85%AF%E1%84%83%E1%85%B5%E1%86%BC%E1%84%92%E1%85%A1%E1%84%80%E1%85%B5%20995d9cf49347438e9eaa9ecc47cac664.md)

</aside>

## ssh 로 루트 권한 사용하기

현재 guest1 은 sudo 권한이 없으므로 root를 사용할 수 없습니다.

![Untitled](Untitled%20222.png)

ssh 로 root 로 접속하면 안된다고 배웠습니다.

그러나 apt 설치 등을 하려면 root 계정이 필요합니다.

ssh 로 어떻게 root 를 사용할 수 있을까요?

그것은 일반유저를 sudo 그룹 포함시킨 후, sudo 그룹에 속한 계정들을 모두 접속 허용하면 됩니다.

그리고 root 권한명령은 su root 하지말고 sudo 를 사용하여 수행합니다.

우선 server 에 sudo 를 설치합니다. (guest1에서 말고 root에서 설치해야 함)

```bash
apt update
apt install sudo
```

<aside>
⚠️ **참고: root 계정에서 일반 계정으로 이미 su 해버린 경우**
exit 명령어를 입력하면 다시 root 로 돌아옵니다.
exit : 바로 직전에 로그인한 사용자로 전환하는 명령어

</aside>

그리고 guest1 계정을 sudo 그룹에 추가합니다. (당연히 root 계정으로 해야함)

명령어는 아래와 같습니다.

```bash
usermod -aG sudo guest1
```

<aside>
💡 a 는 append 의 약자이고, G는 Group 의 약자입니다.
-는 리눅스의 옵션을 의미하는 접두자입니다.

</aside>

sudo 그룹을 확인해보면 guest1 이 sudo 에 속해있습니다.

```bash
cat /etc/group
```

![Untitled](Untitled%20223.png)

ssh 연결을 종료한 후, 재접속해보면 sudo 를 사용할 수 있습니다.

```bash
exit

ssh -p 9001 guest1@172.17.0.2

sudo echo "hello"
```

계속
Loading
Loading