본문 바로가기
300x250

분류255

[kali linux] - Netcat을 이용한 Bind Shell과 Reverse Shell Netcat은 쉘을 생성해 원격으로 파일을 주고받는데 많이 쓰이는 툴입니다. 쉘의 종류에는 Bind Shell, Reverse Shell 두가지가 있는데 각각 반대의 클라이언트와 서버의 역할의 차이로 구분짓습니다. Bind shell(바인드쉘) : 타겟측에서 서버가 열리고 해커가 타겟으로 접속해 쉘을 생성하는 방식 Reverse Shell(리버스쉘) : 해커측에서 서버를 열고 타겟이 해커의 서버에 접속한다. Netcat(넷캣)은 원격으로 파일을 주고받는 용도로만 쓸수도 있지만 해킹을 할때 사용하면 원격으로 탈취한 타겟의 PC에서 중요 정보를 탈취하는데 사용되는 필수툴로 자리하고 있습니다. Bind Shell 사용 예시 타겟의 서버가 오픈 해커가 타겟의 서버로 접속해서 쉘을 생성 서버측에서는 netcat .. 2020. 10. 3.
[Linux] - Kali Linux netcat + 기초명령어 [Linux] 우분투를 통해 배우는 Linux 기초 (Ubuntu 18.04v) 리눅스 관리를 위한 기초 명령어에 대해 배워보겠다 Ubuntu를 사용할거고 버전은 18.04버전 기준이다 사실 지난번 20.04버전을 설치했지만 기존에 실습을 진행하던 가상머신이 있기에 부득이하게 �� hobbylists.tistory.com man(manual) man #manual의 약자 메뉴얼 명령어 man은 manual의 약자로 해당 프로그램에 대한 매뉴얼을 출력합니다. 예시 > man ls // ls 명령어에 대한 메뉴얼 출력 man -h -h 옵션을 붙여도 간략한 옵션과 설명을 들을 수 있다. man -h 을 입력하면 man 명령어에 대한 자세한 사용법을 알 수 있습니다.(-h = help) which which .. 2020. 10. 1.
[리눅스] - 모의해킹용 환경 구성 (Kali linux, Metasploitable, Window metasploitable3, Virtual Box) 먼저 가상환경 Virtual Box를 사용해 Kali linux를 설치하여 모의해킹 실습용 환경을 구성한다 Kali linux의 설치법 역시 타 linux (ex. ubuntu, fedora) 환경과 동일하기 때문에 지난 우분투 20.04버전 설치법&Virtual Box 설치법의 라인을 따라 진행하면 된다. https://hobbylists.tistory.com/entry/Linux-%EB%A6%AC%EB%88%85%EC%8A%A4-%EC%9A%B0%EB%B6%84%ED%88%AC-2004%EB%B2%84%EC%A0%84-%EC%84%A4%EC%B9%98%EB%B2%95-Ubuntu-2004v [Linux] 리눅스 우분투 20.04버전 설치법 (Ubuntu 20.04v) 리눅스는 또 다른 운영체제이며 나.. 2020. 9. 30.
[보안] 해킹 기초 악성코드의 종류와 예방법 공부 해킹의 단계 1.정찰 정보수집 2.스캐닝 및 취약점 분석 정보수집 3.침투 (gaining access) 공격 익스플로잇 4.권한상승 (privilege escalation) 포스트 익스플로잇 5.백도어 관리 maintaining access) 포스트 익스플로잇 6.흔적지우기 (cover tracks) 포스트 익스플로잇 악성코드(Malware) 악성코드란 Malware이며 악의적인 목적을 토대로 제작된 코드나 소프트웨어를 칭하는 단어입니다. 여기서 Malware란 Malicious + Software 가 합해진 단어이며 최근 가장 많이 알려진 악성코드로는 주로 랜섬웨어가 있으며 그 전에는 웜이 가장 많았습니다. 악성코드의 공격 대상은 특정인부터 특정 그룹 혹은 불특정 다수인 세 가지 경우가 존재합니다. .. 2020. 9. 28.
[CVE] 보안 취약점에 관한 정보 취합 CVE CVE(Common Vulnerabilities and Exposures) 보안 취약점 정리 사이트 Common Vulnerabilities and Exposures 줄여서 CVE는 MITRE이라는 단체에서 관리하는 취약점 정보가 취합되어 있는 사이트입니다. CVE - CVE The mission of the CVE® Program is to identify, define, and catalog publicly disclosed cybersecurity vulnerabilities. cve.mitre.org CVE에서는 다양한 보안 취약점들을 CVE ID로 관리하는데 CVE ID의 형태는 CVE ID : CVE + 취약점 발견 연도 + 취약점 고유 일련번호 위와 같은 형태로 이루어지기 때문에 CVE ID.. 2020. 9. 22.
[Python] numpy, random 라이브러리로 로또 번호 생성기 만들기 random(난수 생성 라이브러리) random은 난수 생성 모듈로 내장 라이브러리 중 하나이다 random의 random()은 0이상 1 미만의 수중 랜덤한 값을 return한다. ex) random() >>> random.random() 0.38001436104737807 0이상 1 미만이기 때문에 그 사이의 실수값이 return 되었다. 그러면 로또 번호를 얻기 위해서는 지정된 범위내에서 값을 반환하도록 사용해야 하는데 그 기능을 하는 함수는 따로있다. ex) randrange() >>> random.randrange(0,46) 18 randrange()는 말 그대로 ()내에 범위를 지정해준 후 그 범위내의 값을 반환한다. range()는 범위를 설정하는 함수고 range()에 rand(난수)를 붙.. 2020. 9. 16.
[Python] 함수와 사용법 많이 쓰이는 언어 C나Java등 기존 프로그래밍 언어는 함수지향적 코딩을 하는데 Python은 interpreter식 그리고 객체지향적 언어이다 역시 함수의 기능도 지원하는데 기존 제작되어 있는 라이브러리와 모듈을 사용하면 다양한 기능을 사용하는 여러 함수들을 사용할 수 있다. def function_test: #함수의 원형 끝에는 : pass 함수를 생성할 때에는 def라는 예약어와 함께 함수의 이름을 선언해주면 된다 제어문과 마찬가지로 함수의 이름 끝에는 :를 붙여줘야 한다 함수는 수학적 정의의 함수와 다르게 프로그램속 함수는 기능의 집합이라는 의미를 가지고 있으며 우리가 만들 함수들은 전부 각 기능에 걸맞는 이름을 가지고 있어야 하며 내부의 코드들 역시 우리가 원하는 기능과 부합해야만 한다. 예를 .. 2020. 9. 11.
C언어 문자열 함수를 이용한 심화예제 풀어보기 C언어의 문자열을 다루는 함수에 대한 심화 내용을 예제로 풀어보겠습니다. 1. 배열에 담긴 문자의 크기 반환하기 - sizeof(), strlen() #include int main() { char str[20]="Hello world!"; int count=0; int size=0; while(str[count] !='\0'){ count++; size++; } printf("str 문자열에 담긴 문자열의 크기는 %d입니다.", size); return 0; } >>> str 문자열에 담긴 문자열의 크기는 12입니다. C에서 문자열의 크기와 길이를 구하는 함수들은 sizeof()나 strlen()등이 있지만 함수를 이용하지 않고 직접 문자의 크기를 카운트해보겠습니다. 반복문을 사용해 size를 증가시켜.. 2020. 9. 10.
C언어 배열과 포인터 심화내용 알아보기 C언어에서의 배열과 포인터는 서로 밀접한 관계의 개념이며 범용성이 커 아주 잘 쓰이는 기능입니다. 그러므로 초심자가 새로 배우는 입장에서는 어려울 수도 있습니다. ​ ​ 1.배열과 포인터 - 포인터로 배열 사용하기 #include int main() { int score[5]={1,2,3,4,5}; int *ap; ap=score; for(int i=0; i>> 1 2 3 4 5 1 6487536 score 배열의 크기는 5이며 int형 배열이므로 5개의 int형 변수가 들어갈 수 있습니다. 또한 포인터 변수 ap는 배열 score를 참조합니다. 여기서 참조란 배열의 시작 주소를 가리키는 것을 의미합니다. 2. C언어 포인터 배열 예제1 - 배열의 평균값 #include int main() { doubl.. 2020. 9. 10.
[C] 포인터와 메모리 기초 &,* Pointer는 C언어가 가진 대표적인 기능 중 하나이다 포인터 말 그대로 가리킨다 라는 의미를 충실히 수행하는 기능으로써 말 그대로 변수와 변수의 주소를 가리키는 의미를 가진다 scanf()에서 변수를 입력받을 때에 &연산자를 사용하는 이유도 여기서 알 수 있다. ​ ​ ​ C언어 - 포인터란? 그리고 메모리의 구조 #include int main() { char ch; int in; double db; printf("%u\n", &ch); printf("%u\n", &in); printf("%u\n", &db); return 0; } >>> 6487579, 6487575, 6487567 우리가 변수를 생성하면 그 변수는 메모리상의 한 부분에 할당이 된다 그 할당된 부분을 가리키는 것이 포인터 위치한 .. 2020. 9. 10.
300x250