분류 전체보기 175

윈도우 인증의 구성 요소 (LSA, SAM, SRM)

윈도우에서 계정의 인증 구성요소(부팅하고 맨 첨에 로그인 할때, 로그인 시켜주는 친구들)와 인증방법에 대해 알아보자. 윈도우 인증의 구성요소 LSA(Local Security Authority) - 총괄 : 모든 계정 로그인 검증 / 시스템 자원과 파일에 대한 접근 권한 검사 / 이름과 SID 매칭하여 SRM이 생성한 감사로그 기록 (로컬과 원격인증 모두 포함) SAM(Security Account Manager) - 저장, DB : 윈도우 계정 및 패스워드를 관리 / 사용자 계정과 패스워드 일치 여부를 확인하여 SRM에게 알려줌 ( != 윈도우 패스워드 암호화 후 보관하는 파일 SAM / SAM 파일 위치 : %SystemRoot%/system32/config/SAM) SRM(Security Refer..

공부/이모저모 2021.09.17

윈도우 계정 조회 및 추가 (SYSTEM, Administrator, 일반 계정)

윈도우 계정은 시스템(SYSTEM) / 관리자(ADMINISTRATOR) / 일반 계정으로 구분된다. 윈도우 계정 조회 명령어 일반 사용자 계정 조회 : net users 특정 그룹 계정 조회 : net localgroup [그룹명] (ex. net localgroup administrators) 특정 계정 정보 조회 : net user [계정 아이디] 윈도우 계정 추가 명령어 (cmd 관리자 권한 필요) 일반 권한 계정 추가 : net users [계정 아이디] [계정 패스워드] /add (ex. net user juntheworld 1234 /add) 관리자 그룹에 일반 계정 추가 (권한 상승) : net localgroup administrators [계정 아이디] net localgroup adm..

구문 VS 명령어 (Statement VS Instruction) 소스코드 어셈블리어 인간이 하이 레벨 언어를 쓰는 이유

소스코드의 한 문장을 statement(구문)이라고 하고, 실제로 컴퓨터가 명령을 수행하는 하나의 단위를 instruction(명령어)라고 한다. 프로그램은 명령어의 유한집합을 의미하며, 여기서 명령어는 instruction에 해당한다. CPU는 한번에 하나의 instruction을 수행한다. (구체적으로 CPU의 ALU, Arithmethic Logic Unit) c = a+b; 이렇게 C언어 소스코드의 한 문장(statement)을 쓰게되면, 컴퓨터 내부에서는 레지스터에 값을 가져오고 계산해서 C의 위치에 더한 값을 집어넣는 세부적인 일(instruction)들이 필요하다. 컴파일러가 이 하나의 statement를 수행하기 위해서 세개의 instruction을 실행해야한다. mov eax, dword..

공부/JUN STUDY 2021.09.14

컴파일 VS 인터프리터 (Compile VS Interpreter)

프로그램을 해독하는 방식 (소스코드를 기계어로 변환하는 방식)에는 컴파일과 인터프리터 방식 두가지가 있다. 대부분의 프로그래밍 언어가 컴파일 방식을 택하기 때문에 프로그램의 해독(소스코드 => 기계어)을 컴파일이라고 이야기하는 것이다. 컴파일은 소스코드 => 기계어로의 해독 과정을 뜻하는 단어가 아니다!!! (기계어로의 변환 방식 중 하나가 컴파일) 오브젝트를 생성하고 저장하는 방식 ⇒ 컴파일 (번역본 제작 - 한번 해독 해두고 계속 실행) 그때그때 실행코드를 생성하는 방식 ⇒ 인터프리터 (옆에서 통역 - 실행시 마다 해독) 우리가 한글(=기계어) 밖에 모르는 사람을 위해 영어(=하이레벨언어) 책을 읽어줘야하는 상황에 놓여있을때 (기계어 밖에 모르는 컴퓨터를 위해 하이레벨언어를 해독해줘야하는 상황에 놓여..

공부/JUN STUDY 2021.09.14

ipTIME 공지/광고기능 (ipTIME A604MU 공유기 설정창 열기)

며칠전 ipTIME A604MU를 구입하여 사용자 설정 창에 들어가 비밀번호를 설정했다. 오늘은 ipTIME 사용자 설정 창에 있는 공지/광고 기능을 사용해보았다. ipTIME의 공지/광고 기능은 와이파이가 연결되는 시점에 인터넷을 사용하기 이전 특정한 페이지로 리다이렉트를 시켜 확인버튼을 눌러야 인터넷을 사용할 수 있도록하는 기능이다. (a.k.a captive portal) ipTIME A604MU을 사용할때 브라우저에서 192.168.0.1을 입력해서 접속해보면 다음과 같은 창에서 기능을 설정할 수 있다. 결론부터 이야기하면 잘 안된다. 아이폰 safari 브라우저에서는 거의 확정적으로 안되고.. 가끔가다 확인버튼을 눌러도 다른 인터넷이 아예 안되는 경우가 있었다. 정상작동은 3번에 1번 꼴로 동작..

[Dreamhack.io 단계별로 도전하기] welcome Pwnable CTF / wargame 푸는 순서/방법 (MIC.)

https://dreamhack.io/wargame/challenges/27/ 드림핵 wargame 단계별로 풀어보기 welcome 문제이다. 문제 페이지를 보면 접속 정보와 문제 파일을 확인할 수 있다. 어떻게 접속해서 어떤 문제를 풀라는 것일까?? Pwnable CTF / wargame 풀이는 다음과 같은 순서로 이루어진다. 0. 제공된 문제 파일 다운로드 (공격해야하는 프로그램) 1. 제공 받은 프로그램/소스코드 분석 (문제 파일) 2. 원격으로 공격할 서버에 접속 (접속 정보) 3. 서버에 접속하는 순간 주어준 프로그램이 자동으로 실행된다. 4. 이제 그 프로그램을 잘 주물러서 서버의 쉘을 획득하면 됨! 5. 이후 쉘에서 악의적인 동작(flag 파일 읽기)를 수행 이때 서버에 접속하는 방법은 여러..

CTF/dreamhack.io 2021.08.02

리눅스 환경 변수 설정/입력/바꾸기 (Qt creator 바로 실행하기)

리눅스에서 환경 변수를 설정하거나 입력, 바꾸는 방법을 알아보자. 1. /etc/bash.bashrc 파일 열기 (sudo) cd etc /etc 디렉터리로 들어간 다음, 안에 있는 bash.bashrc파일을 열어주면 된다. 파일을 열때 sudo 권한으로 열지 않으면 저장이 안된다. sudo 권한으로 열어주도록하자. sudo vim bash.bashrc 2. 맨 밑에 경로 추가하기 sudo 권한으로 bash.bashrc 파일을 연뒤, 맨 밑으로 스크롤을 내려 다음과 같이 추가해주면 된다. export PATH=$PATH 예시) export PATH=$PATH:home/ubuntu/qt_5.15.2/Tools/QtCreator/bin Qtcreator를 실행할 수 있는 qtcreator 명령이 다음과 같은..

GDB 기초 명령어 (리눅스 ELF 동적 분석) 내가 보려고 만든 GDB 단축키

gdb 실행gdb ./[프로그램이름]함수의 디스어셈블리 결과 출력disas [함수이름]disassemble [함수이름]프로그램 열기r [프로그램이름]프로그램 실행 (브레이크 포인트 / 중단점 까지)c브레이크 포인트 걸기b *[해당주소]브레이크 포인트 정보 출력info breakpoints해당 번호 브레이크 포인트 삭제delete [브레이크 포인트 번호, 지정안하면 다 삭제 됨]정보 출력 / 지정된 메모리 영역 출력 타입 및 갯수(바이트) 지정p $레지스터이름x/2wx $레지스터 이름 w->word(16진수)타입 2개 출력 x/s $레지스터 이름 s->string(문자열)타입 gdb ./분석하려는프로그램 : gdb시작disassemble 함수이름 : 함수 어셈블리어 확인b *주소 / b $레지스터 / b ..

728x90