рд╡рд╛рдИ-рдлрд╛рдИ рд░рд╛рдЙрдЯрд░ рдкрд░ WPA2 рдкрд╛рд╕рд╡рд░реНрдб рдХрд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдкрд░рд┐рд╡рд░реНрддрди (рдкреНрд░реАрдЬрд╝рд░реНрдб рдХреА)

рдХрд╛рд░реНрдп


- рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдПрдХ рдмрд╛рд░ рд╡рд╛рдИ-рдлрд╛рдИ рд░рд╛рдЙрдЯрд░ рдкрд░ WPA2 рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд░реВрдк рдореЗрдВ 8-рдЕрдВрдХреАрдп рд╕рдВрдЦреНрдпрд╛ рдФрд░ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рдЗрдВрд╕реНрдЯрд╛рд▓реЗрд╢рди рдХрд╛ рдирд┐рд░реНрдорд╛рдг
- рдИрдореЗрд▓ рджреНрд╡рд╛рд░рд╛ рдирдпрд╛ рдкрд╛рд╕рд╡рд░реНрдб рднреЗрдЬрдирд╛
- рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рд╛рде html рдкреЗрдЬ рдмрдирд╛рдПрдВ

рдЙрдкрд▓рдмреНрдз рд╣реИ


- рд╕реНрдерд╛рдкрд┐рдд рд╡реЗрдм рд╕рд░реНрд╡рд░ рдХреЗ рд╕рд╛рде рд▓рд┐рдирдХреНрд╕ (рд╡реЗрдм тАЛтАЛрд╕рд░реНрд╡рд░ рдЗрд╕ рдкреГрд╖реНрда рдХреЛ рд╡рд╛рдкрд╕ рд▓реЗрдЧрд╛ / stop /company/wifi-guest/index.html) рдФрд░ рдПрдХ рдкреНрд░реЙрдХреНрд╕реА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд╡рд╛рдИ-рдлрд╛рдИ рдмрд┐рдВрджреБ рддрдХ рдкрд╣реБрдВрдЪ рд╕рдХрддрд╛ рд╣реИ (рдкреНрд░реЙрдХреНрд╕реА рдкрддрд╛xy.company.lan: 3128)
- рд╡рд╛рдИ-рдлрд╛рдИ рд░рд╛рдЙрдЯрд░ TP-LINK WR1043ND (рдПрдХреНрд╕реЗрд╕ рдкреНрд╡рд╛рдЗрдВрдЯ рдПрдбреНрд░реЗрд╕ ggw.company.lan )
- smtp рд╕рд░реНрд╡рд░ (рд╕рд░реНрд╡рд░ рдкрддрд╛ 10.10.10.10, рдЖрдЙрдЯрдЧреЛрдЗрдВрдЧ рдПрдбреНрд░реЗрд╕ - notificaions@company.com, рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рдХрд╛ рдкрддрд╛ adins@company.com)

рдпрд╣ рд▓реЗ рдЬрд╛рдПрдЧрд╛


- HttpFox рдкреНрд▓рдЧрдЗрди рдХреЗ рд╕рд╛рде рдлрд╝рд╛рдпрд░рдлрд╝реЙрдХреНрд╕
- рдХрд░реНрд▓
- рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ

рдирд┐рд░реНрдгрдп


1. HttpFox рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╣рдо рдкрд╛рд╕рд╡рд░реНрдб рдмрджрд▓рдиреЗ рдФрд░ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмреНрд░рд╛рдЙрдЬрд╝рд░ рджреНрд╡рд╛рд░рд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдПрдХ рдкреЛрд╕реНрдЯ рдпрд╛ рдЬреАрдИрдЯреА рдЕрдиреБрд░реЛрдз рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рд░рд╛рдЙрдЯрд░ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ рдлреЙрд░реНрдо рдХреЗ GET рдЕрдиреБрд░реЛрдз рд╣реЛрдВрдЧреЗ:
  "http: //$http_url/userRpm/WlanSecurityRpm.htm; wepSecOpt = 3 & wpaSecOpt = 3 & wpaCipher = 1 & intervalWorld = 0 & secType = 3 & pskSecOpt = 3 рдФрд░ pskSipher = 1 рдФрд░ рдЕрдВрддрд░рд╛рд▓ = 1 рдФрд░ рдЕрдВрддрд░рд╛рд▓ = 1 рдФрд░ рдЕрдВрддрд░рд╛рд▓ = 1 рдФрд░ рдЕрдВрддрд░рд╛рд▓ = 1 
рдФрд░
  "http: //$http_url/userRpm/SysRebootRpm.htm? рд░рд┐рдмреВрдЯ = рд░рд┐рдмреВрдЯ"? 

2. рдХрд░реНрд▓ рдФрд░ рдЙрдкрд░реЛрдХреНрдд рдЬреАрдИрдЯреА рдЕрдиреБрд░реЛрдзреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рд╣рдореЗрдВ HTML рдкреГрд╖реНрда рдорд┐рд▓рддреЗ рд╣реИрдВ рдЬреЛ рд░рд╛рдЙрдЯрд░ рд╡рд╛рдкрд╕ рдЖрддрд╛ рд╣реИ рдпрджрд┐ рдХрдорд╛рдВрдб рд╕рдлрд▓ рд╣реЛрддрд╛ рд╣реИред рдЗрди рдкреГрд╖реНрдареЛрдВ рд╕реЗ рд╣рдо рдЙрди рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ рд▓реЗрддреЗ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рд╣рдо рдХрдорд╛рдВрдб рдХреА рд╕рдлрд▓рддрд╛ рдХреЛ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрджреНрд╡рд┐рддреАрдп рдорд╛рдиреЗрдВрдЧреЗред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкрд╛рд╕рд╡рд░реНрдб рд╕реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
  "location.href =" / userRpm / WlanSecurityRpm.htm ";" 
- рдФрд░ рд░рд┐рдмреВрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП:
  "<TD class = h2 id =" t_restart "> рдкреБрдирд░рд╛рд░рдВрдн рдХрд░рдирд╛ ... </ TD>" 

3. рдЗрди рдореВрд▓реНрдпреЛрдВ рдХреЛ рдмреИрд╢ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдореЗрдВ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ рдФрд░ рд╕рдкреНрддрд╛рд╣ рдореЗрдВ рдПрдХ рдмрд╛рд░ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд░реЛрди рдореЗрдВ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВред
4. рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЗ рд▓реЙрдиреНрдЪ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдЯреЗрд╕реНрдЯ рдХрд░реЗрдВред
5. рд╣реЛ рдЧрдпрд╛!

#!/bin/bash -e # Description: script is purposed for automatic changing WPA2 key on TP-LINK WR1043ND (Wi-Fi router) using curl # Common variables proxy_url=proxy.company.lan:3128 proxy_username=proxy-user proxy_password=proxy-pass http_url=ggw.company.lan http_username=http-user http_password=http-pass # Define email message title smtp_title="Guest Wi-Fi password has been changed" # Define smtp server and email addresses smtp_server=10.10.10.10 smtp_send_from=notificaions@company.com smtp_send_to=admins@company.com smtp_links="Password link: http://wifi-guest.company.lan\nAdmin link: http://$http_url" webpage_path=/opt/company/wifi-guest/index.html # Special variables set_password_successfuly='location.href="/userRpm/WlanSecurityRpm.htm";' perform_reboot_successfuly='<TD class=h2 id="t_restart">Restarting...</TD>' stat_begin='^var hostList = new Array\($' stat_end='.*\);' # Core variables CURL="curl --silent --proxy $proxy_url --proxy-user $proxy_username:$proxy_password --user $http_username:$http_password" # Generate 8-digit password (from 00000000 to 99999999) NEW_WPA_PASSWORD=$( printf "%04d%04d" $(($RANDOM%10000)) $(($RANDOM%10000)) ) # Date and time DATE_TIME="$(date +"%F %T")" # Set password $CURL "http://$http_url/userRpm/WlanSecurityRpm.htm?wepSecOpt=3&wpaSecOpt=3&wpaCipher=1&intervalWpa=0&secType=3&pskSecOpt=3&pskCipher=1&interval=0&Save=Save&pskSecret=$NEW_WPA_PASSWORD" | grep "$set_password_successfuly" > /dev/null && SET_PASS="OK" || SET_PASS="ERR" [[ $SET_PASS != "OK" ]] && echo "Set password error" && exit 1 # Reboot $CURL "http://$http_url/userRpm/SysRebootRpm.htm?Reboot=Reboot" | grep "$perform_reboot_successfuly" > /dev/null && REBOOT="OK" || REBOOT="ERR" [[ $REBOOT != "OK" ]] && echo "Reboot error" && exit 1 # Update web page echo " <html> <head> <meta http-equiv=\"Pragma\" content=\"no-cache\"> <meta http-equiv=\"Cache-Control\" content=\"no-cache\"> </head> <body> <center> <p>New Wi-Fi password:<br>$NEW_WPA_PASSWORD</p> <p>Generated: $DATE_TIME</p> </center> </body> </html> " > $webpage_path # Send password and statistics to admins wifi_stat=$($CURL "http://$http_url/userRpm/WlanStationRpm.htm" | awk "/$stat_begin/,/$stat_end/") smtp_message="New Wi-Fi password: $NEW_WPA_PASSWORD\n\nWi-Fi statistics:\n$wifi_stat\n\n$smtp_links" echo -e "$smtp_message" | \ env smtp=$smtp_server from=$smtp_send_from \ /usr/bin/mail -v \ -s "$smtp_title" \ $smtp_send_to 


рдкреБрдирд╢реНрдЪ: рд╕реНрд░реЛрдд = "рдмреИрд╢" рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдХреЛ рд░рдВрдЧреАрди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдЕрджреНрдпрддрди : рдПрдХ рдЕрд╕реБрд░рдХреНрд╖рд┐рдд рдЬрдирд░реЗрдЯрд░ рддрдп рдХреАред

рдпрд╣ рдерд╛ (рд╣рдореЗрдВ рдХреБрд▓ 32,768 рдкрд╛рд╕рд╡рд░реНрдб рд╡рд┐рдХрд▓реНрдк рдорд┐рд▓реЗ рд╣реИрдВ):
 NUMPASS_MIN=10000000 NUMPASS_MAX=99999999 NEW_WPA_PASSWORD="$(( ($RANDOM*($NUMPASS_MAX-$NUMPASS_MIN)/32767)+$NUMPASS_MIN ))" 

рдпрд╣ рдмрди рдЧрдпрд╛ рд╣реИ (рдЕрдм 8-рдЕрдВрдХреАрдп рдкрд╛рд╕рд╡рд░реНрдб рдХреЗ рд╕рднреА рдкреНрд░рдХрд╛рд░ рд╕рдВрднрд╡ рд╣реИрдВ):
 NEW_WPA_PASSWORD=$( printf "%04d%04d" $(($RANDOM%10000)) $(($RANDOM%10000)) ) 

Source: https://habr.com/ru/post/In149495/


All Articles