Sysadmins are often pressured by pushy and arrogant users trying to break out of the boundaries of established policies. This is a story of an IT admin who got even.
In any reasonably large company, local administrative rights are something often sought and rarely given. The sysadmins who investigate the attempts to illicitly obtain these rights are part of an elite team known as information security officers.
This is not one of their stories. Insert Law & Order sound here
“I need local admin access. I want to be able install software on my computer. This needs to happen today.”
“For you? You wish. Not going to happen,” I thought, sipping at my coffee and adjusting my terrycloth robe while I looked at the ticket. I typed back a form response, stating that we don’t give out local admin access to users without management’s written approval for security reasons, and clicked Send & Close in ConnectWise.
My bosses, in their benevolence, had decided that it was easier for me to work remotely in the mornings than to fight Austin traffic and come in homicidally angry. It also didn’t hurt that I have multiple floofs (cats, in this case) to curl up on my lap while I worked, and I could literally roll out of bed, get my coffee from Mr. Coffee in the kitchen, feed the cats, and trudge back to my workstation in about 5 minutes, all the while waking myself up to be a productive senior systems administrator.
A few minutes later, my inbox dinged with a reply to the ticket.
“I don’t care. Either give me local admin rights or I will involve senior management.”
I raised an eyebrow and started typing my response.
“Unfortunately, due to standard operating procedures and security requirements, you will not be granted local administrator privileges. Your system and software are specifically configured for your position, and granting local administrative rights can allow the software and OS to deviate from the mandatory configurations. Again, we cannot – and will not – grant local administrative privileges without management signing off on it in writing.”
Another Send & Close later, and I started working on a few group policies to automatically map drives based on group membership. I didn’t hear from the user for the rest of the day, so I figured the matter was closed.
I rolled over, fell out of bed, and trudged into my office after grabbing a mug full of Jet Fuel, brewed strong. Outlook was already open, and I looked at the tickets that had come in overnight, then the Nagios alerts, and finally, the GFI and CompuTrace notifications.
I looked at the CompuTrace alerts – a user OTHER than that user’s domain account had logged into his PC that night, and sure enough, it was Administrator (the local one, mind you, not the Domain Admin account). I pulled up a remote background command prompt through GFI (fun fact: GFI’s dashboard can let you do that – remote background command prompts, service control, and even process control via a handy-dandy web interface):
net localgroup “Administrators”
LocalAdmin Administrator $DOMAIN\NAUGHTY_USER
$DOMAIN\Domain Admins $Domain\Enterprise Admins
“Oh, now that’s just not cricket,” I muttered, and typed in some commands (changing the local admin passwords, disabling the local admin accounts, and removing $NAUGHTY_USER from the local admins group – then force-rebooting in 30 seconds).
Thirty seconds later, the computer dropped offline, and the user’s admin rights were removed. I dashed off a quick message to the client’s HR department, notifying them of what happened, and told them that I’d be checking up on his machine daily for the next few weeks. I also flipped on reporting on their web proxy for his account, just for paranoia’s sake.
Outlook dinged again, and sure enough…
“I need to have local admin access. Management has approved my request and will be sending in a ticket to grant this. I need this IMMEDIATELY, as I cannot work without this.”
“When we receive a ticket from the appropriate managers that states you have been granted administrative privileges, we will enable them for you. Per SOP, however, until that approval is in writing in our hands, we cannot and will not grant you those privileges.”
One more mouse-click, and it went off into the ether. Another message came in a few minutes later.
“I expect to have administrative privileges within the hour. If this does not happen, management will be speaking with your supervisors in regards to your continued employment at $FIRM_NAME.”
“Again, you are asking us to break explicitly stated standard operating policy, which we have written instructions not to deviate from under any circumstances, to grant you administrative rights. Unfortunately, unless and until we hear from the appropriate management personnel stating that you are allowed such privileges, we will not, under any circumstances, grant them to you. Further requests from you for administrative rights will be rejected unless they are directly sent from the appropriate management personnel. This ticket is now closed.”
“You can go now,” I snarked, thinking back to the tale of Jack, the worst intern, and BCC-ing his HR department on the e-mail chain.
Two cups of Jet Fuel woke me up, and a small tuxedo cat nibbling on the back of my head from my swivel chair’s headrest kept me giggling as I logged into my office box remotely and took a look at the day’s alerts.
Sure enough, there was a CompuTrace alert about the same user’s machine logging in as Administrator again. The same commands were executed, his admin rights were removed, and I wrote up a GPO explicitly defining which accounts could be local admins, then applied it to his machine and a bunch of others.
I then immediately restarted his machine with shutdown -r -t 0 -f, because he lost the right to save his morning’s work when he decided that he was going to be that much of a pain. Another e-mail went to his HR department, and another cup of Jet Fuel went down my gullet.
“YOUR UPPITY NETWORK ADMIN RESTARTED MY COMPUTER WHILE I WAS WORKING! THIS IS COMPLETELY UNACCEPTABLE BEHAVIOR AND IT WILL BE STOPPED NOW!”
My eye twitched, and the crappy Dell multimedia keyboard I had started bending dangerously under the angry typing I pounded out.
“We have restarted your machine to address security concerns – namely, a disallowed local privilege escalation. We apologize for any inconvenience this may have caused you.”
His HR rep was again BCC’d, and five minutes later, I was on the phone with her.
“Look, this is the second time he’s done it. He KNOWS he can’t have local admin rights.”
Her sigh was audible. “I know he can’t have them. Look… he’s kind of the office bell-end. We all want him fired, we’re building a case as is, but we need more ammo. Is there any chance you can let him dig his own grave? If he’s done it twice already, you and I both know he’ll do it again.”
I grinned a grin not unlike Al Pacino’s in “The Devil’s Advocate” and chuckled. Sure enough, her gulp could be heard over the VOIP link. “Oh, dear, however did you know what I was planning? If he’s even remotely smart, he’ll back off now. Of course, given his role over there, I’m betting that he doesn’t.”
More coffee, more tickets, and more alerts.
CompuTrace again signaled that he’d logged in as a local account over the weekend, except this one was different – he’d made a local admin account with his username. I shrugged, then did a double-take – how could he do that, when a GPO explicitly prevented every account but ours from being local admin?
The answer was easy – he’d used Hiren’s or another boot environment to remove the local admin password, the same as he’d done the other days – then booted the system up, logged in, and UNJOINED THE PC FROM THE DOMAIN! That, of course, nulled all group policy objects and let him do whatever he wanted.
“Oh, he’s for the high jump now,” I said to the HR rep, and she confirmed it – Legal was listening in on the call, and stated that they were going to meet with him the next day, and to leave his machine as it was, so they could catch him red-handed.
“I think I can also do you one better,” I continued, exporting his web logs to HTML and sending them over. “Facebook, Reddit, Twitter, and GMail, all of which are prohibited by name in the employee agreement. Think we can have some fun with this one?”
“Normally, I’d say no, as we need to treat this as a hostile termination – but since it’s going to take us a bit of time to get the paperwork done today, we can’t fire him until tomorrow.”
“Tell you what… any chance I can be there when this happens?” My mind was racing, and I had a BRILLIANT idea. “Make it known that I’ll be there tomorrow in the Colorado River conference room around 10 AM. I have a hunch he’ll show up – really, I plan on making it happen, so be close by but out of sight, okay?”
With their approval, I spent an hour or so ironing out my cunning plan and getting everything together.
I couldn’t resist – I pulled a slim-cut grey suit out of my closet that made me look like Sterling Archer, and after feeding the floofs and driving to the client’s office, I made myself comfortable in the conference room. The HR rep and her friend from Legal were slumming it a few cubicles down, and the trap was ready to be sprung.
Standard policy for me is that I keep certain MSI files slipstreamed into my install images – one of which is my company’s generic LogMeIn installer, WITHOUT the characteristic system tray icon. Sure, $NAUGHTY_USER had uninstalled the copy I had on there as is, but he’d missed the GFI management agent (which, rather conveniently, I’d hidden from the list in Programs & Features – it’s a simple registry hack, nothing special). I fired up GFI’s agent (fun fact: it runs as SYSTEM, and you can actually remote-BSOD machines with it), silently installed LogMeIn via msiexec /i /qn /norestart, and made a quick call to the HR rep.
She, in turn, made a call to his manager, asking the manager to pull $NAUGHTY_USER into a meeting and not let him go back until he got a text instructing him to, and as soon as $NAUGHTY_USER left his office – with the machine locked, I noted (didn’t care) – I reset one of the local admin passwords via the remote background prompt, logged in via LogMeIn, and unleashed a rather destructive toy that I’d gotten my hands on – the MEMZ trojan (seriously, I’m not kidding, that’s what it’s called – and if you open that link, be warned, there’s NSFW language in the video).
I logged off as the local admin account, then uninstalled LogMeIn, and logged into the domain controller and Exchange cluster to lock his accounts and – if instructed – remote-wipe his personal phone (this is why BYOD is a ridiculously bad idea). Sure enough, the machine bluescreened, just like MEMZ is supposed to do (if I’d left it logged in, it would have had all kinds of fun effects, but in all honesty, I wanted the best effect of them all and that one only).
On my signal, the HR rep texted the manager, who let $NAUGHTY_USER return to his office… to a machine with a BSOD on it. He rebooted, and the final payload showed up on his laptop’s screen – a bootloader that was replaced with Nyancat (kid you not, that’s the last payload of MEMZ). A few seconds after Nyancat’s music started playing, I heard furious stomping coming down the hallway towards the conference room (along with the Nyancat music).
“FIX THIS, NOW!” he yelled, thrusting the laptop towards me, Nyancat’s disgustingly beetus-inducing PopTart body bouncing on the screen. “I know you did this. You’ve been stopping me from getting my work done for the past week! Now either you fix this, or you’re not going to be working for our company after today!”
“Actually,” the HR rep said, entering the room with her friend from Legal, “that’s my line. We need to have a discussion about your continued employment here – namely, its continuance. Jack, would you mind?”
I stood up, closed my laptop, slipped it back into the case, and pulled out a sheaf of papers. “And here’s his web logs. I didn’t man-in-the-middle the SSL, though I should have, I suppose. Oh, well, that’s moot.”
Turning to leave, I looked at $NAUGHTY_USER, and through his rage, I saw just a hint of fear. I’d worked for about ten minutes on a little speech, and it would have been a shame to waste it, so after a quick glance at the HR rep, and a nod from her, I said my piece (admittedly with a halfway decent imitation of a certain actor’s voice).
“You know, for you, one of the worst days of your life will probably be the day that an ‘uppity network admin,’ as you so charmingly put it, got you fired, in utter disgrace, from your cushy six-figure job where you played games and sat on Facebook, Reddit, and Twitter all day.”
I leaned against the wall, hand on chin, and delivered the last part with a smirk.
“But for me? It was Tuesday.”
I waved goodbye to the HR admin and the Legal droid, and validated my parking on the way out.
Original story, republished with permission from Reddit user tuxedo_jack