Nginx 400 errors due to random encoded string starting with "\x" from random IP addresses
I assume these are some sort of bots, but would like to know what are they trying to do to my server.
The logs in questions are below and the IP address has been changed from the original.
12.34.56.78 - - [18/Oct/2012:16:48:20 +0100] "\x86L\xED\x0C\xB0\x01|\x80Z\xBF\x7F\xBE\xBE" 400 172 "-" "-"
12.34.56.78 - - [18/Oct/2012:16:50:28 +0100] "\x84K\x1D#Z\x99\xA0\xFA0\xDC\xC8_\xF3\xAB1\xE2\x86%4xZ\x04\xA3)\xBCN\x92r*\xAAN\x5CF\x94S\xE3\xAF\x96r]j\xAA\xC1Y_\xAE\xF0p\xE5\xBAQiz\x14\x9F\x92\x0C\xCC\x8Ed\x17N\x08\x05" 400 172 "-" "-"
12.34.56.78 - - [18/Oct/2012:16:58:32 +0100] "g\x82-\x9A\xB8\xF0\xFA\xF4\xAD8\xBA\x8FP\xAD\x0B0\xD3\xB2\xD2\x1D\xFF=\xAB\xDEC\xD5\xCB\x0B*Z^\x187\x9C\xB6\xA6V\xB8-D_\xFE" 400 172 "-" "-"
12.34.56.78 - - [18/Oct/2012:17:06:59 +0100] "\xA61[\xB5\x02*\xCA\xB6\xC6\xDB\x92#o.\xF4Kj'H\xFD>\x0E\x15\x0E\x90\xDF\xD0R>'\xB8A\xAF\xA3\x13\xB3c\xACI\xA0\xAA\xA7\x9C\xCE\xA3\x92\x85\xDA\xAD1\x08\x07\xFC\xBB\x0B\x95\xA8Z\xCA\xA1\xE0\x88\xAEP" 400 172 "-" "-"
12.34.56.78 - - [18/Oct/2012:17:13:53 +0100] "b\xC4\xA24Z\xA2\x95\xEFc\xAF\xF1\x93\xE8\x81\xFD\xB4\xDEo\x92\xC0v\x1Fe\xD8W\x85\xC7O\x9D\x8C\x89<" 400 172 "-" "-"
12.34.56.78 - - [19/Oct/2012:09:56:39 +0100] "\x93d\xD8\x85\xD3f\x182\x94\x10\xE6y\x06\x7F\xE5\x97\xA8S\x8AfZ\x84\x0C\x0F\xFD\x19d*+\x09%\xEC3EG\xDD:Tn\xDA" 400 172 "-" "-"
12.34.56.78 - - [19/Oct/2012:10:07:10 +0100] ">\x92\xD7\x85\xC2\x5C\xDA\x8CJX\xBE\x87\x01\xBA\x09\xADj\xEDT.\x02z\x0B\xCA\x00\xAC\xDC[_;q\xC15\x17\xE9\x0B\x9F\xDA;\xEC\xDA)\xB8\x91\xA2\xB5P\xE9\x81\xF2\xD5\xD3\xC4\xD3" 400 172 "-" "-"
12.34.56.78 - - [19/Oct/2012:10:09:53 +0100] "\x12\x9E>\xFC\xF4\x07,\x9A\xF5G\xB4\xD0\xD4\xF1\xCB9\x9FRl\xB0\xDB\x84a\x90\x7F{\xB1\xA3\xD9-5\xF8\x94~\xCEm\x87\xEC\xB4\xE2s\xBD\xDB@" 400 172 "-" "-"
12.34.56.78 - - [19/Oct/2012:10:24:49 +0100] "\x98\xCA\xD3\x95|&t\x1Cp\x02\xF7\x88m\x08T\xE7tm\x9E\x04\xFB\x85\xB7\x08\xB3\xA0-Z\x03\xD5O\x98\xC6\x0EK|\xA1" 400 172 "-" "-"
12.34.56.78 - - [19/Oct/2012:10:27:58 +0100] "\x11\xE8.^\x0E\x8B}\x81\xAD\xA3^\x9E\xDFg2?@\xCB\x1Ej\xC7h\xB00\xF0\xDC\x92\x9B@\xFD\xBChB\xBF7tF\x17+W\xFFV\x8F" 400 172 "-" "-"
12.34.56.78 - - [19/Oct/2012:10:40:43 +0100] "Ou\xB3\x89\x8DiB\x82\x9D\xE8?wshxLF'\x0F\xB2o\xF6\xCD\xFC\xC2\x82ck\xC4\xF7\x0F\x01\xBC\x8B\xDA\x93|\xEAL\x81\xED`Rbr\x0F\xC1\xC8T\xDE\x07\x91\xF5|J\x5C\xBD70\x22\xD5\xA5p\xF4\xF4\xAA\xC2\xF2a\x19\xFE" 400 172 "-" "-"
12.34.56.78 - - [19/Oct/2012:10:41:29 +0100] "[8]\xCC\x7F\x1E\xA9\xE6f\xD7<\xA9\x18\xD9\xC0\xD0j~O\x90C\x8D]hVz\x84\x94y]\x95{.\x13m_];W1\x16\xEF\xD6\xE2" 400 172 "-" "-"
The above is from the same IP address over a period of time. Any insight into this is appreciated.
Solution 1:
You are most likely seeing this because you are making an HTTPS request to an HTTP endpoint. For example, you're sending an HTTPS request to port 80 of your web server instead of 443. As a result, the HTTP endpoint gets a bunch of encrypted data, makes no effort to decrypt it (since HTTP is supposed to be plaintext), and so you get a bunch of gibberish in the log file.
Solution 2:
I had the same issue, checked the source IPs and some where from Google, which make me doubt some sort attack. Then I realized I had a default_server
listening on 443, but no SSL certificate configured. I commented out this server and the issue went away.
So I second Yevgeniy point.
Check your nginx configuration for a miss configured server listening on port 443!
Solution 3:
First of all I would try to decode this hex.
As far as I noticed those are random chars. Are you familiar with this ip adress? Is it only one or plenty adresses? You tried to look it up?
And probably - some script-kiddie found "best exploit ever" and want to test something or some kind of worm is looking for bug in your nginx.
Please - verify you nginx version and try looking up in changelog something familiar to random chars nginx bug.
Solution 4:
Similar behavior is observed when a BitTorrent client uses port 80 to connect to their peers.