Blog-N-Play.com
Anytime a feature of a framework gives me something for free that I don't need to manually implement I'm a happy camper. One such feature of ASP.NET MVC 2 is jQuery client-side validation. The
Read Digital Edition


ADS BY GOOGLE
Most Read This Week
Top Three Links You Must Click On


Joe Barr gets hacked and recovers with NMAP
Unwelcome guests set up an IRC server on his box

Two weeks ago I wrote about stealth scans and promised to follow up with a column on NMAP, Fyodor's wonderful open source port scanner. But between that time and the appearance of this column, two big stories got in the way. First came word that LinuxWorld.com was moving to ITworld.com's site. Then came a rare opportunity to bring together Bob Young and a player from the Dark Side in an exclusive one-on-one, which was presented last week in place of the stealth scan follow-up. My apologies for being late, but here it is. And just as someone out there is certain to be snickering about my network security skills, better late than never. (See see Resources for links to previous columns.)

Call it baud karma. Call it carelessness. Call it inevitable. I was 0wn3d and didn't know it. After downloading and installing BETA 21 of version 2.54 of NMAP (and its graphical frontend), I su'd to root, fired it up, and aimed a FIN stealth scan at ports 1-32000 on my server. I was running portsentry on the server, but my desktop machine -- the one I was running NMAP on -- was on the portsentry ignore list so that it wouldn't simply reroute my inquisitive packets to /dev/null after I hit the first protected port.

NMAP's GUI

The image above shows the way I had NMAP configured for the scan. It took less than a minute to ruin my entire week. The results are below. The same scan produces markedly different results today.

Starting nmap V. 2.54BETA22 ( www.insecure.org/nmap/ )
 Interesting ports on pooh.pjprimer.com (216.140.158.195):
(The 31957 ports scanned but not shown below are in state: closed)
Port       State       Service
1/tcp      open        tcpmux                  
7/tcp      open        echo                    
9/tcp      open        discard                 
11/tcp     open        systat                  
15/tcp     open        netstat                 
21/tcp     open        ftp                     
23/tcp     open        telnet                  
25/tcp     open        smtp                    
70/tcp     open        gopher                  
79/tcp     open        finger                  
80/tcp     open        http                    
98/tcp     open        linuxconf               
109/tcp    open        pop-2                   
110/tcp    open        pop-3                   
111/tcp    open        sunrpc                  
113/tcp    open        auth                    
119/tcp    open        nntp                    
138/tcp    open        netbios-dgm             
139/tcp    open        netbios-ssn             
143/tcp    open        imap2                   
512/tcp    open        exec                    
513/tcp    open        login                   
514/tcp    open        shell                   
515/tcp    open        printer                 
540/tcp    open        uucp                    
635/tcp    open        unknown                 
1080/tcp   open        socks                   
1524/tcp   open        ingreslock              
2000/tcp   open        callbook                
2001/tcp   open        dc                      
4000/tcp   open        unknown                 
4001/tcp   open        unknown                 
5742/tcp   open        unknown                 
6000/tcp   open        X11                     
6001/tcp   open        X11:1                   
6667/tcp   open        irc                     
8892/tcp   open        seosload                
10000/tcp  open        unknown                 
12345/tcp  open        NetBus                  
12346/tcp  open        NetBus                  
20034/tcp  open        unknown                 
30303/tcp  open        unknown                 
31337/tcp  open        Elite                   

Remote operating system guess: Linux 2.1.122 - 2.2.16 Uptime 130.704 days (since Wed Nov 1 16:21:30 2000)

Nmap run completed -- 1 IP address (1 host up) scanned in 42 seconds

The feeling you get in the pit of your stomach when you first suspect that your site has been cracked is similar to the feeling you get when you first discover your house has been broken into. It is a sickening sense of muted outrage. Muted because you are still hoping against hope that it hasn't really happened. But your eyes are telling you that it has, that in spite of your denial you've been violated, that you're 0wn3d.

I wasn't running IRC on my server, but someone was. NMAP uses the service name "Elite" for anything running on port 31337. Port 31337 is the one Back Orifice most often uses. The handwriting was on the wall.

One of the security mailing lists I subscribe to (but obviously don't heed as well as I should) mentioned a tool called chkrootkit, so I downloaded, compiled, and installed it on my server (see Resources for a link). The news was grim. It found several suspicious binaries that it suggested were trojans and said the machine was possibly infected with Ambient's rootkit.

At this point I was past the denial stage. I knew I had been rooted. But I didn't shut the server down immediately. First I notified the local LUG that was using my server for its mailing list, and the community theatre whose Website I host. I told them what had happened and that I would bring the server down for at least a day or so. Then I backed up my own Website and the theatre's Website. Only then did I throw the switch.

Starting over

Starting from a new hard drive, I rebuilt the server from the ground up. I used RedHat 7.0. I had been running 6.1, and obviously I had not been good about keeping up with security updates. My best guess is that at some point, one of the widely known and exploited problems in earlier versions of wu-ftpd or sendmail had provided an open door for someone. I would add bind to that list of suspects except for the fact that I don't run it.

I moved the original hard drive to the secondary IDE controller so that I could peruse the disk at my leisure to learn what I could about when, how, and why my system had been cracked. I still don't know when it was cracked, but the rootkit seems to have been installed on February 22. I downloaded a copy of Ambient's rootkit (ARK) 1.0.1 and uncompressed the tarball on my desktop machine.

Here is the text from the ARK README:

[--ARK version 1.0 - Ambient's Rootkit for Linux--]

THIS PACKAGE IS STRICTLY PRIVATE **DO NOT SPREAD THIS AROUND**

This package includes backdoored versions of:

syslogd login sshd ls du ps pstree killall top netstat

Quick explanation:

syslogd Prevents logging if they match a certain string in /dev/ptyxx/.log login Login: arkd00r , Password: and you got a rootshell. sshd Login: root , Password: will spawn a .. guess what? ls File hiding using /dev/ptyxx/.file as the index du eq. ls ps Hide processes saved in /dev/ptyxx/.proc (LRK style, explanation stolen too ;-) w00h, evil me!) Example data file: 0 0 Strips all processes running under root 1 p0 Strips tty p0 2 sniffer Strips all programs with the name sniffer 3 hack Strips all programs with 'hack' in them ie. proghack1, hack.scan, snhack etc. pstree eq. ps killall eq. ps top eq. ps netstat For hiding Ports, Connections, etc. saved in /dev/ptyxx/.addr (LRK style, explanation stolen too ;-) w00h, evil me!) type 0: hide uid type 1: hide local address type 2: hide remote address type 3: hide local port type 4: hide remote port type 5: hide UNIX socket path

Example data file: 0 500 <- Hides all connections by uid 500 1 128.31 <- Hides all local connections from 128.31.X.X 2 128.31.39.20 <- Hides all remote connections to 128.31.39.20 3 8000 <- Hides all local connections from port 8000 4 6667 <- Hides all remote connections to port 6667 5 .term/socket <- Hides all UNIX sockets including the path .term/socket

Gr33tZ (in no particulair order) fly out 2: ice-devil, Beast|E, togooz, orangehaw, CuCc`, mo`, ^Trance^, [dG], deaddrokz, Annihi|aT, Leentje.. and ofcourse whoever i forgot to mention.. not that you're forgotten though ;-) - |Ambient|

I followed the trail of clues from the README and sure enough in /dev of the cracked drive I found a directory called ptyxx. It had been created on March 2 by "operator." Inside the directory were the .addr, .file, .log, and .proc files mentioned above. In those files I learned that the utilities installed by the rootkit as a trojan would mask the comings and goings of the users "operator" and "MAL." I also found that BNC, a proxy IRC server, had been installed. That gave the bad guys a way to use IRC in complete anonymity. Any misdeeds there would only lead back to me.

I did find in the logs that on March 4, "operator" signed on from the country of Brunei in the South China Sea, and got the password wrong several times. I also found traces of Telnet visitation during March from users at Verio, from an ISP in South Texas, from an ISP in the Netherlands, and elsewhere. My site was a lot more popular than I had realized. I have no way of knowing if those Telnet sessions were the same person using different accounts or a close circle of friends.

The invading binaries that chkrootkit detected were not exactly the same size as those included in ARK 1.0.1. I suspect there is a later version of ARK that hasn't made its way onto a white-hat security site yet, but the discrepancy could also be differences in the compiler or compile options.

Today my server is considerably tighter than it was about a week ago, but I'm not nearly finished with the wrench. I noted earlier that I did a clean install of Red Hat 7.0. Since then I have also applied all the security updates to that release that Red Hat has issued. I've disabled Telnet and started using SSH instead. All new passwords.

I had been running Psionic's portsenty most of the time on the old server, but that was all. Now I'm running hostsentry and logcheck, also by Craig Rowland at Psionic. You can find all three of those tools on the Psionic Website (see Resources for a link).

And that's not all. I've also added SNORT (a network intrusion detection system) and Freeveracity, which monitors critical system files to detect whether they've been replaced with trojans. SNORT seems an excellent tool. It comes with a default set of rules that allow you to be alerted for just about any kind of attack or scan. Other rule sets are available from places like Max Vision Network Security.

I'll also add a package called Analysis Console for Incident Databases (ACID) so that I can view SNORT alerts in real time. And I'm building a new box that will become a dedicated firewall based on the 2.4 kernel.

Paranoid? Yeah, probably. But I don't like being rooted. In retrospect, my great sin was not so much that I didn't have a firewall, or even that I wasn't running all that great security software. My sin was running apps with both known exploits and available security updates. I might as well have put up a blinking neon sign reading, "Crack Me!" Sure enough, somebody did. If you're reading this in the same state I was in last week, I strongly recommend that you move. It's no place to be.

About Joe Barr
Joe Barr is a freelance journalist covering Linux, open source and network security. His 'Version Control' column has been a regular feature of Linux.SYS-CON.com since its inception. As far as we know, he is the only living journalist whose works have appeared both in phrack, the legendary underground zine, and IBM Personal Systems Magazine.

In order to post a comment you need to be registered and logged in.

Register | Sign-in

Reader Feedback: Page 1 of 1

  Subscribe to our RSS feeds now and receive the next article instantly!
In It? Reprint It! Contact advertising(at)sys-con.com to order your reprints!
Subscribe to the World's Most Powerful Newsletters
Linux Links You Must Click On !

Lo Ultimo
La embajadora mundial de AvonReese Witherspoon ha sido anfitriona de una fiesta del té exclusiva par...

GameStop Corp. (NYSE:GME), la empresa minorista de software de videojuegos y entret...

Un estudio online publicado esta semana en Science ha demostrado que SPC3649, una revolucionaria ter...
Microsoft Corp. ha anunciado hoy una oleada de informes voluntarios - más de 150.000 en los dos últi...
Tras dos décadas de éxito demostrado a nivel científico y médico en su campo, los expertos de Lightl...
ADS BY GOOGLE
Some people say “oh, you’re dual licensing like MySQL. So does that mean that I get to use it and no...
Michael Bell, founder of Methodologies Corporation, the leading service-oriented modeling company, a...
Dune Networks' Highly Scalable Switch Fabric Technology Expands Broadcom's Product Portfolio for Dat...
M86 Security, a leading global provider of Web and messaging security products, released Predictions...
Researchers from Intel Labs demonstrated an experimental, 48-core Intel processor, or “single-chip c...
JetBrains, creators of intelligent, productivity-enhancing development tools, announced the public a...
The irony is that Oracle has advanced MySQL, lost money in the process, and helped its competitors -...
The founders of Crystal Reports and veterans of Microsoft, Symmetrics and Business Objects have laun...
I first met Mark Fishburn at the Convergence Technology Council (CTC) in Calabasas, California. Mark...
Concerns about the security of cloud computing environments top the list of reasons for firms not be...
WSO2, the open source SOA company, today announced the launch of the WSO2 Cloud Platform. Available ...
Red Hat Enterprise Linux running on Intel® processor-based servers helps your customers reduce TCO, ...
Now is the time to examine the TCO migrating from Unix to the more cost-effective open systems platf...
Making the right choices around technology is critical to the success of your business. Finding out ...
Dell is transferring ownership of its new factory in Poland over to contract manufacturer Foxconn Te...
Michael Donnelly, Group Director Worldwide Interactive Marketing, Coca-Cola and Michael Buck Global ...
To address this need, increasing numbers of healthcare organizations are evaluating enterprise imagi...
Some great news came out of Sun Microsystems yesterday with the release of VirtualBox 3.1.o. This is...
Thales announces SafeSign Mobile Authentication which enables strong authentication using a mobile d...
IGEL's Linux firmware now supports popular touchscreen monitors, including the LG L1730SF Monitor an...