> But I don't really understand anything when reading the reddit API.
http://www.reddit.com/dev/api#POST_api_login gives information on the JSON message you should send as an HTTP 'POST' request to api.reddit.com. You will need an HTTP library an a JSON formatter, but if you're just experimenting then 'netcat' is your friend.
Cool article! ProxyCommand was new to me and I'll definitely use it. I did have to drop the "-q 600" command to netcat and changed "netcat" to "nc" to get it working with Gnu Netcat. I wonder what "-q 600" was supposed to do and what flavor of netcat the author is using if not Gnu.
If you have netcat, you can easily set up a transfer from one machine to the other:
on one machine:
> cat screenshot.png | nc -lp [a-free-port-over-1024]
on the other:
> nc -p [same port as above] [ip-of-server-machine] > screenshot.png
A Reverse Shell isn't necessarily an attack, per se, but more of means of communicating with a target. They can be helpful to work around situations where port blocks don't allow an attacker to interact with the target directly. In this case the reverse shell would connect from the victim's system back to the attacker's system and as a means for the attacker to gain access to the victim's system. A Reverse Shell can be setup as part of exploiting one of many different types of vulnerabilities.
A Meterpreter reverse shell functions as part of the Metasploit Framework. netcat is probably the most versatile option and ncat acts as a modermized version of netcat. That being said, simple reverse shells can be setup in most common languages, but these would mostly just be a stepping stone for one of the aforementioned options.
net cat is one of the most quick and dirty ways to transfer files from one system to another locally. You can also use it over the internet but there is no encryption in it.