Skip to content

Instantly share code, notes, and snippets.

@nikallass
Created March 11, 2020 04:57
Show Gist options
  • Star 48 You must be signed in to star a gist
  • Fork 14 You must be signed in to fork a gist
  • Save nikallass/40f3215e6294e94cde78ca60dbe07394 to your computer and use it in GitHub Desktop.
Save nikallass/40f3215e6294e94cde78ca60dbe07394 to your computer and use it in GitHub Desktop.
CVE-2020-0796. Scan HOST/CIDR with nmap script smb-protocols.nse and grep SMB version 3.11.
#!/bin/bash
if [ $# -eq 0 ]
then
echo $'Usage:\n\tcheck-smb-v3.11.sh TARGET_IP_or_CIDR'
exit 1
fi
echo "Checking if there's SMB v3.11 in" $1 "..."
nmap -p445 --script smb-protocols -Pn -n $1 | grep -P '\d+\.\d+\.\d+\.\d+|^\|.\s+3.11' | tr '\n' ' ' | replace 'Nmap scan report for' '@' | tr "@" "\n" | grep 3.11 | tr '|' ' ' | tr '_' ' ' | grep -oP '\d+\.\d+\.\d+\.\d+'
if [[ $? != 0 ]]; then
echo "There's no SMB v3.11"
fi
@logopk
Copy link

logopk commented Mar 12, 2020

Hi, apparently reports IP also if there is no 3.11 (only 3.0)

@goncalor
Copy link

I think this would be more clear, with less piping.

nmap -p445 --script smb-protocols -Pn -n $1 | awk -v ORS='' -e '/([0-9]{1,3}\.){3}[0-9]{1,3}/ {print "\n"$0" "} /^\|.[[:space:]]+3.11/ {print $2}' | grep -F " 3.11" | grep -oP '(\d{1,3}\.){3}\d{1,3}'

@nikallass
Copy link
Author

https://github.com/ollypwn/SMBGhost

We now can use this.
It is more accurate and less shitty-coded than this gist :)

@freb
Copy link

freb commented Mar 17, 2020

Another option for nmap: https://github.com/pr4jwal/CVE-2020-0796

@hackerpain
Copy link

@nikallass @freb @goncalor @tuantmb getting error

socket_bindtodevice: Protocol not available                                                                             Problem binding to interface , errno: 92  

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment