Hacker Tools and their Signatures, Part Two: Juno and Unisploit
last updated June 18, 2001 |
||||
Purpose This is the second installment in the Hacker Tools and Their Signatures series, a series written to assist system administrators, security administrators, and the security community as a whole to identify and understand the tools that are being used in the hacker community. The first article examined the Berkley Internet Name Domain exploit bind8x.c. This installment will focus on two tools: Juno and Unisploit. This paper will provide a detailed analysis of these tools, including tcpdump examples and other useful references. This paper assumes that the reader is familiar with the TCP/IP protocol and other related protocols. Juno Overview Juno is a SYN flooder, which means that it's a program that floods a network connection with SYN packets. It can thus be summed up as a Denial of Service tool. There are actually two versions of Juno available. This article will focus on Juno-z_101, which was written by Sorcerer and is a rewrite of the original program, Juno.c. Juno Okay, now that all of the preliminaries are taken care of, let's look at the fun details of this tool. Juno provides a few configurable options, including:
For the purposes of this article, the I ran ./juno xxx.xxx.xxx.xxx 111 on a Red Hat 7.1 machine. Figure One (below) is a tcpdump trace of Juno-z. (Keep in mind that the source addresses are spoofed by Juno.)
Figure 1. Juno TCPdump Figure 1 is a great starting point in our analysis. The following characteristics of Juno really stand out:
Okay, so far so good. No problem right? Well, in order for us to detect this tool we will need to look a little deeper in the packet besides the basic SRC_IP, DST_IP, SRC_PORT, DST_PORT and the Sequence Numbers. Let's look at some other areas in the packet. The first one we will look at is the TTL. In all of the packets, we see a TTL of 128. The last time I checked (just a few seconds ago,) many of the Windows Operating Systems will set their TTLs to 128 as well. The next item of interest is the packet size (in bold red,) which is indicated as 30. 30 in hex is equal to 48 in decimal. So we know that all packets are 48 bytes in size. Just for a quick review, remember that a generic IP header with no IP options set is equal to 20 bytes. A generic TCP header with no TCP options set is also 40 bytes. With a size of 48 bytes we know that there are some TCP options being used (Windows 2000 packet size is normally 48 bytes.) Normally, Windows 2000 sets the mss, 2 nop's and a Selective Acknowledgement (Sack) for options. In this example, we see that there are bad options set in the packets. Let's take a look at the time factor with Juno. As we can see in Figure 1, Juno does an excellent job at pushing out packets. Figure 2 shows us some Windows 2000 packets.
Figure 2. Windows 2000 packets The first packet (in bold) is a Windows 2000 packet. If you look at the packet you see similarities with Juno packets. For instance, look at the packet size, TTL, TCP Options (although when I ran Juno I received a bad option message.) If you want more information on Juno-z, I recommend that you download it and read the README file. The author gives specific details as to what was modified, including the fact that this tool emulates Windows (I just pointed out the details.) Unisploit When I was deciding what to base this article on, I was presented with a difficult choice: should I continue on my own path, or should I write an article about a Microsoft exploit, keeping in mind that I generally avoid Microsoft like the plague. Well, I decided to try something new, Unisploit, an exploit for Microsoft IIS 4.0 and 5.0. Yes, this section focuses on a Unicode tool. Sorry. Hopefully, readers are somewhat familiar with the Unicode exploit. If not please see the SecurityFocus discussion of the Unicode exploit. Unisploit: The details Unisploit is a nice GUI program written created by DarkWiZard & Drakaz-8105 that is used to attack (deface) IIS 5.0 web servers. As I stated earlier Unisploit is designed to exploit the Unicode problems that exists on IIS 5.0. Unisploit can run on both Windows NT and Windows 2000. For this article I ran Unisploit on a Windows NT machine. Figure 3 (below) gives us a good idea of what the GUI looks like. Figure 3: Unisploit screenshot Here we see the setup of the GUI. Unisploit gives us many options as far as what kind of Unicode exploit to run, including:
As you can see from the list, there are many options for an attacker to choose between. For
this article, though, we will focus on
Figure 4: Unisploit commands Figure 4 shows us all of the commands associated with Unisploit. As you can see, an attacker has many options using this tool. Now that we have all of the options and commands out of the way, let's take a look at what you would see if using a program like TCPDUMP.
Figure 5: Unisploit TCPDUMP output Because of space limitations, I have omitted the usual three-way connection that occurs between computers. Let's look at the individual packets. In the first packet, we see that TCP sets the PUSH and the ACK flags (which are pretty common when sending data.) In addition to paying attention to the PUSH and ACK flags being set, look at the payload: it is a total of 374 bytes. If you look in the payload itself (bold in green,) you will see that the GET command is used. You will also see the exploit that was used in the attack (/scripts/..%c1%9c...) As well, we can see that the attacked box is sending back the requested data in the next two packets. Okay, how do we identify this? Ideally Snort, or some other form of IDS would be used for this. However, if the user does not have Snort or another form of IDS then here is the scoop. We cannot identify this by size (hell anyone can modify the size,) and the Unicode exploit would only identify a specific attack. So we need to key on something that all of the attacks have common: that would be that both the PUSH and ACK flags are set and that the cmd.exe (bold in red) is common in the payload or %c1%9c.. ( 2e25 6331 2539 632e in hex.) For Snort users, rule IDS434 is the Snort rule that would detect this tool. For more information about the signature and any other question related to Snort visit Max Vision's Whitehats. Conclusion Well, I completed my experiment with Windows and I came out all right. Hopefully this brief overview of Juno and Unisploit has given readers a better understanding of these two commonly-used hacker tools. Please join us for the next installment in this series, when we will be looking at another tool that is used by the hacking community. Toby Miller is a contributing author to the book Intrusion Detection Signatures and Analysis (NEW RIDERS Publishing) and is a contributing author to Maximum Security Rev. 3 (SAMS Publishing). He has done work both in the Linux security world and Intrusion Detection/Firewall world. Mr. Miller has published numerous papers for both SANS and Securityfocus.com. He can be reached at tmiller@va.prestige.net. |