Linux 및 Unix 기반 운영 체제는 정보 보안, 네트워크 보안, 암호화 등 분야의 핵심이었습니다. 여기에는 사이버 보안 목적을 위한 다양한 도구가 함께 제공됩니다.
Aircrack-ng, Jack The Ripper 및 Radare2의 세 가지 도구를 살펴보겠습니다.
에어크랙-ng 스위트
Aircrack-ng 제품군은 아마도 가장 널리 사용되는 WiFi 네트워크 스니핑 및 비밀번호 캡처 도구 세트일 것입니다. IEEE 802.11 프로토콜 무선 네트워크 암호를 해독하기 위한 것으로, 대부분 WPA(Wifi Protected Access) 또는 WPA2(Wifi Protected Access 2) 표준으로 보호되고 PSK(Pre-Shared Key) 인증 방식으로 인증됩니다.
네트워크 장치의 상태 모니터링, 패킷 캡처 및 파일 덤핑, 암호 해독 등을 위한 별도의 프로그램을 제공합니다.
암호화 알고리즘을 사용하여 WPA/WPA2를 크래킹하는 것은 연구원에 의해 거의 불가능한 것으로 밝혀졌습니다. 따라서 aircrack-ng와 같은 프로그램으로 WPA/WPA2를 크랙하는 방법은 Brute Force이며 크랙하려면 암호 사전이 필요합니다. 즉, 암호가 사전 단어인 경우에만 암호를 해독할 수 있습니다.
packagecloud.io에서 제공하는 설치 스크립트를 사용하여 시스템에 Aircrack-ng를 쉽게 설치할 수 있습니다. 터미널을 열고 Linux OS 유형에 따라 다음 명령을 실행합니다.
데비안 기반 배포판에서는 다음 명령을 실행하십시오.
컬 -s //packagecloud.io/install/repositories/aircrack-ng/release/script.deb.sh | 스도 배쉬
Red-hat 패키지 관리자(RPM)의 경우, 다음 명령을 실행하십시오.
curl -s //packagecloud.io/install/repositories/aircrack-ng/release/script.rpm.sh | 스도 배쉬
이제 Aircrack-ng를 사용하여 로컬 Wi-Fi 네트워크의 암호를 해독해 보겠습니다.
우선 명령을 실행하십시오. iwconfig
무선 네트워크 인터페이스의 이름을 찾으려면
iwconfig
여기, wlp2s0
내 무선 인터페이스의 이름입니다. ESSID, 즉, 네트워크 이름은 "tmp"이며, 이는 내가 연결된 Wi-Fi 네트워크의 이름입니다.
우리는 사용할 것입니다 에어몬
네트워크 모니터 인터페이스를 시작하는 명령 wlp2s0
.
sudo airmon-ng 시작 wlp2s0
모니터 모드 인터페이스를 찾으려면 끝에 있는 줄을 찾으십시오. 위의 예에서는 mon0
. 이제 다음을 실행하여 네트워크 패킷을 잡기 시작할 것입니다. 에어로덤프-ng
켜짐 mon0
.
sudo airodump-ng mon0 -w 로그
다른 네트워크에서 포착한 네트워크 패킷의 모니터를 표시합니다. 그만큼 -w 로그
부분은 네트워크 패킷을 로그 파일에 저장하기 위한 것입니다. 로그 파일의 접두사는 -w 뒤에 지정되는 부분이며 이 경우 'log'입니다.
프로그램이 암호 해시 키를 포착하려면 네트워크에서 WPA 핸드셰이크가 발생해야 합니다. 즉, 사용자는 연결을 시도해야 합니다. 사용자는 자신의 Wi-Fi 연결을 끊었다가 다시 연결할 수 있습니다. 이제 오른쪽 상단에서 WPA 핸드셰이크가 포착되었음을 알립니다.
이제 Ctrl + C
덤프를 종료합니다. 현재 폴더에서 생성된 로그 파일을 볼 수 있습니다.
다음이자 마지막 단계는 사전과 함께 aircrack-ng를 실행하여 핸드셰이크에서 가로챈 해시 키와 일치하는 단어를 확인하는 것입니다.
aircrack-ng log-01.cap -w tmpdict.txt
여기 log-01.cap 에 의해 생성된 로그 파일입니다. 에어로덤프-ng
명령과 tmpdict.txt 사전 파일입니다. 여기에서 다운로드하여 사용할 수 있는 여러 개의 큰 사전이 온라인으로 제공됩니다.
대상 네트워크를 선택하려면 화면에 표시된 네트워크 목록에서 네트워크의 색인 번호를 입력하십시오.
사전에서 키가 일치하면 중지하고 다음 메시지를 표시합니다.
더 큰 사전 파일의 경우 프로그램이 사전의 모든 항목을 확인하기 때문에 실행하는 데 더 많은 시간이 소요될 것이 분명합니다.
앞에서 언급했듯이 암호는 사전 파일에 있는 경우에만 해독할 수 있습니다. WPA 보안은 암호화 알고리즘을 사용해도 암호 해독이 불가능할 정도로 강력합니다. 따라서 Wi-Fi 장치에 여러 개의 특수 문자가 포함된 강력한 긴 암호를 사용하여 모든 종류의 암호 해독 활동이 성공하지 않도록 하는 것이 좋습니다.
존 더 리퍼
John Ripper는 약한 Unix 암호를 해독하는 데 사용되는 도구입니다. 암호 파일에 대해 호출되는 도구를 사용하기 매우 쉽습니다. 세 가지 모드로 실행됩니다.
단일 모드
모든 GECOS 필드에서 비밀번호를 확인합니다. 즉, 사용자 계정 정보에서 비밀번호를 확인합니다. 사용자 이름, 이름, 성 등
sudo john --single /etc/shadow
단어 목록 모드
단어 목록(사전) 파일의 각 항목으로 암호를 확인합니다.
sudo john --wordlist=passlist.txt /etc/shadow
여기서 사용자 'user3'의 비밀번호는 'admin'입니다. John은 passlist.txt 파일에 'admin'이라는 문구가 있었기 때문에 해독할 수 있었습니다.
증분 모드
구성된 범위에 대해 가능한 모든 조합을 확인하십시오. 기본적으로 ASCII 문자 집합의 모든 문자와 0에서 13 사이의 모든 길이를 고려합니다. 말할 것도 없이 구성된 범위에 따라 이 모드를 실행하는 데 엄청난 시간이 걸릴 수 있습니다.
이에 대한 구성은 다음에서 변경할 수 있습니다. /etc/john/john.conf
파일.
sudo john --증분 /etc/shadow
Radare2
Radare2(별칭 r2)는 Linux용 리버스 엔지니어링 도구입니다. 런타임에 데이터를 조작하기 위한 방대한 옵션 목록과 함께 실행 가능한 바이너리 파일을 디스어셈블하고 디버그할 수 있습니다.
r2를 사용하여 아주 작은 C 프로그램을 분해하는 방법을 살펴보겠습니다. 이 도구를 사용하려면 어셈블리 언어에 대한 기본적인 이해가 필요합니다.
먼저 vim이나 원하는 편집기에서 작은 C 프로그램을 만듭니다.
/*test.c*/ #include int main() { int i = 0; printf("%d\n", i); 반환 0; }
보시다시피, 이 프로그램이 하는 모든 일은 숫자 0을 변수에 저장하고 변수에 액세스하여 인쇄하는 것입니다.
이제 프로그램을 컴파일합니다.
gcc test.c -o 테스트
현재 디렉토리에 'test'라는 이름으로 실행 파일이 생성됩니다. 실행하여 출력 '0'을 확인합니다.
./테스트
이제 r2를 설치해 보겠습니다. Ubuntu 및 유사한 배포판의 패키지 이름은 Radae2입니다.
sudo apt 설치 레이더 2
메모: 이전 Ubuntu 버전(버전 14.04 이하)의 경우 다음을 사용해야 합니다. apt-get
대신 사용해야합니다 적절한
.
이제 실행 파일 'test'로 r2 명령 프롬프트를 시작합니다.
r2 테스트
하위 명령 목록을 얻으려면 다음을 입력하십시오. ?
. 예. 명령에 대한 하위 명령 목록을 얻으려면 ㅏ
, 시작하다 ㅏ?
ㅏ?
우리는 하위 명령을 실행할 것입니다 아아
, 완전한 바이너리 파일을 분석합니다. 아무 것도 출력하지 않습니다. 그러나 바이너리를 분석한 후에는 다음을 사용할 수 있습니다. 피?
코드를 디스어셈블하는 하위 명령.
다음으로 이동합니다. 기본
프로그램의 기능. 모든 실행 가능한 C 프로그램에는 기본
시작점으로 기능합니다.
메인
프롬프트의 접두사가 현재 메모리 주소를 변경했음을 알 수 있습니다. 즉, 프로그램은 이제 함수의 주소로 검색됩니다. 기본
.
다음으로 하위 명령을 사용합니다. PDF
, 함수의 디스어셈블리를 인쇄합니다. 우리는 그것을 심.메인
, 어셈블리 언어에서 주요 기능의 이름입니다.
pdf sym.main
위의 스크린샷에서 볼 수 있듯이 C 프로그램이 완전히 분해되었습니다. 이제 어셈블리를 읽어 프로그램이 수행하는 작업을 분석할 수 있습니다.
예를 들어, mov dword [rbp-0x4], 0x0
메모리 위치에 값(0)을 할당하는 것입니다. rbp – 기본 포인터, 0x4 — 정수에 필요한 메모리 크기입니다.
우리는 sym.imp.printf 호출
, 레지스터의 내용을 인쇄합니다 eax
, 즉 값 0.
r2에는 프로그램의 흐름을 조작하고 디버깅하기 위한 더 많은 옵션이 있습니다. 다음과 같이 표시되는 다른 옵션을 시도할 수 있습니다. ?
명령. 로그 또는 디스어셈블리 출력을 파일에 저장하려면 출력을 아래와 같이 파이프할 수 있습니다.
pdf 메인 > main.s
이것은 Linux에서 가장 널리 사용되는 해킹 도구에 대한 개요였습니다. 이 페이지가 도움이 되었다면 즐겨찾는 온라인 커뮤니티에 공유하십시오.