- NEW초롱이의 하루
- kisa
- 길은 가면, 뒤에 있다
- C언어 예술가
- Zer0 day - Zer0 day
- Information Security
- Secure-EDU
- 앙큼한유채's 일상 Story
- Library of Ezbeat (잠정 폐쇄)
- The Factory
- 안드
- 모후모후의 커뮤니티
- 공학도의 잡다한 시선
- 안드2
- IT속에 코코아
- IP주소검색(whois)
- IP주소검색(좌표포함)
- 소프트웨어 경력 관리
- 해저 케이블 지도
- MAC주소검색
- IANA
- 포트번호검색
- 자신의IP확인
- 웹페이퍼캡처
- 나의패스워드보안등급
- 웹 취약점 분석
- IT용어정리
- GitHub
- 라이브러리 모음
- 웹마당넷
- 시스템콜참고
- BCD 변환
- 보안뉴스
- 코딩도장(C, Python)
- 백준알고리즘
- 코딩테스트 연습
- 웹 사이트 테스트
- 스크립트꾸미기
- ctf대회목록
- 전자신문
- hash 크랙
- CVE
- 도메인등록
- N클라우드
- BugBountyList
- 칼리공식사이트
- CR4FTING BOX
- 아스키코드 변환
- 웹 사이트 통계 및 평가
- PDF변환
- AWS 및 클라우드 정보
- 가상화 및 서버관련
- 티오리
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 네트워크
- 쉘 스크립트
- Linux
- GUI
- Tkinter
- 라즈베리파이
- 쉘 스크립트 if문
- LEVIATHAN
- Java
- JSP
- docker
- RaspberryPi
- 자바
- 클라우드
- GPIO
- synology
- 쉘 스크립트 기초
- nginx
- Android
- Shell script
- 안드로이드
- Python
- API
- ACL
- 그라파나
- System
- 메소드
- centos docker
- 프로젝트
- 리눅스
- Today
- Total
목록보안/System (25)
IT창고
보호되어 있는 글입니다.
윈도우 XP환경에서 BOF취약점이 있는 프로그램을 공격해보겠습니다. 운영체제환경- Windows XP Professional with Service Pack 2- VL (English) 32bit- 보안프로그램 X- DEP X 윈도우XP에 적용된 메모리 보호기법은 DEP , randomization이 있습니다.32bit 메모리 구조를 간단히 살펴보겠습니다. 원도우32bit 메모리는 프로세스당 4G를 사용합니다. 메모리 구조를 보면 리눅스는 1G씩 나눠지지만 원도우는 2G씩 나눠집니다.-------------------- high 커널 2G --------------------(0x7ffe0000)(사용자)DLL---- 2G스택-------------------- low 실행원리를 알아보기 위해 DEP를 ..
보호되어 있는 글입니다.
쉘 코드(ShellCode)에 대해 알아보겠습니다.쉘코드는 시스템의 특정 명령을 수행하는 크기가 작은 코드로 주로 기계어로 구성되어있습니다. 쉘코드를 만들어 타겟 프로세스 메모리에 실행하고자 하는 명령들을 올려놓고 실행할수있습니다.조건이 있습니다.1. 기계어로 작성되어 있어야만 합니다. objdump -d옵션을 사용해서 해당 소스의 기계어를 확인해볼수있습니다. 2. 데이터 세그먼트는 사용할수 없습니다. 세그먼트를 사용하게 되면 push주소가 고정값이 되는데 타겟프로그램에 해당 문자가 있을 확률은 거의 없기 때문입니다.call도 시스템함수가 있을 보장이 없기 때문에 주소를 없애서 코드를 작성해야만 합니다. 간단한 소스를 만들어보겠습니다.C언어로 system("/bin/sh"); 인 쉘를 사용하는 코드입니다..
버퍼 오버플로우(Buffer OverFlow)에 대해 알아보겠습니다.버퍼오버플로우는 정상적인 접근이 불가능한 메모리 공간에 임의의 코드를 집어넣는 기법으로 1995년도에 처음 phrack사이트에서 Aleph One이란 저자명으로 smashing the stack for fun and profit이란 문서를 올려 최초공개 되었습니다. 버퍼오버플로우가 생기는 원인으로 보안에 취약한 함수(scanf, gets, strcpy, ....)를 사용하는 경우입니다. 시스템 취약점의 거의 대부분은 버퍼오버플로우 취약점을 가지고 있습니다. strcpy함수를 사용한 C언어 프로그램입니다. Hello! 인자를 넣어 보면 정상적인 출력이 됨을 확인할수있습니다. 하지만 만약 해당 인자에 메모리 크기를 넘어서는 값이 온다면 어떻..
리눅스의 디버거에 대해 알아보겠습니다. 사용하게 될 디버거는 GDB라는 디버거로 GNU 소프트웨어를 위한 기본적인 디버거 입니다.디버거의 이름 유례는 최초의 오류가 있을때 회로에 벌레(bug)가 있어 오류가 일어난 일을 기록하여 bug는 프로그램에 존재하는 잠재적인 오류를 뜻하게 되었습니다. de-hugging은 버그를 찾는 행위를 말하며 디버거(de-bugger)는 버그를 찾는 행위를 도와주는 도구를 말하게 되었습니다. 에러는 여러종류의 에러가 있습니다. 그 중에 런타임 에러는 정말 찾기 힘든데 디버거는 이러한 찾기 힘든 에러를 찾을수있도록 도와주는 도구입니다. Tip- GDB 디버거로 프로세스를 실행하면 프로세스 권한을 디버거가 같게 됩니다. - GDB말고 IDA, ollydbg 등의 디버거 종류도 ..
C표준에서 정의되는 main함수는 딱 두 가지로 아래와 같습니다.- int main();- int main( int argc, char *argc[] ) 이 두개가 표준 원형이며 void main(void)같은건 실제 컴파일이 되며 어셈블리어로 변형될때 int main으로 바뀝니다.또한 main 함수를 사용할때 인자를 생략해도 int argc, char *argc[] 인자는 존재합니다. 배열 포인터: 배열을 가르키는 포이터포인터 배열: 주소가 들어있는 배열 |주소 | 주소| ....| null | = *argv[] C언어 인자가 없는 경우에 대해 알아보겠습니다.인자를 입력하지 않아도 하나의 인자는 들어가 있음을 확인할수있습니다. 그리고 인자를 개수를 추가할때마다 출력값이 늘어남을 확인할수있습니다. 이번에..
메모리의 구조를 살펴보기 위하여 간단한 출력프로그램을 만들어보겠습니다. 출력을하고 sleep명령어를 사용한 프로그램입니다. 백드라운드로 전환하고 이 프로그램이 실행되는지 프로세스를 확인합니다. 실제로 방금 실행한 프로그램이 있는데 여기에 PID를 확인합니다. proc디렉토리는 가상디렉토리로 리눅스에서는 실행프로세스도 모두 실행파일의 형태로 존재를 합니다. 여기서 방금 실행한 프로그램의 PID는 851인데 /proc/851 디렉토리에 들어가면 파일들이 보입니다. 그중 maps파일은 프로세스에서 사용중인 메모리의 정보를 가지고 있습니다! 이 파일에서 메모리의 정보를 확인할수있으며 커널메모리의 정보도 포함합니다. 08048000-08049000 r-xp 00000000 03:01 980584 /testgsk/..
어셈블리어의 반복문(for, while, do_while)에 대해 알아보겠습니다. 어셈블리어에서 분기문과 반복문의 차이는 jmp명령어를 사용해서 반복시켜주는가 아닌가로 나눠집니다. 분기문과 반복문의 차이가 거의 없습니다. 어셈블리어에서 증감명령어가 있는데 inc, dec 명령어가 있습니다.inc 명령어는 메모리나 레지스터 값을 1씩 증가 시킵니다.dec 명령어는 메모리나 레지스터 값을 1씩 감소 시킵니다. 먼저 간단한 반복문을 만들어보겠습니다.C언어로 만든 소스입니다.10값에서 1씩 감소하는 프로그램입니다. 이와 같은 기능을 가진 어셈블리어를 만들어보겠습니다. 반복문과 분기문의 차이는 코드가 반복되는가 아닌가의 차이입니다. 무한루프에 빠지지않도록 조건 분기를 꼭 주어야 합니다. C언어로 for문을 확인하..
명령어로는 어셈블리어의 shift연산, 논리연산, 형변환에 대해 알아보겠습니다. shift연산에 대해 알아보겠습니다. shift연산은 0000 0001의 숫자가 있으면 왼쪽으로 한번 shift를 할 경우 0000 0010이 됩니다. 명령어로는 shl , shr 입니다. 이 명령어를 논리shift라고합니다. 논리shift는 부호가 없는 연산을 합니다. edx의 값은 4인 0100 입니다. shl 명령어로 왼쪽으로 2번 shift하게 되면 0001 0000 이되면서 2진수를 10진수로 바꾸면 값은 16임을 확인할수있습니다. 산술 shift에 대해 알아보겠습니다. 전체적인 내용은 논리shift와 같으며 단 산술shift는 부호가 있는 연산이 가능합니다. 실행파일을 실행해보면 -부호가 있는걸 확인할수있습니다. ..