Exemple #1
0
     }
     $ntresp = ChallengeResponse($challenge, NtPasswordHash($password));
     $lmresp = str_repeat("", 24);
     printf("NT Response:%s\n", bin2hex($ntresp));
     // Response: chapid, flags (1 = use NT Response), LM Response, NT Response
     $resp = pack('CCa48', 1, 1, $lmresp . $ntresp);
     printf("Response:%d %s\n", strlen($resp), bin2hex($resp));
     if (!radius_put_vendor_attr($res, RADIUS_VENDOR_MICROSOFT, RADIUS_MICROSOFT_MS_CHAP_RESPONSE, $resp)) {
         echo 'RadiusError: RADIUS_MICROSOFT_MS_CHAP_RESPONSE:' . radius_strerror($res) . "<br>\n";
         exit;
     }
 } else {
     if ($auth_type == 'mschapv2') {
         echo "MS-CHAPv2<br>\n";
         include_once 'mschap.php';
         $authChallenge = GenerateChallenge(16);
         printf("Auth Challenge:%s\n", bin2hex($authChallenge));
         if (!radius_put_vendor_attr($res, RADIUS_VENDOR_MICROSOFT, RADIUS_MICROSOFT_MS_CHAP_CHALLENGE, $authChallenge)) {
             echo 'RadiusError: RADIUS_MICROSOFT_MS_CHAP_CHALLENGE:' . radius_strerror($res) . "<br>\n";
             exit;
         }
         // we have no client, therefore we generate the Peer-Challenge
         $peerChallenge = GeneratePeerChallenge();
         printf("Peer Challenge:%s\n", bin2hex($peerChallenge));
         $ntresp = GenerateNTResponse($authChallenge, $peerChallenge, $username, $password);
         $reserved = str_repeat("", 8);
         printf("NT Response:%s\n", bin2hex($ntresp));
         // Response: chapid, flags (1 = use NT Response), Peer challenge, reserved, Response
         $resp = pack('CCa16a8a24', 1, 1, $peerChallenge, $reserved, $ntresp);
         printf("Response:%d %s\n", strlen($resp), bin2hex($resp));
         if (!radius_put_vendor_attr($res, RADIUS_VENDOR_MICROSOFT, RADIUS_MICROSOFT_MS_CHAP2_RESPONSE, $resp)) {
function GeneratePeerChallenge()
{
    return GenerateChallenge(16);
}