Thursday, 30 September 2010

With my post I would like to share with all of you, my resources when it comes to downloading USEFUL things from the internet. Some of these things are useful to chuck on cds/dvds and others are useful to use he he he

Most of your know about P2P using programs such as kazaa, edonkey and what not. This is what everyone uses. (EVEN ME WHEN THE BELOW 3 FAIL or I want old and obscure stuff that only some weirdo in Kazakhistan may have). If you are going to use Kazaa, use kazaalite as it has no spyware

Before you download any files i recommend that you get the K-Lite Coded Pack that contains in a single file all the codecs for most media file types that you are likely to download and use. The address to the site is CODE http://doa2.host.sk/codecs/ . The site also contains alternatives to Apple Quicktime and Real Player which run more efficiently and are less annoying, especially Real player and the forcefull advertising.

People that are serious about downloading useful quality stuff usually don't use those sort of programs.

Your 3 best friends are FTP, IRC & Bittorrents and as of lately DC++!!!!!!!!!!!!!!!!!!!!

The tools which you will need are:

An IRC client: CODE www.mirc.com

An FTP client: CODE www.flashfxp.com

and a bittorent client: CODE http://azureus.sourceforge.net/

PART 0 -----------------------------------------------------------------------------------

I highly recommend DC++?? which you can download from CODE http://dcplusplus.sourceforge.net/ its basically like kazaa and similar.

In Aussie Land this is the program that you MUST have if you want to leech at big LANs. everyone shares using this program and you search, browse users shared folders and download. Very Handy.

Even more handy is that fact that you can also use it on the internet to connect to various networks (HUBS) and get stuff from ppl that share 300+ gigs of stuff. yeh AMAZING.

I have played around with this program and highly recommend it now. The amount of content you can get from it is astonishing. The only setting up that you need is to allow a certain port to be open with both (tcp (used for file transfers) and udp (used for searching) allowed. You can specify this in your firewall if you have one, otherwise don't worry (note: winxp has a firewall enabled by default). I also recommend that you share, as many HUBs wil not allow you to connect to them otherwise. When you open up a port you run in Active mode ( others connect to you) you can also run in passive mode (you connect to other people). So why not run in passive mode all the time ? because if 2 people are in passive mode, you will not be able to connect to one another.

When you connect to a hub you and do a search, tick display results with open slots only. and thats it. You can also browse peoples share folders, if you right click on one of their results and select "get file list"

For Help, please refer to About, Help / Newbie Help

Please read this file as it is short, and nicely summarises all the options and available commands. Also just click around (right clicking is good) and see what you can do.

typing /fav in the chat window will add the current hub to your favourites (very usefull)

What I do not like about this program is that, you are not able to download the same file from a number of people, or resume the same file from another person like you can in other programs. In the latest version you are unable to limit your upload rate, and can in this way, slow your connection down to a crawl. Lastly you are only able to get one file (or directory) at a time from a single person, without the ability to queue a number of files (or directories).

So if that person has a lot of things that you may want, it could be very annoying to get them from them. However I do like the fact that you can connect to a number of hubs at the same time, and easily search all of them or only one of them (you can select) with a single search.

PS. this program is made for people on broadband only, in fact i don't think any hubs will even let you connect on a dial-up connection. Bad luck to all you turtles.

Thanks to OLI who wrote these guides.



Posted with Autoblog toolBlogHatter

PART 3

--------------------------------------------------------------------------------------

Now time to slap on an FTP client and mix it with An IRC client and season it with the List Reader

You may already have Mirc from the 1st 2 parts if not get it from CODE http://www.mirc.com then please get this great FTP client from CODE www.flashfxp.com and finally the Invaluable List Reader from CODE http://listreader.oompah.org/ <-= install carefully, you may need the .net framework as well, available through windows update or the link posted on that website.

If you don't know what FTP is or how to use it, egh... LOOK INTO IT!! Moving along, you need to obtain an FTP site to connect to. this is where the magical LIST comes in.

To get the list go into mirc, and type in the status window /server irc.fdfnet.net then type /join #warez to join the channel warez. Once inside type "!list" without the quotation marks, and a you will get offered a file called list.txt, accept gracefully, and remember to stay in the channel for a few minues. If you close mirc down as soon as you get the file, you will be banned from that channel for good, for being a tight a**.

Once you have the file it will be located in your MircInstallDir\downloads folder. Start up List Reader and open up the file.

Wow you say, look at all these sites. Yep, all good. Before you can connect to them, in the options (look around, you have eyes after all) select your default client to be flashfxp and point to it (its probably in program files\flashfxp)

Once that is done, start up Flashfxp and double click on a site that you like, you can either scroll down the list in different categories or search. Please note that the descriptions are often brief and a site may have ALOT more good stuf on it. Once you double click on a site, you will notice that flashfxp is connecting for you. As with most things, you will find that it will either connect quickly and u will be presented with alot of files/and or folders that look like something you see in an explorer window. The site could be busy and you may have to wait and hope that it eventually connects, or the site may have died and you are momentarilly out of luck.

This sounds like alot of work old man, is it worth the time ?

Yes it is, because sometimes you will hit a goldmine, and maybe down 4 gigs of excellent stuff in one hit its too easy, all u do is drag the stuff you want from the right window into the bottom left window, and once u have queued up, right click on one of the files in the bottom left window and do transfer, to watch them all download one by one.

But But I like bitttorents and XDCC Good then only use them. However i use it ALL

Thanks to OLI who wrote these guides.



Post created with BlogHatter - making money blog

PART 1

------------------------------------------------------------------------------------- lets get into bittorents, cause its the easiest thing to setup.

All you do is install the bittorent client (see link above). go to CODE http://suprnova.org and click on a torrent you like. I recommend that you right click and save the torrent. and then click on the saved torrent to start a download. this way if your download fails, u can resume it from the torrent you saved rather then having to go to the website. Confusing? it may be, thats why I recommend you go here for more helpful info. CODE http://www.dessent.net/btfaq/

The next thing that you need to note is, thats if you are using firewalls etc... you will need to free up some TCP ports. That is from 6881 to 6999. Otherwise the program will show you a yellow dot and your downloads will be slow.!!!

Now for all of you with limited connections, even though the faster you share the file you are downloading the faster you will download it at, IS TRUE. If you saturate your uplink, aside form making your internet connection crawl slower then a constipated snail, you will also slow down your bittorrent download as your pc will not be able to acknowledge the packets which you receive fast enough, since you are using all your uplink to share. In this case the *WISE* thing to do is to click on the torrent window and select Settings for [Dial up/ISDN] and move the arrow on the right of this all the way down to 3k for uploads.

I would also like to point out that with bittorrents, unlike other p2p sharing programs, you only share the file which you are downloading and NO other files on your pc. Torrents work by downloading bits of the file like a puzzle from various people. So if you have a part of the puzzle that someone else wants, you swap and so on.

(IMPORTANT often a torrent may appear to be completed on your hard disk (take up 500 megs as u expected) but it won't really be because torrents often reserve space and then this space gets filled up with the missing bits of the puzzle. PLEASE remember that a torrent is not finished downloading until it says "Download Finished"

It is also generally considered polite to leave the torrent open even after you have finished your download so that other people can download for you. If you don't wanna, then at least do it at times when there are 0 hosts and a few peers, that way you keep the torrent alive. (a host is a person or persons who have posted the torrent or left their finished file for sharing and peers are people who are downloading the file i.e. the host has the entire file and peers are ppl who don't and are downloading it)

FINALLY you should be able to find lots of handy stuff on suprnova but before you click to download a file, check that it has AT LEAST 1 SEED or if it has 0 seeds that it has quiet a few peers. The reason being that it is possible that all those people combined among themselves will not have enough data to put together the entier thing you are downloading (you will know that this is the case if after a while you still have a blue dot) Sometimes i have left these files going for a day or 2 and someone has kindly come in and shared their file again, and I managed to finish these downloads, so don't give up on these files straight away.

I know i have written a fair bit here, but you can probably ignore most of it heheh

Happy Torrennting!!

PS. if you have not found all the stuff you need on CODE http://suprnova.org (you may notice they don't serve porn) then you may wanna give one of these links a go CODE http://members.lycos.nl/gettorrents/index.php?

PPS. suprnova.org down? try one of the mirrors (google is your friend "suprnova.org mirrors" and finally sometimes the mirror works but the torrent does not, in this case try to modify the link to the torrent to point to another one of suprnova's mirrors. for example if the link says CODE yellowhouse.com/suprnova/torrents/smellytorrent.torrent try altering it to phobal.ca/suprnova/torrents/smellytorrent.torrent

CODE http://www.btsites.tk/

CODE http://www.torrentbox.com/

CODE http://isohunt.com/ [<-= submitted by LanoX] (a good IRC & Bittorent Search Engine

Thanks to OLI who wrote these guides.



Post created with BlogHatter - make money from blogging

Partitioning Your Harddisk With Fdisk

Partitioning your HardDisk

Partitioning involves creating logical units on your hard drive that are then addressed as different drive letters. Not only does it help to organize your data (program files on one drive, games on another, documents on another) but also to speed up your PC. This is so because the drive head has to move a lesser distance for accessing data within one partition. You can also have different filesystems and OSs on the same hard drive.

Partitioning can be done using ‘fdisk’ in DOS/Windows 9x or ‘disk management’ in Windows 2000/ NT/XP. We will describe the procedure for fdisk, since disk management is GUI driven and the basics otherwise remain the same. While several other commercial packages like Partition Magic are available, these utilities (fdisk, computer management) are bundled with their respective OSs. You need a bootable floppy with fdisk.exe, format.com, and sys. com utilities. Before starting, decide how many partitions you want to create and their sizes. You can create one primary and one extended partition using the DOS fdisk. The extended partition can then have multiple logical partitions. Boot your machine using the bootable disk, and do the following.

Run fdisk. The utility will show you a numbered menu from where you can create, view, or delete partitions The utility first asks you whether you want to enable large disk support. Type Y (for yes) and press enter if your hard-drive capacity is more than 4 GB. Large disk support creates a FAT32 partition, which can be greater than 2 GB Select the first option from fdisk menu to create a primary partition. Specify the partition size in megabytes or percentage size when prompted for it Similarly, create an extended partition. Extended partitions by themselves do not appear as drive letters. Instead, logical partitions must be created in them, which are then assigned drive letters Exit fdisk and reboot the computer Fdisk automatically assigns drive letters to all the partitions. You’ll need to format each partition in order to use it. Use format.com for the same Your hard drive is now ready for taking an OS.



Postedwith BlogHatter - Blogger Poster

PART 2

-------------------------------------------------------------------------------------

Now that I have got you excited about bittorrents and you have downloaded everything on the internet, including your uncles famous cabbidge stew I would like to introduce you to the magic of XDCC transfer over IRC

Ladies and Gents please download mirc, the most popular IRC client from CODE http://www.mirc.com

and to make the entire process as easy as watering a cactus please get this great xdcc downloading script for mirc from CODE http://xdccklipper.sourceforge.net/

How do I install this scrip you ask ? use your eyes, and follow the instructions on the website *duh*

Moving along now, i will paste a whole heap of sites that allow you to search for XDCC packets.

CODE http://Xdccsearch.com http://PacketNews.com http://Xdccspy.com http://Infabot.com http://packetseek.com http://xdccspider.com http://Isohunt.com http://Ircspy.com <-= THE BEST http://www.mircsearch.co.uk/ http://www.infade.com http://mydownloader.com/ http://www.debateroom.com/ [<-= submitted by PcGuru] http://isohunt.com/ [<-= submitted by LanoX] (a good IRC & Bittorent Search Engine

1st fire up MIRC, I assume u have filled in a nick and all that info go to the CODE http://ircspy.com and type in what you are searching for. Once you get hits, click on a link and a window will popup asking you to connect to a new server. ACCEPT and you will find yourself inside a channel full of people and robots. Now hit CTRL + V this will paste /msg robot xdcc send 1 (where one denotes the number of the file that they are serving, so it could be 15 and bot is the name of the bot, the bots USUALLY have a + in front of their name and are all the way near the top of the list) and smack enter. This will make a request to the bot.

Now 3 things could happen. 1 your download will start immidately and u will get this warning window asking you if you want to accept a download (all this can be turned off and I recommend that you do that in the mirc options along with ignoring of certain file types, I also recommend turning on auto accept for your convenience, if you download a virus, then it should be obvious, and don't click on anything you did not download intentionally and all will be rosy!!). 2. you will be placed in a queue and you download will start when you reach the top of the queue or 3. the bot is not there, or has change its packets and the packet you just requested is not the one that you expected.

Very EASY!!

Now you ask, well if thats all I do, what was the point of that script, its just confusing me with all these extra windows?

HA HA

The point of the script is that some channels provide so much great content and have lots of bots, that u just want to idle in that channel, and *know* what every bot is offering and be able to get it with a mouse click.

Welcome to the point of the SCRIPT!!

Thats exactly what those 2 windows are, one lists all the available packets, and the other one displays the status of the files that you want to get (please have auto accept ON)

simply right click on the file you want and select "get packet"

So what are some of these great channels and servers you talk about OLD man ?

Alright, theres a couple I like, simply cause they serve loads of *NEW* METAL releases and this sort of stuff gets me as excited as milk and cookies.

start up mirc, close that popup connect window. and in the status windows type:

/server irc.efnet.nl

then type: /join #metalmetal and

then type: /join #metalheadz

What other good servers and channels are there ?

Find them yourself though ircspy and other searchers. Once you find something you want, stay around in the channel for a little while and see what else they serve, and if its good, then remember the server and channel. Simple!!

Now the final trick for all you leechers is invaluable. What if I want to be on 5 different servers at once? Well you can load up 5 different mircs, OR load up 5 different servers inside of one mirc. How ? right click on the first icon from your left, that looks like 2 yellow stick, and select open new server window. Whooa man now I have 2 status windows!!

Thats right, and if u click on the 2nd status windows and type in /server your.bloodyserver.org you can get on the other server and the script will conveniently open up 2 new windows for this server

Also if you are using a search engine such as ircspy, u can open a new status windows and click on it, so that when u hit a new link, it will ask u to connect using this new status window, and not disconnect you from the server you are already on!!

The only BAD thing about the script is, that if you close mirc, your download queue will be LOST.

OK have fun kids, and be good to your parents!

PS. you downloaded all this, but got no idea where it is ? well its in c:\mirc\downloads or wherever you installed mirc (DUH!!)

Thanks to OLI who wrote these guides.



Post created with BlogHatter - make money with blog

Wednesday, 29 September 2010

PACKET ATTACKS - VERSION 1.1

Let me start by saying the internet is full of wonderful tools and papers like this one. Alot of these things can help you increase your knowledge, perhaps your job or more. But just as easily as you can learn from them, people read into them to much and decide to harm other peoples work for no apparent reason. Let it be known that is in no way the purpose of this paper. A true hacker is one who strives to attain the answers for themselves through curiosity. Its the path we take to those answers that makes us hackers, not destruction of other peoples work. So with that said, please enjoy my work, as I have enjoyed writing it.
The flow of data has always captured my interest. Just how does it work, how can we dissect it and use it to our advantage. Well I have spent a long time studying all of this, and that is why I wrote this paper. It's a collection of run on s entences on different packet attacks and how they work. Now we all know you can learn all you ever wanted to know about the specifications of a protocol by reading its 30 page RFC document. But that is the protocol according to design, in the wild its a different story all together. 'Packet Attacks' covers everything from basic DOS attacks to TCP/IP hijacking. Hence the name "Packet Attacks". This paper also focuses not just on attacks but practical ways to prevent such attacks and ideas on new methods to help us stop them and secure our networks.
Introduction: TCP/IP Packet Switching Networks OSI MODEL
---Chapter 1.--- Section a. Introduction to DDOS/DOS & Packet Attacks Section b. How attacks are crafted
---Chapter 2.--- Section a. (attacks) ICMP Smurf SYN/ACK UDP DNS ARP DrDOS Special Bot / Trojans Worm DOS Unicode ping flood (new!) Section b. Phasing Section c. (hacks) TCP hijacking Sniffing Scans Information gathering / Footprinting Section d. Defense against these attacks Attack Detection Intrusion Detection Section e. IPSEC NAT as a means of security
---Chapter 3.--- Section a. The future of TCP/IP as a means of using IPv6
---Chapter 4. --- Section a. New security application / protocol
----- Introduction.
Well I assume most of you reading this paper already have a good understanding of TCP/IP and how it works so I wont get to much into detail on that, but I will scrape the surface on the parts we NEED to discuss. The internet is a MASSIVE web of machines all connected to one another through a series of hardware devices known as routers, switches, hubs, bridges and lots more. All of these devices (although some are smarter then others) push along packets. Our operating systems and applications craft these packets in order to send data to one another over the wire. Each packet, although varying in size, carries a small bit of data to and from one host to another. Each packet must also carry its own personal information such as where it came from and where its headed. Of course there is a lot more to a packet then just this information. But as far as attacks go this is the crucial information we need to look at. Now there are many many different types of protocols that craft many different types of packets. And they are all read differently when they are received at the other end. Where as an ARP packet may tell a host who has this MAC address on this subnet, a TCP packet might transfer the last few bits in that MP3 your downloading. Regardless the data, all of these packets use the same wire to move to and from locations. I couldn't possibly discuss every protocol and packet structure in this one paper. The average end user takes for granted all of this running in the background while they surf the net. Most people dont understand the complexity of this internet we are all so familiar with, the chat rooms etc. But there are people who do, and there are people who take advantage of that. Reverse engineering has led to the creation of attacks using the basic fundamentals these protocols rely on. And since TCP/IP is so embedded in our infrastructure we must adapt and learn to defend each new attack.
OSI MODEL
Open Systems Interconnection model, is a seven layered networking design. Its an industry standard that defines exactly how data is transffered between protocol to protocol. Not every protocol follows the OSI model exactly and some do. TCP the internets main mode of data transport does not follow it exactly. Let me take you through a brief over view of the OSI model.
Layer Seven : Application Layer This layer is obviously application specific, it provides everything from authentication to email to ftp and telnet, the list goes on. Its specifically for end user processes, what we input into our applications we can see on our screens.
Layer Six : Presentation Layer This layer changes and possibly encrypts the data so that the application layer can understand it. (you will understand what this means in a few minutes)
Layer Five : Session Layer Think of this layer as Establishment, Control and Termination of the sessions formed by the application(client) to a remote host(server).
Layer Four : Transport Layer This layer is responsible for the invisible transfer of data between host to host. It is there to ensure all data transfer goes accordingly. The protocols used are, UDP and TCP.
Layer Three : Network Layer This layer is for error correction, packet sequencing, and for transmitting data from node to node. Addressing is also another function of this layer in inter-networking.
Layer Two : Data Link Layer This layer decodes and encodes packets into bits so they are ready for the physical layer. It also handles error correction in the physical layer. This layer is also divided into two different sub-layers. The LLC (logical link control) and MAC (media access control) sub layers. The LLC sub layer provides control for frame synchronization and error checking. The MAC sub layer controls how a computer on your network has access to data.
Layer One : Physical Layer This layer is the actual movement of the data. Using electrical impulse or some other form of data movement is pushes the bit stream towards the other host. This layer is the hardware level, the ethernet card, the wire etc. There are many protocols within this layer.
You may ask yourself why I listed these from 7 to 1. Well I did to show you how the OSI model really works. Layer Seven really comes first, the end user types something into his instant messenger (for example) and the data flows down through the OSI model being encapsulated and changed at every level it has to be changed or corrected at. The data travels the wire and at the other end it moves back up the OSI model all the way back up to layer seven where the other host can read it in the original form it was sent. So theres a VERY basic understanding of the OSI model and how it works to transmit data from host to host. There is alot more protocols and parts to the OSI model but this basic representation should provide a firm understanding.
To understand all of this more in depth please get your hands on a few RFC (request for comment) documents and start reading. Because it will take you a very long time to understand exactly how TCP/IP works. If your very knowledgeable in the way TCP/IP works then this paper should make alot of sense to you, perhaps even bore you! :( On the other hand if you dont understand TCP/IP as well as you would like to, you still might get something out of this. I try and explain all of the technical writing as easily as I can. Feel free to email me if you have a question or comment. Thanks :) Data_Clast
--------------------------------------------------------------------------------------- Chapter 1.
Section a.
The most common attack on the internet today is a denial of service attack. There are many programs on the internet today that will assist anyone in crafting one of these attacks. The sad part is for as easy as they are to make their power can be destructive when used properly. No matter what kind of packet attack it may be most are based on the same principal, volume. Thousand and thousands of spoofed packets will eat up network resources within minutes, choking and essentially 'killing' any network. There are many types of packet attacks. Some are more sophisticated then others. I will also talk about TCP/IP hijacking and your typical port and vulnerability scans among other things.
Why do people launch these attacks? How are they launched? How do they exactly (technically speaking) 'choke a network'?! Hold tight im getting to that. The lower end of these attacks are usually launched by what the hacker community calls a script kiddie. You see a hacker isnt a mindless web defacing juvenile (please see the mentors manifesto). A hacker is a person of true intellect and would never craft such an attack for no reason. But these lower end attacks are usually launched at peoples individual machines. Their IP address's may come from an IRC chat room, yahoo messenger, AOL, ICQ, or whatever other messenger you might use. Although not as sophisticated, these 'lower end' attacks can still knock an individual machine offline in minutes. The slightly more advanced attacks may be aimed at a business competitor in order to slow their sales or disrupt their outgoing internet connection. Whatever the reason may be they are usually launched for a reason. Attacking a box for no reason is typically useless and will only take up your own bandwidth.
The more sophisticated attacks are aimed at government and root points of the internet. Such as the attacks on the root DNS servers in October of 2002. These attacks were sophisticated in the way they were crafted. The attacks lasted for over an hour and successfully took out a few of the servers. If the attack had lasted just a few more minutes who knows the damage it could have caused. The possibility of the authorities solving these attacks and apprehending the offenders is slim to none because they are created and launched by skilled malicious individuals. They were also distributed denial of service attacks. Which means the 'zombie' machines that attacked the servers were spread out all over the world. We will touch more on that later though.
Section b.
You will learn more about how these individual attacks are crafted and how they work later in this paper but this is small introduction so you can get a vague idea. Creating spoofed packets requires an open socket. This socket binds to an IP and a port and allows you to inject a packet onto the wire or accept any incoming packets to that IP and port. *NIX openly supports open socket programming (many tutorials on this type of programming). Which means you can code programs that create packets and then inject them into the network with ease. An example of this would be a program called "SENDIP" which allows you to create custom packets, and it supports many protocols (another good program is nemesis). I have written a few tutorials using SENDIP, I think its a great program for both advanced and new network engineers to use. It will help you learn about packet structure and the different protocols it supports. Microsoft is not an open source company, which pretty much makes it even harder to find help in creating these sorts of programs for Windows. But it is possible to craft these attacks from within a Windows environment. Its referred to 'Winsock' programming. Infact most of these DDOS attacks are because of vulnerable Windows boxes out on the net. They are sitting ducks for trojan horses and other programs that craft these attacks on servers when commanded from a client program to do so. Most end users do not understand security and how easy it is to break into someones home computer, so they lack firewalls and virus scanners. This leads to many zombie machines available to hackers disposal on the net. All one has to do is scan a class C subnet for open trojan ports and hack their way into those trojans and use them as a backdoor, another zombie is created for attacking remote targets. Almost every program that interacts with TCP/IP generates packets to and from places, this is valid traffic. As you read you will distinguish the difference between valid and non valid, as it easy pretty easy to understand what I am explaining when I say "attack". When creating an open socket and crafting spoofed packets these programs tell the kernel they are going to construct their own IP headers. Usually this information is put on by the kernel before exiting the machine. But in this instance we are telling the kernel we want to specify our own information. Not all operating systems will allow this. And no I dont have a detailed list of which do and which dont. Most of the experiments I have conducted on my network used different versions of RedHat Linux System, Mandrake Linux, and Windows XP.
Chapter 2.
Section a.
There are several different types of packet attacks. Theres the simple brute flood of ICMP packets which floods a network and eats up all the available bandwidth. And then there are more sophisticated attacks like the Smurf or SYN/ACK attack. All of these attacks target different things. While the SMURF attack may target the general network its attacking, the SYN/ACK attack targets a specific host or service running on a host. We also must take into consideration when a target is attacked it may not be the only machine affected. There are many routers and other boxes transfering the data between point A and point B. Other peoples legitimate data is flowing between them, and may be disrupted by the packet flood. Even a top of the line router can only handle so much data. And unfortunately it is very easy to attain soure code for these attacks all over the web. Lets take a more detailed look at each attack.
ICMP brute flood attack.
ICMP works on top of TCP. The ICMP protocol is simple yet very effective. Its used for error correcting and testing network connectivity. Your average PING program uses ICMP packets to test network connectivity. By sending a small amount of arbitrary data in an ECHO_REQUEST packet it waits for a reply from the target host, simple right? A typical ICMP packet is called an ECHO_REQUEST. You send 4 or 5 of these at a target machine and when it arrives there it requests an ECHO_REPLY. Thats when everything is done according to design. If you want more info on an ICMP packet and how it works then read my tutorial on that! http://www.theory-x.org/dataclast/_content/MPS.txt
In this attack the source IP address is spoofed. So now hundreds, thousands of ECHO_REQUEST packets rush towards their destination. They reach point B, request an ECHO_REPLY for every ECHO_REQUEST sent. Point B says OK, reads the source IP. The source IP ends up being unreachable. But point B is waiting a small amount of time (milliseconds) to determine that for every packet thats hitting it. It will be a few more moments before the process relinquishes this small bit of memory back to the system. This adds up to a great deal of packets and memory allocation building up. Now if these packets are coming from multiple source zombies (DDOS) then this means there each coming from different routes. So even if one ISP stops one attack, there are still many more zombie machines attacking the victim. All of this is eating up time and bandwidth, because with every millisecond that passes more and more bandwidth is being taken up. Eventually point B can no longer keep up with the ECHO_REQUESTS and his connection is completely flooded and of no use. On an unprotected system or router this attack can be very consuming. This attack is also sometimes referred to a bandwidth attack. Even if the target is running an advanced firewall it cannot protect the wire it connected to from being flooded with packets. There have been changes in this attack as well. On the net there are what we call amplifiers. On every network there are the network and subnet addresses. In many default configurations when you ping either one of these addresses they multiply the echo requests by 4 or more. So a zombie would attack a vulnerable network (.0) or subnet address (.255) with a spoofed source IP, being the victims real IP. So even tho the traffic becomes valid as far as IP addresses go. The victim gets bombarded with massive ECHO_REPLY packets. You will see more of this description in other attacks, as it works for some of those to.
[zombie machine] -->ICMP ECHO_REQUEST (source IP = 1.1.1.1) -->-->--> [target] [??????????????] ICMP ECHO_REPLY (destination 1.1.1.1 ?)<-- [target]
Hopefully that simple drawing shows you exactly how this attack works. Its very very simple, massive ICMP packets with spoofed address's taking up network resources. The simplest of attacks.
Smurf attack.
(first part is repeat from ICMP attack) There have been changes in the ICMP attack. On the net there are what we call amplifiers. On every network there are the network and subnet addresses. In many default configurations when you ping either one of these addresses they multiply the echo requests by 4 or more. So a zombie would attack a vulnerable network (.0) or subnet address (.255) with a spoofed source IP, being the victims real IP. So even tho the traffic becomes valid as far as IP addresses go. The victim gets bombarded with massive ECHO_REPLY packets. You will see more of this description in other attacks, as it works for those to.
You can try this attack on your home network by simply opening a packet sniffer on each machine that is on. Pick a machine, any machine and ping your broadcast address. Mine is 192.168.0.255 Immediately you see each machine receiving a broadcast packet. Now imagine its several hundred and each one has a spoofed source IP address. Its a brute ICMP attack on a massive scale, this possibilities to this attack are endless. You could easily implement this attack in anyway you chose. You could spoof the victims real IP as your source IP and create massive volumes of legit ECHO_REPLY packets. Even though its valid traffic, its 4x or more times the normal load of valid traffic. This consumes the connection and valid traffic cant pass, or passes so slowly it makes no difference to the end user.
[zombie machine] --> ICMP ECHO_REQUEST source ip = 10.2.2.2 --> to: broadcast router 4.1.0.255 (router multiplies the ECHO_REPLY packets by 4x! --> --> --> --> [victim 10.2.2.2]
SYN/ACK attack.
The SYN/ACK attack is a very powerful attack. SYN/ACK packets are also used in TCP hijacking, and the TCP/IP three way handshake. When an application wants to connect with a server somewhere over the net via a TCP connection (connection vs connectionless data transfer (UDP)) it first sends a SYN packet. The SYN packet tells the target machine he wants to make a connection on a certain specified port, and then send data. When the target machine read the SYN packet it replies to the original host with a SYN packet of his own and an ACK (acknowledgement) packet with sequence and ack numbers. These SEQ and ACK numbers are used to synchronize the data transfer, incase one or two packets gets lost or slowed down along its route, it can be assembled again in the correct order. The orignal machine replies again with another SYN ACK packet combination acknowledging the sequencing numbers and then it starts to send data. When it creates this connection a tiny piece of memory is allocated to hold the connection while the packets are in route. Now a SYN/ACK attack would consist of spoofing the source IP address on the original SYN packet. The target receives the request for a connection, reads the spoofed source IP and tries to send its own SYN and ACK packet to a destination that does not exist. Most operating systems will continue to send SYN/ACK packets if they dont receive a reply as a method of error correction and guaranteed data delivery. Just like in the ICMP attack the machine has to wait a few milliseconds before abandoning all hope of reaching the machine. So these tiny allocated spaces of memory are building up with every spoofed packet that arrives at the target. This attack is very powerful and can disable a service running on the target machine in a matter of minutes. Not to mention all the available bandwidth is eaten with thousands and thousands of spoofed packets. So there is the SYN/ACK attack in a brief description.
[zombie machine] --> SYN packet (source IP 1.1.1.1, port = 23 telnet) (seq = 100) --> [target] [??????????????] <-- SYN/ACK packets sent (seq = 300) (ack = 101) <-- [target]
As you can see from the simple drawing above the target machine has no idea who is sending the SYN packets and the telnet server he is running on port 23 would most likely crash. At best the telnet daemon would not allow any other legitimate traffic through, as it could not gather enough resources (memory, bandwidth) to make the connection due to all the spoofed packets.
Another use of this attack is to disconnect a user from their current TCP session. By spoofing SYN/ACK packets to a server a client is currently using. An attacker would place a "FIN" flag in the packets, this tells the server the client is done sending data. Client uses his connection and attacker walks away undetected, because it only took one packet to accomplish this.
UDP attack
UDP is a protocol that is used to transfer data. Short for USER DATAGRAM PROTOCOL. UDP offers very little error correction and is used as an alternative means for data transfer. It doesn't require the 3 way handshake such as the SYN/ACK method, so its initial attack may not take down a remote daemon as quickly. UDP is generally used to broadcast messages over a network. A UDP attack would consist of spoofing the source IP addresses and specifying a port number like in the SYN attack above. UDP packets are generally large because they are usually used on closed 100mb subnets (LANS). So an attack would set flags in the packets and fragment them (break them up and flag where in the packet they broke, so they can be reassembled on the receiving end). For example in Windows 2000 there was a remote UDP DOS exploit that used the IKE service running on port 500. All an attacker had to do was connect to port 500 on a random machine with that port open. Start sending massive UDP packets (above 500 bytes) to that service and the CPU usage would hit 99% and the machine would lock up. The typical ports that accept UDP packets are 7, 13, 19 and 37 on a Windows box.
DNS attack
The DNS attack is a special one. Not as easily crafted as the others, there arent that many tools readily available to the average script kiddie to construct such an attack. The DNS protocol is used for name resolution, 216.239.35.100 = google.com, simple as that? Well not really. A DNS attack is based on the fact that a DNS query takes very little data and bandwidth to create, but a DNS response is much bigger. So this is how a DNS attack would look like.
10.10.10.10 = victims IP
[dns query packet (who is google.com)] --> source IP is 10.10.10.10 --> [dns server] [dns server] --> --> --> [dns response] [dns response] [dns response] --> [victim]
As you can see the attack is sort of relayed from a legitimate DNS server. Although the DNS response packets are 'legit' there is a massive flood of them because the DNS server that is sending them is a very good machine on a very good connection. The end user, most likely a home pc, gets flooded with these huge DNS response packets it never asked for.
ARP attack
The arp attack is a special one, it can be used to 'hijack' a tcp connection currently in session or it can be used to sniff the legitimate traffic on a wire other then your own. Which is a very dangerous thing in the information world we live in today. There are a few methods of this attack. Lets say person1, attacker, and server are all on the same subnet. Person1 and server currently have an FTP session open. Attacker sends both server and person1 an ARP packet containing an invalid MAC address. Now both of their arp tables are messed up for atleast 30 seconds. Server and person1 cant find that invalid MAC address so they send their data to the IP its associated with, the attacker. So in this case the attacker has a sniffer setup and hes collecting a ton of data. Now the attacker (an advanced one at that) can issue commands as person1 to the server. This attack takes timing and skill to pull off on the internet, but on a LAN its very easy. It only allows for maybe 30 or so seconds of sniffing, until their arp table is constructed properly again.
DRDOS attack
A DRDOS attack uses a little of other attacks to inflict damage. This attack spoofs the source IP address of SYN packets to the IP of the victim. It requires a third party. This is the part of the attack that makes it so easy. All it needs is some ftp, webserver, telnet.. ANY service that will reply with an ACK packet, anywhere on the internet. Could be angelfires free ftp servers, could be your neighbors web server running off his 233mhz compaq with IIS 4.0. It doesn't matter! The SYN packets are sent to that services IP address and they of course reply with a steady stream of SYN/ACK packets to the victim. Most likely directed towards an open port on the victims machine, crashing that service and the system. These attacks are near impossible to track down. This attack is quite possibly the strongest DOS attack in my opinion. For every SYN packet you send the middle man, it sends out up to 4 SYN/ACK combinations to the victim. And each time the victim doesn't respond the middle man sends even more (error correction). This allows the attacker to contruct a massive attack from just one machine with a broadband connection. There are more dangers to this attack as well, there are hundreds of thousands of FTP, webservers and many more services running on the net today that will deflect these SYN/ACK packets at the victim. So in theory this attack could use any number of 'middle man' servers to bombard your network with packets.

Post made with BlogHatter - make money with blogs

Outsmarting System File Protection

Tested in Windows 2000 sp2, Windows 2000 sp3 with and without IE6 sp1. Should work fine in XP and XPsp1

------------------------------

A lot of people are having troubles with System File Protection (SFP for short). This can be a major pain in the butt unless you know the tricks to it. Having only tweaked Windows 2000 Service Pack 3 I figured out a few things about SFP and replacing files:

1) TaskManger is your best friend when replacing files in 2k/XP. When you open task manager you can do just about as much as you can do with Explorer just by going File>NewTask(Run..). From here you can either use the Run Dialog to launch programs one at a time, or select 'Browse' and explore. Using right click menu commands to do the bulk of your work (Copy, Paste, Rename). Problem is often times you can't replace items do to the fact that your browse is making calls to things you want to delete.

2) CommandLine or Cmd.exe is like that other friend you have that likes to help out. One plus this has over TaskMan is you don't use the file you are trying to replace. A minus is that it can be a pain if you aren't an experienced DOS user.

3) Backups are your ace in the hole. Always back your files up prior to doing anything (sometimes I don't bother and wish I did.). Keep It Simple Stupid applies here. Save yourself a few keystrokes and place your backups in something like C:\back\

4) SafeMode is the rest of the hand. Windows2000 and XP (I believe) can both be booted into SafeMode. When your computer is first booting up, after your bios screen but before the Windows is Starting screen (I could be slightly wrong here seeing how I don't know the timing for sure.) you hit F4 or F8 to get the SafeMode menu. Select 'SafeMode with CommandPrompt'. Welcome to "DOS" on 2k/XP. Anything that can't be replaced while Windows is running can be replaced here. (url.dll) Syntax would be Copy c:\url.dll "c:\Program Files\Internet Explorer\" quotations allow you to put spaces in the path (I didn't know this)

...

Here we go. System File Protection, of Sytem File Checker is a neato feature of Windows meant to protect Joe Computeruser's PC from being ruined. When a needed System file is being replaced your File Checker says "Wait a minute this isn't mine." While this can be great in the long run, it's not a positive thing in Windows Hacking. The trick is to replace the files it uses to replace files.

...

1) First up you need to find the file you want to hack and then replace. Start>Search>Files and Folders>dllname. It's good to actually search for the file so you can find out all of the locations of all copies. Let the search finish just in case. If you have installed any service packs you will have probably have copies of the file in:

\winnt\servicepackfiles\i386\ (Win2k) \windows\servicepackfiles\i386\ (XP)

As well as:

\winnt\system32\dllcache\ (hidden folder in Win2k) \WINDOWS\system32\dllcache\ (hidden folder in XP) \winnt\system32\ (win2k) \windows\system32\ (XP)

2) Now that you have all of the locations, write them down on paper or your forehead just to be safe (backwards so it shows up in the mirror).

3) Make a backup (remember K.I.S.S.)

4) Hack your file and save it c:\ for simplicity.

5) Open TaskManger (Right click on your taskbar and select TaskManger)

6) Go to the 'Processes' Tab and find 'Explorer.exe' highlight it and push the 'End Process' button. Say Yeah to the popup.

7) Go to the first tab in TaskManger and select 'File>NewTask>Run>Browse' from this Window navigate to c:\ and higlight your hacked file. Right clic on it and select 'Copy' (don't Cut it.)

8) Nagivate to your Windows directory, open the \servicepackfiles\i386\ folder. Paste your hacked file and replace the copy that is in that folder.

9) Navigate to your respective dllcache folder, paste the file there too.

10) Replace the normail copy in system32 finally (or wherever it might be).

11) Reboot. Don't LogOff , Reboot.

Now chances are this won't go that smoothly. Either the file you want to replace is in use, or your pal and mine SFP will pop-up. It can mess with you in odd ways. I've replaced the servicepackfiles version and the dllcache files, then had SFP grab the normal and replace the other two with it. This can be frustrating. Or maybe the file is in use. This is where the Command Prompt comes into play. If you already replaced the files and rebooted to no change, launch TaskMan again, kill explorer.exe, then go 'File>NewTask>Run>Cmd.exe' Use the DOS commands to try to replace all of the copies of the file in that order using your hacked version in C:\

This is usually where you get the message from SFP telling you it's alive and kicking. You will get a rather urgent looking pop-up telling you that a file that Windows needs is being replaced by a different file. It will then ask you if you want keep the modified files. Say 'yes'. Next it will prompt you to insert your Windows cd to retrieve a copy of the file it needs. Click 'Cancel'. As a good rule of thumb, when you get this message replace what you need then reboot!

If your file still isn't changing, boot into SafeMode with CommandLine. Wait for Windows to take it's sweet time loading. Then just type copy c:\file.dll c:\winnt\servicepackfiles\i386\. Rinse and Repeat. Then reboot. This has worked for me 100% of the time, if followed it will work for you as well.

http://pixelarmy.org



Post created with BlogHatter - Blogger Poster Tool

Outpost Rules, Outpost rules for system & app

Here you can find how to set up your Outpost firewall. Most of this rules I found on the internet, but some of them are mine. I think that you should be safer. I used the online tests to test my firewall setings. The links to the this testers are:

CODE

http://scan.sygate.com/probe.html http://www.auditmypc.com/ http://www.pcflank.com/about.htm https://grc.com/x/ne.dll?bh0bkyd2 http://scan.sygatetech.com/ http://security1.norton.com/

SYSTEM:

Allow DNS Resolving Protocol: UDP Remote Port(s): DNS (53) Action: Allow It

Allow Outgoing DHCP Protocol: UDP Remote Port(s): bootps (67), bootp (68), dhcpv6-client (546), dhcpv6-server (547) Action: Allow It

Allow Inbound Identification Protocol: TCP Direction: Inbound Local Port(s): AUTH (113) Action: Allow It

Allow Loopback Protocol: TCP Remote Host: localhost (127.0.0.1) Action: Allow It

Allow GRE Protocol Protocol: IP and the type is GRE (IP protocol 47) Action: Allow It . Allow PPTP control connection Protocol: TCP Remote Port(s): PPTP Local Port(s): 1024-65535 Action: Allow It

Block Remote Procedure Call (TCP) Protocol: TCP Direction: Inbound Local Port(s): DCOM(135) Action: Reject It

Block Remote Procedure Call (UDP) Protocol: UDP Direction: Inbound Local Port(s): 135 Action: Reject It

Block Server Message Block Protocol (TCP) Protocol: TCP Direction: Inbound Local Port(s): Microsoft DS (445) Action: Reject It

Block Server Message Block Protocol (UDP) Protocol: UDP Direction: Inbound Local Port(s): Microsoft DS (445) Action: Reject It

APPLICATION

SVCHOST.EXE

Allowing DHCP Protocol: UDP LocalPort: 68 RemotePort: 67 Direction: Inbound AllowIt

Allowing DNS Protocol: UDP LocalPort: 53 AllowIt

Time Synchronizer connection Protocol: UDP RemotePort: 123 AllowIt

Allowing HTTP connection Protocol: TCP RemotePort: 80 Direction: Outbound AllowIt

Allowing HTTPS connection Protocol: TCP RemotePort: 443 Direction: Outbound AllowIt

Blocking "SSDP Discovery Service" and "UPnP device Host" services Protocol: UDP RemotePort: 1900 RemoteHost: 239.255.255.250 Direction: Inbound Reject It

Blocking "SSDP Discovery Service" and "UPnP device Host" services Protocol: TCP RemotePort: 5000 RemoteHost: 239.255.255.250 Direction: Inbound Reject It

Blocking "SSDP Discovery Service" and "UPnP device Host" services Protocol: UDP RemotePort: 5000 RemoteHost: 239.255.255.250 Direction: Inbound Reject It

Blocking "Remote Procedure Call" Protocol: TCP Local port: 135 Reject It

Web browsers:

Protocol: TCP Direction: Outbound Remote Port(s): HTTP(80), 81-83 Action: Allow It

Protocol: TCP Direction: Outbound Remote Port(s): HTTPS(443) Action: Allow It

Protocol: TCP Direction: Outbound Remote Port(s):SOCKS (1080) Action: Allow It

Protocol: TCP Direction: Outbound Remote Port(s): 3128,8080, 8088 Action: Allow It

Protocol: TCP Direction: Outbound Remote Port(s): FTP(21) Action: Allow It

Protocol: TCP Direction: Inbound Remote Port(s): FTP DATA (20) Action: Allow It

Protocol: TCP Direction: Inbound Local Port(s): 1024- 65535 Direction:Outbound Remote Port(s): 1024- 65535 Action: Allow It

Protocol: TCP Direction: Inbound Remote Port(s): 1375 Action: Allow It

Protocol: UDP Direction: Inbound Remote Port(s): 1040-1050 Action: Allow It

E-Mail clients:

Protocol: TCP Direction: Outbound Remote Port(s): SMTP (25) Action: Allow It

Protocol: TCP Direction: Outbound Remote Port(s): NNTP (119) Action: Allow It

Protocol: TCP Direction: Outbound Remote Port(s): POP3 (110) Action: Allow It

Protocol: TCP Direction: Outbound Remote Port(s): IMAP (143) Action: Allow It

Protocol: TCP Direction: Outbound Remote Port(s): HTTP (80), 81- 83, HTTPS (443), SOCKS (1080), 3128, 8080, 8088, 11523 Action: Allow It

Antivirus updaters:

Protocol: TCP Direction: Outbound Remote Port(s): HTTP (80), 81- 83, HTTPS (443), SOCKS (1080), 3128, 8080, 8088, 11523 Action: Allow It Symantec LiveUpdate HTTP KAV Updater HTTP connection McAfee Update Update NOD32 virus definitions

Protocol: TCP Direction: Outbound Remote Port(s): FTP (21) Action: Allow It Symantec LiveUpdate FTP KAV Updater FTP connection

Protocol: TCP Direction: Inbound Remote Port(s): FTP DATA (20) Action: Allow It Symantec LiveUpdate FTP DATA KAV Updater FTP DATA connection

Protocol: TCP Direction: Outbound Remote Port(s): POP3 (110) Action: Allow It Scan incoming mail for viruses

Downloaders:

Protocol: TCP Direction: Outbound Remote Port(s): 80(HTTP), 81- 83, 443(HTTPS), 1080(SOCKS), 3128, 8080, 8088, 11523 Action: Allow It FlashGet, GerRight, Go!Zilla, ReGet

Protocol: TCP Direction: Outbound Remote Port(s): FTP (21) Action: Allow It FlashGet, GerRight, Go!Zilla, ReGet

Protocol: TCP Direction: Inbound Remote Port(s): FTP DATA (20) Action: Allow It FlashGet, GerRight, Go!Zilla, ReGet

Protocol: TCP Direction: Outbound Remote Port(s): 1024-65535 Action: Allow It ReGet PASV FTP connection

Protocol: TCP Direction: Inbound Remote Port(s): 1024-65535 Action: Allow It ReGet PASV FTP connection

Protocol: TCP Direction: Outbound Remote Port(s): 80, 3128, 8080, 1080, 11523 Action: Allow It ReGet Update

Trillian:

Trillian Pro Login Where the protocol is: TCP and Where the direction is: Outbound and Where the remote host is: www.ceruleanstudios.com and Where the remote port is: HTTP Action: Allow It

Trillian Pro AOL/ICQ Connection Where the protocol is: TCP and Where the direction is: Outbound and Where the remote port is: 443, 5190 Action: Allow It

Trillian mIRC AUTH Connection Where the protocol is: TCP and Where the direction is: Inbound and Where the local port is: 113 Action: Allow It

Trillian mIRC Connection Where the protocol is: TCP and Where the direction is: Outbound and Where the remote port is: 6667 Action: Allow It

Trillian MSN Connection Where the protocol is: TCP and Where the direction is: Outbound and Where the remote port is: 1863 Action: Allow It

Trillian Yahoo Connection Where the protocol is: TCP and Where the direction is: Outbound and Where the remote port is: 5050 Action: Allow It

Bit Torrent:

Bit Torrent HTTP Connection Rule Where the protocol is: TCP and Where the direction is: Outbound and Where the remote port is: HTTP Action: Allow It

Bit Torrent HTTPS Connection Rule Where the protocol is: TCP and Where the direction is: Outbound and Where the remote port is: 443 Action: Allow It

Bit Torrent Network TCP Outbound Connection Rule Where the protocol is: TCP and Where the direction is: Outbound and Where the remote port is: 1024 - 65535 Action: Allow It

Bit Torrent Network TCP Inbound Connection Rule Where the protocol is: TCP and Where the direction is: Inbound and Where the local port is: 6881-6999 Action: Allow It

TCP Inbound Coverage Rule Where the protocol is: TCP and Where the direction is: Inbound Action: Reject It

TCP Outbound Coverage Rule Where the protocol is: TCP and Where the direction is: Outbound Action: Reject It

UDP Coverage Rule Where the protocol is: UDP Action: Reject It

* If you do not wish to share your files with others on the network you will need set this to Block It or leave it unchecked.



Post made with BlogHatter - best blogging software

Overclocking_Tutorial

Overclocking takes on 3 forms: First, is the casual overclocking, easy, and anyone can do it. Second, is the right way to overclock, taking into account, everything. Third, if you want serious power, your gonna need to be savy to what does what.

The casual overclocker gains about 5% increase, and really doesn't see any benefit from this, whilst it makes you feel good, no serious damage can be made, by upping the FSB a little, or changing your multiplier, only thing is, you want more.

The correct way to overclock, is to start looking at your system, check the motherboard specs, PSU, amount of harddrives, CD ROMS etc. (high end systems, including the lastest graphic cards will need serious power).

Lets take a base system like my old system setup:

AMD XP1700+ ( Thoroughbred JIUHB DLT3C ) Core Voltage = 1.50v Maximum Die Temp = 90c FSB = 266Mhz (factory unlocked)

Jetway K266B KT266 chipset DDR + SDR RAM (not together) No onboard RAID

DDR RAM = Dane Elec PC2700 DDR (333Mhz) Not registered

2 Hard drvies 1 CD Writer & 1 DVD ROM drive

2 LAN cards

1 PCI soundcard (onboard sound turned off).

Now, lets look at what they can do: The Thoroughbred is still the top processor for overclocking, Thunderbirds are just not upto it, even though they are capable of some really decent speeds, same as the Palamino, not to mention the Barton's (these are not what they have been made up to be). (for the purpose of space, I'll not go into unlocking your CPU)

As you can see, my Thoroughbred has a core voltage of 1.5v, and as my motherboard is capable of giving my processor anything upto 1.85v, there is score for more there. The FSB on my motherboard is capable of a max of 200Mhz (this is the magic number). Die temps to a max of 90c is good (never been near it, yet!).

Now, to work out your Mhz on your system, or to check your multiplier or FSB, there is a little calculation you'll need to remember, and it's easy:

Your Mhz is worked out by your multiplier timed your FSB. example:

CODE 133x10 = 1.33Ghz

Of course you can devide your Mhz with your known FSB to give you your multiplier etc.

Now for easy, I have the results of my previous unlocking tests handy, so I'll use them, and not the current speeds etc.

Standard Multiplier = 11.0 Overclocked Multiplier = 12.0

Standard Voltage = 1.50v Overclocked Voltage = 1.52v

Standard FSB = 133Mhz Overclocked FSB = 136Mhz

Standard Speed = 1467Mhz Overclocked Speed = 1630Mhz

Standard Temps = CPU = 37c SYSTEM = 32c (idle) CPU = 44c SYSTEM = 36c (under load) Overclocked Temps = CPU = 34c SYSTEM = 29c (idle) CPU 40c SYSTEM 34c (under load)

As you can see, the system is cooler when overclocked, this is due to having the correct cooling setup, and temps for it when it was standard, was standard cooling setup.

Basically, all I have done, is raised the FSB by 3mhz, the voltage by 0.02v and the multiplier by 1.0, this has given me a 163Mhz increase without over strssing my system, but, here is where it gets teadious:

To achieve this, it took me about a week, and this is how I did it: I started by lowering the multiplier to 5.0, from there I raised the FSB to its max (at the time, have latest BIOS update for mobo, allowing 200Mhz FSB), 166Mhz, this is the correct way of overclocking. From there, I started to raise the multiplier one by one, getting it back upto the standard multiplier or higher, checking the stability of the system each time. (currently I am way passed the 136Mhz FSB, as I am running PC2700 DDR).

One thing to look at though, overclocking using the FSB WILL (unless your system allows you to specify it) mess with your PCI & RAM speeds. Even raising it by 3Mhz can make your PCI cards to not work, and your RAM to get confused and crash your system.

Now your thinking to yourself 'I can do that' and yes you can, anyone can, but....... It takes TIME, I can't stress that enough, if your going to try this, then you'll need to run your system for at least 6 hours between changing your multiplier, and as you can imagine, this can take a long time to do.

For your information, I used Hot CPU Tester, SETI & played Vietcong for testing purposes.

Now, for the hard part:

As most experienced overclockers will tell you, heat is your enemy, killing heat is your number 1 aim, don't worry about your speed at first, a 50Mhz increasde isn't gonna make your 3D Mark scream through the roof, actually, you'll probably not even get any better than what you did before.

There are several ways of dispersing heat, and they are:

Aircooling Pro's: Cheap, effective at lower speeds. Con's: Noisey, dust collectors, need maintanance.

Watercooling: Pro's: Can lower your CPU by about 10c easily. Con's: It has water in it, expensive, hard for some to understand.

Pelter: Pro's: With watercooling, it's the daddy Con's: ONLY EXPERIENCED PEOPLE NEED TO APPLY, very complicated, power hungry, NOT for the faint hearted. Stupidly expensive.

Aircooling: Upgrading your CPU fan is the first step, there are several companies that offer aftermarket fans, which are better than the OEM fans are 2 a penny in todays world, but it's NOT just about your CPU fan, your system needs to breath, you need to get rid of 'hot spots' within your system.

Watercooling: Its easier than most make out, its a good thing, kit prices can be got from about £120 ($200 US), just make sure they are upgradable, as you might want to add, a Northbridge water block & a GPU water block. Modern day kits & parts are idiot proof, and will not leak, unless you act like Noah.

Pelter: Pelter cooling is DANGEROUS, minly for your system, fitting it incorrectly, and you could end up with not only a baked CPU but a system that will end up as a very expensive paperweight. Ask your local overclocking expert for more info.

Basically, if you can get hold of a decent Thoroughbred cored XP, your in luck (just like me), if its unlocked, then your in business, obviously, its not just down to your CPU, your motherboard and RAM will denote whether you can overclock big style or not. I'd advise ANYONE thinking of overclocking, to research into it more, weigh up the odds on what they want or need, if your on a buget, DON'T attempt it, things can and do go wrong. Most of the time, its not about 'mines faster than yours' or massive speed increases, its done by most, cause it can be. 90% of the time, you'd be better off buying a new CPU (as prices are so low), but if you get the urge, then a new world awaits you

great tutorial. this should help the OC noobs. If I can add something like you said know your specs of the mobo....and if you are serious about OC'ing dont go and get some generic NO-NAME ram and some ghetto mobo. to get the best stability go with ASUS and ABIT for the mobo and Crucial, Kingston, mushkin for the ram. A great forum for OC'ing is amdmb.com.

Indeed, if you are serious about your overclocking, its advised you only use serious brand names. Generic parts are always a lower spec, and can easily destroy themselves with even a little stress aimed towards them.

Memory advice, use the folloing:

Kingston (added because of reviews, personally, I'm not sure about them). Crucial (for Dual Channel DDR ONLY) OCZ Mushkin Corsair PNY (for EEC rated) Samsung Geil (my choice, when I can afford it)

Motherbord advice, use the following:

Asus A7N8X Deluxe nForce2 Asus A7N8X-VM nForce2 Asus A7N8X-X nForce2 Abit KD7-S KT400 Abit KV7 KT600 Abit NF7 v2.0 nForce2 Abit NF7-S v2.0 nForce2 MSI K7N2 Delta-L Nforce2 MSI KT6 Delta-LSR KT600 Epox 8RDA+ nForce2 Epox 8RGA+ nForce2

Any nForce2 motherboard would be best, they allow more score for overclocking your system. _________________



Posted with BlogHatter - blog software

***********************************************

* *

* Advanced Shellcoding Techniques - by Darawk *

* *

***********************************************

Introduction

This paper assumes a working knowledge of basic shellcoding techniques, and x86 assembly, I will not rehash these in this paper. I hope to teach you some of the lesser known shellcoding techniques that I have picked up, which will allow you to write smaller and better shellcodes. I do not claim to have invented any of these techniques, except for the one that uses the div instruction.

The multiplicity of mul

This technique was originally developed by Sorbo of darkircop.net. The mul instruction may, on the surface, seem mundane, and it's purpose obvious. However, when faced with the difficult challenge of shrinking your shellcode, it proves to be quite useful. First some background information on the mul instruction itself.

mul performs an unsigned multiply of two integers. It takes only one operand, the other is implicitly specified by the %eax register. So, a common mul instruction might look something like this:

movl $0x0a,%eax

mul $0x0a

This would multiply the value stored in %eax by the operand of mul, which in this case would be 10*10. The result is then implicitly stored in EDX:EAX. The result is stored over a span of two registers because it has the potential to be considerably larger than the previous value, possibly exceeding the capacity of a single register(this is also how floating points are stored in some cases, as an interesting sidenote).

So, now comes the ever-important question. How can we use these attributes to our advantage when writing shellcode? Well, let's think for a second, the instruction takes only one operand, therefore, since it is a very common instruction, it will generate only two bytes in our final shellcode. It multiplies whatever is passed to it by the value stored in %eax, and stores the value in both %edx and %eax, completely overwriting the contents of both registers, regardless of whether it is necessary to do so, in order to store the result of the multiplication. Let's put on our mathematician hats for a second, and consider this, what is the only possible result of a multiplication by 0? The answer, as you may have guessed, is 0. I think it's about time for some example code, so here it is:

xorl %ecx,%ecx

mul %ecx

What is this shellcode doing? Well, it 0's out the %ecx register using the xor instruction, so we now know that %ecx is 0. Then it does a mul %ecx, which as we just learned, multiplies it's operand by the value in %eax, and then proceeds to store the result of this multiplication in EDX:EAX. So, regardless of %eax's previous contents, %eax must now be 0. However that's not all, %edx is 0'd now too, because, even though no overflow occurs, it still overwrites the %edx register with the sign bit(left-most bit) of %eax. Using this technique we can zero out three registers in only three bytes, whereas by any other method(that I know of) it would have taken at least six.

The div instruction

Div is very similar to mul, in that it takes only one operand and implicitly divides the operand by the value in %eax. Also like, mul it stores the result of the divide in %eax. Again, we will require the mathematical side of our brains to figure out how we can take advantage of this instruction. But first, let's think about what is normally stored in the %eax register. The %eax register holds the return value of functions and/or syscalls. Most syscalls that are used in shellcoding will return -1(on failure) or a positive value of some kind, only rarely will they return 0(though it does occur). So, if we know that after a syscall is performed, %eax will have a non-zero value, and that the instruction divl %eax will divide %eax by itself, and then store the result in %eax, we can say that executing the divl %eax instruction after a syscall will put the value 1 into %eax. So...how is this applicable to shellcoding? Well, their is another important thing that %eax is used for, and that is to pass the spe

cific syscall that you would like to call to int $0x80. It just so happens that the syscall that corresponds to the value 1 is exit(). Now for an example:

xorl %ebx,%ebx

mul %ebx

push %edx

pushl $0x3268732f

pushl $0x6e69622f

mov %esp, %ebx

push %edx

push %ebx

mov %esp,%ecx

movb $0xb, %al #execve() syscall, doesn't return at all unless it fails, in which case it returns -1

int $0x80

divl %eax # -1 / -1 = 1

int $0x80

Now, we have a 3 byte exit function, where as before it was 5 bytes. However, there is a catch, what if a syscall does return 0? Well in the odd situation in which that could happen, you could do many different things, like inc %eax, dec %eax, not %eax anything that will make %eax non-zero. Some people say that exit's are not important in shellcode, because your code gets executed regardless of whether or not it exits cleanly. They are right too, if you really need to save 3 bytes to fit your shellcode in somewhere, the exit() isn't worth keeping. However, when your code does finish, it will try to execute whatever was after your last instruction, which will most likely produce a SIG ILL(illegal instruction) which is a rather odd error, and will be logged by the system. So, an exit() simply adds an extra layer of stealth to your exploit, so that even if it fails or you can't wipe all the logs, at least this part of your presence will be clear.

Unlocking the power of leal

The leal instruction is an often neglected instruction in shellcode, even though it is quite useful. Consider this short piece of shellcode.

xorl %ecx,%ecx

leal 0x10(%ecx),%eax

This will load the value 17 into eax, and clear all of the extraneous bits of eax. This occurs because the leal instruction loads a variable of the type long into it's desitination operand. In it's normal usage, this would load the address of a variable into a register, thus creating a pointer of sorts. However, since ecx is 0'd and 0+17=17, we load the value 17 into eax instead of any kind of actual address. In a normal shellcode we would do something like this, to accomplish the same thing:

xorl %eax,%eax

movb $0x10,%eax

I can hear you saying, but that shellcode is a byte shorter than the leal one, and you're quite right. However, in a real shellcode you may already have to 0 out a register like ecx(or any other register), so the xorl instruction in the leal shellcode isn't counted. Here's an example:

xorl %eax,%eax

xorl %ebx,%ebx

movb $0x17,%al

int $0x80

xorl %ebx,%ebx

leal 0x17(%ebx),%al

int $0x80

Both of these shellcodes call setuid(0), but one does it in 7 bytes while the other does it in 8. Again, I hear you saying but that's only one byte it doesn't make that much of a difference, and you're right, here it doesn't make much of a difference(except for in shellcode-size pissing contests =p), but when applied to much larger shellcodes, which have many function calls and need to do things like this frequently, it can save quite a bit of space.

Conclusion

I hope you all learned something, and will go out and apply your knowledge to create smaller and better shellcodes. If you know who invented the leal technique, please tell me and I will credit him/her.



Post made with BlogHatter - how do you make money blogging

Tuesday, 28 September 2010

Backtracking EMAIL Messages

Tracking email back to its source: Twisted Evil

cause i hate spammers... Evil or Very Mad

Ask most people how they determine who sent them an email message and the response is almost universally, "By the From line." Unfortunately this symptomatic of the current confusion among internet users as to where particular messages come from and who is spreading spam and viruses. The "From" header is little more than a courtesy to the person receiving the message. People spreading spam and viruses are rarely courteous. In short, if there is any question about where a particular email message came from the safe bet is to assume the "From" header is forged.

So how do you determine where a message actually came from? You have to understand how email messages are put together in order to backtrack an email message. SMTP is a text based protocol for transferring messages across the internet. A series of headers are placed in front of the data portion of the message. By examining the headers you can usually backtrack a message to the source network, sometimes the source host. A more detailed essay on reading email headers can be found .

If you are using Outlook or Outlook Express you can view the headers by right clicking on the message and selecting properties or options.

Below are listed the headers of an actual spam message I received. I've changed my email address and the name of my server for obvious reasons. I've also double spaced the headers to make them more readable.

Return-Path:

X-Original-To: davar@example.com

Delivered-To: davar@example.com

Received: from 12-218-172-108.client.mchsi.com (12-218-172-108.client.mchsi.com [12.218.172.108])

by mailhost.example.com (Postfix) with SMTP id 1F9B8511C7

for ; Sun, 16 Nov 2003 09:50:37 -0800 (PST)

Received: from (HELO 0udjou) [193.12.169.0] by 12-218-172-108.client.mchsi.com with ESMTP id <536806-74276>; Sun, 16 Nov 2003 19:42:31 +0200

Message-ID:

From: "Maricela Paulson"

Reply-To: "Maricela Paulson"

To: davar@example.com

Subject: STOP-PAYING For Your PAY-PER-VIEW, Movie Channels, Mature Channels...isha

Date: Sun, 16 Nov 2003 19:42:31 +0200

X-Mailer: Internet Mail Service (5.5.2650.21)

X-Priority: 3

MIME-Version: 1.0

Content-Type: multipart/alternative; boundary="MIMEStream=_0+211404_90873633350646_4032088448"

According to the From header this message is from Maricela Paulson at s359dyxxt@yahoo.com. I could just fire off a message to abuse@yahoo.com, but that would be waste of time. This message didn't come from yahoo's email service.

The header most likely to be useful in determining the actual source of an email message is the Received header. According to the top-most Received header this message was received from the host 12-218-172-108.client.mchsi.com with the ip address of 21.218.172.108 by my server mailhost.example.com. An important item to consider is at what point in the chain does the email system become untrusted? I consider anything beyond my own email server to be an unreliable source of information. Because this header was generated by my email server it is reasonable for me to accept it at face value.

The next Received header (which is chronologically the first) shows the remote email server accepting the message from the host 0udjou with the ip 193.12.169.0. Those of you who know anything about IP will realize that that is not a valid host IP address. In addition, any hostname that ends in client.mchsi.com is unlikely to be an authorized email server. This has every sign of being a cracked client system.

Here's is where we start digging. By default Windows is somewhat lacking in network diagnostic tools; however, you can use the tools at to do your own checking.

davar@nqh9k:[/home/davar] $whois 12.218.172.108

AT&T WorldNet Services ATT (NET-12-0-0-0-1)

12.0.0.0 - 12.255.255.255

Mediacom Communications Corp MEDIACOMCC-12-218-168-0-FLANDREAU-MN (NET-12-218-168-0-1)

12.218.168.0 - 12.218.175.255

# ARIN WHOIS database, last updated 2003-12-31 19:15

# Enter ? for additional hints on searching ARIN's WHOIS database.

I can also verify the hostname of the remote server by using nslookup, although in this particular instance, my email server has already provided both the IP address and the hostname.

davar@nqh9k:[/home/davar] $nslookup 12.218.172.108

Server: localhost

Address: 127.0.0.1

Name: 12-218-172-108.client.mchsi.com

Address: 12.218.172.108

Ok, whois shows that Mediacom Communications owns that netblock and nslookup confirms the address to hostname mapping of the remote server,12-218-172-108.client.mchsi.com. If I preface a www in front of the domain name portion and plug that into my web browser, http://www.mchsi.com, I get Mediacom's web site.

There are few things more embarrassing to me than firing off an angry message to someone who is supposedly responsible for a problem, and being wrong. By double checking who owns the remote host's IP address using two different tools (whois and nslookup) I minimize the chance of making myself look like an idiot.

A quick glance at the web site and it appears they are an ISP. Now if I copy the entire message including the headers into a new email message and send it to abuse@mchsi.com with a short message explaining the situation, they may do something about it.

But what about Maricela Paulson? There really is no way to determine who sent a message, the best you can hope for is to find out what host sent it. Even in the case of a PGP signed messages there is no guarantee that one particular person actually pressed the send button. Obviously determining who the actual sender of an email message is much more involved than reading the From header. Hopefully this example may be of some use to other forum regulars.



Post created with BlogHatter - make money with blog

If you have a phone thats with the provider 3 theres a simple trick to allow you to access the entire internet on its browser without having to go through 3 services and only what they want to allow you access to view.

Simply do the following.

Menu - 9 (for settings) - 5 (for access points) - Edit the 3 Services

Change the APN (down the bottom) from 3services to 3netaccess

Restart the phone

And you can now access the entire internet through your phones browser.

Remember you'll have to change it back if you want to access 3 services.

Changing it in the browser doesn't seem to work.

I have tried this on my U8110 and it worked perfectly

Things to note:

* Remember that you are charged for all downloads (.4c per kb on most plans) so if your cautious about your phone bill id advise staying away from sites with loads of pictures.

* Also, some people have had trouble where they have accessed a site with too much information on it and the phone has either froze or reset. The phone is not harmed by this but its advisable you dont go to large sites on it for this or the above reason. If your phone freezes and you cant turn it off simply take the battery out and put it back in.



Posted with BlogHatter - blog software

Setting Up A Ftp:

Well, since many of us have always wondered this, here it is. Long and drawn out. Also, before attempting this, realize one thing; You will have to give up your time, effort, bandwidth, and security to have a quality ftp server.
That being said, here it goes. First of all, find out if your IP (Internet Protocol) is static (not changing) or dynamic (changes everytime you log on). To do this, first consider the fact if you have a dial up modem. If you do, chances are about 999 999 out of 1 000 000 that your IP is dynamic. To make it static, just go to a place like h*tp://www.myftp.org/ to register for a static ip address.
You'll then need to get your IP. This can be done by doing this:
Going to Start -> Run -> winipcfg or www.ask.com and asking 'What is my IP?'
After doing so, you'll need to download an FTP server client. Personally, I'd recommend G6 FTP Server, Serv-U FTPor Bullitproof v2.15 all three of which are extremely reliable, and the norm of the ftp world.
You can download them on this site: h*tp://www.liaokai.com/softw_en/d_index.htm
First, you'll have to set up your ftp. For this guide, I will use step-by-step instructions for G6. First, you'll have to go into 'Setup -> General'. From here, type in your port # (default is 21). I recommend something unique, or something a bit larger (ex: 3069). If you want to, check the number of max users (this sets the amount of simultaneous maximum users on your server at once performing actions - The more on at once, the slower the connection and vice versa).
The below options are then chooseable:
-Launch with windows
-Activate FTP Server on Start-up
-Put into tray on startup
-Allow multiple instances
-Show "Loading..." status at startup
-Scan drive(s) at startup
-Confirm exit
You can do what you want with these, as they are pretty self explanatory. The scan drive feature is nice, as is the 2nd and the last option. From here, click the 'options' text on the left column.
To protect your server, you should check 'login check' and 'password check', 'Show relative path (a must!)', and any other options you feel you'll need. After doing so, click the 'advanced' text in the left column. You should then leave the buffer size on the default (unless of course you know what you're doing ), and then allow the type of ftp you want.
Uploading and downloading is usually good, but it's up to you if you want to allow uploads and/or downloads. For the server priority, that will determine how much conventional memory will be used and how much 'effort' will go into making your server run smoothly.
Anti-hammering is also good, as it prevents people from slowing down your speed. From here, click 'Log Options' from the left column. If you would like to see and record every single command and clutter up your screen, leave the defaults.
But, if you would like to see what is going on with the lowest possible space taken, click 'Screen' in the top column. You should then check off 'Log successful logins', and all of the options in the client directry, except 'Log directory changes'. After doing so, click 'Ok' in the bottom left corner.
You will then have to go into 'Setup -> User Accounts' (or ctrl & u). From here, you should click on the right most column, and right click. Choose 'Add', and choose the username(s) you would like people to have access to.
After giving a name (ex: themoonlanding), you will have to give them a set password in the bottom column (ex: wasfaked). For the 'Home IP' directory, (if you registered with a static server, check 'All IP Homes'. If your IP is static by default, choose your IP from the list. You will then have to right click in the very center column, and choose 'Add'.
From here, you will have to set the directory you want the people to have access to. After choosing the directory, I suggest you choose the options 'Read', 'List', and 'Subdirs', unless of course you know what you're doing . After doing so, make an 'upload' folder in the directory, and choose to 'add' this folder seperately to the center column. Choose 'write', 'append', 'make', 'list', and 'subdirs'. This will allow them to upload only to specific folders (your upload folder).
Now click on 'Miscellaneous' from the left column. Choose 'enable account', your time-out (how long it takes for people to remain idle before you automatically kick them off), the maximum number of users for this name, the maximum number of connections allowed simultaneously for one ip address, show relative path (a must!), and any other things at the bottom you'd like to have. Now click 'Ok'.
**Requested**
From this main menu, click the little boxing glove icon in the top corner, and right click and unchoose the hit-o-meter for both uploads and downloads (with this you can monitor IP activity). Now click the lightning bolt, and your server is now up and running.
Post your ftp info, like this:
213.10.93.141 (or something else, such as: 'f*p://example.getmyip.com')
User: *** (The username of the client)
Pass: *** (The password)
Port: *** (The port number you chose)
So make a FTP and join the FTP section
Listing The Contents Of A Ftp:
Listing the content of a FTP is very simple.
You will need FTP Content Maker, which can be downloaded from here:
ht*p://www.etplanet.com/download/application/FTP%20Content%20Maker%201.02.zip
1. Put in the IP of the server. Do not put "ftp://" or a "/" because it will not work if you do so.
2. Put in the port. If the port is the default number, 21, you do not have to enter it.
3. Put in the username and password in the appropriate fields. If the login is anonymous, you do not have to enter it.
4. If you want to list a specific directory of the FTP, place it in the directory field. Otherwise, do not enter anything in the directory field.
5. Click "Take the List!"
6. After the list has been taken, click the UBB output tab, and copy and paste to wherever you want it.
If FTP Content Maker is not working, it is probably because the server does not utilize Serv-U Software.
If you get this error message:
StatusCode = 550
LastResponse was : 'Unable to open local file test-ftp'
Error = 550 (Unable to open local file test-ftp)
Error = Unable to open local file test-ftp = 550
Close and restart FTP Content Maker, then try again.
error messages:
110 Restart marker reply. In this case, the text is exact and not left to the particular implementation; it must read: MARK yyyy = mmmm Where yyyy is User-process data stream marker, and mmmm server's equivalent marker (note the spaces between markers and "=").
120 Service ready in nnn minutes.
125 Data connection already open; transfer starting.
150 File status okay; about to open data connection.
200 Command okay.
202 Command not implemented, superfluous at this site.
211 System status, or system help reply.
212 Directory status.
213 File status.
214 Help message. On how to use the server or the meaning of a particular non-standard command. This reply is useful only to the human user.
215 NAME system type. Where NAME is an official system name from the list in the Assigned Numbers document.
220 Service ready for new user.
221 Service closing control connection. Logged out if appropriate.
225 Data connection open; no transfer in progress.
226 Closing data connection. Requested file action successful (for example, file transfer or file abort).
227 Entering Passive Mode (h1,h2,h3,h4,p1,p2).
230 User logged in, proceed.
250 Requested file action okay, completed.
257 "PATHNAME" created.
331 User name okay, need password.
332 Need account for login.
350 Requested file action pending further information.
421 Too many users logged to the same account
425 Can't open data connection.
426 Connection closed; transfer aborted.
450 Requested file action not taken. File unavailable (e.g., file busy).
451 Requested action aborted: local error in processing.
452 Requested action not taken. Insufficient storage space in system.
500 Syntax error, command unrecognized. This may include errors such as command line too long.
501 Syntax error in parameters or arguments.
502 Command not implemented.
503 Bad sequence of commands.
504 Command not implemented for that parameter.
530 Not logged in.
532 Need account for storing files.
550 Requested action not taken. File unavailable (e.g., file not found, no access).
551 Requested action aborted: page type unknown.
552 Requested file action aborted. Exceeded storage allocation (for current directory or dataset).
553 Requested action not taken. File name not allowed.
Active FTP vs. Passive FTP, a Definitive Explanation
Introduction
One of the most commonly seen questions when dealing with firewalls and other Internet connectivity issues is the difference between active and passive FTP and how best to support either or both of them. Hopefully the following text will help to clear up some of the confusion over how to support FTP in a firewalled environment.
This may not be the definitive explanation, as the title claims, however, I've heard enough good feedback and seen this document linked in enough places to know that quite a few people have found it to be useful. I am always looking for ways to improve things though, and if you find something that is not quite clear or needs more explanation, please let me know! Recent additions to this document include the examples of both active and passive command line FTP sessions. These session examples should help make things a bit clearer. They also provide a nice picture into what goes on behind the scenes during an FTP session. Now, on to the information...
The Basics
FTP is a TCP based service exclusively. There is no UDP component to FTP. FTP is an unusual service in that it utilizes two ports, a 'data' port and a 'command' port (also known as the control port). Traditionally these are port 21 for the command port and port 20 for the data port. The confusion begins however, when we find that depending on the mode, the data port is not always on port 20.
Active FTP
In active mode FTP the client connects from a random unprivileged port (N > 1024) to the FTP server's command port, port 21. Then, the client starts listening to port N+1 and sends the FTP command PORT N+1 to the FTP server. The server will then connect back to the client's specified data port from its local data port, which is port 20.
From the server-side firewall's standpoint, to support active mode FTP the following communication channels need to be opened:
FTP server's port 21 from anywhere (Client initiates connection)
FTP server's port 21 to ports > 1024 (Server responds to client's control port)
FTP server's port 20 to ports > 1024 (Server initiates data connection to client's data port)
FTP server's port 20 from ports > 1024 (Client sends ACKs to server's data port)
In step 1, the client's command port contacts the server's command port and sends the command PORT 1027. The server then sends an ACK back to the client's command port in step 2. In step 3 the server initiates a connection on its local data port to the data port the client specified earlier. Finally, the client sends an ACK back as shown in step 4.
The main problem with active mode FTP actually falls on the client side. The FTP client doesn't make the actual connection to the data port of the server--it simply tells the server what port it is listening on and the server connects back to the specified port on the client. From the client side firewall this appears to be an outside system initiating a connection to an internal client--something that is usually blocked.
Active FTP Example
Below is an actual example of an active FTP session. The only things that have been changed are the server names, IP addresses, and user names. In this example an FTP session is initiated from testbox1.slacksite.com (192.168.150.80), a Linux System  box running the standard FTP command line client, to testbox2.slacksite.com (192.168.150.90), a linux System box running ProFTPd 1.2.2RC2. The debugging (-d) flag is used with the FTP client to show what is going on behind the scenes. Everything in red is the debugging output which shows the actual FTP commands being sent to the server and the responses generated from those commands. Normal server output is shown in black, and user input is in bold.
There are a few interesting things to consider about this dialog. Notice that when the PORT command is issued, it specifies a port on the client (192.168.150.80) system, rather than the server. We will see the opposite behavior when we use passive FTP. While we are on the subject, a quick note about the format of the PORT command. As you can see in the example below it is formatted as a series of six numbers separated by commas. The first four octets are the IP address while the second two octets comprise the port that will be used for the data connection. To find the actual port multiply the fifth octet by 256 and then add the sixth octet to the total. Thus in the example below the port number is ( (14*256) + 178), or 3762. A quick check with netstat should confirm this information.
testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2
Connected to testbox2.slacksite.com.
220 testbox2.slacksite.com FTP server ready.
Name (testbox2:slacker): slacker
---> USER slacker
331 Password required for slacker.
Password: TmpPass
---> PASS XXXX
230 User slacker logged in.
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
ftp: setsockopt (ignored): Permission denied
---> PORT 192,168,150,80,14,178
200 PORT command successful.
---> LIST
150 Opening ASCII mode data connection for file list.
drwx------ 3 slacker users 104 Jul 27 01:45 public_html
226 Transfer complete.
ftp> quit
---> QUIT
221 Goodbye.
Passive FTP
In order to resolve the issue of the server initiating the connection to the client a different method for FTP connections was developed. This was known as passive mode, or PASV, after the command used by the client to tell the server it is in passive mode.
In passive mode FTP the client initiates both connections to the server, solving the problem of firewalls filtering the incoming data port connection to the client from the server. When opening an FTP connection, the client opens two random unprivileged ports locally (N > 1024 and N+1). The first port contacts the server on port 21, but instead of then issuing a PORT command and allowing the server to connect back to its data port, the client will issue the PASV command. The result of this is that the server then opens a random unprivileged port (P > 1024) and sends the PORT P command back to the client. The client then initiates the connection from port N+1 to port P on the server to transfer data.
From the server-side firewall's standpoint, to support passive mode FTP the following communication channels need to be opened:
FTP server's port 21 from anywhere (Client initiates connection)
FTP server's port 21 to ports > 1024 (Server responds to client's control port)
FTP server's ports > 1024 from anywhere (Client initiates data connection to random port specified by server)
FTP server's ports > 1024 to remote ports > 1024 (Server sends ACKs (and data) to client's data port)
In step 1, the client contacts the server on the command port and issues the PASV command. The server then replies in step 2 with PORT 2024, telling the client which port it is listening to for the data connection. In step 3 the client then initiates the data connection from its data port to the specified server data port. Finally, the server sends back an ACK in step 4 to the client's data port.
While passive mode FTP solves many of the problems from the client side, it opens up a whole range of problems on the server side. The biggest issue is the need to allow any remote connection to high numbered ports on the server. Fortunately, many FTP daemons, including the popular WU-FTPD allow the administrator to specify a range of ports which the FTP server will use. See Appendix 1 for more information.
The second issue involves supporting and troubleshooting clients which do (or do not) support passive mode. As an example, the command line FTP utility provided with Solaris does not support passive mode, necessitating a third-party FTP client, such as ncftp.
With the massive popularity of the World Wide Web, many people prefer to use their web browser as an FTP client. Most browsers only support passive mode when accessing ftp:// URLs. This can either be good or bad depending on what the servers and firewalls are configured to support.
Passive FTP Example
Below is an actual example of a passive FTP session. The only things that have been changed are the server names, IP addresses, and user names. In this example an FTP session is initiated from testbox1.slacksite.com (192.168.150.80), a Linux System box running the standard FTP command line client, to testbox2.slacksite.com (192.168.150.90), a linux box running ProFTPd 1.2.2RC2. The debugging (-d) flag is used with the FTP client to show what is going on behind the scenes. Everything in red is the debugging output which shows the actual FTP commands being sent to the server and the responses generated from those commands. Normal server output is shown in black, and user input is in bold.
Notice the difference in the PORT command in this example as opposed to the active FTP example. Here, we see a port being opened on the server (192.168.150.90) system, rather than the client. See the discussion about the format of the PORT command above, in the Active FTP Example section.
testbox1: {/home/p-t/slacker/public_html} % ftp -d testbox2
Connected to testbox2.slacksite.com.
220 testbox2.slacksite.com FTP server ready.
Name (testbox2:slacker): slacker
---> USER slacker
331 Password required for slacker.
Password: TmpPass
---> PASS XXXX
230 User slacker logged in.
---> SYST
215 UNIX Type: L8
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> passive
Passive mode on.
ftp> ls
ftp: setsockopt (ignored): Permission denied
---> PASV
227 Entering Passive Mode (192,168,150,90,195,149).
---> LIST
150 Opening ASCII mode data connection for file list
drwx------ 3 slacker users 104 Jul 27 01:45 public_html
226 Transfer complete.
ftp> quit
---> QUIT
221 Goodbye.
Summary
The following chart should help admins remember how each FTP mode works:
Active FTP :
command : client >1024 -> server 21
data : client >1024 <- server 20
Passive FTP :
command : client >1024 -> server 21
data : client >1024 -> server >1024
A quick summary of the pros and cons of active vs. passive FTP is also in order:
Active FTP is beneficial to the FTP server admin, but detrimental to the client side admin. The FTP server attempts to make connections to random high ports on the client, which would almost certainly be blocked by a firewall on the client side. Passive FTP is beneficial to the client, but detrimental to the FTP server admin. The client will make both connections to the server, but one of them will be to a random high port, which would almost certainly be blocked by a firewall on the server side.
Luckily, there is somewhat of a compromise. Since admins running FTP servers will need to make their servers accessible to the greatest number of clients, they will almost certainly need to support passive FTP. The exposure of high level ports on the server can be minimized by specifying a limited port range for the FTP server to use. Thus, everything except for this range of ports can be firewalled on the server side. While this doesn't eliminate all risk to the server, it decreases it tremendously.

Posted with BlogHatter - make money with a blog

Labels

Blog Archive

 
Free Website DirectoryeSiq Directory A List SitesAdd Link - Suggest Link - Submit URL Directory