diff --git a/know-how/hacking/_posts/2016-01-26-synology-telnet-password.md b/know-how/hacking/_posts/2016-01-26-synology-telnet-password.md new file mode 100644 index 0000000..e17120f --- /dev/null +++ b/know-how/hacking/_posts/2016-01-26-synology-telnet-password.md @@ -0,0 +1,83 @@ +--- +title: Synology Telnet password +language: en +layout: default +created: 2016-01-26 19:54:55 +0100 +updated: 2016-01-26 19:54:55 +0100 +toc: true +tags: + - know-how + - hacking + - hardware + - synology + - xpenology + - telnet + - password +--- +If you ever had a problem with your Synology DiskStation, you might have +stumbled upon the emergency telnet access or even the serial port on the PCB. + +Or maybe you just wanted to set it (or XPEnology) up and needed the `root` +password to configure a static IP in order to access the web based setup. + +But what is the password? + +Luckily, Gui Ambros took a look at the GPL'ed source code and +[made a small C snippet](https://wrgms.com/synologys-secret-telnet-password/) +to generate that password. + +It is based on the current day and month. + + + +The structure is like this: + +1. Current month in hexadecimal, lower case (Jan:`1`, Feb:`2`, … , Oct:`a`, Nov:`b`, Dec:`c`) +1. Current month in decimal, 2 characters, zero padded (`01`, `02`, …, `11`, `12`) +1. Minus (`-`) +1. Current day of the month in hex, 2 characters, zero padded, lower case (`01`, `02`, …, 10:`0a`, …, 30:`1e`, 31:`1f`) +1. [Greatest common divisor](https://en.wikipedia.org/wiki/Greatest_common_divisor) between month and day, 2 characters, zero padded (`01`, …, `12`) + +Here is a small Python snippet to calculate today's password: + +{% highlight python %} +from datetime import date +import fractions + +today = date.today() +m = today.month +d = today.day + +print("%x%02d-%02x%02d" % (m, m, d, fractions.gcd(d, m))) +{% endhighlight %} + +And if you look at the source code of this page, you'll find the JavaScript +which calculates the code displayed above. + +