Skip to main content

GetNPUsers.py to get AS-REP | Related with pre-authentication disabled | Wireshark | CTF | getting users password

https://www.secureauth.com/labs/open-source-tools/impacket/

 

C:\>getnpusers.py scrm.local/ -dc-ip 192.168.0.79 -request

So what make the account vulnerable? 

If you enable the Do not require Kerberos preauthentication just like the above screenshot, then the account will be vulnerable. GetNPUsers.py NP means non preauth. This tool will try to harvest non preauth AS-REP responses from the list of given users that we provide. Non preauth means kerberos pre authentication is not required. By enabling this option you are actually disabling this options. 
 

If you enable the Do not require Kerberos preauthentication by giving tick mark on the box, then the above script will return AS-REP encrypted data of that user. Because it will not check timestamp then. Check the username and give back the TGT. Even in wireshark packet capture, in the asrep packet the encrypted data will also be shown. Now hashcat will help to crack further. In AS-REQ and AS-REP the data is encrypted with users ntlm password hash also AS-REP contains TGT for the user as per user request and the TGT is signed by krbtgt account of KDC. So if we able to crack that (the encrypted data which is encrypted using users password) then we can get users password. And using that password of that user account, attacker can initiate the whole request from the beginning just like a legitimate user does for example, attacker will encrypt the timestamp of that user using users password and send to KDC. KDC will decrypt the data using users password because attacker use the same password that KDC also have. Then KDC issue TGT so on.

$23$ means encryption type (etype) RC4


C:\HTB\hashcat510>hashcat64 -m 18200 -a 0 "encrypted data or hash value"

 

Now if you disable this, (by default this is disabled and recommended to disable this feature) then you will get an error in wireshark capture and the python script will not bring you any encrypted data. Because server is expecting from you that you should encrypt your current timestamp with your password. As we are initiating this request using python script so server accept the request and try to decrypt it using corresponding users password. But at the time of decryption this fails because original user never encrypt his/her timestamp using his/her password.


When you have multiple users then you can save those users in a text file then follow the below image command line:

 users.lst file contains three users. audit2020, support and svc_backup

You can also run a for loop. bash scripting will help in that case. 

 

for user in $(cat users.txt); do GetNPUsers.py BLACKFIELD.local/${user} - no-pass -outputfile hash_${user} -format john -dc-ip 10.10.10.192 2>/dev/null | grep -v impacket; done

john --wordlist=/usr/share/wordlists/rockyou.txt support_hash




solving sauna hackthebox - ippsec - another thing we could do:

give a entry on sudo vi /etc/hosts/ 

10.10.10.175 EGOTISTICAL-BANK.local sauna sauna.EGOTISTICAL-BANK.local


parrot machine:

GetNPUsers.py EGOTISTICAL-BANK.LOCAL/administrator

GetNPUsers.py EGOTISTICAL-BANK.LOCAL/fsmith



from parrot or kali:

root@kali: /usr/share/doc/python3-impacket/examples# ./GetNPUsers.py -dc-ip 10.10.10.161 -request htb.local/ -format hashcat



Comments

Popular posts from this blog

Install Nessus from docker

The below two commands you need to run first one by one:  docker run -itd --name=ramisec_nessus -p 8834:8834 ramisec/nessus docker exec -it ramisec_nessus /bin/bash /nessus/update.sh Username: admin And you need to change the password: #Enter the command line of the docker container docker exec -it ramisec_nessus bash #Execute the following commands in sequence # Enter this directory cd /opt/nessus/sbin # List logged in users ./nessuscli lsuser # Modify the password of the specified user (take admin as an example) ./nessuscli chpasswd admin After access to the nessus, make sure you turn off the automatic updates otherwise crack will not work after some time. Before any scan you need to run the update.sh command (shown above) to have the latest plugins. Now everytime your system reboots, your docker instance will be shutdown. You need to up it again manually. Here are the commands.  1. docker ps -a    Now note down the container id. 2. docker start <container id> C

net command cheat sheet

  To see what users present in the system: net user To see local groups in the system: net localgroup To see domain groups. This should be run on a domain controller: net group To see the details of a user along with his/her group membership: net user mahim To see who are the members of a particular group (local machine): net localgroup "administrators"    (These are not case sensitive. You can use administrators or Administrators. Both will give you same result. To see who are the members of a particular group (domain machine): net group "domain admins" Create a local user: net user localuser1 MyP@ssw0rd /add Create a domain user: net user domainuser1 MyP@ssw0rd /add /domain Add the local user to local admin group: net localgroup Administrators localuser1 /add Add the user to domain admin group: net group "Domain Admins" domainuser1 /add /domain Avi