Welcome!

Linux Containers Authors: Liz McMillan, Yeshim Deniz, Elizabeth White, Pat Romanski, Zakia Bouachraoui

Related Topics: Linux Containers

Linux Containers: Article

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.

More Stories By 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.

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


IoT & Smart Cities Stories
Chris Matthieu is the President & CEO of Computes, inc. He brings 30 years of experience in development and launches of disruptive technologies to create new market opportunities as well as enhance enterprise product portfolios with emerging technologies. His most recent venture was Octoblu, a cross-protocol Internet of Things (IoT) mesh network platform, acquired by Citrix. Prior to co-founding Octoblu, Chris was founder of Nodester, an open-source Node.JS PaaS which was acquired by AppFog and ...
The deluge of IoT sensor data collected from connected devices and the powerful AI required to make that data actionable are giving rise to a hybrid ecosystem in which cloud, on-prem and edge processes become interweaved. Attendees will learn how emerging composable infrastructure solutions deliver the adaptive architecture needed to manage this new data reality. Machine learning algorithms can better anticipate data storms and automate resources to support surges, including fully scalable GPU-c...
Predicting the future has never been more challenging - not because of the lack of data but because of the flood of ungoverned and risk laden information. Microsoft states that 2.5 exabytes of data are created every day. Expectations and reliance on data are being pushed to the limits, as demands around hybrid options continue to grow.
JETRO showcased Japan Digital Transformation Pavilion at SYS-CON's 21st International Cloud Expo® at the Santa Clara Convention Center in Santa Clara, CA. The Japan External Trade Organization (JETRO) is a non-profit organization that provides business support services to companies expanding to Japan. With the support of JETRO's dedicated staff, clients can incorporate their business; receive visa, immigration, and HR support; find dedicated office space; identify local government subsidies; get...
With 10 simultaneous tracks, keynotes, general sessions and targeted breakout classes, @CloudEXPO and DXWorldEXPO are two of the most important technology events of the year. Since its launch over eight years ago, @CloudEXPO and DXWorldEXPO have presented a rock star faculty as well as showcased hundreds of sponsors and exhibitors! In this blog post, we provide 7 tips on how, as part of our world-class faculty, you can deliver one of the most popular sessions at our events. But before reading...
René Bostic is the Technical VP of the IBM Cloud Unit in North America. Enjoying her career with IBM during the modern millennial technological era, she is an expert in cloud computing, DevOps and emerging cloud technologies such as Blockchain. Her strengths and core competencies include a proven record of accomplishments in consensus building at all levels to assess, plan, and implement enterprise and cloud computing solutions. René is a member of the Society of Women Engineers (SWE) and a m...
If a machine can invent, does this mean the end of the patent system as we know it? The patent system, both in the US and Europe, allows companies to protect their inventions and helps foster innovation. However, Artificial Intelligence (AI) could be set to disrupt the patent system as we know it. This talk will examine how AI may change the patent landscape in the years to come. Furthermore, ways in which companies can best protect their AI related inventions will be examined from both a US and...
The challenges of aggregating data from consumer-oriented devices, such as wearable technologies and smart thermostats, are fairly well-understood. However, there are a new set of challenges for IoT devices that generate megabytes or gigabytes of data per second. Certainly, the infrastructure will have to change, as those volumes of data will likely overwhelm the available bandwidth for aggregating the data into a central repository. Ochandarena discusses a whole new way to think about your next...
Charles Araujo is an industry analyst, internationally recognized authority on the Digital Enterprise and author of The Quantum Age of IT: Why Everything You Know About IT is About to Change. As Principal Analyst with Intellyx, he writes, speaks and advises organizations on how to navigate through this time of disruption. He is also the founder of The Institute for Digital Transformation and a sought after keynote speaker. He has been a regular contributor to both InformationWeek and CIO Insight...
Bill Schmarzo, Tech Chair of "Big Data | Analytics" of upcoming CloudEXPO | DXWorldEXPO New York (November 12-13, 2018, New York City) today announced the outline and schedule of the track. "The track has been designed in experience/degree order," said Schmarzo. "So, that folks who attend the entire track can leave the conference with some of the skills necessary to get their work done when they get back to their offices. It actually ties back to some work that I'm doing at the University of ...