- 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 | 31 |
- 네트워크
- JSP
- Shell script
- ACL
- LEVIATHAN
- docker
- Java
- Tkinter
- API
- 쉘 스크립트
- nginx
- RaspberryPi
- 리눅스
- synology
- 그라파나
- GUI
- Android
- System
- 쉘 스크립트 if문
- Python
- 메소드
- 클라우드
- centos docker
- 안드로이드
- 프로젝트
- 자바
- 라즈베리파이
- 쉘 스크립트 기초
- Linux
- GPIO
- Today
- Total
목록보안 (140)
IT창고
네트워크프로그래밍이란?네트워크 프로그래밍은 다른말로 소켓프로그래밍이라고도 할수있습니다.소켓이란 입/출력을 하기위한 것으로 표준, 파일, 네트워크 입출력을 할수있습니다.통신하려는 타입에 맞춰 소켓을 생성해서 사용합니다. !socket family- AF_INET/6 - ipv4로 통신 6으로하면 6으로 통신- AF_PACKET - raw 소켓일때 패킷타입으로 사용 !type- SOCK_STREAM - tcp통신- SOCK_DGRAM - udp통신- SOCK_RAW 파이썬 공식홈페이지에 socket 에 문서가 있습니다.https://docs.python.org/3/search.html?q=socket&check_keywords=yes&area=default 네트워크 모델- 1:1 (peer To peer 즉..
네트워크 프로그래밍을 위한 실습환경을 구성해보겠습니다. 네트워크 프로그래밍을 해보기 위해서는 리눅스, 네트워크상태, 파이썬 실행기가 필요합니다.네트워크는 브릿지상태로 통신이 되어야하며 리눅스는 CentOS 6.9버전을 사용하겠습니다. Cent6.9에는 기본적으로 파이썬2Ver이 설치되어있지만 파이썬3Ver을 따로 설치하겠습니다. 가상머신(Vmware)로 리눅스를 하나 구축하겠습니다. 통신이 가능한지 확인을 위하여 ping테스트를 해주고 문제 없다면 보안설정을 해제합니다. IPTABLES -> /etc/sysconfig 디렉토리에서 iptables 파일을 삭제합니다.SELINUX -> /etc/sysconfig 디렉토리에서 selinux링크파일을 수정합니다. -> SELINUX=disabled 위와 같이 ..
보호되어 있는 글입니다.
칼리리눅스의 저장소(Repository)에 대해 알아보겠습니다.칼리리눅스의 저장소는 kalidml 모든패키지들이 있는 저장소로 패키지를 설치하거나 업데이트를 할수있습니다.최초의 칼리리눅스 저장소는 2014년 kali Ver1 moto입니다. 2015년 kali Ver2가 되면서 저장소가 sana로 바뀌고 2016년 지금 현재도 사용하는 Rolling저장소를 사용하고 있습니다. /etc/apt/sources.list 파일에서 저장소를 설정할수 있습니다. 현재는 Rolling을 사용하고 있지만 예전 저장소의 패키지가 필요하다면 sources.list파일에 예전 저장소 주소를 추가해주면 됩니다. 정상적으로 설정이 되었는지는 apt-get update를 해보면 현재 파일에 등록된 주소가 정확한지 알수있습니다. ..
윈도우 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언어 인자가 없는 경우에 대해 알아보겠습니다.인자를 입력하지 않아도 하나의 인자는 들어가 있음을 확인할수있습니다. 그리고 인자를 개수를 추가할때마다 출력값이 늘어남을 확인할수있습니다. 이번에..