본문 바로가기

해킹 기초지식9

도커(Docker)와 명령어 도커 : 컨테이너를 만들고, 실행하고, 배포할 수 있는 가상화 플랫폼이다. 여기서 컨테이너는 가상의 환경이 구축되어 있는 하나의 박스를 말한다. virtual machine으로 하나의 OS 위에 다른 OS 환경을 구축하는 것과 유사한 개념이지만, 도커 컨테이너는 새로운 OS 환경을 구축할 필요 없이 하나의 분리된 프로세스처럼 작동하여 가볍다. 도커 이미지(Docket Image) : 도커 컨테이너의 전 단계, 컨테이너를 생성하고 실행하기 위한 모든 것이다. 예를 들어 컨테이너 생성에 필요한 파일, 환경 변수, 명령어 등과 파일 시스템 등이 있다. 직접 본인만의 이미지를 만들거나 다른 사람이 만든 이미지를 사용할 수 있다. 생성법 : Dockerfile 을 작성하고 빌드한다. 여기서, 태그(Tag)를 붙일.. 2023. 11. 20.
SSH(Secure Shell, Secure Socket Shell) SSH : 원격 서버(컴퓨터)에 연결할 수 있도록 해주는 암호화된 네트워크 프로토콜이다. 사용법 : Terminal에서 ssh user@Host -p Port -i [개인 키 파일 경로] 명령어를 통해 사용할 수 있다. 여기서, user는 접속할 계정(사용자 이름)이며, Host는 접속하려는 원격 서버의 ip 또는 도메인이다. 특정 포트로 접속하고 싶은 경우 -p 옵션을 이용한다. 클라이언트가 접속하기 전에 사용자가 믿을 만 한지에 대한 인증이 필요하다. 2가지가 있다. 패스워드로 인증: ssh user@Host 명령어를 통해 패스워드를 입력한 뒤 원격 서버에 접속할 수 있다. 공개 키-개인 키 쌍으로 인증: ssh-keygen 명령어를 통해 원격 서버에 공개 키(public key)를 저장하고, 클라이.. 2023. 11. 20.
시스템 해킹(System Hacking)과 리버스 엔지니어링(Reverse Engineering), 웹 해킹(Web Hacking) 시스템 해킹 : 컴퓨터 프로그램의 행위를 조작하여 공격자가 원하는 행동을 실행하도록 하는 공격이다. 목표: 공격 대상 프로그램이 구동되는 서버의 임의 유저와 같은 권한을 획득하는 것이다. 원격 환경에 있는 공격자가 타깃 서버에서 운영체제의 명령어를 실행할 수 있는 공격을 원격코드실행(Remote Code Execution)이라고 한다. 리버스 엔지니어링 : 무언가를 설계하고 제작하는 '엔지니어링' 과정을 정반대로 수행하는 것이다. 예를 들어, 컴퓨터 프로그래밍적 관점에서는 프로그램의 동작을 직접 실행해 보면서, 컴파일된 결과물의 데이터를 분석하여 소스 코드의 내용을 추측하는 방법이다. 앞서 언급한 결과물을 '프로그램' 또는 '이진 파일'이라고 한다. 이는 사람의 눈으로 식별하기 어려운 데이터로 이루어져 .. 2023. 11. 19.
리눅스 권한- 유저(user)와 그룹(group) 리눅스의 권한 시스템을 설명하기 위해서는 유저와 그룹에 대한 개념을 알아야 한다. 유저 : 이름과 고유한 사용자 ID(UID)를 가지고 있는 사용자이다. 그룹 : 여러 유저가 속할 수 있는 집단이다. 이 또한, 그룹 이름과 고유한 그룹 ID(GID)를 가지고 있다. 유저가 파일이나 디렉터리와 같은 시스템 자원에 접근할 때, 유저의 UID와 해당 유저가 속한 그룹의 GID를 확인하여 접근에 대한 권한을 가지고 있는지를 판단해서 제어를 한다. / etc / passwd 는 리눅스의 유저 정보를 담고 있는 텍스트 파일이다. 여기서, 각 사용자의 이름, 사용자 ID, 속해있는 그룹 ID 등의 정보를 포함한다. 아래와 같이 cat 명령어로 / etc / passwd 파일의 내용을 확인할 수 있다. user@use.. 2023. 11. 19.