Slashdot Mirror


Fingerprinting Port 80 Attacks

pg writes "I found an interesting article on www.cgisecurity.com that explains common fingerprints in web server, and web application attacks. It goes to describe how to detect most known, and unknown attacks. This may come in handy when trying to detect another internet worm."

47 of 147 comments (clear)

  1. It makes me angry by gmplague · · Score: 2, Interesting

    It makes me angry that everyone decides to beef up security and write analytical articles about how to maintain security AFTER THE FACT. The problem is, that although this seems like a good idea now, fingerprinting probably won't help for the next series of attacks, because they will be different in nature.

    --
    __________________________________________
    Take comfort in your ignorance.
    Grandmaster Plague
    1. Re:It makes me angry by gorillasoft · · Score: 2, Informative

      This isn't about improving security after the fact, it's about implementing IDS rules based on identifiable attack characteristics so you can build some useful filters, about checking your logs if you want to in order to determine what may have been an attack and what was really innocuous, and so on.

      It's not at all about the security of the server itself.

    2. Re:It makes me angry by 13013dobbs · · Score: 2, Interesting

      They will be different in nature, but will use the same commands to gain root access to the box. Read the part where he describes the common commands an attacker may execute, or common files the attacker will request. How the files or commands are accesses may change, but the files and commands will (for the most part) stay the same.

      --

      No replies made to AC posts. Please log in.

  2. What irony! by swordboy · · Score: 5, Funny

    I'm sure that the server that the article is posted on is getting a nice "attack" on port 80 right now!

    --

    Life is the leading cause of death in America.
    1. Re:What irony! by VA+Software · · Score: 2, Informative

      And with an easily detectable fingerprint too : referer = slashdot.org

      --

      ---
      http://slashdot.org/moderation.shtml
  3. One thing missed by 13013dobbs · · Score: 5, Insightful

    formmail script exploits. Due to post 25 blocking, spammers are looking for exploitable formmail scripts to send their spam through. I guess the author just wanted to talk about root exploits, but there are other ways to abuse a web server.

    --

    No replies made to AC posts. Please log in.

    1. Re:One thing missed by ptomblin · · Score: 2

      Yeah, I was looking for that specifially because just this afternoon I saw a whole metric buttload of these:

      152.163.160.44 - - [05/Nov/2001:14:50:00 -0500] "GET /cgi-bin/FormMail.pl?email=&recipient=tester@aol.n et&subject=P80+24.161.81.172+7 HTTP/1.0" 404 279 "-" "-" 152.163.160.44 - - [05/Nov/2001:14:50:00 -0500] "GET /cgi-bin/formmail/FormMail.pl?email=&recipient=tes ter@aol.net&subject=P80+24.161.81.172+11 HTTP/1.0" 404 288 "-" "-"
      152.163.160.44 - - [05/Nov/2001:14:50:00 -0500] "GET /cgi/FormMail.pl?email=&recipient=tester@aol.net&s ubject=P80+24.161.81.172+19 HTTP/1.0" 404 275 "-" "-"
      152.163.160.44 - - [05/Nov/2001:14:50:00 -0500] "GET /cgi-bin/formmail.pl?email=&recipient=tester@aol.n et&subject=P80+24.161.81.172+35 HTTP/1.0" 404 279 "-" "-"152.163.160.44 - - [05/Nov/2001:14:50:00 -0500] "GET /cgi-sys/formmail.pl?email=&recipient=tester@aol.n et&subject=P80+24.161.81.172+67 HTTP/1.0" 404 279 "-" "-"152.163.160.44 - - [05/Nov/2001:14:50:00 -0500] "GET /cgi-sys/FormMail.pl?email=&recipient=tester@aol.n et&subject=P80+24.161.81.172+131 HTTP/1.0" 404 279 "-" "-

      --
      The next Cmdr Taco duplicate will be ready soon, but subscribers can beat the rush and see it early!
    2. Re:One thing missed by SCHecklerX · · Score: 2

      I get those all the time too. It is originating from AOL. WTF is this?

    3. Re:One thing missed by SCHecklerX · · Score: 2
      Oh yeah...

      Mine are from teh exact same address. Is this an AOL proxy used by AOL users, or can I safely firewall that address to deny access?

    4. Re:One thing missed by ptomblin · · Score: 3, Informative

      It's a spammer or a mail bomber looking for form-mail scripts that he can hijack to send his millions of email messages through and make it hard to catch him or block mail from him. They used to rely on finding open mail relays, but except for a few thousand in China and Korea, there aren't that many around any more (and anybody who doesn't want to get spam just blocks everything from sites in China or Korea). So they've altered their tactics.

      --
      The next Cmdr Taco duplicate will be ready soon, but subscribers can beat the rush and see it early!
    5. Re:One thing missed by ptomblin · · Score: 2

      All legitimate traffic from AOL appears to come from address that reverse lookup to foo.proxy.aol.com. This guy doesn't.

      For instance in my current logs, the only legitimate traffic from AOL addresses comes from
      spider-mtc-tg014.proxy.aol.com and
      spider-mtc-tk043.proxy.aol.com and
      spider-mtc-tb054.proxy.aol.com.

      --
      The next Cmdr Taco duplicate will be ready soon, but subscribers can beat the rush and see it early!
    6. Re:One thing missed by ptomblin · · Score: 2

      I take that partly back. Looking through my logs again, I see what appears to be legitimate traffic (ie to existing web pages) from AOL ips like:
      ACA19CF3.ipt.aol.com and
      AC8D6E32.ipt.aol.com

      I believe these are people who aren't using the default AOL browser, though.

      --
      The next Cmdr Taco duplicate will be ready soon, but subscribers can beat the rush and see it early!
  4. incomplete document by Angry+Black+Man · · Score: 4, Informative

    That article doesn't cover too many port 80 exploits. It does cover the most common attacks, but, if you want some more information here is a more complete guide. There are also a lot of language translations of it at the top if you're not the most fluent in english.

    Remember, these documenst are written to help server administrators get an idea of what to look out for, not to solve every single port 80 problem out there.

    --
    the byproduct of years of oppression by the white man
    1. Re:incomplete document by mwalker · · Score: 3, Informative

      I hate to rain on your parade, but I believe that while the linked information is Informative, it is not quite On-Topic. The article in question talks about how to fingerprint different exploit strings launched at web servers at the application layer on port 80. The document you linked discusses how to fingerprint the TCP stacks of varying operating systems based on details gleaned from the top 3 layers of the network stack, including timing details, TCP sequence numbers, etc. Specifically it describes how Fyodor's excellent nmap utility fingerprints an Operating System by TCP stack. You may note that you must be "root" to use this capability because you must sniff the raw TCP stream in order to be able to do this. Fingerprinting port 80 exploit strings just requires you to read the http logs...

      While fingerprinting an OS is certainly a useful thing, we shouldn't confuse it with a fingerpinting and profiling effort aimed at categorizing and identifying buffer overrun and similar exploits aimed at web servers. Automated run-time detection of these attempts can lead to faster detection and elimination of threats. In addition, this is a passive measure, whereas nmap is an active measure.

  5. Fingerprinting, CGI & Web Security by Slipped_Disk · · Score: 3, Interesting

    I think there is some value to this article for new admins - it highlights most of the common things you will see in your log files if someone is poking at your site.

    By the same token, most well-written CGIs will block these sorts of attacks (and hopefully if you are writing CGIs you will have enough knowledge (and common sense) to write them in a reasonably secure manner).

    At the least it's worth a quick five-minute scan.

    --
    /~mikeg
  6. Fingerprint Database by helleman · · Score: 5, Interesting

    I'd love to see a plugin for apache that allowed a central server fingerprint database for new exploits.

    Every hour or so, a web server could access a central fingerprint server and download what the latest exploits look like. If a exploit comes in, the server could deny that IP, or drop those accesses without needing to know what the particular exploit is. A self maintaining web server via the web.

    What do you think?

    1. Re:Fingerprint Database by Tenebrious1 · · Score: 5, Interesting

      And, unbeknownst to you and thousands of others, the site that maintains the list has been hacked, and you are downloading empty lists that allow every exploit.

      It's a good idea, but there's a problem when you create a central point of failure.

      --
      -- If god wanted me to have a sig, he'd have given me a sense of humor.
    2. Re:Fingerprint Database by MenTaLguY · · Score: 2

      If the worst-case scenario is no worse than not using the service at all, then it still sounds like a good deal to me. Of course, there is probably a "worse-case" scenario: the site that maintains the list is hacked, and everyone downloads lists that match and subsequently block ALL traffic, legitimate and otherwise. ...or possibly just the same thing happening as a result of incompetence.

      --

      DNA just wants to be free...
    3. Re:Fingerprint Database by b1t+r0t · · Score: 3, Insightful
      I'd love to see a plugin for apache that allowed a central server fingerprint database for new exploits.

      Then we could couple it with my favorite idea for an Apache module: mod_labrea. This way any 'undesirable' HTTP exploit could be given a reverse DoS by keeping the connections alive and stalled for as long as possible.

      --

      --
      "Open source is good." - Steve Jobs
      "Open source is evil." - Microsoft
  7. portblocker by UUDDLRLRBASTRT · · Score: 2, Informative

    If your using windows (blech!) you can get a program for free that blocks your port 80, as well as tells you the IP number of somebody attempting to get in. The program is called Portblocker, and the company that makes it is analog X. I often bomb the person who tries to access my computer with telnet requests just to irritate them.

    1. Re:portblocker by radish · · Score: 2


      or you could just install ZoneAlarm (i.e. blocks all ports in & outbound), which is a proper firewall (and also free).

      PS. Yes I know there are better firewalls around (e.g. smoothwall) but ZA does the job for simple windows boxes, IMHO the best of the "personal" firewalls.

      --

      ---- Den ene knappen er powerknapp, den andre er Bender voice knapp "Bite My Shiny Metal Ass"

  8. Garbage requests by spankfish · · Score: 3, Redundant
    What I personally like to do is create a good set of rules for detecting this kind of garbage requests and storing them in log files which are separate to my normal access_log and error_log... that way I don't have to wade through acres of crap while looking at my real visitors.

    Yes, I know I could grep 'em out while viewing, but I think garbage should be kept in a separate place to the real visitors' log entries.

    --

    NO TOUCH MONKEY!
    1. Re:Garbage requests by Heem · · Score: 3, Informative

      I think garbage should be kept in a separate place to the real visitors' log entries.

      What i do, is setup virtual hosts on apache, with my domain name pointing at the real website, and my numeric IP pointed at just a blank page, and have them log to seperate files. Since MOST attacks come randomly via numeric IP, and MOST real users come in using the domain name.

      --
      Don't Tread on Me
    2. Re:Garbage requests by Heem · · Score: 2

      Got another one for ya then. surely you have a friend or a friend of a friend that has or has access to a 'real' server.. park your www.mydomain.org there with a simple html that redirects to www2.mydomain.org:81 OR opens a frame with www2.mydomain.org:81 inside of it.

      --
      Don't Tread on Me
  9. Looks good and a TFTP/FTP Question. by Embedded+Geek · · Score: 3, Interesting
    On first glance, this looks like a really nice piece of work, especially given the caveat (paraphrased) "this is not completely inclusive..." for the author.

    I do have a question for my fellow slashdotters: Why does the author single out TFTP but not FTP? Does TFTP have inherrent weaknesses that would make it the file transfer protocol of choice for an attacker?

    --

    "Prepare for the worst - hope for the best."

    1. Re:Looks good and a TFTP/FTP Question. by rodgerd · · Score: 3, Informative

      TFTP has no authentication in the protocol, so the only ACLs you've got are network level ones from TCP wrappers.

      All it requires is a misconfiguration on the TFTP server, and you'll be able to fetch and overwrite any file anywhere on the filesystem; I've seen this happen in the real world from time to time.

  10. Snort by Frums · · Score: 5, Informative

    Hmm, Snort has signatures written for all of these =)

  11. Not very interesting by brettbender · · Score: 4, Informative

    This paper includes very loose regex heuristics for requests that "might be" attacks. These may be interesting for anomaly detection, when coupled with an engine that records incidence rate (if you see an exponential surge in 'weird' requests, then maybe you're seeing a worm's infection growth curve ).

    But the result of deploying these (say, matching for "%20" in a URI) as intrusion detection system rules would be a high false positive rate.

    You would be better off looking at arachNIDS for rules that are more specific and less likely to drown you in alerts.
    1. Re:Not very interesting by jiheison · · Score: 2, Informative

      But the result of deploying these (say, matching for "%20" in a URI) as intrusion detection system rules would be a high false positive rate.

      From the article:

      ""%20" Requests

      This is the hex value of a blank space. While this doesn't mean youre being exploited, it is
      something you may want to look for in your logs. Some web applications you run may use these
      characters in valid requests, so check your logs carefully
      . On the other hand, this request
      is occasionally used to help execute commands."

      What's your beef?

  12. Great article for web server admins by shanek · · Score: 2

    The article comes right out and states that it doesn't cover everything, but it seems to get the most common exploits. Once an admin gets this paper and secures the server against everything in it, it becomes easier to block other kinds of traffic (such as file types ending in exe). I do like the idea one poster had about a central database of port 80 fingerprints.

  13. 200 OK by DNS-and-BIND · · Score: 2

    GET /cgi-bin/phf?Jserver=a&Qalias=a%0Acat%20/etc/passw d HTTP/1.0

    --
    Shutting down free speech with violence isn't fighting fascism. It IS fascism!
  14. suffix mapping by graveyhead · · Score: 2

    It seems that a great deal of these attacks are based upon the fact that file names are passed as CGI arguments. This is dumb. First of all, it causes your URL's to be unnecessarily ugly. Second, if one uses suffix mapping (e.g. in Apache), the URL is checked by the web server before being sent to a CGI type process. The upshot is that only files that live in the htdocs "sandbox" can be accessed. For example, http://www.davesresume.net/resume.xml points to the "/resume.xml" file in my web root. Go ahead and try "http://www.davesresume.net/../resume.xml" and you get a 404. The .xml extension is mapped to Apache Cocoon, my xml processor of choice, and there is no exploit opportunity unless I explicitly open one up with some other CGI code. Since I don't need any other file context, this type of attack is not a problem.

    --
    std::disclaimer<std::legalese> sig=new std::disclaimer; sig->dump(); delete sig;
  15. I did a worm blocker by certsoft · · Score: 2, Interesting
    Must of have been a week or two ago. I was trying to debug some LAN activity that only occurs at midnight on a custom system here. I have a log of TCP activity but it was filled with worm activity by the time I looked at it in the mornings.

    Based on the activity I detected I set the software up to look for a GET using any of the following substrings: SCRIPTS MSADC WINNT ADMIN.DLL _VTI_BIN and _MEM_BIN. If found then the requestor's IP address got added to a list. Anytime the TCP stack saw a SYN request from one of these addresses it just ignored it instead of starting the handshake. So far it has blocked 75 IP addresses and my log files are now pretty pristine.

  16. Most are arguments for good sandboxes by doug_wyatt · · Score: 2

    Most of these attacks are aiming to get the web server to do something it shouldn't be doing in any case. This is a good argument for running it in a solid sandbox. There are many ways of doing this (VM's and chroot'ing are some simple mechanisms, there are numerous more robust mechanisms), so that even if the web server were exploited, it would be unable to perform malicious actions on behalf of the attacker. This is not to say that you shouldn't attempt to write robust server code, but to put all of your security eggs in the basket of your request parser is a dangerous idea.

  17. Re:Garbage requests, me too by drDugan · · Score: 2

    I agree

    I would go one step further. I would like an apache module that can recognize requests for certain resources, like

    /scripts/root.exe?/c+dir
    /c/winnt/system32/cmd.exe?/c+dir
    /scripts/..%c0%af../winnt/system32/

    etc.

    and then just add that ip immediately to 127.0.0.1 without writing anything to access or error logs.

    ... as long as we're wishing...

  18. URLSCAN by Dego · · Score: 2, Informative

    Microsoft has a free tool that uses a text config file that allows for the rejection of http requests based on fingerprints. Check here if you are interested. Works pretty well.

    --
    you can't ack before you balls.. you just .. can't preemptively ack a balls
  19. Partial solution for log trash by wytcld · · Score: 5, Informative
    Here's how to get part way there (in this case for Nimda). In httpd.conf:

    SetEnvIf Request_URI "cmd\.exe" ATTACK
    SetEnvIf Request_URI "root\.exe" ATTACK
    CustomLog /www/logs/access_log common env=!ATTACK
    CustomLog /www/logs/attack_log common env=ATTACK

    <Location />
    Order Allow,Deny
    Allow from all
    Deny from env=ATTACK
    ErrorDocument 403 "
    </Location>

    And then optionally for individual bad directories:

    <Location /scripts/>
    Deny from all
    ErrorDocument 403 "
    </Location>

    At this point requests for cgi.exe are not being logged in access_log but only attack_log (leave out the attack_log line if you don't want even that much). They'll still show in error_log (but with a shorter error statement). The ErrorDocument line instructs Apache to send back nothing and just drop the connection - not as nasty as a tar pit, but at least you don't waste outgoing bandwidth, generally tighter than incoming for a Webserver. Also, Apache doesn't waste any time checking the file system on these requests, since the rules preclude that.

    --
    "with their freedom lost all virtue lose" - Milton
    1. Re:Partial solution for log trash by Tassach · · Score: 2
      You also need to add:

      CustomLog /www/logs/error_log common env=!ATTACK

      If you want to avoid a "client denied by server configuration" message in your error_log. I also added SetEnvIf rules for "WINNT" and "system32" for some extra paranoia.



      Other than those minor modifications, your config changes are supurb! I just added it to my web server and it took less than 30 seconds for the new rules to be triggered. Works like a charm. Thanks a lot :-)

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
  20. Freshmeat.net is a good resource. by GISboy · · Score: 3, Interesting

    Among the utilites mentioned like snort, no one has hit on the actual fingerprinting utilities out there like nmap, nbtscan and something like portsentry.

    I forget off the top of my head if portsentry has scriptable events, if it does then the possibility of having a "guarddog" type box would be interesting.

    For instance, if attack is detected portsentry and it does its thing by putting the offending adderss in /ect/hosts.deny and rereads hosts.deny and passes the address off to nmap or nbtscan to figure out what the box is running.

    Nothing beats calling up an ISP and saying "you have a windows/linux/whatever box probing for webservers/mailservers/(insert service) and is attempting to execute a vulnerability of that service".

    Nmap and Nbtscan are excellent utilities, but from using them and playing around, nmap is more of a discovery tool, nbtscan is more of a retalitory tool. Or, at the very least they both can be used as such.
    I know from personal experience that nbtscan's default setting (normal, aggressive, insane) is enough to knock a box off of a network.
    I scanned my cable modem...had to power down to get back up and knocked my boss off even with his knowledge...only a complete power down would bring the box back on the network.

    If you can have a "honeypot" why not a "watchdog" box for computer security?
    Has the "security/watchdog" been done before?

    --
    If it is not on fire, it is a software problem.
    1. Re:Freshmeat.net is a good resource. by underpaidISPtech · · Score: 2

      up yours ;)

  21. Re:Securing webservers by b1t+r0t · · Score: 3, Informative
    Also, you shouldn't let your webserver send any outgoing packets unless they are originating from port 80.

    If you're really paranoid, you also shouldn't let your web server send any outgoing SYN packets from port 80. This will help prevent web-exploit worms like Code Red and Nimda from spreading.

    --

    --
    "Open source is good." - Steve Jobs
    "Open source is evil." - Microsoft
  22. Answers. by mindstrm · · Score: 3, Informative

    TFTP is udp based. Yes there are ports.
    It runs on udp port 69.

    And, you hit the nail on the head.. embedded systems.
    tftp is 'trivial' so it can be used for bootstrapping systems. The protocol is as simple as it could possibly be (but not fast nor efficient network wise).
    It was designed so it could be implemented with very little code in order to bootstrap systems.

    Given that.. it really has no reason to be enabled at all in most modern systems.
    The only uses I've used it for recently are:
    booting diskless clients
    cisco router configuration files
    embeded systems work

  23. Realistically. by mindstrm · · Score: 2

    As an admin.. I often DONT CARE. I don't want a report every time someone tries some IIS exploit against my apache server. I dont' want to waste my own resources tracking and logging this.

    Sure, more information is better.. but.. I'm just not at risk.

    You make your servers secure, and then you forget about it. You keep on top of new vulnerabilities.... but seriously folks.

    Why should I care one bit whether some code-red worm tried to exploit apache thinking it was IIS? I'm immune, it's not relevant to me.

    Now.. knowing what goes on in a network in general, yes, that's important. Run snort or something.. keep an eye on traffic coming in/out of your net

    But get real. There are better, more productive things to spend time on.

    1. Re:Realistically. by Tassach · · Score: 2
      Why should I care one bit whether some code-red worm tried to exploit apache thinking it was IIS? I'm immune, it's not relevant to me.

      Even though you are immune to infection, it doesn't mean you don't have anything to worry about. If you are just admining a single home-based hobby server, you probably don't have anything else to worry about. But suppose you admin a unix machine in a big business; you run Samba so you can share files between your Unix box and all those M$ boxen that are somebody else's problem. If one of those M$ boxen gets compromised, now you DO have a problem, especially if you are using DOMAIN security and the PDC is the one that got hit. Even if the windoze boxen are not your responsibility, they can still impact you.


      Even if you only have one box hanging off a cable modem, IIS-specific attacks SHOULD worry you. Just because a potential attacker is being clueless now doesn't mean he won't develop a clue later. If you see a bunch of suspicious activity coming from an address, you should definately be paying more attention to anything else that comes from that address in the future. The fact that it's infected with a worm is an indication that it's not being administered properly. Some clueful hacker could take that infected system and use it as a jumping off point to do somthing that COULD hurt you.

      --
      Why is it that the proponents of "one nation under God" are so eager to get rid of "liberty and justice for all"?
  24. Snort by TV-SET · · Score: 2, Informative
    All these reminds me of a good old snort - http://www.snort.org

    --
    Leonid Mamtchenkov ...i don't need your civil war...
  25. What to do after attack? by Tazzy531 · · Score: 4, Informative

    A lot of people here have been asking what people should do after they are attacked. Here is an article/guideline for procedures on recovering after an attack. These steps include information on saving logs, documenting everything that you do after the attack, the type of evidence needed to prosecute, and who to contact (FBI, local police, etc) But as always..the best policy is to secure the system so that attacks don't happen.

    --


    _______________________________
    "I'm not Conceited...I'm just a realist..."
  26. Re:Securing webservers by b1t+r0t · · Score: 2
    You have the b*stard nature sir!

    Especially since I didn't mention the other effect of blocking outbound port 80 SYN packets. "No pr0n surfing from the web server console! Now get back to work!" (And yes, I do frequent The Monastery, how did you know?)

    --

    --
    "Open source is good." - Steve Jobs
    "Open source is evil." - Microsoft