Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.49 KB | None | 0 0
  1. #!/bin/sh
  2.  
  3. set -e
  4.  
  5. get_mac_address() {
  6. echo $(ifconfig en0 ether | grep ether | rev | cut -d' ' -f2 | rev)
  7. }
  8.  
  9. get_ip_address() {
  10. echo $(ifconfig en0 inet | grep inet | cut -d' ' -f2)
  11. }
  12.  
  13. set_mac_address() {
  14. sudo ifconfig en0 ether $1
  15. }
  16.  
  17. set_branch() {
  18. echo "Updating mac address: $(get_mac_address) -> $1"
  19. set_mac_address $1
  20. echo "Done. New MAC: $(get_mac_address)"
  21.  
  22. }
  23.  
  24. randomise_branch() {
  25. echo "Current MAC: $(get_mac_address)"
  26. NEW_MAC=$(openssl rand -hex 6 | sed 's/\(..\)/\1:/g; s/.$//')
  27. set_mac_address ${NEW_MAC}
  28. echo "Done. New MAC: $(get_mac_address)"
  29. }
  30.  
  31. select_branch() {
  32. IP_ADDRESS=$(get_ip_address)
  33. DEVICES=$(sudo nmap -sn ${IP_ADDRESS}/24 | awk '/Nmap/{ip=$NF;next} /MAC/{printf "%s|%s|", ip,$3} /MAC/{for(i=4;i<=NF;i++) printf "%s_", $i; printf ";"} ')
  34.  
  35. # This part is needlessly clunky as, for whatever reason, the version of bash/sh on MAC misbehaves with arrays -- counts and index iteration didn't work properly
  36. i=0
  37. IFS=";" read -ra DEVICE_ARRAY <<< ${DEVICES}
  38. for DEV in ${DEVICE_ARRAY[@]}; do
  39. i=$((i+1)) && printf "\t%s) %s\n" "${i}" "${DEV}"
  40. done
  41.  
  42. read -p "Select a device to spoof: " selected
  43.  
  44. NEW_MAC=$(echo ${DEVICE_ARRAY} | cut -d' ' -f${selected} | cut -d \| -f2)
  45. echo "Spoofing MAC address: $(get_mac_address) -> ${NEW_MAC}"
  46. set_mac_address $NEW_MAC
  47. echo "Done. New MAC: $(get_mac_address)"
  48. }
  49.  
  50. case $1 in
  51. --set)
  52. set_branch $2
  53. ;;
  54.  
  55. --randomise)
  56. randomise_branch
  57. ;;
  58.  
  59. --select)
  60. select_branch
  61. ;;
  62. *)
  63. echo "Unknown or no option given"
  64. exit 64 # User error code
  65. esac
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement