Major Openssl Bug!

I just read this today morning: http://heartbleed.com/

That just seems ridiculous…and it’s way past April fool’s day so doesn’t seem like it could be a joke.

So what does this mean? It basically means that before the patched out version of openssl was used, everything that used openssl library to encrypt data is basically useless…in otherwords people/governments can use this bug as a way to decrypt all data (using private key) from servers that hosted it as quoted:

“We attacked ourselves from outside, without leaving a trace. Without using any privileged information or credentials we were able steal from ourselves the secret keys used for our X.509 certificates, user names and passwords, instant messages, emails and business critical documents and communication”.

Well I’m no crypto expert nor do I want to doubt the difficulty of implementing a piece of cryptographic technology…but why do I have this feeling that it was setup? I mean this bug has been there forever, the code is fully opensourced; is under the watchful eye of hundreds & thousands of crypto experts & no one until recently (especially after Snowden revelations) had the brains to find out something like this? I have a feeling that the bug was intentional so our Big Brother, Big Sister or whatever entity has control of our data.

From now on, I’ll think twice before trusting anyone or anything with my data.

Gen2k new update coming soon!

Recently, I decided to search on google for “automated wordlist generator” to find out what options are available out there and I was quite surprised to see my custom coded tool  Gen2k at the top. Apparently it didn’t stop there, the search led me to various underground security forums; one called Romanian security where my tool is posted & probably being used by many people. I even noticed a short video tutorial by a Spanish guy on youtube on how to use my wordlist generator. I had no idea that something so simple that I coded just for myself could become so useful to other people aswell.

Therefore I’ve decided to improve my program and make it more professional, more useful with a lot more customisation options.

I’ve already setup the repository on github & you can get the latest version here:

https://github.com/irenicus/gen2k

There’s no update yet as I’m still working on the new features. In the mean time if you have an interesting idea for a feature that you would want to see in Gen2k feel free to let me know by commenting below.

Manjaro Linux Review

I have distro hopped like a grass hopper in my early years as a Linux user. I’ve tried different variants of Linux & one of the things that I’ve realised is that even though overall eye candy does matter, but what matters more in the longterm is your hardware compatibility, familiarity with the distro and how well it suits the flow of your work.

They say if it works, don’t try to fix it & thus we have distros like Arch and Gentoo. Gentoo is the type of distro that not only requires pure commitment and dedication, but you also need a lot of patience to go through hours of frustrating compilation process. The end result being that all your software is optimised according to your architecture; in non-geek terms it means that your computer would pretty much run the fastest it can run and more. It’s like replacing the Toyota engine of your car with that of a Ferrari. Who wouldn’t want the extra speed right? Only if you knew how painful the actual process is.

Anyway, Arch on the other hand has prebuilt binaries optimised for your architecture which is similar to that of Gentoo but the upside being that there’s no compilation process therefore it’s much faster to get things setup. With Arch you’ll have to start from scratch and go through a big book full of instructions on how to set it up and running according to your taste. Nothing impossible, purely do-able but you need the time & energy to troubleshoot your own hardware, software & driver issues along the way. Don’t get me wrong, I love these distros because they give you total control over how you want your perfect system to be like but I’m certainly not the kind of guy that’d wait 10+ hours just to get my system to a usable state. Therefore we have a distro called Manjaro Linux on for review today!

First of all, I’m a big fan of openbox window manager. It’s sleek, fast & totally customisable. Also I do like Arch but due to time constraint never really bothered to give it a full try.

What Manjaro Linux brings to the table is that its based on Arch Linux but it comes out of the box as a minimal install (not as bloated as Ubuntu) on which you can further customise and tune according to your taste. It brings all the goodies of arch like the keep it simple philosophy, consistent & simple bloat free architecture and most important of all user friendliness with a lot of built in scripts to assist the user in customising look & feel. So basically you get an Arch system for free without having to break a sweat.

Manjaro Linux comes in various flavors like Openbox, Kde, Mate, etc. but for now I’m going to keep this review relevant only to Openbox. The best openbox distro that I’ve used in the past is Crunchbang, and it’s really good. But what Manjaro Linux gives you is access to more up to date, bleeding edge software, increased computer performance, ability to update & switch kernels on the fly (built in scripts) & the impressive amount of documentation. I was also pleasantly surprised to see a step by step instruction manual regarding the process of installation on Manjaro (in the form of pdf), detailed with screenshots. Seems like they’ve really put up a lot of effort in trying to make it look more professional and easy to use.

TLDR; here are the things that I like about Manjaro Linux:

- Fast, simple & based on Arch Linux.

- Stable repositories. You gain access to Arch repos & a lot of tests are done to ensure that the update doesn’t break anything before it’s released on Manjaro servers.

- Built in scripts like mhwd, mhwd-gpu, mhwd-kernel ensure that you’re uptodate with the latest kernel or drivers for your graphics card & you can opt to change to different versions as you see fit.

- Openbox install comes preinstalled with all the necessary scripts, themes & customisations to just get you started without starting from a plain vanilla install.

- Big community of active users who are constantly working on fixing old scripts, creating new ones & making your Manjaro better.

- Good forum support for Manjaro users via their official forum. Documentation from Arch can also be used as a reference material to troubleshoot your problem as there’s similarity between both distros.

Things that I’d like to see improved in Manjaro:

- Video tutorials series detailing how to get certain things done as Manjaro has a strong focus on beginner Linux users.

- More customisation options for Openbox like which screensaver, login manager, etc. you’d like to install. Also it’d be nice if there’s an option to turn on some composition (compton) with fade effect & transparency by default.

- More marketing to get the message across about Manjaro, it doesn’t get as much publicity as let’s say Ubuntu.

Here’s a link to my new Manjaro install, see how it looks like:

http://irenicus09.deviantart.com/art/Manjaro-Linux-437550988

Overall, I’m really impressed with Manjaro Linux & I’ve never seen a distro so focused towards beginner Linux users. They’ve done a great job at it & if I were to recommend a distro to my friends or family this would be it. Certainly worth giving a try if you haven’t already :)

Reason why Linux is not main stream yet…

Alright, I wanted to talk about a lot of the things that have been bugging me lately. This post is totally my personal opinion and is based off on my experience with GNU/Linux.

First of all, let me tell you that I’ve personally tried various distributions (distros) of Linux…from Ubuntu to Gentoo, Fedora, Arch and every thing in between but I don’t consider myself an expert. This post highlights what I think is wrong with the GNU/Linux in general and what can be improved to make it more appealing to the end users.

The various distributions of Linux that I’ve tried are quite similar in nature, they have a lot of the commonalities like the kernel, the architecture and software that run on it but they vary based on the philosophy among their communities, their vision, their goals, their package managers, etc.

For example Gentoo’s philosophy is that it’s a source based distribution where you have to compile everything from source where as others like Ubuntu rely mainly on binary builds.

Anyway that’s not what I wanted to talk about. What I’m trying to highlight here is that a lot of the things that we do in the Linux world is just too damn complicated for a typical end user to go through.

For example, I bought a new laptop eight months ago and it came with a proprietary AMD Radeon HD 8750m card with dual switchable graphics. When I bought it I didn’t expect the card to work at all since it’s so new. But recently I realised that the support for this card is available in the newer 3.11 kernel which allows dynamic power management to improve battery life and decrease heating, etc.

Therefore I decided to install the latest kernel for which I had to use a script (smxi on Debian) to get it installed. Even after installing the kernel, next issue was that I had to enable dynamic power management (dpm) in the boot settings (grub) manually as it was disabled by default. Then again it didn’t work because I was missing some firmware or because I had to disable the proprietary intel driver and load the radeon driver manually. Or may be because of something else that I need to spend time experimenting.

My point is that a typical end user shouldn’t be worrying about these kinds of stuff. In the Linux world we expect the user to be able to manage and handle these kinds of stuff. We assume they have some knowledge of bash, terminal navigation or even programming skills.

In contrast, the Windows or MacOSX world is like handing the end users freshly baked cakes out of the oven. They don’t need to know anything about baking power or the ingredients that goes into it, they don’t need to worry about the correct temperature in the oven….they just enjoy their freshly baked cakes.

That is the reason why I think people (general population) are unlikely to come over to Linux anytime in the future except for hobbyists, geeks and people who need to run Linux for their day jobs. But I can not totally disregard the effort distros like Ubuntu have been putting in….to make a big impact in the department of user friendliness, making all these subtle things that is so hard for a normal Windows user….fade away. So I should obviously give props to them for trying to make Linux go in that direction.

But still, from my last experience with Ubuntu 12.04 there’s a lot of things I didn’t like….let me start off with the Zeitgist and online search bullshit. Whenever you search on the dash, your search results get sent off directly to Ubuntu servers and that is turned on by default! Talk about privacy…..next thing they had was this Geo-location service thing going on and from what I’ve read on Ubuntu forums itself…when your computer boots off it tries to ping Ubuntu server or something similar even while you’re not logged in. So ya that totally turned me off.

Anyway there’s still hope that Linux can make it to the main stream in the Desktop world if SteamOS can be a big hit. Valve is a pretty resourceful, reputable company and the steam platform itself has hundreds and thousand of AAA titles. If they can somehow make all these subtle things in Linux that we have to deal with every day go away and make Linux more usable then I think people can be convinced to switch over to Linux after all.

Don’t get me wrong, I love Linux and use it on a daily basis….but I simply think that it’s not for everyone yet. At my University, I even opted for teaching a Linux course as a term project in order to get more people interested in Linux. From that teaching experience, although there were a handful of students…..what impressed me the most was that even people with no prior experience with Linux were able to grasp things so easily and fast. If I imagine my personal experience with Linux itself…it took me a whole lot longer than that to get the hang of things. Perhaps it was because they had programming experience or IT background etc.  but as of yet I can not confidently go to someone who has zero knowledge of Linux and recommend that person to switch over to Linux. In my opinion they’re better off with their freshly baked cakes.

Optimising Wireless Cards – Alfa AWUS036H

Getting your wireless card to work on a Linux system can be a headache sometimes and if you’re a beginner, you’ll find yourself in one of the two scenarios. It either just works or it doesn’t.

Even if it works, chances are there may be drivers issues resulting in your downloads not being fast enough, sometimes it just lags and doesn’t work like the way it does on Windows.

So, being a full time Linux user that I am…I’ve had my fair share of such problems and I’ve had to learn through trial and error on the best way to fix my wireless card.

I use WICD for handling my networking stuff & I also own Alfa AWUS036H, but for the most part I see that after prolonged use of my card it seems to get disconnected quite often, doesn’t get good signal and sometimes just fails to connect at all. These issues mainly arise randomly and the task of resetting everything manually via commandline over and over again can be quite frustrating.

So I utilised the power my bash scripting skills and packed all the commands together in one simple script that anyone can run with root priviledge to optimise their cards for maximum power and make it work properly.

WifiAutomate

Usage: ./FixWifi.sh [wireless interface]

As you can see from above, the script reloads modules, spoofs to a fake mac address & fixes everything for your wireless card to just “work”.

You can get the script from here –> http://pastebin.com/d5sAH5Fr

Dependencies: iw, iwconfig, ifconfig, macchanger, wicd

This script has been specifically coded to fix Alfa AWUS036H card utilising WICD, if you own other cards you may have to configure the power parameter and the driver. Please use it at your own risk, the author takes no responsibility for any direct or indirect damage done to your card by the use of this script.

Open Source VS Everything

Few months ago I bought a new laptop with AMD HD 8750 Graphics card. One thing I didn’t realise when I bought the card was the issue of driver support. It seems like driver support for switchable graphics is yet to be implemented for Linux…so getting the card to work was kinda out the question. But I did have hope and I must say the design, hardware & everything about the notebook was beyond my expectations & the price point pretty much closed the deal for me.

Therefore 2-3 months after the purchase date, I kinda got desperate with waiting so I posted a thread in Sabayon forums about my driver issue:

http://forum.sabayon.org/viewtopic.php?f=56&t=29426

There are some form of hacks / work arounds to solve the issue for older cards with switchable graphics, but nothing I did fixed my problem. What kept me going was the community, they supported me so much with advice and everything…especially people like anomaly65…I dunno how to describe him but what I can say is that he’s a wise, battle hardened linux user with decades worth of experience in the field & if there were more people like him out there today, then may be half the people in the IT industry wouldn’t be so technically illiterate.

The persistence & dedication with which someone like him voluntarily tried to help me just amused me; I mean he’s not someone whose getting paid for trying to help me…he’s doing it totally because he wants to, out of his own spare time….for the sake of improving the community & there’s a pretty good chance that he doesn’t even know who I am or where I’m from.

Just imagine, would you be able and willing to do the same? Trying to help a total stranger in need, technically? The fix he posted perhaps didn’t work for me but was pretty much helping thousands of people who were left in the dark by AMD. People in the linux world always manage to find a way to solve their problem. That’s the kind of mentality I like about the world of Linux & OSS, no wonder it’s the OS of choice for most hackers.

Before I got involved in the world of Linux (4-5 years back), I used to think about how people still use Linux and Open Source software in this day and age. I was really narrow minded back then & I really had no idea on how concepts like Open Source Software could function in the real world. I mean how and why would someone work on developing something that was free or what good would that be anyway compared to commercial, ready made software? The fact of the matter was, I was still caged like an animal in the world of Windows. I bought what Mr. Gates gave me, trusted his OS to be secure, fast, stable & everything in between. The world of windows clouded my vision, if something didn’t work I blamed the software, the vendors, the hardware. Never the operating system. Even when I had gotten the blue screen of death or when my computer got to a point that it was too slow to function, I blatantly reformatted my drive with a new “Windows install” and carried on. I thought perhaps this is the way of doings things & may be that’s how it’s supposed to be. I was so wrong!

There were some people who advised me to switch to Linux, but my situation and those of most other windows users was that of a blind person. There’s no point in giving directions to a blind person, if he can’t see or feel the path and walk on his own, no one can help him.

But I did finally see the light at the end of the tunnel, and Linux forever changed how I perceived the world of computing. The world of Open Source finally started to make sense to me and I pretty much sought after & found a lot of the answers to my questions.

So, why wouldn’t I use Linux? BSD? Or Unix based systems? In fact a better question is – why shouldn’t you?

Look around you, they’re everywhere. From powering high tech new generation space technologies like SpaceX to Super Computers….or better yet your Android cell phone!

Everything these days runs the Linux kernel under the hood. We’re slowly adapting to it, whether we acknowledge it or not.

As for the space of personal computing, if you’re not ready to risk everything, leave everything behind…you’ll never be able to change your mentality or make it to the other side….you’ll be forever stuck in the boat of Mr. Steve or Mr. Gates.

Perhaps that is good if it works for you, but for me the Linux & Open Source community is everything I could possibly ask for.

Wifi Ownage

Wifi networks can be quite easy to pawn these days, with the availability of fast cloud based cracking services, big optimized dictionaries and  complex software…even if you implement the best encryption schemes out there like WPA2 – AES…all it takes is just a bit of luck with a good dictionary and a not so complex password. Therefore even with modest hardware, cracking a wifi network is not that hard…provided you don’t use a password combination like this: 1aE&saA3@#S!

Recently one of my friend asked me to audit his personal wifi network in order to test it’s security. The way he was smiling…made me feel like he’s well prepared…although he’s a not so technical guy but he’s aware of the basics and did what he thought was best to make his access point secure.

So I got myself a drink & fired up my Linux install. I set my wifi card on monitor mode and used the suite of tools provided by aircrack  to probe his wireless network. His access point was using WPA2 – AES encryption scheme, which is good. On further inspection using tools like reaver, I also noticed that his router wasn’t using WPS (which is turned on by default in most cases) so it seems like he did his homework.

WPS is an additional security layer through which you can securely authenticate multiple devices by just pressing a button on your router…but it comes with a flaw that allows you to pretty much bruteforce your way through the router and once you hit the right pin…you’re give the passphrase to the access point! I don’t really see the point of WPS and it’s the one thing that in my opinion made wireless networks more insecure and easy to crack. The cost of convenience can be a big price to pay…so if you’re an owner of a wifi network & you’re reading this…make sure you turn off wps mode on your router.

So since it wasn’t possible to use reaver to bruteforce wps, I decided to move on with Aircrack.  It seemed like he was connected to the network, so by using a combination of aireplay-ng, airodump-ng I was able to deauthenticate him from the network and capture the 4 way handshake. In case some people don’t know what a 4 way handshake is…it is pretty much a 4 step process of interaction between a client and the access point. It’s a protocol that is used by wpa/wpa2 standard to authenticate and associate a client with the wireless network. From a hacker’s point of view, it’s like a candy which comes wrapped up in some metal box made of solid titanium. In case you didn’t get it, think of a bank’s safe (which is usually made with the hardest materials like titanium). To crack open the safe you’ll need to enter the right password and there’s no other way around that. Forget the high tech blow torch or other stuff you see in the movies for now :)

So I was able to get the four way handshake & I loaded up a good dictionary and fired up aircrack-ng to crack the handshake. Well what do you know in a matter of 10-15 mins, I heard the cores slow down and to my surprise the password was cracked! The password were all numbers but I think it was around 12 characters in length, still ended up being a part of the dictionary.

Since he gave me the permission to pentest his network, I wasn’t restricted to anything but I decided not to pentest the connected clients as that would be in my opinion a violation of privacy. So to prove to him what a malicious hacker could do I decided to log into his router and got in with the default password! Damn no one these days even bothers to change their router’s password. It was a Zyxel router with some good little things here and there but I decided to log into the command line shell and see what I can find.

So I telnet into the router with default password & was given r00t access. I rarely fiddled around with busybox systems but just for the sake of proving what a hacker could do I decided to take a look around…until finally I hit something that caught me by surprise.

When I used the ps command, it showed me the username & password of the account my friend had with his ISP. Usually, even if a hacker manages to crack the network & get onto the routers networking settings the password section for the ISP’s account is like filled with asterisks for security reasons…so copy paste won’t work. But in this case by just tinkering around with the process list I was able to get to the credentials due to the pppd daemon that was running. Since this ISP is quite common in the area where I’m from…a hacker could connect to a nearby hotspot from that provider and login with the stolen credentials and he’s no longer bound to a particular access point.

So as you can see, securing your network is really important. Always the first thing you need to do is change the default password in your router’s admin panel. As for the wireless passphrase, try to use a complex auto generated password of atleast 15-20 characters in length. If you must do it manually for convenience, make sure your password is alphanumeric…mix some random words with numbers, a few symbols and stuff in a totally random pattern so that your password would probably not be in a dictionary…and believe me there are really BIG dictionaries out there…they can be as big as 13 GB in size!

As for my friend, I’m pretty sure his smile will wear off once he hears how his network got owned but don’t worry about him…this pentest was just for educational purposes only, no real harm has been done.