Wednesday, March 14, 2018

Techs from the Crypt: I don't understand!

Realistically, I have not been a tech for very long, however I work on four different sites normally and interact with quite a lot of people. In my travels, I have come across some humorous, horrifying, and down right strange scenarios. I will now share them with you as part of an attempt at a running series I am calling "Techs from the Crypt" as homage to a favorite show of mine as a kid, Tales from the Crypt! Get it? Did I really need to explain it?

Moving on, I will make up names where needed, not so much to protect the people involved, but more so because I don't care enough to remember anyone's name. Luckily my time in retail has taught me how to cover up my anti-social nature and severe anger towards the more remedial tasks I'm expected to perform.

As a tech, I often come across a lot of people who say something along the lines of "I don't know," or "I don't understand." I often feel myself rewording what I say many times over to make a point or even get some acknowledgement that there is thought behind the vacant stare and hysterical smile of someone completely distraught because "the Internet is broken," or "I didn't do anything and it's no longer working." I'm sure almost every field you can be in has some variation of this interaction, be it with co-workers or clients. So now I submit to you a story about a lady who even when I think back on it, I find hard to believe she actually did all the things she did.

I work for a school system, so most of the people I help are teachers, those we trust to educate our youths. This particular case was at an elementary school. I received a work order about a teacher, we shall call her Mrs. Lego (part of an inside joke I may mention later), could not log into her Google account. Now when an account is setup on our system, a Google account is created. The problem is that you cannot log on to the account until after you change your password and then it gets synchronized with Google. I was quite confident in dealing with these cases as it was the beginning of the year and a lot of new teachers sent in identical work orders. With that, I marched off to the school to get the new teacher squared away.

So far it all seemed routine, and then I met the teacher. Now, let me be clear, she was and is a very nice lady who has never been intentionally rude to me even when I almost lost my temper. However, I would not say Mrs. Lego is the most receptive of people. After explaining to me her problem, I explained to her that she needed to change her password and showed her how. Now, our passwords have complexity requirements that are more strong than some of the other unconnected systems certain groups of staff need to use, usually due to just software limitations. Mrs. Lego tried to change her password to one she had previously setup on one of these particular systems. After it rejected her twice, I asked her to tell me the password. I then explained to her that because of the complexity requirements, it needs more to it, like a special character, maybe an exclamation mark at the end or something simple to remember like punctuation.

"But I want it to be the same password for everything," stated Mrs. Lego quite adamantly.

"Well, I understand that, but I cannot change these requirements. To access Google through your account, it's required to change your password."

"But I need them to be the same, or else what's the point?"

"To access Google, you NEED to change your password."

"Well, why can't I use this one?"

"Because there are requirements that need to be met."

"I don't think you're understanding me. I have my password for that set. I want them to be the same passwords."

"I get that, but unless you change both passwords, we can't make this one the same."

"No, you don't understand, I want my password-"

"To be the same as the other one, I get what you're saying but I cannot do that for you."

"Oh... well then there is no point in changing my password, how do I go back?"

"To access your Google account you HAVE to change your password."

"But I don't want to unless they can match."

This is the shortened version, as this conversation then continued on for some more time. Finally, my patients were gone. She was convinced I couldn't understand what she wanted so now she wants everything back but wants to access her Google account. I was so fed up, I did the only thing I could within my power. I fired up Google Admin Console and manually entered her default password and reluctantly left that be. However, it does not end there, oh no my friends. You see, she was a new teacher and had questions. Many questions. We have instructional people for such questions, but I was nice enough (dumb enough is more like it) to attempt to help to the best of my ability.

You see, at one point they thought it was a good idea to try to continue the use of old outdated computer by installing Ubuntu on them. As a Linux user, I informed them many times after I started and came across this that Ubuntu os a full featured OS, it is not lightweight or good for repurposing old computers. Mrs. Lego had two and one with Windows still on it. The Ubuntu computer log in automatically and the Windows they are recommended to use a class login. After explaining to her the class login and showing her the Windows computer, we discussed the Ubuntu. I explained to her they really are just there for web browsing, there is no Microsoft office or the like on them.

"So, they're not real computers?"

"No, they are just older computers that the schools are trying to reuse to save money."

"At the school system I come from, they stripped out the guts of old computers and called them Linux machines."

"...uh... yeah... same thing?..."

"Well, can I get real computers instead?"

"... uh... tell you what... put... put in a work order and... I'll see if I can scrap together some parts and get Windows on them..."

"Oh, that would be great, what do I put down?"

So I gave her word for word what to put down and then made a mental note to upgrade the RAM so it could handle Windows and try to get this wonderful woman out of my hair.

Then for a bit, we talked about the tech and differences between school systems. I thought it was over and I had weathered the storm, then while I was mid-sentence, she walked over to the door and said she needed to go pick up the kids... and walked out before I could even respond.

It's at times like those that I wonder how people get there in life, or how they often seem better off than me. Perhaps it's just the chipping away of my soul that makes the other side seem so much better. Mrs. Lego went on to terrorize our instructional techs after I told her to submit a work order for them to come by and walk her through the tech.

You see, when one of them was talking to her, he passed the comment that this stuff is easy, jut plug it together, like Lego...

"But I don't have any Legos."

And that, my friends, is the story of Mrs. Lego and why I don't understand. I hope you enjoyed. I have a few other stories I hope to get down before I forget too much detail and make it hard to put in a decent story form.

Monday, March 12, 2018

Penetration Tool Testing Guide: Recon with nmap

For a while now, I have just dabbled around with some hacking tools on Kali Linux and worked a bit on various challenges on websites for learning some basic hacking. I'm still a very new beginner, but why not write a guide as I learn to enhance my learning? While I already know the basic concepts behind a lot of the stuff, in practice I fall quite short. So I will be focusing on the tools in use and hope that the concepts behind them are understood by the reader at a basic level. So let's begin.

In the world of "hacking," there is a lot of things going on. Hacking itself is a broad term, but I will be taking aim at software. Specifically more like breaking and entering on a software level. I already do some of the exploitation at work just to see what I can do, but the goal is to at the very least successfully get in, and to do that we need information. The information gathering step is crucial as it will tell us what direction we can go in and allow us to begin to contemplate our options. Within the realm of recon tools, there are a few of quite some notoriety even breaching into the spotlight of Hollywood fame. This famous tool is called nmap.

To grasp the concept of nmap, you need to have some understanding of networks and ports. We can use this tool to scan our target and find open ports, identify services, discover the operating system, and even create a network map. There is a GUI for ease of use called Zenmap, but I would suggest you understand nmap itself to unlock all the potential. Then it can be expanded upon with Zenmap. Keep in mind that with this tool, we are looking at ISO Layer 3 stuff, so mapping switches won't work without Layer 3 intervention.

So the first thing we need to do is check out the help menu for nmap. So we run nmap -h

Nmap 7.60 ( )
Usage: nmap [Scan Type(s)] [Options] {target specification}
  Can pass hostnames, IP addresses, networks, etc.
  Ex:,,; 10.0.0-255.1-254
  -iL <inputfilename>: Input from list of hosts/networks
  -iR <num hosts>: Choose random targets
  --exclude <host1[,host2][,host3],...>: Exclude hosts/networks
  --excludefile <exclude_file>: Exclude list from file
  -sL: List Scan - simply list targets to scan
  -sn: Ping Scan - disable port scan
  -Pn: Treat all hosts as online -- skip host discovery
  -PS/PA/PU/PY[portlist]: TCP SYN/ACK, UDP or SCTP discovery to given ports
  -PE/PP/PM: ICMP echo, timestamp, and netmask request discovery probes
  -PO[protocol list]: IP Protocol Ping
  -n/-R: Never do DNS resolution/Always resolve [default: sometimes]
  --dns-servers <serv1[,serv2],...>: Specify custom DNS servers
  --system-dns: Use OS's DNS resolver
  --traceroute: Trace hop path to each host
  -sS/sT/sA/sW/sM: TCP SYN/Connect()/ACK/Window/Maimon scans
  -sU: UDP Scan
  -sN/sF/sX: TCP Null, FIN, and Xmas scans
  --scanflags <flags>: Customize TCP scan flags
  -sI <zombie host[:probeport]>: Idle scan
  -sO: IP protocol scan
  -b <FTP relay host>: FTP bounce scan
  -p <port ranges>: Only scan specified ports
    Ex: -p22; -p1-65535; -p U:53,111,137,T:21-25,80,139,8080,S:9
  --exclude-ports <port ranges>: Exclude the specified ports from scanning
  -F: Fast mode - Scan fewer ports than the default scan
  -r: Scan ports consecutively - don't randomize
  --top-ports <number>: Scan <number> most common ports
  --port-ratio <ratio>: Scan ports more common than <ratio>
  -sV: Probe open ports to determine service/version info
  --version-intensity <level>: Set from 0 (light) to 9 (try all probes)
  --version-light: Limit to most likely probes (intensity 2)
  --version-all: Try every single probe (intensity 9)
  --version-trace: Show detailed version scan activity (for debugging)
  -sC: equivalent to --script=default
  --script=<Lua scripts>: <Lua scripts> is a comma separated list of
           directories, script-files or script-categories
  --script-args=<n1=v1,[n2=v2,...]>: provide arguments to scripts
  --script-args-file=filename: provide NSE script args in a file
  --script-trace: Show all data sent and received
  --script-updatedb: Update the script database.
  --script-help=<Lua scripts>: Show help about scripts.
           <Lua scripts> is a comma-separated list of script-files or
  -O: Enable OS detection
  --osscan-limit: Limit OS detection to promising targets
  --osscan-guess: Guess OS more aggressively
  Options which take <time> are in seconds, or append 'ms' (milliseconds),
  's' (seconds), 'm' (minutes), or 'h' (hours) to the value (e.g. 30m).
  -T<0-5>: Set timing template (higher is faster)
  --min-hostgroup/max-hostgroup <size>: Parallel host scan group sizes
  --min-parallelism/max-parallelism <numprobes>: Probe parallelization
  --min-rtt-timeout/max-rtt-timeout/initial-rtt-timeout <time>: Specifies
      probe round trip time.
  --max-retries <tries>: Caps number of port scan probe retransmissions.
  --host-timeout <time>: Give up on target after this long
  --scan-delay/--max-scan-delay <time>: Adjust delay between probes
  --min-rate <number>: Send packets no slower than <number> per second
  --max-rate <number>: Send packets no faster than <number> per second
  -f; --mtu <val>: fragment packets (optionally w/given MTU)
  -D <decoy1,decoy2[,ME],...>: Cloak a scan with decoys
  -S <IP_Address>: Spoof source address
  -e <iface>: Use specified interface
  -g/--source-port <portnum>: Use given port number
  --proxies <url1,[url2],...>: Relay connections through HTTP/SOCKS4 proxies
  --data <hex string>: Append a custom payload to sent packets
  --data-string <string>: Append a custom ASCII string to sent packets
  --data-length <num>: Append random data to sent packets
  --ip-options <options>: Send packets with specified ip options
  --ttl <val>: Set IP time-to-live field
  --spoof-mac <mac address/prefix/vendor name>: Spoof your MAC address
  --badsum: Send packets with a bogus TCP/UDP/SCTP checksum
  -oN/-oX/-oS/-oG <file>: Output scan in normal, XML, s|<rIpt kIddi3,
     and Grepable format, respectively, to the given filename.
  -oA <basename>: Output in the three major formats at once
  -v: Increase verbosity level (use -vv or more for greater effect)
  -d: Increase debugging level (use -dd or more for greater effect)
  --reason: Display the reason a port is in a particular state
  --open: Only show open (or possibly open) ports
  --packet-trace: Show all packets sent and received
  --iflist: Print host interfaces and routes (for debugging)
  --append-output: Append to rather than clobber specified output files
  --resume <filename>: Resume an aborted scan
  --stylesheet <path/URL>: XSL stylesheet to transform XML output to HTML
  --webxml: Reference stylesheet from Nmap.Org for more portable XML
  --no-stylesheet: Prevent associating of XSL stylesheet w/XML output
  -6: Enable IPv6 scanning
  -A: Enable OS detection, version detection, script scanning, and traceroute
  --datadir <dirname>: Specify custom Nmap data file location
  --send-eth/--send-ip: Send using raw ethernet frames or IP packets
  --privileged: Assume that the user is fully privileged
  --unprivileged: Assume the user lacks raw socket privileges
  -V: Print version number
  -h: Print this help summary page.
  nmap -v -A
  nmap -v -sn
  nmap -v -iR 10000 -Pn -p 80

Okay... so we have a lot of options. So let's try to figure this out. Starting at the top we see that you can make an input file of hosts to scan. As nice as that sounds, I'm not gonna bother with that right now. Instead, looking at the bottom, it has some examples. So I would recommend you try running it and familiarize yourself with the command's output. I'm not gonna show that because it would take up a bit of space. Give it a go on your router's IP, see what shows. My router has quite a few services and I already did a review of it.

So when we look at that first example command, we see the options -v and -A are used. The -v option is one you may use quite often, this is the verbose setting. This allows you to watch what it finds, or doesn't, as it runs and lets you know it's actually doing something while it's running. This is going to be used quite often. We also see that the -A allows os detection. This is very good to know when you are trying to break in or just simply curious what some random black box device has under the hood. One thing you may notice from the results is that some may be inconclusive or even wrong. This should be expected to occur and as we get deeper other recon tools may fill the gaps.

Let's get into some of these other options. The first thing we need to figure out are the scan types. When we are talking about types, the biggest point of note is what protocol we use and how it is handled. In a network, the two main types that you often find across the board used are TCP and UDP protocols. When scanning for UDP ports, it will take a significant amount of time. Let's look at TCP first.

We see a couple of TCP options of interest, -sS and -sT. So what is the difference? The first option, -sS, is a SYN scan. For those not familiar with TCP, there is three-way handshake that goes on to initiate the connection. The first step is SYN, responded to with SYN ACK, then the host finally responds with ACK (roughly). So we are just sending the opening and registering responses without opening the connection. It is considered to be stealthier. The -sT option is opening the full connection. Another point to note is that the -sS option requires elevated privileges to run. From a penetration perspective, the -sS is less likely to be noticed whereas the -sT option is not only more noticeable, but it take more time.

For scanning UDP, we use the -sU option. There's not much more to say on it other than it takes a long time and there is no guarantee that it gets everything. Since UDP itself doesn't need to respond to anything, it very well may ignore you.

Let's jump to some other options. Another option that can prove useful is the -p option. This allows us to scan specific ports and/or port ranges with either TCP or UDP. This can be quite useful for checking through non-standard ports outside of the range normally scanned or simply trimming down the scan time if you already have some idea of where you want to get started. The -O option gives some basic service and OS identification, but I prefer -A as it gives more information, even attempting to identify the version which can be useful for finding stuff on like CVE or such things.

Another useful option is the -Pn option, which turns off pings. The ping is used as host discovery to see if the device is up. The main reason this can prove useful is because devices can be configured to ignore pings. Somewhat inversely to this is the -sn option which is a quick way to check a whole network and see all the IP addresses of everything that will respond to pings.

The final useful option to check out for now is -T for timing. This one is a bit hard to understand, as it mentions timing templates. These templates in order of Zero to Five are paranoid, sneaky, polite, normal, aggressive, and insane. The first two are for IDS (Intrusion Detection System) evasion. Polite will use less bandwidth. Normal is the default, so it does nothing but there is nothing wrong with wanting to be explicit. Aggressive uses more resources under the epxectation your machine and network are fast enough to handle it. Insane assumes you are on a fast network and will be less accurate, but a lot faster. Another thing to note is that the first three are serialized, so they will only scan one port at a time with wait times of 5 minutes, 15 seconds, and 0.4 seconds, respectively. The options above that allow parallel scanning.

Lastly, let us take a look at the output options, as reporting is useful for many things (especially jobs). The -oA option gives us a good direction as it says it will output in the three major formats. The three major formats are normal, gerpable, and xml. Normal is just simply what your normal output looks like on the terminal. Grepable is easy to split with various programming languages and the like, however it is considered depreciated. The final format is xml, which will be the favorite to work with. Not only is XML good for programming languages to read, use, and manipulate, a lot of programs will allow importing xml because of how easy it is. The format specific options are -oN for normal, -oG for grepable, and -oX for xml.

With all of these options, we can throw together some examples.

To check DHCP: nmap -sU -p U:67

Stealthy TCP service scan and output: nmap -T2 -sS -oX router_ports

Check the whole network for up devices: nmap -sn

Standard good indepth scan: nmap -v -A -T4

Of course there are many other things you can do and this only scratches the surface, however this should help get someone off to a good start to begin some impressive network recon. The main thing to keep in mind is that the results can be misleading, deceiving,  or just plain wrong. This is why information gathering is important and many tools should be used. At the very least, this should give a start to gain some insight in devices and devise more way to gain information and later go on the attack.

Tuesday, January 30, 2018

Programming: GUI with wxHaskell

So recently I have been getting back into some programming, and I figured messing around with a GUI would make me feel a little more accomplished. So to keep things simple, I made a temperature converter because it's simple and the documentation for wxHaskell is a bit hard for me.

I'm sure my design is absolutely terrible, but it works. Feel free to complain about my design. At the very least, it shows how to use a few components. If I get some time I may create something that shows as many components as I can work out.

Sunday, January 7, 2018

Cabal install of wxHaskell CBool Error

So recently, I have been trying to dive back into programming with a little more oomph than a one-off project. I figured setting up a GUI along side would help keep me motivated. Now my current computer is an older Mac Book Pro because it is one of the few laptops in the house with a working battery. After diving around a large amount of fluff without any real substance, I decided going with wxHaskell would be the better choice. So I made sure wx was installed and did a cabal install wx, and wouldn't you know it that it failed.

src/haskell/Graphics/UI/WXCore/WxcTypes.hs:752:20: error:
    Ambiguous occurrence ‘CBool’
    It could refer to either ‘Foreign.C.CBool’,
                             imported from ‘Foreign.C’ at src/haskell/Graphics/UI/WXCore/WxcTypes.hs:126:1-16
                             (and originally defined in ‘Foreign.C.Types’)
                          or ‘Graphics.UI.WXCore.WxcTypes.CBool’,
                             defined at src/haskell/Graphics/UI/WXCore/WxcTypes.hs:750:1
752 | toCBool :: Bool -> CBool
    |                    ^^^^^

src/haskell/Graphics/UI/WXCore/WxcTypes.hs:755:22: error:
    Ambiguous occurrence ‘CBool’
    It could refer to either ‘Foreign.C.CBool’,
                             imported from ‘Foreign.C’ at src/haskell/Graphics/UI/WXCore/WxcTypes.hs:126:1-16
                             (and originally defined in ‘Foreign.C.Types’)
                          or ‘Graphics.UI.WXCore.WxcTypes.CBool’,
                             defined at src/haskell/Graphics/UI/WXCore/WxcTypes.hs:750:1
755 | withBoolResult :: IO CBool -> IO Bool
    |                      ^^^^^

src/haskell/Graphics/UI/WXCore/WxcTypes.hs:760:14: error:
    Ambiguous occurrence ‘CBool’
    It could refer to either ‘Foreign.C.CBool’,
                             imported from ‘Foreign.C’ at src/haskell/Graphics/UI/WXCore/WxcTypes.hs:126:1-16
                             (and originally defined in ‘Foreign.C.Types’)
                          or ‘Graphics.UI.WXCore.WxcTypes.CBool’,
                             defined at src/haskell/Graphics/UI/WXCore/WxcTypes.hs:750:1
760 | fromCBool :: CBool -> Bool
    |              ^^^^^

src/haskell/Graphics/UI/WXCore/WxcTypes.hs:763:55: error:
    Ambiguous occurrence ‘CBool’
    It could refer to either ‘Foreign.C.CBool’,
                             imported from ‘Foreign.C’ at src/haskell/Graphics/UI/WXCore/WxcTypes.hs:126:1-16
                             (and originally defined in ‘Foreign.C.Types’)
                          or ‘Graphics.UI.WXCore.WxcTypes.CBool’,
                             defined at src/haskell/Graphics/UI/WXCore/WxcTypes.hs:750:1
763 | foreign import ccall "intToBool" intToCBool :: Int -> CBool
    |                                                       ^^^^^

src/haskell/Graphics/UI/WXCore/WxcTypes.hs:764:48: error:
    Ambiguous occurrence ‘CBool’
    It could refer to either ‘Foreign.C.CBool’,
                             imported from ‘Foreign.C’ at src/haskell/Graphics/UI/WXCore/WxcTypes.hs:126:1-16
                             (and originally defined in ‘Foreign.C.Types’)
                          or ‘Graphics.UI.WXCore.WxcTypes.CBool’,
                             defined at src/haskell/Graphics/UI/WXCore/WxcTypes.hs:750:1
764 | foreign import ccall "boolToInt" cboolToInt :: CBool -> Int
    |                                                ^^^^^
cabal: Leaving directory '/var/folders/8_/gbh6jvpj5dng4lmty_f9bjwh0000gn/T/cabal-tmp-50540/wxcore-'
cabal: Error: some packages failed to install:
wx- depends on wx- which failed to
wxcore- failed during the building phase. The
exception was:
ExitFailure 1

So with that big mess, it was time to hunt for what to do. With any luck this will be fixed soon because I generally have very little idea of what I'm doing. So the first step was to see if there was an alternative without manual intervention. Nope. So, I downloaded the package that was having the problem.

Then we extract and open up src/haskell/Graphics/UI/WXCore/WxcTypes.hs and edit line 127 to

import Foreign.C hiding (CBool)

Save the file, open up a terminal. Navigate to the wxcore- folder and run

cabal install

After it hopefully succeeds, which it did for me, just simply

cabal install wx

I hope this helps anyone that needs and that the need doesn't last too long. I came across someone mentioning this fix on Stack overflow I think, but I can't find the link to it and don't plan to search too hard for it.

Saturday, December 30, 2017

Tech Review: Asus RT-AC3100

After finally getting fed up with my old router dropping devices, locking up, and corrupting firmware, I decided to get a new one. Working in IT, one would think I had a good idea of what to get, but I only had a list of brands in my head to avoid. So off to the Googles for lists of good routers. I came across some various Asus routers and figured I would check their site for what they have to offer. Generally my goal is to go for a newer device to avoid upgrading for as long as possible. In this case, it was a matter of I need something that also works well.

So after a same day in store pick-up, it was time to set up a brand new router. So as far as basic setup to get going, it was so simple and quick that I don't remember any of it. Seriously, it was simple with a fully guided setup. For me, that's too boring. After it was setup, it was time to fine tune and update. The control panel for this is nice, however setting IPs manually is very annoying and was hard enough to find where to do it. There is also a rather bad disconnect between what you can do with the phone app for it and what you can do on the actual control panel.

When it comes to security, it has a guided scan for that, making it easy enough to lock down the features. The one thing that annoyed me is that if you don't go through the security stuff, it has a lot of outside access enabled. I turned off all of the dydns stuff and it's actually in its own NAT anyway, so that won't work. Reason for that is I have a business class router that gives me four separate networks I could configure, but I just use one and only really have it because I use too much internet. As far as all the security options, a quick run through is:

  • Change default login
  • Strong wifi password (mine is way too long but it keeps others from learning it)
  • Wireless encryption
  • WPS disabled
  • Ping from WAN disabled (doesn't do much in my case because the WAN is a private network)
  • DMZ disabled (WAN is private, so not much of a problem either way in my case)
  • Port trigger disabled
  • Port forwarding disabled (If you lock down your device, this doesn't matter too much)
  • Anonymous login to FTP disabled (I keep FTP disabled as a whole because it's plain text, they need to add SFTP)
  • Disable anonymous login to network shares
  • Malicious website blocking enabled
  • Vulnerability protection enabled
  • Infected device prevention and blocking
These are all good things, especially when you share a network or even have kids using it. My niece was using her new laptop she got for Christmas while she was over and I noticed she clocked on an ad which took her down a string of fake search engines. I feel having a safe network both outside and in will be quite necessary in the not so distant future.

The parental controls on this seem quite simple, I have not tested to see what catches them though. I'd imagine that I'd trip off parental controls quite often. The options are to block porn, violence, gambling and illegal stuff (sounds like a good weekend to me), messengers, social media, file sharing and streaming. Basically everything that runs into either age restrictions or COPPA.

Now the QoS stuff is my favorite. It doesn't do much on a not so heavily used network, but it has all the monitoring stuff there for you to view. It's very basic in controls and I don't know how much of an impact ia will have, but games and streaming are high priorities for me, so that's the gist of my setup. There's also further information in a traffic analyzer that can give some more insight into individual device usages.

A feature I have setup and plan to use quite a bit is the samba share. I have a 2TB external that I keep for backups, but since it is NTFS that can cause some problems. Luckily, every modern device known to man now seems to support samba, so we can dance the night away with some file transfers. I have noticed that while trying to move files off of a time machine to the hard drive, it times out quite often. I think that's just a culmination of other problems and aging hardware. You can isolate file permissions, but keep in mind that the router login will have full access to everything. You can remove its access but when I tried that, everything came apart at the seems. I couldn't write to the drive.

One feature I have enables that I think will prove to be very useful is the IFTTT options. I have my phone text me when someone connects to the network. One major security hole I see though, is the Alexa support. When you can voice command your router to do things like turn on a guest network or even administration stuff, that just seems like poor design. Voice recognition is not secure, so why add it to something you are trying to keep secure?

The last feature I want to touch on is the mobile app. It works. It's not great. It makes a good monitoring tool and the family feature lets you group devices together per person to either check their usage or quickly block someone entirely from the network. You can check on things and do some basic tasks quickly. I personally want more, but I can't fault it on that. I fault it on the fact that some mobile features are not available on the control panel as far as I can find and the same goes the other way. This is the disconnect.

I could go on for quite a while point by point with features and such, but the rest are boring. So quick overview: firewall, url filtering, keyword filtering, dual wan with fallback and loadbalancing, 3g/4g through usb devices, ipv6, vpn, WTFast integration, ssh (yay!), telnet (why?!), ping, traceroute, and nslookup. There are probably other things I missed, but whatever.

So, coverage and reliability. I live in a small house that was not designed with networking in mind. This router is made for large area coverage. My signal goes all over mu .98 acres and beyond. I have no idea where the signal ends. I have not had a device drop off for the two days I've had the router, but here's the thing. There is the AC88U that is the same 3100 class router, but with an extra network card that has 4 more ports. That one has a lot fo complaints about it just suddenly not working or things dropping off. I imagine it's a bit of user error and a bit of hardware not playing nice. This is just a guess. There were fewer complaints about that on this router, and by fewer I mean enough to chalk up to purely user error, mishandling, or actual defects on those specific devices. So I'm confident that it will hold up fine.

Now for the conclusion. Yes I would recommend it to others, even the less tech-savvy. In fact, I think it was made for the less savvy with a few bones thrown for the more technical minded. I've personally never had a problem with Asus before, but I have had problems with some of the pairings with Asus. So until the router decides to go down in a blaze of glory, I'd say it's a good deal. It's not cheap, but seeing as it is the only device that will be the backbone of most people's home network, it's something you should spend a little extra on.

Now for some after stuff of my network. I got a business class router/modem thing from Xfinity that I'm not going to check what the model is because that requires getting up. I just use one port right now that goes to the router. The router goes off to a very old switch that goes to everything else in the house. I have a newer switch, but that is in the office right now because I was working on stuff but then the RAM died and I'm too cheap and lazy to replace it right now. One of the ethernet cords goes to the entertainment center, which has an old time machine acting as a switch because reasons. I need a couple of new switches, but I'm too cheap to mess with what seems to work for now. The old switch is an HP procurve 8 port managed piece of junk and the newer one in the office is an unmanaged Cisco 8 port. I got the managed one to mess around with vlans, but I don't have anything that has a reason for that, so that's just me taking ideas from work home with me for no reason other than it's fun. Eventually I will do everything all proper, but for now it works.

Tag Cloud

.NET (1) A+ (1) addon (6) Android (3) anonymous functions (5) application (9) arduino (1) artificial intelligence (2) bash (3) c (7) camera (1) certifications (2) cobol (1) comptia (3) computing (2) css (2) customize (15) encryption (2) error (16) exploit (14) ftp (3) funny (1) gadget (2) games (2) Gtk (1) GUI (5) hardware (6) haskell (15) help (6) HTML (4) irc (2) java (5) javascript (20) Linux (19) Mac (4) malware (1) math (8) network (7) objects (2) OCaml (1) perl (4) php (8) plugin (6) programming (42) python (24) radio (1) regex (3) security (22) sound (1) speakers (1) ssh (2) story (1) Techs from the Crypt (1) telnet (2) tools (12) troubleshooting (2) Ubuntu (4) Unix (4) virtualization (1) web design (14) Windows (7) wx (2)