[PHP / NTLM] Responses maken

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hallo

Ik ben bezig met een script wat deels een NTLM client is. Hiervoor moet het een response op de challange van de server maken. Hier: http://www.innovation.ch/java/ntlm.html is te lezen hoe dit in C zou moeten gaan. Ik snap hier echter heel weinig van.

Wie weet er een manier of heeft hints om hiervan een PHP script te maken?

Alvast bedankt!

Roemer

Acties:
  • 0 Henk 'm!

Verwijderd

offtopic:
volgens mij voldoet je post niet aan de voorwaarden: scriptrequest 8)7

Maar: mag ik vragen wat je hiermee wilt bereiken? NTLM is nl. een oudere techniek die opgevolgd is door betere algoritmes. Er zijn betere methoden voor client/server authenticatie (bv Kerberos, hierbij wordt niet meer de passwordhash uitgewisseld hoeft te worden, maar een user ticket). Daarnaast is NTLM een gesloten techniek, bron is alleen bekend bij Microsoft. Hierdoor kun je het hooguit alleen reverse engineeren. Uiteindelijk is het lijkt mij beter om je te verdiepen in het principe van de challenge/response techniek dan de exacte manier waarop NTLM werkt...

Maar als je echt met NTLM middels php aan de slag wilt, zou ik toch echt es beginnen met wat steekwoorden in Google te gooien :P

Acties:
  • 0 Henk 'm!

Verwijderd

Wat wil je gaan doen met de NTLM? Via SMB bestanden/mappen/shares uitlezen of de rechten gebruiken? Vertel waarvoor je het wil gebruiken.

Ik ben bezig geweest om via NTLM/Kerberos een SMB file-viewer te maken. Dit project heb ik op pauze gezet omdat ik op het moment een ander project af moet maken (op 1 jan 2005 online als het even goed gaat). Ik heb thuis wel wat documenten liggen hoedat NTLM werkt, alle commando's die je kan sturen/opvragen en alles wat het doet. Daar kan ik nu niet bij omdat ik hier geen registratie-key heb van radmin (en dus niet kan inloggen thuis).
Via PHP is het dus wel mogelijk om NTLM te gebruiken, en dan kan je zelfs naar SMB toe gaan.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik moet het gebruiken omdat de server het ook gebruikt. Dat kan wel omgezet worden, maar het moet eigenlijk via NTLM gebeuren.

Het is niet echt een script request, maar meer of iemand de methode's weet die gebruikt worden om de code's samen te stellen (via PHP).

Tnx anyway

Acties:
  • 0 Henk 'm!

  • SchizoDuckie
  • Registratie: April 2001
  • Laatst online: 18-02 23:12

SchizoDuckie

Kwaak

Verwijderd schreef op 08 november 2004 @ 12:52:
Ik moet het gebruiken omdat de server het ook gebruikt. Dat kan wel omgezet worden, maar het moet eigenlijk via NTLM gebeuren.

Het is niet echt een script request, maar meer of iemand de methode's weet die gebruikt worden om de code's samen te stellen (via PHP).

Tnx anyway
NTLM authenticatie is een érrug suckend protocol ben ik achter. Het wordt echt bijna *nergens* gebruikt, en is idd een gesloten protocol dat door reverse engineeren uitgeplozen is...

Het beste wat je kan doen is libCURL gebruiken voor je authenticatie (ik neem tenminste aan dat je door een ISA server heen moet, voorderest wordt NTLM al bijna nergens meer gebruikt)

Ik hoop dat je hier wat aan hebt:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/**
 * Sleur de inhoud van een HTML pagina van internet.
 * Met ISA Proxy Authentication
 * @param string $proxyserver Proxy Servername
 * @param int $proxyport Proxy Port number
 * @param string $username proxy Username
 * @param string $password proxy Password
 * @param string $url te fetchen URL
 */
function curl_fetch($proxyserver, $proxyport, $username, $password, $url)
{
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_PROXY, "{$proxyserver}:{$proxyport}");
    curl_setopt($ch, CURLOPT_PROXYUSERPWD, "{$username}:{$password}");
    curl_setopt($ch, CURLOPT_HEADER, 1);
    $result=curl_exec ($ch); 
    curl_close ($ch); 
    return ($result);
}

/**
 * POST gegevens naar een URL op internet.
 * Met ISA Proxy Authentication
 * @param string $proxyserver Proxy Servername
 * @param int $proxyport Proxy Port number
 * @param string $username proxy Username
 * @param string $password proxy Password
 * @param string $url target URL
 * @param array $data Array met te posten gegevens
 * @param string $cookie inhoud van de eventuele cookie.
 */
function curl_post($username, $password $url, $data, $cookie)
{
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
    curl_setopt($ch, CURLOPT_PROXY, "{$proxyserver}:{$proxyport}");
    curl_setopt($ch, CURLOPT_COOKIE, $cookie);
    curl_setopt($ch, CURLOPT_PROXYUSERPWD, "{$username}:{$password}");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_TIMEOUT, 15);
    $result = curl_exec   ($ch);
    curl_close  ($ch);
    return ($result);
}


Mocht je echt code willen zien waarin dit uitgeplozen is, dan kan je even op zoek gaan op google naar de volgende string:

Python:
1
2
# This file is part of 'NTLM Authorization Proxy Server'
# Copyright 2001 Dmitry A. Rozmanov <dima@xenon.spb.ru>

komt uit een python lib die ik gebruik om m'n whatpulse door de proxy heen te trappen 8)7

[ Voor 7% gewijzigd door SchizoDuckie op 08-11-2004 14:38 ]

Stop uploading passwords to Github!