Giter Club home page Giter Club logo

enum4linux-ng's Introduction

enum4linux-ng

A next generation version of enum4linux

enum4linux-ng.py is a rewrite of Mark Lowe's (former Portcullis Labs now Cisco CX Security Labs) enum4linux.pl, a tool for enumerating information from Windows and Samba systems, aimed for security professionals and CTF players. The tool is mainly a wrapper around the Samba tools nmblookup, net, rpcclient and smbclient.

I made it for educational purposes for myself and to overcome issues with enum4linux.pl. It has the same functionality as the original tool (though it does some things differently). Other than the original tool it parses all output of the Samba tools and allows to export all findings as YAML or JSON file. The idea behind this is to allow other tools to import the findings and further process them. It is planned to add new features in the future.

Features

  • support for YAML and JSON export
  • colored console output (can be disabled via NO_COLOR)
  • ldapsearch and polenum are natively implemented
  • support for multiple authentication methods
  • support for legacy SMBv1 connections
  • auto detection of IPC signing support
  • 'smart' enumeration will automatically disable tests which would otherwise fail
  • timeout support
  • SMB dialect checks
  • IPv6 support (experimental)

Differences

Some things are implemented differently compared to the original enum4linux. These are the important differences:

  • RID cycling is not part of the default enumeration (-A) but can be enabled with -R
  • RID cycling can be achieved faster, by grouping multiple SID lookups in the same rpcclient call
  • parameter naming is slightly different (e.g. -A instead of -a)

Credits

I'd like to thank and give credit to the people at former Portcullis Labs (now Cisco CX Security Labs), namely:

In addition, I'd like to thank and give credit to:

It was lots of fun reading your code! :)

Legal note

If you use the tool: Don't use it for illegal purposes.

Run

An example run could look like that:

enum4linux-ng.py -As <target> -oY out

Demo

Windows Server 2012 R2

This demonstrates a run against Windows Server 2012 R2 standard installation. The following command is being used:

enum4linux-ng.py 192.168.125.131 -u Tester -p 'Start123!' -oY out

A user 'Tester' with password 'Start123!' was created. Firewall access was allowed. Once the enumeration is finished, I scroll up so that the results become more clear. Since no other enumeration option is specified, the tool will assume -A which behaves similar to enum4linux -a option. User and password are passed in. The -oY option will export all enumerated data as YAML file for further processing in out.yaml. The tool automatically detects at the beginning that LDAP is not running on the remote host. It will therefore skip any further LDAP checks which would normally be part of the default enumeration.

Demo

Metasploitable 2

The second demo shows a run against Metasploitable 2. The following command is being used:

enum4linux-ng.py 192.168.125.145 -A -C

This time the -A and -C option are used. While the first one behaves similar to enum4linux -a option, the second one will enable enumeration of services. This time no credentials were provided. The tool automatically detects that it needs to use SMBv1. No YAML or JSON file is being written. Again I scroll up so that the results become more clear.

Demo

Usage

usage: enum4linux-ng.py [-h] [-A] [-As] [-U] [-G] [-Gm] [-S] [-C] [-P] [-O] [-L] [-I] [-R [BULK_SIZE]] [-N] [-w DOMAIN] [-u USER]
                        [-p PW | -K TICKET_FILE | -H NTHASH] [--local-auth] [-d] [-k USERS] [-r RANGES] [-s SHARES_FILE] [-t TIMEOUT] [-v] [--keep]
                        [-oJ OUT_JSON_FILE | -oY OUT_YAML_FILE | -oA OUT_FILE]
                        host

This tool is a rewrite of Mark Lowe's enum4linux.pl, a tool for enumerating information from Windows and Samba systems. It is mainly a wrapper around the Samba
tools nmblookup, net, rpcclient and smbclient. Other than the original tool it allows to export enumeration results as YAML or JSON file, so that it can be
further processed with other tools. The tool tries to do a 'smart' enumeration. It first checks whether SMB or LDAP is accessible on the target. Depending on the
result of this check, it will dynamically skip checks (e.g. LDAP checks if LDAP is not running). If SMB is accessible, it will always check whether a session can
be set up or not. If no session can be set up, the tool will stop enumeration. The enumeration process can be interupted with CTRL+C. If the options -oJ or -oY
are provided, the tool will write out the current enumeration state to the JSON or YAML file, once it receives SIGINT triggered by CTRL+C. The tool was made for
security professionals and CTF players. Illegal use is prohibited.

positional arguments:
  host

options:
  -h, --help         show this help message and exit
  -A                 Do all simple enumeration including nmblookup (-U -G -S -P -O -N -I -L). This option is enabled if you don't provide any other option.
  -As                Do all simple short enumeration without NetBIOS names lookup (-U -G -S -P -O -I -L)
  -U                 Get users via RPC
  -G                 Get groups via RPC
  -Gm                Get groups with group members via RPC
  -S                 Get shares via RPC
  -C                 Get services via RPC
  -P                 Get password policy information via RPC
  -O                 Get OS information via RPC
  -L                 Get additional domain info via LDAP/LDAPS (for DCs only)
  -I                 Get printer information via RPC
  -R [BULK_SIZE]     Enumerate users via RID cycling. Optionally, specifies lookup request size.
  -N                 Do an NetBIOS names lookup (similar to nbtstat) and try to retrieve workgroup from output
  -w DOMAIN          Specify workgroup/domain manually (usually found automatically)
  -u USER            Specify username to use (default "")
  -p PW              Specify password to use (default "")
  -K TICKET_FILE     Try to authenticate with Kerberos, only useful in Active Directory environment
  -H NTHASH          Try to authenticate with hash
  --local-auth       Authenticate locally to target
  -d                 Get detailed information for users and groups, applies to -U, -G and -R
  -k USERS           User(s) that exists on remote system (default: administrator,guest,krbtgt,domain admins,root,bin,none). Used to get sid with "lookupsids"
  -r RANGES          RID ranges to enumerate (default: 500-550,1000-1050)
  -s SHARES_FILE     Brute force guessing for shares
  -t TIMEOUT         Sets connection timeout in seconds (default: 5s)
  -v                 Verbose, show full samba tools commands being run (net, rpcclient, etc.)
  --keep             Don't delete the Samba configuration file created during tool run after enumeration (useful with -v)
  -oJ OUT_JSON_FILE  Writes output to JSON file (extension is added automatically)
  -oY OUT_YAML_FILE  Writes output to YAML file (extension is added automatically)
  -oA OUT_FILE       Writes output to YAML and JSON file (extensions are added automatically)

Installation

There are multiple ways to install the tool. Either the tool comes as a package with your Linux distribution or you need to do a manual install.

Kali Linux

apt install enum4linux-ng 

Archstrike

pacman -S enum4linux-ng

NixOS

(tested on NixOS 20.9)

nix-env -iA nixos.enum4linux-ng

Manual Installation

If your Linux distribution does not offer a package, the following manual installation methods can be used instead.

Dependencies

The tool uses the samba clients tools, namely:

  • nmblookup
  • net
  • rpcclient
  • smbclient

These should be available for all Linux distributions. The package is typically called smbclient, samba-client or something similar.

In addition, you will need the following Python packages:

  • ldap3
  • PyYaml
  • impacket

For a faster processing of YAML (optional!) also install (should come as a dependency for PyYaml for most Linux distributions):

  • LibYAML

Some examples for specific Linux distributions installations are listed below. Alternatively, distribution-agnostic ways (python pip, python virtual env and Docker) are possible.

Linux distribution specific

For all distribution examples below, LibYAML is already a dependency of the corresponding PyYaml package and will be therefore installed automatically.

ArchLinux

pacman -S smbclient python-ldap3 python-yaml impacket

Fedora/CentOS/RHEL

(tested on Fedora Workstation 31)

dnf install samba-common-tools samba-client python3-ldap3 python3-pyyaml python3-impacket

Debian/Ubuntu/Linux Mint

(For Ubuntu 18.04 or below use the Docker or Python virtual environment variant)

apt install smbclient python3-ldap3 python3-yaml python3-impacket

Linux distribution-agnostic

Python pip

Depending on the Linux distribution either pip3 or pip is needed:

pip install pyyaml ldap3 impacket

Alternative:

pip install -r requirements.txt

Remember you need to still install the samba tools as mentioned above.

Python virtual environment

git clone https://github.com/cddmp/enum4linux-ng
cd enum4linux-ng
python3 -m venv venv
source venv/bin/activate
pip install wheel
pip install -r requirements.txt

Then run via:

python3 enum4linux-ng.py -As <target>

Remember you need to still install the samba tools as mentioned above. In addition, make sure you run source venv/bin/activate everytime you spawn a new shell. Otherwise the wrong Python interpreter with the wrong libraries will be used (your system one rather than the virtual environment one).

Docker

git clone https://github.com/cddmp/enum4linux-ng
cd enum4linux-ng
docker build . --tag enum4linux-ng

Once finished an example run could look like this:

docker run -t enum4linux-ng -As <target>

Contribution and Support

Occassionally, the tool will spit out error messages like this:

Could not <some text here>, please open a GitHub issue

In that case, please rerun the tool with the -v and --keep option. This will allow you to see the exact command which caused the error message. Copy that command, run it in your terminal and redirect the output to a file. Then open a GitHub issue here, pasting the command and attaching the error output file. That helps to debug the issue. Of course, you can debug it yourself and make a pull request.

If the tool is helpful for you, I'm happy if you leave a star!

enum4linux-ng's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

enum4linux-ng's Issues

Show status of SMB signing

Another interesting property enum4linux-ng could show is the status of SMB signing. Whether it is enabled/disabled and optional/required.

This is good to know because without required SMB signing, NTLM relaying attacks could be possible.

Nmap contains a script that can check that: smb2-security-mode.nse

NULL SID Fix Syntax Error

Hi, writing this issue to address a syntax error regarding the lastest patch on handling null SID.

The output, however, is not affected despite the syntax error.

commit 0eccc28

error

JSON parsing issue on user attributes `remote dial` and `comment` fields potentially others

Hi, I was recently working on a parser for the json output that feeds into a Pandas dataframe. As I parsed it, I noticed there is a flaw with the way some user attributes are handled. You can see a sanitized example below:

"remote dial": "",
"[0000] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    . . . .  . . . .. .",
"[0010] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    . . . .  . . . .": "",
"[0020] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    . . . .  . . . .": "",
"[0030] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    . . . .  . . . .": "",
"[0040] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    . . . .  . . . .": "",
"[0050] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    . . . .  . . . .": "",
"[0060] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    . . . .  . . . .": "",
"[0070] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    . . . .  . . . .": "",
"[0080] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    . . . .  . . . .": "",
"[0090] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    . . . .  . . . .": "",
"[00a0] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    . . . .  . . . .": "",
"[00b0] 00 00 00 00 00 00 00 00   00 00 00 00 00 00 00 00    . . . .  . . . .": "",

"comment": "<root created=\"REDACTED 15:56:28:054\" updated=\"REDACTED 15:56:28:054\">",
...
"          </profiles>": "",
"        </settings>": "",
"        <settings group=\"general\" />": "",
"      </public>": "",
"      <protected>REDACTED</protected>": "",
"    </data>": "",
"  </qpm>": "",
"</root>": "",

As you can see, these attributes are multi-line but the parser is not aware and thus assigns them as keys with no value. The value of comment and remote dial should be an array of string values instead.

These are the two examples I observed but there may be other attributes that exhibit this issue since custom attributes are supported.

I see this is also an issue with the yaml output so it is not specific to the json export. I haven't delved too deeply into your code yet so not sure the best place to insert a fix. Happy to test if you have any ideas though.

Error - Server doesn't allow session using username '', password ''

I'm using this on Metasploitable 2 but still I'm getting following errors:

Session Check on 192.1x.x.x |

[] Check for null session
[-] Server doesn't allow session using username '', password ''
[
] Check for random user session
[-] Server doesn't allow session using username 'sqjtyjhk', password ''
[-] Sessions failed. Aborting remainder of tests.

lack of documentation for use of setup.py

I am using a linux mint 21.1 installation. I have python 3.10.6 with pip installed on the machine. I also installed all the required packages, namely smbclient, ldap3, yaml and impacket. My question is, do i run the enum4linux-ng.py file directly, or is there a way to get the command to be part of system commands such as apt-get or openvpn, that i can use from the command line without executing a file? I noticed a setup.py file, but have no idea how to use it, or if it is of any use.

docker command issues

docker run -t enum4linux-ng -As <IP> gives no output. I suspect it just runs the command inside the container, outputs it there and stops the container when done.

So I tried docker run -it enum4linux-ng -As IP which works correctly but expectedly doesn't work with -oY, -oA, etc.

Are these issues known? Is there any workaround to get yaml output via docker run command?

Could not parse result of smbclient command

I got the following error when enumerating shares:

[*] Testing share IPC$
[V] Attempting to map share //192.168.122.209/IPC$, running command: smbclient -t 5 -W WORKGROUP -U user%password '//192.168.122.209/IPC$' -c dir -s /tmp/tmphs0m27w2
[-] Could not parse result of smbclient command, please open a GitHub issue

Since it tells me to open an issue, here I am...

I guess the output that could not be parsed is of interest. So I ran the smbclient command manually:

> smbclient -t 5 -W WORKGROUP -U user%password '//192.168.122.209/IPC$' -c dir -s /tmp/tmphs0m27w2
NT_STATUS_NO_SUCH_FILE listing \*

Multiple exceptions in LDAP

Hi.

That's what I get running on Archlinux. All requirements installed. Running python 3.8.2-2

==================================================
| Getting information via LDAP for 127.0.0.1 |

``[root@Archlinux enum4linux-ng]# python enum4linux-ng.py 127.0.0.1
ENUM4LINUX-NG

==========================
| Target Information |

[] Target ........... 127.0.0.1
[
] Username ......... ''
[] Random Username .. 'pfrqocuh'
[
] Password ......... ''
[] RID Range(s) ..... 500-550,1000-1050
[
] Known Usernames .. 'administrator,guest,krbtgt,domain admins,root,bin,none'

==================================================
| Getting information via LDAP for 127.0.0.1 |

[*] Trying LDAP
Traceback (most recent call last):
File "enum4linux-ng.py", line 435, in get_namingcontexts
ldap_con = Connection(server, auto_bind=True)
File "/usr/lib/python3.8/site-packages/ldap3/core/connection.py", line 355, in init
self.do_auto_bind()

File "/usr/lib/python3.8/site-packages/ldap3/core/connection.py", line 370, in do_auto_bind
self.open(read_server_info=False)
File "/usr/lib/python3.8/site-packages/ldap3/strategy/sync.py", line 56, in open
BaseStrategy.open(self, reset_usage, read_server_info)
File "/usr/lib/python3.8/site-packages/ldap3/strategy/base.py", line 139, in open
raise exception_history[0][0]
ldap3.core.exceptions.LDAPSocketOpenError: socket connection error while opening: [Errno 111] Connection refused

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
File "enum4linux-ng.py", line 1885, in
main()
File "enum4linux-ng.py", line 1817, in main
result = run_module_ldapsearch(target)
File "enum4linux-ng.py", line 1275, in run_module_ldapsearch
namingcontexts = get_namingcontexts(target)
File "enum4linux-ng.py", line 438, in get_namingcontexts
error = str(e.args[1][0][0])
IndexError: tuple index out of range

Could not get domain information via 'lsaquery': timed out

Hi, I have an issue when I use this tool for test on TryHackMe "Basic Pentesting".

run:
python3 enum4linux-ng.py -R IpAddress
the output:

====================================
|    Domain Information via RPC for IpAddress    |
====================================
[-] Could not get domain information via 'lsaquery': timed out
Traceback (most recent call last):
  File "/myhome/enum4linux-ng.py", line 2708, in <module>
    main()
  File "/myhome/enum4linux-ng.py", line 2693, in main
    enum.run()
  File "/myhome/enum4linux-ng.py", line 2183, in run
    self.run_modules(modules)
  File "/myhome/enum4linux-ng.py", line 2314, in run_modules
    self.cycle_params.set_enumerated_input(self.output.as_dict())
  File "/myhome/enum4linux-ng.py", line 1498, in set_enumerated_input
    if "domain_sid" in enum_input and "NULL SID" not in enum_input["domain_sid"]:
TypeError: argument of type 'NoneType' is not iterable

Add options to customize service ports

Thanks for your work on this great tool!

Currently all ports are hardcoded via the SERVICES dictionary. It would great to set the ports via command line arguments.

SERVICES = {
        SERVICE_LDAP: 389,
        SERVICE_LDAPS: 636,
        SERVICE_SMB: 445,
        SERVICE_SMB_NETBIOS: 139
}

I would propose the following flags to set the ports.

--ldap-port 389
--ldaps-port 636
--smb-port 445

I'd be happy to contribute a PR to this.

Crash when using PyYAML < 5.1 (was: Crashes on "Netbios names and workgroups", when target is not domain-joined)

Trying to enumerate the "Relevant" machine on TryHackMe results in the following crash:

 ====================================================
|    NetBIOS Names and Workgroup for 10.10.114.91    |
 ====================================================
[+] Got domain/workgroup name: WORKGROUP
Traceback (most recent call last):
  File "enum4linux-ng.py", line 2998, in <module>
    main()
  File "enum4linux-ng.py", line 2983, in main
    enum.run()
  File "enum4linux-ng.py", line 2441, in run
    self.run_modules(modules)
  File "enum4linux-ng.py", line 2511, in run_modules
    result = EnumNetbios(self.target).run()
  File "enum4linux-ng.py", line 586, in run
    result = self.nmblookup_to_human(nmblookup.retval)
  File "enum4linux-ng.py", line 651, in nmblookup_to_human
    return Result(output, f"Full NetBIOS names information:\n{yamlize(output)}")
  File "enum4linux-ng.py", line 2843, in yamlize
    result = yaml.dump(msg, default_flow_style=False, sort_keys=sort, width=160, Dumper=Dumper)
  File "/usr/lib/python3/dist-packages/yaml/__init__.py", line 200, in dump
    return dump_all([data], stream, Dumper=Dumper, **kwds)
TypeError: dump_all() got an unexpected keyword argument 'sort_keys'

The original enum4linux aborts while attempting to determine the domain SID, so I'd assume that it is related to the machine not being domain-joined.

RID Recycling not working properly?

Okay, this could simply be because I, being a noob, am unable to use it properly but it appears that enum4linux-ng seems to be unable to enumirate users using RID recycling, even with the -R flag used.

Im following tryhackme room titled "Basic Penetration Testing" with walkthrough from John Hammond who used the original enum4linux perl script. It worked for him and found a user through RID recycling. I tried it with enum4linux-ng and it didn't work. I found that it doesn't use RID recycling by default so tried again with --R flag. Still didn't find any users.

Then I ran the original perl script (enum4linux.pl) and it found it. Am I doing something wrong or is the RID recycling module of the ng version malfunctioning?

Steps to reproduce:

  1. follow John Hammond's walkthrough on TryHackMe's "Basic Penetration Testing". https://www.youtube.com/watch?v=xl2Xx5YOKcI
  2. Try to do what he does at 14:50 mark, but enum4linux-ng instread of enum4linux.pl.

Samba server version

Great tool.

Some samba servers return their software version just upon connection. I made a standalone script that gets just that. Would it be possible to integrate it in enum4linux-ng?

from impacket import smb

s = smb.SMB('*SMBSERVER',sys.argv[1], sess_port=139)
s.login('','')

print("Server version:", s._SMB__server_lanman)

Returns (example):

Server version: Samba 2.2.7a

Cheers.

Yaml problem

Hi,

This seems like a really nice tool - thank you for creating it!

I have some problem running it on Ubuntu 18.04. When I try to run the command:

python3 enum4linux-ng.py -As <target IP> -v
I keep getting this error:

========================================
|    Shares via RPC on <target IP>    |
 ========================================
[V] Attempting to get share list using authentication, running command: smbclient -W WORKGROUP -U % -L //<target IP> -s /tmp/tmp1gbmbml4
Traceback (most recent call last):
  File "enum4linux-ng.py", line 2642, in <module>
    main()
  File "enum4linux-ng.py", line 2627, in main
    enum.run()
  File "enum4linux-ng.py", line 2131, in run
    self.run_modules(modules)
  File "enum4linux-ng.py", line 2247, in run_modules
    result = EnumShares(self.target, self.creds).run()
  File "enum4linux-ng.py", line 1636, in run
    enum = self.enum()
  File "enum4linux-ng.py", line 1680, in enum
    return Result(shares, f"Found {len(shares.keys())} share(s):\n{yamlize(shares, sort=True)}")
  File "enum4linux-ng.py", line 2493, in yamlize
    result = yaml.dump(msg, default_flow_style=False, sort_keys=sort, Dumper=Dumper)
  File "/usr/lib/python3/dist-packages/yaml/__init__.py", line 200, in dump
    return dump_all([data], stream, Dumper=Dumper, **kwds)
TypeError: dump_all() got an unexpected keyword argument 'sort_keys'

Is this a version problem with PyAml? I am using this version:

srv:~/tools/enum4linux-ng# pip3 show pyyaml
Name: PyYAML
Version: 3.12
Summary: YAML parser and emitter for Python
Home-page: http://pyyaml.org/wiki/PyYAML
Author: Kirill Simonov
Author-email: [email protected]
License: MIT
Location: /usr/lib/python3/dist-packages
Requires: 

Any help would be kindly appreciated.

Tag a release

The setup.py file says that's version 1.0.0. Could you please tag a release?

This would allow one to download the source as tarball from GitHub. For the packaging I can work with with a commit but it's preferred to work with a actual release.

Thanks

TCP services omitted from yaml, json output when -C (RPC service discovery) is enabled

Without -C, the output .json or .yaml will contain information about which TCP listeners were found, such as:

services:
  SMB:
    port: 445
    accessible: true
  SMB over NetBIOS:
    port: 139
    accessible: true

However when -C is enabled and RPC services are enumerated, the list of TCP port listeners is clobbered, the only services: are the ones from RPC enumeration.

It is tested for either way - runtime STDOUT will contain something like:

 =====================================
|    Listener Scan on 10.20.30.40     |
 =====================================
[*] Checking SMB
[+] SMB is accessible on 445/tcp
[*] Checking SMB over NetBIOS
[+] SMB over NetBIOS is accessible on 139/tcp

...And the discovered listeners will be used to shape further tests (skip LDAP despite -L if no listener found, etc.).

But that information will be missing from the output file.

Could not parse result of smbclient command

when running against a ricoh printer I get:

[V] Attempting to map share //192.168.35.20/IPC$, running command: smbclient -t 5 -W KM-NETPRINTERS -U % '//192.168.35.20/IPC$' -c dir -s /tmp/tmpf1n8l_bn
[-] Could not parse result of smbclient command, please open a GitHub issue

running smbclient command mannually gives:

smbclient -t 5 -W KM-NETPRINTERS -U % '//192.168.35.20/IPC$' -c dir -s /tmp/tmp                                                                           Wed 02 Jun 2021 11:46:10 AM CEST
NT_STATUS_NOT_A_DIRECTORY listing \*

Add kerberos support ?

Hi,

thanks for creating this ng version !

It would be nice to be able to have add kerberos support:

  • for environments where NTLM is disabled
  • for convenience

I took a very quick look and it seems feasible, but I have not time right now to implement it.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.