Retrocomputing: Altairduino

I picked up this Altairduino unit back in 2017 or 2018 I think. The original came with a narrow bamboo case, and I ran into fitment issues and took a break from the project, although I had gotten the electronics portion working. At its core, the project uses an Arduino Due, and simulates the loading of 8″ floppies from files on a micro SD card.

Recently, a blue and white case was made available to simulate the original Altair 8800 case. It’s a bit deeper as well, and comes with an expansion board with a hardware terminal emulator, external serial port, VGA, PS2 keyboard socket, etc. I finally got around to put my Altairduino into a box.

Now I’m struggling with the serial port functionality and/or the SD card reader. But even without those, I can play kill-the-bit and pong with the switches and LEDs on the front panel.

And in other website change news…

Tonight I added Facebook and Twitter login via OAUTH. Facebook seems to work just fine, Twitter seems a bit weird but I’ll check it some more later. The idea is to give you folks the capability of logging in here without having to create and maintain a separate user ID. You are still welcome to do it that way, I’m just creating options.

I will work on event registration next.

Nobody has commented on the front page changes, so either:

  1. Nobody goes to the front page, they just link here directly;
  2. Nobody comes to the website at ALL;
  3. Nobody can figure out how to get past it; or
  4. Nobody gives a shit.

I’ll take any answer. As a part-time nihilist, none of this truly matters.

For tonight, I’m going back to looking at Arduino Due pinouts. I’m trying to diagnose a serial port issue.

Thanks, Meetup!

So, if you were following our Meetup page, you’ll notice that WeWork/Meetup announced some upcoming changes that I, as an organizer, was not comfortable with.

They decided that, beginning in November, they would reduce organizer fees. Great. All in favor. But at the same time, they would start charging attendees $2 per RSVP. Yeah. No.

I would be okay with $1 per RSVP, -if- and -only- if, that money were split between Meetup and the organizer somehow. But it’s not, and I feel pretty strongly that they will either reverse this decision, or face the demise of their platform.

It’s easy for me. I’m a small organizer. It’s EASY for me to get off their platform. I don’t have to rely on them. I really feel for some of the organizers of larger events. Especially those who charge for attendance — this new schema, at this time, doesn’t seem to offer the capability to upcharge.

But again, it’s not about the money — for me, anyway. It’s that I resent a sudden inconvenience on my user base that benefits me in almost no way.

So from this point on, please feel free to follow this website and/or Twitter (@dc540baab) for updates. How this is likely to flesh out is that I continue to announce the events on Meetup, but no longer allow RSVPs through that platform, instead driving them here, where I will add a registration form of some sort.

Forgotten admin password CTFd

So dumbass me, who only messes with CTFd in the week or so leading up to the monthly meeting, of course forgot the username and password for my administrator account on my CTFd server. [This is the server that keeps track of scores for people who have solved exploit challenges].

Of course the damn thing is in a Docker container, and everyone knows I’m a Docker n00b. But I’m determined, so I forge ahead.

I get into the docker container…

docker exec -it /bin/sh

I know it’s not running a database server, so I start poking around in the CTFd directory, and find ctfd.db, a sqlite database file. Jackpot.

I copy the file out of the docker container, because the sqlite command-line tools are not installed:

# docker cp (docker id):/opt/CTFd/CTFd/ctfd.db /tmp

At that point I just opened SQLite to it…

sqlite3 /tmp/ctfd.db

Let’s see what the schema looks like.

.schema

OK, so there’s a users table, but no admins table. Let’s look at users:

select * from users;

OK, there’s my admin account, now I know what the username was, it was one of the three I thought it would be. And there’s a column called “type” which seems to be either “user” or “admin” … The password column is encrypted, so that doesn’t help me.

So I register a new user in the web UI, give it a password, then go back to check my users table. Sure enough, there’s now an admin and a user. Let’s fix that.

update users set type=’admin’;

This would have been more finetuned had more users existed, but in my case there were no regular users but the one I created.

Back to the web UI, login as my new user, and sure enough, I have full admin rights. I don’t know what I was thinking or what I was drinking when I set that up the first time, but tragedy has been averted yet again.

And yes, I could have just rebuilt it, but all the flags for the vulnerable VMs are stored in it.

One week away…

The September meetup is a week away. I know this is a long shot, but if anyone has working configs for ANYTHING involving a BladeRF X40 and 3G/4G, please bring it.

The lab did NOT burn down yesterday.

Anyone want to give a hashcat tutorial?

Happy Monday!

Pic unrelated.

Sponsor DC540

If you’d like to help defray some of the expenses involved in running this group, please feel free to contribute to the GoFundMe for the CTF server, or contact [email protected] if you’d like to donate in some other way. I’d like to keep the meetings free and open for as long as possible, because so far, I like the people that attracts to the group.

Eleven days until the September meeting…

I’m ready, are you? If you’re joining us in the group Hackerbox build, have you ordered one?

Still haven’t heard from anyone wanting to present, teach or learn something, so it’s likely to be the same chaotic meeting as usual, with the added lubrication of festive beverages.

The space is just about ready, and my back hurts from all the rearranging. No photos, I don’t want to spoil the surprise.

The PCBs for the MultiPass badges should be here early next week. Some will be available for purchase if you’re interested.

Reminders:

  • This meeting is in my house. My house, my rules. Rule #1 is don’t be a dick. Respect the other attendees, respect the space, respect the equipment. I’d like everyone to feel safe, comfortable and welcomed. Make this great and the space will stay available. Make it suck, and we’ll be back at the library.
  • Festive beverages are a thing here, but don’t be stupid about it, especially if you are driving. I’m not planning to serve food, but we could certainly go in on some delivery if folks get hungry. I will have some festive bevs on hand, but please feel free to BYOB.
  • Please RSVP on the meetup page so that attendance can be planned/capped.
  • Activities available: soldering station, including SMD tools; lock picking station; CTF server; fix my Mr. Robot badge;
  • While there’s no “official time” for the meeting (there’s no “official meeting” and no “official business” to be conducted), the space will be open from 6pm until dispersal or midnight, whichever happens first. Signage will direct you where to go. Everything you need to know is on the Meetup page.

Success!

I emailed Waveshare indicating my problem getting anything to display on the 2.13in epaper. They were VERY quick to get back to me, and suggested I try running the tests for another size, the 1.54in model, just to see what it did.

Turns out, that worked. So I started looking closer…

drwxr-xr-x 2 root root 4096 Sep 10 00:11 .
drwxr-xr-x 5 root root 4096 Sep 10 00:11 ..
-rw-r–r– 1 root root 2801 Sep 10 00:11 epd_1in54b_test.py
-rw-r–r– 1 root root 2657 Sep 10 00:11 epd_1in54c_test.py
-rw-r–r– 1 root root 2976 Sep 10 00:11 epd_1in54_test.py
-rw-r–r– 1 root root 2969 Sep 10 00:11 epd_1in54_V2_test.py
-rw-r–r– 1 root root 3756 Sep 10 00:11 epd_2in13bc_test.py
-rw-r–r– 1 root root 3020 Sep 10 00:11 epd_2in13d_test.py
-rw-r–r– 1 root root 3026 Sep 10 00:11 epd_2in13_test.py
-rw-r–r– 1 root root 3097 Sep 10 00:11 epd_2in13_V2_test.py
-rw-r–r– 1 root root 4006 Sep 10 00:11 epd_2in7b_test.py
-rw-r–r– 1 root root 3017 Sep 10 00:11 epd_2in7_test.py
-rw-r–r– 1 root root 3851 Sep 10 00:11 epd_2in9bc_test.py
-rw-r–r– 1 root root 3760 Sep 10 00:11 epd_2in9d_test.py
-rw-r–r– 1 root root 3822 Sep 10 00:11 epd_2in9_test.py
-rw-r–r– 1 root root 3981 Sep 10 00:11 epd_4in2bc_test.py
-rw-r–r– 1 root root 3147 Sep 10 00:11 epd_4in2_test.py
-rw-r–r– 1 root root 3859 Sep 10 00:11 epd_5in83bc_test.py
-rw-r–r– 1 root root 3154 Sep 10 00:11 epd_5in83_test.py
-rw-r–r– 1 root root 3981 Sep 10 00:11 epd_7in5bc_test.py
-rw-r–r– 1 root root 3147 Sep 10 00:11 epd_7in5_test.py

I had been using epd_2.3_test and the epd_2.3_V2 test, neither of which worked. After seeing it function properly on a couple of the 1in54 tests, I went through them all systematically. Turns out both epd_2in13bc_test and epd_2in13d_test work.

So I generated some red and black bitmaps, and using the example code as a template, pulled them in and displayed them.

What I love about epaper is that it doesn’t require power to display, only to change the display.

Now I’m looking at a 1500mah RPiZeroW-sized LiPo. I have other battery banks, but I like the idea of a low profile unit that can fit in a small pocket and maybe even be enclosed with the assembly. I was looking at this one…

https://www.amazon.com/gp/product/B07Q2C6B5H?pf_rd_p=183f5289-9dc0-416f-942e-e8f213ef368b&pf_rd_r=8CNZ36Q9MAZKK3C3J5T4