728x90
반응형

 Docker 이미지로 제공되는 Kali linux 사용하기

 

 

https://www.kali.org/docs/containers/official-kalilinux-docker-images/

 

Official Kali Linux Docker Images | Kali Linux Documentation

Kali provides official Kali Docker images that are updated once a week on Docker Hub. You can thus easily build your own Kali containers on top of those that we provide. We offer various images to try and suit your needs, all with a different variation of

www.kali.org

 

설치하기

 도커의 설치는 docker pull 로 이미지를 먼저 내려 받는다.

host$ docker pull docker.io/kalilinux/kali-rolling

컨테이너의 shell 접속하기

host$ docker run --tty --interactive kalilinux/kali-rolling

최초 설치 될 경우 Kali Linux의 기본 패키지가 함께 제공되지 않기 때문에 설치를 해야 한다.

docker# sudo apt full-upgrade -y
docker# sudo apt install -y kali-linux-default. 혹은 kali-linux-headless 

기본 설치가 완료 되었다면 아래 목록에서 원하는 패키지를 설치 한다. 나는 먼저 정보 수집 툴을 설치해 보겠다.

docker# apt install kali-tools-information-gathering

설치 하고자 하는 패키지는 아래를 참고한다.

System

  • kali-linux-core: Base Kali Linux System – core items that are always included
  • kali-linux-headless: Default install that doesn’t require GUI
  • kali-linux-default: “Default” desktop (amd64/i386) images include these tools
  • kali-linux-arm: All tools suitable for ARM devices
  • kali-linux-nethunter: Tools used as part of Kali NetHunter

Desktop environments/Window managers

  • kali-desktop-core: Any key tools required for a GUI image
  • kali-desktop-e17: Enlightenment (WM)
  • kali-desktop-gnome: GNOME (DE)
  • kali-desktop-i3: i3 (WM)
  • kali-desktop-kde: KDE (DE)
  • kali-desktop-lxde: LXDE (WM)
  • kali-desktop-mate: MATE (DE)
  • kali-desktop-xfce: Xfce (WM)

Tools

  • kali-tools-gpu: Tools which benefit from having access to GPU hardware
  • kali-tools-hardware: Hardware hacking tools
  • kali-tools-crypto-stego: Tools based around Cryptography & Steganography
  • kali-tools-fuzzing: For fuzzing protocols
  • kali-tools-802-11: 802.11 (Commonly known as “Wi-Fi”)
  • kali-tools-bluetooth: For targeting Bluetooth devices
  • kali-tools-rfid: Radio-Frequency IDentification tools
  • kali-tools-sdr: Software-Defined Radio tools
  • kali-tools-voip: Voice over IP tools
  • kali-tools-windows-resources: Any resources which can be executed on a Windows hosts
  • kali-linux-labs: Environments for learning and practising on
  • kali-tools-information-gathering: Used for Open Source Intelligence (OSINT) & information gathering
  • kali-tools-vulnerability: Vulnerability assessments tools
  • kali-tools-web: Designed doing web applications attacks
  • kali-tools-database: Based around any database attacks
  • kali-tools-passwords: Helpful for password cracking attacks – Online & offline
  • kali-tools-wireless: All tools based around Wireless protocols – 802.11, Bluetooth, RFID & SDR
  • kali-tools-reverse-engineering: For reverse engineering binaries
  • kali-tools-exploitation: Commonly used for doing exploitation
  • kali-tools-social-engineering: Aimed for doing social engineering techniques
  • kali-tools-sniffing-spoofing: Any tools meant for sniffing & spoofing
  • kali-tools-post-exploitation: Techniques for post exploitation stage
  • kali-tools-forensics: Forensic tools – Live & Offline
  • kali-tools-reporting: Reporting tools

Others

  • kali-linux-large: Our previous default tools for amd64/i386 images
  • kali-linux-everything: Every metapackage and tool listed here
  • kali-desktop-live: Used during a live session when booted from the image

 

설치와 사용을 완료 하였다면 exit 로 나오면 된다.

사용하기

설치를 하고 나서 exit 로 나온 이후에 다시 접속 하고자 할 경우 "docker run --tty --interactive kalilinux/kali-rolling" 명령어로 접속할 경우 새로운 kali-rolling 컨테이너가 뜨고 이전에 설치한 컨테이너는 사용이 불가능 하다. 이전에 설치한 도커 컨테이너를 이용하고자 하는 경우 아래와 같이 사용한다.

kali@kali:~$ docker container list --all
CONTAINER ID   IMAGE                    COMMAND       CREATED         STATUS                          PORTS     NAMES
d36922fa21e8   kalilinux/kali-rolling   "/bin/bash"   2 minutes ago   Exited (0) About a minute ago             lucid_heyrovsky
kali@kali:~$
kali@kali:~$ docker start d36922fa21e8
kali@kali:~$ docker attach d36922fa21e8

  위와 같이 할 경우 이전에 접속하였던 도커 컨테이너에 그대로 접속하여 설치된 명령어의 사용이 가능하다.
  실제 Kali의 명령어들은 아래를 참고한다.

https://www.kali.org/tools/

 

Kali Tools | Kali Linux Tools

Home of Kali Linux, an Advanced Penetration Testing Linux distribution used for Penetration Testing, Ethical Hacking and network security assessments.

www.kali.org

 

728x90
반응형

'보안' 카테고리의 다른 글

해외 임시 핸드폰 번호, 해외 무료 SMS 받기  (1) 2020.03.24
데이터 연계/결합의 개념  (0) 2020.03.01
일회용 메일 주소  (0) 2018.06.25
728x90
반응형

  구글 엔지니어 하이럼이 이야기 하는 법칙

https://www.hyrumslaw.com/

 

Hyrum's Law

Hyrum's Law An observation on Software Engineering Put succinctly, the observation is this: With a sufficient number of users of an API, it does not matter what you promise in the contract: all observable behaviors of your system will be depended on by som

www.hyrumslaw.com

소프트웨어 엔지니어링의 관찰

API 사용자가 충분 하면 명세서에 약속된 내용이 중요하지 않습니다.
시스템에서 관찰할 수 있는 모든 동작은 누군가에 의해 좌우됩니다.

지난 몇 년 동안 지구상에서 가장 복잡한 소프트웨어 시스템 중 하나에서 저수준 인프라 마이그레이션을 수행하면서 인터페이스와 구현 간의 차이점에 대해 몇 가지 관찰했습니다. 우리는 일반적으로 인터페이스를 시스템과 상호 작용하기 위한 추상화(예: 자동차의 스티어링 휠 및 페달)로 생각하고 구현은 시스템이 작동하는 방식(바퀴 및 엔진)으로 생각합니다. 이것은 여러 가지 이유로 유용합니다. 그 중 가장 중요한 이유는 가장 유용한 시스템이 한 개인이나 그룹이 완전히 이해하기에는 너무 복잡해지며 추상화는 그 복잡성을 관리하는 데 필수적입니다.

정확한 추상화 수준을 정의하는 것은 완전히 별개의 논의이지만(Mythical Man-Month 참조), 우리는 추상화가 정의되면 구체적이라고 생각하는 것을 좋아합니다. 다시 말해, 인터페이스는 이론적으로 시스템 소비자와 구현자를 명확하게 구분해야 합니다. 실제로, 이 이론은 시스템의 사용이 증가하고 사용자가 인터페이스를 통해 의도적으로 노출되거나 정기적인 사용을 통해 확인하는 구현 세부 사항에 의존하기 시작하면서 무너집니다. Spolsky의 "Leaky Abstractions의 법칙"은 내부 구현 세부 사항에 대한 소비자의 의존성을 구현합니다.

논리적으로 극단으로 치면 구어체로 "암시적 인터페이스의 법칙"이라고 하는 다음과 같은 관찰 결과가 나타납니다. 충분히 사용하면 비공개 구현과 같은 것은 없습니다. 즉, 인터페이스에 충분한 소비자가 있으면 의도적이든 아니든 구현의 모든 측면에 집합적으로 의존하게 됩니다. 이 효과는 구현에 대한 변경을 제한하는 역할을 합니다. 이제 명시적으로 문서화된 인터페이스와 사용에 의해 캡처된 암시적 인터페이스를 모두 준수해야 합니다. 우리는 종종 이 현상을 "버그 대 버그 호환성"이라고 합니다.

암시적 인터페이스의 생성은 일반적으로 점진적으로 이루어지며 인터페이스 소비자는 일반적으로 이러한 일이 진행되는 동안 인식하지 못합니다. 예를 들어, 인터페이스는 성능에 대해 보장하지 않을 수 있지만 소비자는 종종 구현에서 특정 수준의 성능을 기대하게 됩니다. 이러한 기대는 시스템에 대한 암시적 인터페이스의 일부가 되며 시스템의 변경 사항은 소비자를 위해 계속 기능하기 위해 이러한 성능 특성을 유지해야 합니다.

모든 소비자가 동일한 암시적 인터페이스에 의존하는 것은 아니지만 충분한 소비자가 주어지면 암시적 인터페이스는 결국 구현과 정확히 일치합니다. 이 시점에서 인터페이스는 증발했습니다. 구현이 인터페이스가 되었으며, 인터페이스에 대한 변경 사항은 소비자의 기대를 위반하게 됩니다. 운이 좋으면 광범위하고 포괄적이며 자동화된 테스트를 통해 이러한 새로운 기대치를 감지할 수 있지만 개선할 수는 없습니다.

암시적 인터페이스는 대규모 시스템의 유기적 성장으로 인해 발생하며 문제가 존재하지 않기를 바랄 수도 있지만 설계자와 엔지니어는 복잡한 시스템을 구축 및 유지 관리할 때 이를 고려하는 것이 현명합니다. 따라서 암시적 인터페이스가 시스템 설계와 발전을 어떻게 제한하는지 알고, 합리적으로 널리 사용되는 시스템의 경우 인터페이스가 생각보다 훨씬 더 깊숙이 도달한다는 것을 알고 있습니다.

728x90
반응형
728x90
반응형

  윈도우즈와 맥을 사용하는 입장에서 키보드와 마우스를 번갈아 가면서 사용하는건 여간 귀찮은 일이 아닐수 없다. 특히 데스크탑이라면 여러개의 키보드와 마우스가 어지럽게 책상에 놓여질수 있을것이다. 물론 KVM을 사용하는게 가장 좋은 일이지만 KVM이 없다면 키보드 마우스 공유 프로그램을 사용하는것도 한가지 방법이다.

 먼저 공유 프로그램을 사용하기 위해서는 동일 인터넷 환경에 PC가 위치하는게 가장 좋다. 
 그런다음 아래의 프로그램을 각각 설치한다.

https://github.com/debauchee/barrier/releases

 

Releases · debauchee/barrier

Open-source KVM software. Contribute to debauchee/barrier development by creating an account on GitHub.

github.com

 

프로그램을 모두 설치하고 나면 아래와 같은 화면을 볼수 있는데.. 조건은 아래와 같다.

1. Server : 키보드와 마우스를 사용하고자 하는 PC에 설정한다. (윈도우나 맥의 경우 방화벽이 켜져 있으면 작동하지 않으니 예외처리를 꼭 해주어야 한다.)

2. Client : 키보드와 마우스를 공유 받는 쪽이다. 서버를 시작한 이후에 별도로 Auto Config에 서버의 IP가 나오지 않는 다면 설정이 잘못된 것이다. 이런 경우 꼭 Log를 검사해 보기를 바란다. 만약 다른 네트워크라면 서버 IP에 별도로 IP를 지정한다.

 

 아래는 서버단에서의 상세 설정 화면이다. 가급적 SSL을 사용하기를 바란다. 포트는 24800번으로 만약 방화벽에서 예외 처리를 해주지 않으면 서로간에 통신이 되지 않아 Auto config가 동작하지 않는다.

 

Enable SSL 사용시

기본적으로 간략한 설정을 한 이후에 제대로 동작하지 않아 Log를 확인해 보니 아래와 같이 Barrier.pem 파일이 존재하지 않아 서로 SSL 통신이 이루어 지지 않는 것을 알수 있다.

  이렬 경우 해당 디렉터리로 가서 아래의 명령어로 pem 파일만 생성해 주면 된다.

SSL openssl req -x509 -nodes -days 365 -subj /CN=barrier -newkey rsa:4096 -keyout barrier.pem -out barrier.pem

 

  정상적으로 연결이 된다면.. 아래와 같은 로그를 출력하면서 정상적으로 마우스를 이용하여 다른 PC로 이동이 가능하다.

 

https://github.com/debauchee/barrier

 

GitHub - debauchee/barrier: Open-source KVM software

Open-source KVM software. Contribute to debauchee/barrier development by creating an account on GitHub.

github.com

 

 

728x90
반응형

+ Recent posts