요번 내용은 besside-ng를 사용한 몇가지 기술적인 공격을 시연할 것입니다. Besside-ng 는 aircrack-ng 속에 들어있는 와이파이 해킹 도구입니다. 와이파이 인젝션이 가능한 네트워크 어뎁터 카드와 함께 사용하면, WPA handshake를 네트워크를 사용하고 있는 사용자로부터 획득할 수 있습니다. WEP같은 경우에는 쉽게 해킹할 수 있고요. 다른 공격 도구들과는 달리 특별한 부과 요소들이 필요 없고 SSH를 사용할 수 있기 때문에 원격으로 조종이 가능합니다.

제가 생각하기에 besside-ng는 현재 와이파이를 해킹하기 가장 강력한 도구인 것 같습니다. C 언어를 사용하여 2010년에 제작되었으며 WPA handshake를 획득하는데 가장 공격적이고 지속적입니다. Besside-ng는 직접 커스터마이즈 할 수 있는 옵션을 사용해서 handshake를 분산해 해독할 수 있게 합니다. 또한, 평균적으로 스캔한 네트워크 중 18%의 비밀번호를 알아냅니다.
그럼 이제 어떻게 작동하는지 알아볼까요?
작동원리
암호화된 와이파이는 WPA 혹은 WEP 사이에서 한 가지를 골라 사용합니다.
WEP 같은 경우에는 쉽게 암호를 풀 수 있지만, WPA와 WPA2는 장치가 네트워크와 연결할 때 생기는 ‘handshake’를 수집하여 이를 바탕으로 맞는 비밀번호가 나올때까지 대입합니다. 그렇기 때문에 좋은 ‘단어 사전’을 가지고 있는 것은 중요합니다
2017년도에 와서는 더 많은 옵션들이 생겼습니다. 시간을 절약하기 위해서 우리는 우리가 얻은 ‘handshake’를 더욱더 강력한 기계에게 분산시켜 다양한 비밀번호를 넣게합니다 (가장 단순한것과 좋지않은 비밀번호등). 이렇게 간단한 비밀번호를 사용하기 때문에 대략 10-20%의 비밀번호는 쉽게 뚫립니다.

‘handshake’를 얻기 뒤해서는 네트워크에 기기가 연결되어있어야 합니다. besside-ng는 네트워크 연결을 끊어버리는 패킷을 주입합니다. 연결이 끊어진 기기는 바로 재연결을 하려고 할 것이고 그때 저희는 handshake를 획득할 수 있습니다. 사람 밀도가 높은 곳은 강력한 안테나만을 가지고도 수많은 handshake를 얻을 수 있습니다. 주의해야 할 점은 네트워크에 꼭 연결되어있는 기기가 필요하다는 점입니다.
2017년도에도 2010년에 만들어진 프로그램이 쓰이는 이유
라즈베리 파이 제로 W와 라즈베리 파이 3이 와이파이 카드를 내장하고 네트워크 카드를 연결할 수 있게 됨으로써 7만6천 원으로 무선 해킹장치를 만들 수 있게 되었습니다. 이는 상대방의 비밀을 알아내는 값에 비하면 싼 값이지만 무긍무진한 활용도가 있습니다. 드론에 태워서 정보를 수집하게 한다든지 라우터를 해킹할 수 있게 합니다.

공격자는 지향성 안테나(directional antenna)를 사용하여 라즈베리 파이를 조정할 수 있게 합니다. Besside-ng 를 상용해서 연결 가능한 와이파이 리스트를 만들고 WPA비밀번호를 해킹한다면 공격자는 집에가서 리버스 쉘을 사용하여 공격을 지속할 수 있습니다. 와이파이 리스트가 필요한 이유는 네트워크 관리자가 공격자를 차단할 경우 다른 와이파이에 접속해야하기 때문입니다.

다른 사람의 네트워크를 사용하여 숨기
긴급한 상황에서 besside-ng를 사용하여 단시간만에 연결가능한 와이파이를 찾을 수 있습니다. 또한 이를 상용하면 디지털 발자취를 숨길 수 있습니다. 그러나 연결을 할 때 꼭 Tor, VPN을 사용하고 MAC 주소를 바꿔야 합니다.
라우터 루팅을 통한 도청하기
Kismet drones 혹은 다른 도청방법은 타깃에 직접 접근하지 않고 도청을 할 수 있게 합니다. besside-ng를 사용하면 해킹을 시도할 수 있는 라우터 리스트를 만들어줍니다. 그리고 라우터가 해킹당하면 커스텀 라우터 펌웨어를 사용하여 도청장치로 바꿀 수 있습니다. 그리고 해커는 VPN을 사용하여 해킹한 라우터를 현재 위치라고 속일 수 있습니다.
준비물
칼리 리눅스면 다 가능합니다.
그러나 저희가 권장하는 것은
- 칼리 리눅스가 깔려있는 라즈베리파이 3
- 칼리 리눅스가 깔려있는 라즈베리파이 제로 W
- 칼리 리눅스가 깔려있는 가상머신
- 칼리 리눅스가 깔려있는 USB
여기를 들어가면 라즈베리 파이를 칼리 리눅스에 설치하는 방법을 설명합니다. 그리고 네트워크 어댑터는 패킷 인젝션이 가능한 기종을 필요로 합니다.
*AR9271 chipset에서 버그가 발생한 것을 알려드립니다.
1st Aircrack-ng 를 가지고 있는지 확인하기
오늘 저는 SSH를 사용해서 라즈베리 파이 3에 원격으로 연결할 것 입니다. 일단 Aircrack-ng가 설치되어있는지 확인하고 최신버전으로 업데이트합니다.
man aircrack-ng
으로 시스템에 설치되어있는지 확인하고 없으면
apt-get install aircrack-ng
를 사용해서 다운받습니다.
2nd 안테나 선택하기
칼리 리눅스에서 ‘iwconfig’를 입력하면 현재 사용 가능한 안테나들이 나타납니다. 여기서 주의해야 하는 것은 만일 SSH를 사용하고 있고 잘못된 안테나(라즈베리 파이와 호스트 통신을 담당하는 안테나)를 선택하면 그 즉시 연결이 끊어지고 라즈베리 파이를 재시작하기 전까지는 연결이 불가능해집니다. 호스트와 연결하고 있는 안테나를 찾을 때는 IP 주소가 있는 것을 찾습니다.
아래는 현재 재 컴퓨터에 나오는 결과입니다.

저의 경우에는 wlan1이 공격용 안테나겠네요
3rd 공격을 설정하기
besside-ng는 정말 간단합니다. 공격할 안테나가 wlan1이라는 것을 아는 상황에서 우리는 단지
besside-ng wlan1

을 명령해 광범위한 공격을 실행할 것입니다. 네트워크를 어뎁터 모드로 바꾸는 것은 besside-ng가 알아서 해줍니다.
처음 몇 번째 시도에는 ‘no child process’라는 에러가 뜰 수 있는데 다시
besside-ng wlan1
을 시도해주시면 됩니다.
그리고 만일 스크립트가 하고 있는 것을 보기 원한다면 “-vv”를 명령어 뒤에 붙이는 것으로 볼 수 있습니다.
4th 세부적인 공격 명령어
만일 공격할 타깃이 많은 환경이라면 besside-ng는 몇 일 몇 주동안 실행할 수 있습니다. 지금으로써는 1주일이 제 최고 기록이네요.
Besside-ng가 공격을 하는 동안에는 완전히 해킹할 수 있는 WEP 네트워크 해킹을 우선시합니다. 그런데 만일 너무많은 WEP 네트워크가 있을 경우에는 공격자체가 느려지기 때문에 “-W”를 명령어 뒤에 입력함으로써 WPA 네트워크만 공격하도록 할 수 있습니다.
이 스크립트는 기본적으로 모든 채널을 스캔할 것입니다. 이것은 wardriving 혹은 warwalking을 사용한 handshake를 획득을 느리게 합니다. 그래서 모든 APs 리스트를 얻은 상황에서는 막혀버리는 상황이 됐을 수도 있습니다. 이것을 방지하기 위해서 “-c” 그리고 공격하고 싶은 채널 숫자를 붙이는 방법으로 특정 채널만을 공격하게 할 수 있습니다. Ex) besside-ng wlan1 –c 3. airodump-ng 를 사용해서 어떤 채널을 공격하는 것이 제일 좋은지 알아볼 수 있습니다.
만일 특정 네트워크를 공격하고 싶다면은 “-b”와 타깃의 BSSID를 붙여서 특정지을 수 있습니다. 이것은 많은 AP가 같은 이름을 가지고있을 때 유용합니다.

5th WPA 비밀번호 해킹하기
곧 WPA handshake를 얻을 수 있습니다. 이 자료들은 자동적으로 wap.cap파일에 저장이 됩니다. 이 파일은 홈 디렉터리에 저장이 되고 없을 경우에는 자동으로 생성됩니다. WEP 패킷은 wep.cap에 저자이 됩니다. 두 파일 모두 Aircrack-ng를 사용해서 비밀번호를 풀 수 있습니다.

물론 우리가 직접 aircrack-ng를 사용하여 풀려고 할 수 있지만 거기에 드는 전기료과 무차별 대입 공격은 상당히 지루합니다. 그래서 우리는 명령어 뒤에 “-s”를 붙혀서 우리가 얻은 handshake를 서버(http://www-sec.stanev.org)에 올려서 여러 사람한테 풀어달라고 할 수 있습니다.
6th 공격 도중 WEP 비밀번호 해킹하기
공격 도중 WEP비밀번호를 탐지하면 우리는 새로운 터미널을 열고 공격을 시작합니다.
aircrack-ng ./wep.cap
을 실행하면 탐지한 WEP리스트를 보여줄 것입니다.

공격하고 싶은 네트워크를 설정하시고 실행하면 초당 5,000번 IV(
Initialization Vector)를 시도할 것 입니다. 그리고 계속되는 handshake랑 답이 나올때까지 시도합니다.

비밀번호를 찾은 경우

7th 가끔씩 일어나는 문제점
Besside-ng는 두가지 문제가 있습니다. “no child process”와 “network is down”입니다. 이 두 가지 문제는 네트워크 어댑터랑 관련이 있을 수 있습니다. 이런 경우 여기를 보시면 됩니다
No child process같은 경우는 besside-ng 명령어를 다시 실행하는 것으로 해결될 수 있습니다. Network is down같은 경우에는 WPA supplicant 프로세스가 네트워크 카드 모니터 모드 해제하기 때문에 벌어집니다. 이를 해결하기 위해서는 Airmon-ng 에서
airmon-ng check kill
을 실행하면 됩니다. 실행할 경우 모니터 모드를 방해하는 모든 프로세스를 정지시키지만 다른 와이파이 인터페이스 또한 죽이므로 SSH를 상용할 경우 조심해야 합니다.
Besside-ng VS Wifite
Besside-ng가 이러한 방식의 공격을 하는 것은 아닙니다. Wifite 같은 프로그램 또한 WPA 와 WEP네트워크 자동화 공격을 가지고 있습니다. Wifite는 besside-ng와 다르게 WPS를 공격할 수 있는 기능을 포함하고 있습니다.
확실히 wifite가 주변 상황에 대한 정확한 진단을 내릴 순 있지만 모든 사람들이 네트워크에 모든 공격을 일일이 할 시간은 없습니다. 또한 WPS PIN 공격은 오래된 기법이고 시간이 오래 걸립니다. 전반적으로 besside-ng가 wifite보다 빠르기 때문에 besside-ng를 애용합니다
*주의*
Besside-ng는 많은 증거를 남깁니다
물론 besside-ng는 강력하지만, 이 공격의 근본적인 방법은 모든 AP에 연결을 하는 것이기 때문에 라우터에 로그를 남깁니다. 비유를 하자면 모든 라우터 문에 노크를 하고 다니는 꼴입니다. 이것은 특정 AP를 공격하는 것으로 줄일 순 있지만 완전히 없앨 순 없습니다. 이 공격은 인터넷 연결을 마비시키지는 않지만 MAC주소 혹은 잘 방어된 타깃이라면 현실적인 위치를 노출시킬 수 있습니다.