iXsecurity.tool.smbproxy.1.0.0

From: patrik.karlssonat_private
Date: Thu Nov 08 2001 - 11:18:04 PST

  • Next message: Drexx Laggui: "Re: NT Domain Enumeration from Unix"

    -----BEGIN PGP SIGNED MESSAGE-----
    Hash: SHA1
    
    iXsecurity Security Tool Release
    SMBproxy 1.0.0
    ==============
    
    Tool Description
    - - ------------
    SMBproxy is a semi transparent Windows NT and Windows 2000 login
    proxy. This proxy implements the "passing the hash" theory. SMBproxy
    uses NTLM password hashes to log into a Windows NT or Windows 2000
    server. The NTLM hashes are stored in the SAM database. If someone
    has access to NTLM hashes with L0phtcrack, pwdump3, a backup SAM._
    file or eavesdrops an administrator NTLM login, that person has full
    access to the server. NOTE: No password guessing/cracking is needed.
    NTLM password hashes should be treated as clear text passwords.
    The proxy works on Windows 2000, Linux and BSD.
    The proxy can only be used locally on Windows 2000.
    
    Background and detailed description
    - - -------------------------------
    Several documents describes the "passing the hash" theory.
    The theory:
    A user password is hashed. This hash is stored in the SAM database.
    When the user logs in over the network the user enters her password
    and the password gets hashed. This hash is encrypted with a server
    challenge and sent to the server. Server decrypts the login request
    with the public challenge. If the decrypted message is equal to the
    hash in the SAM the login is granted.
    
    Legend: Function H is a MD4 hash
            Function E and D is DES Encryption and Decryption
            P is the plain text password
            S is the hashed user password, S=H(P), stored in SAM
            N is the challenge
            A is client
            B is server
    
    Windows NT/2000 login:
    1. A=>B: Requests a logon to the server.
    2. B=>A: N
    3. A=>B: E(N,H(P))
    The server can check S=D(N,E(N,H(P))) or E(N,S)=E(N,H(P)).
    
    If Eve eavesdrops the login she can get S by D(N,E(N,H(P))).
    S can also be retrieved from a SAM database.
    If someone has S she can login without knowing P.
    
    Windows NT/2000 "passing the hash":
    1. A=>B: Requests a logon to the server.
    2. B=>A: N
    3. A=>B: E(N,S)
    Ofcourse S=D(N,E(N,S)) and the login is granted.
    The problem is to skip the H(P) step.
    There is at least one Unix/Linux tool for this but this tool is not
    transparent.
    
    SMBproxy needs to know the server IP who it shall proxy for and a
    password file in pwdump3 format,
    "username:id:LANMAN hash:NTLM hash:::". Note that id and LANMAN hash
    are ignored.
    If someone logs into the proxy, the proxy will forward the request to
    the server using the username supplied from the login request but the
    proxy will change the NTLM hash with the correct NTLM hash from the
    password file.
    
    Example:
    If a password file looks like this:
    user1:x:x:Correct Hash:::
    user2:x:x:Another Hash:::
    
    In this example we start the proxy locally on 127.0.0.1
    Command> SMBproxy -s SERVERIP -f passwordfile
    
    If we now log into 127.0.0.1 from the client this will happen
    Command> net use * \\127.0.0.1\c$ "anypassword" /u:user1
    The request arrives to 127.0.0.1:139 who will forward the login
    request to the SERVER. The SERVER will send a challenge back, N. The
    proxy remembers N and forward N to the client. The client will then
    send E(N,H("anypassword")) to the proxy. The proxy reads user1's NTLM
    hash and replaces E(N,H("anypassword")) with E(N,"Correct Hash").
    This is sent to the SERVER every time the SERVER requests it.
    
    We can now use Regedt32, Explorer, PsTools, User Manager (NT4), MS
    SQL over named pipes, start and stop services or any other program
    against 127.0.0.1. All requests will be forwarded to SERVER.
    
    How to use SMBproxy
    - - ---------------
    ./smbproxy [options]
               -s* <serverip> to proxy to
               -l  <listenip> to listen to
               -p  <port> to listen to (139/445)
               -f* <pwdumpfile> containing hashes
               -v  be verbose
               -h  your reading it
    
    Use lc3_conv.pl to convert a L0phtcrack 3 save file to pwdump3
    format.
    
    Known bugs
    - - ------
    You can not use the proxy _from_ a Windows NT4.
    You can not bind the proxy to an external IP on Windows 2000. The
    proxy works only locally on Windows 2000.
    
    Todo
    - --
    Full proxy transparency with ARP redirects.
    
    Download
    - - ----
    http://www.cqure.net/smbproxy/index.html
    
    - - ------------------------------------------------
    
    Patrik Karlsson, mailto:patrik.karlssonat_private
    Ian Vitek, mailto:ian.vitekat_private
    
    - - ------------------------------------------------
    
    -----BEGIN PGP SIGNATURE-----
    Version: PGP 7.0.1
    
    iQA/AwUBO+gKyo118uy6FU2iEQIzawCePumIhibe+jkBRiTGRGKl0r1GtecAoJLj
    gj8vrMbeaHnvuOH+oYmHgK9z
    =i/tn
    -----END PGP SIGNATURE-----
    
    
    
    ----------------------------------------------------------------------------
    This list is provided by the SecurityFocus Security Intelligence Alert (SIA)
    Service. For more information on SecurityFocus' SIA service which
    automatically alerts you to the latest security vulnerabilities please see:
    https://alerts.securityfocus.com/
    



    This archive was generated by hypermail 2b30 : Thu Nov 08 2001 - 11:33:59 PST