A Black Hats Tale

첫 문제는 주어진 pcap 파일을 이용해 WPA를 크랙하는 문제이다. BackTrack을 이용하여 아래와 같이 풀이가 가능하다.

root@bt:~# aircrack-ng -w /pentest/wireless/aircrack-ng/test/password.lst wpa_psk.cap 
Opening wpa_psk.cap
Read 17 packets.

   #  BSSID              ESSID                     Encryption

   1  00:11:2F:DE:23:3F  Z                         WPA (1 handshake)

Choosing first network as target.

Opening wpa_psk.cap
Reading packets, please wait...

                                 Aircrack-ng 1.1 r1899

                   [00:00:00] 8 keys tested (400.14 k/s)

                           KEY FOUND! [ jennifer ]

      Master Key     : E6 5E 00 48 40 1F 4E 2C AF C3 C6 CA 3E 90 63 33 
                       08 52 54 4C 5B 81 47 5D 5B E8 87 05 4F 38 E8 F4 

      Transient Key  : 8E F7 9C 65 6C 6E 46 3B 1F 1F 3B FA FC C0 99 8B 
                       E1 AA 9E C6 35 5B F0 F2 76 D9 14 F6 2B 0B 69 2F 
                       43 75 D1 71 0F B5 90 94 9A 0B E4 71 A5 EB 5F F8 
                       25 E6 E1 7F 74 05 D2 27 35 C7 43 CF 78 A4 B5 13 

      EAPOL HMAC     : 72 99 8C AA 4B 4E A5 0A 2B 4D AF 31 BA 26 37 08 
root@bt:~# 

답을 입력하면 다시 새로운 문제가 나온다. 특정 URL을 접속하면 username 및 password를 알 수 있다. 3초안에 로그인을 해야 하므로 아래와 같이 코드를 작성하여 로그인을 할 수 있다.

#!/usr/bin/env python
import httplib, urllib, re

params = urllib.urlencode({'login':['admin', '1']})
headers = {
    'Content-type':'application/x-www-form-urlencoded',
    'Accept':'text/plain',
    'Cookie':'WC4_SID=934709-6203-8W6KlYS3QXJDasnk'
}
conn = httplib.HTTPConnection('www.wechall.net:80')
conn.request('POST', '/challenge/Z/blackhattale/login.php?action=request', params, headers)
response = conn.getresponse()
print response.status, response.reason
data = response.read()
password = re.search('username=admin3&password=(\d+)', data).group(1)
print password
print '#############################################################'

conn.request('POST', '/challenge/Z/blackhattale/login.php?action=login&username=admin3&password=' + str(password), params, headers)
response = conn.getresponse()
print response.status, response.reason
data = response.read()
print data

conn.close()

로그인을 성공하면 http://www.wechall.net/challenge/Z/blackhattale/upload_asc.php URL로 이동함을 알 수 있다.
해당 페이지로 이동하면 asc 파일이 주어지는데 Cain&Abel 툴을 이용하여 풀이가 가능하다. 단 최신버전이 아닌 구버전으로 해야 한다.

Cain&Abel 4.92 : http://www.dudael.net/OldVersions/Cain%20&%20Abel%204.9.2.exe

해당 툴에서 [Tools] - [RSA SecureID Token Calculator] 메뉴에서 asc 파일을 import 한 후 문제에서 주어진 27. of July, 2012 14:24 GMT+1 시간으로 설정하여 확인하면 474358 값이 나온다.

나의 경우에는 해당 값이 나오지 않아 그냥 하루치를 뽑아서 Brueforce 하여 풀었다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다