Date: Sun, 27 Dec 1998 00:32:34 -0500 From: //Stany To: BUGTRAQ@netspace.org Subject: Breeze Network Server remote reboot and other bogosity. Good day. I am Ortodox Christian, so my Christmas is on Jan 7th, but in the spirit of giving, I would like to submit the following rant. It is rather lengthy, but IMHO is worth it. If Aleph1 feels that it is too lengthy, feel free to snip the parts that are boring ;-) A Breeze Network Server is a NetBSD 1.3.2 based system produced by WindDance Networks Corporation (http://www.winddancenet.com/products/breeze.html). It is marketed as an email, fax, printer, internet/intranet web server and a firewall. Physically it is an AMD K6/300 AFR system with 64 megs of RAM and 6 Gig IDE hard drive. It includes a LS120 disk drive as the primary floppy drive, and according to the documentation that drive is used for distributing updates to the system. The cost seems to be $3300 US. The system is marketed to be easy in use ("so even the secretary would not have any problems to set up Breeze in 15 minutes") and upon receiving it one has to connect up a keyboard and a monitor to it, power it on, answer a few configuration questions (What is my ip? What is my gateway? What is my subnet?) and then one should be able to access it with a web browser and be able to modify all sorts of things - add users, back up the system, set up filesharing etc. Following that, the keyboard and a screen are no longer needed. I have to admit that this was the first time I ever used NetBSD, but it is close enough to Solaris/SunOS that I manage ;-) However I might misinterpret important parts of NetBSD behavior, and if so, please correct me. After all, maybe this is the way the system is designed to behave, and not the bastardization of WindDance Networks (Ugh. I don't think so). After this system have appeared in our office (I worked for PSInet Canada and we were asked to evaluate if we would want to sell this to some of our customers), it have perked my curiosity, and one night I booted it into single user mode. It have provided me with a root shell, so I have remounted / read-write and looked around. gcc was installed. This seems to be a first mistake - one doesn't install a compiler on a production system, especially on a secure one, as it makes it so much easier to compile a sniffer and cause more harm. I have compiled ssh, installed it, and fixed my UID/GID to be zeros while I was at it ;-) (BTW I realize that it seem to be a simple one line change to disallow a system to provide an unpassworded root shell upon being booted into a single user mode). First thing I noticed once the system was running in multiuser mode was that apache was runing as root. IMHO this is another major problem, as apache should only need root to bind to socket. I decided to adjust the apache configuration files to use nobody as the default user, and once I have done that, I noticed that I could no longer even see the default starting page ("You have no permissions to access...."). I have decided to take a cursory look at the cgi-bin scripts that the system was using. The scripts were not using any range checking nor sanity checks what so ever. A particular script have attracted my attention: root@wdbreeze:/usr/local/breeze/cgi-bin[24]# tail -3 configbreeze &rebootnow; exit 0; root@wdbreeze:/usr/local/breeze/cgi-bin[25]# Ugh. Is that not beautiful? That's right, *anyone* accessing http://BreezenetworkserverIP/start/configbreeze is greeted with "Internal Server Error" message, while the system reboots itself. It is interesting how the reboot is done as well: the script creates a file /tmp/reboot.now, and writes "Rest in Peace\n" into it. A daemon /usr/local/breeze/bin/rebootwrapper checks (a cursory strings on rebootwrapper shows that the daemon is also checking for /tmp/halt.now). if that file exists, the contents of the file are checked against an internal lookup table, and then the system reboots itself through calling /sbin/reboot I have done a few tests and another beautiful peecularity of the system came to light as well: if one creates an empty /tmp/reboot.now: root@wdbreeze:/[1]# cd /tmp root@wdbreeze:/tmp[2]# touch reboot.now the system doesn't reboot. No, it just locks up, and closes all network ports, which is deadly for a system that should be a primary network gateway/firewall for a small business. The behavior is very similar to halting the system, but the screen doesn't show the typical shutdown notices, and the last shows that the system was rebooted and not crashed. Oh, and the hard drive gets fscked on startup ;-) So if I am a malicious script kiddie, who have managed to obtain any sort of login on the system, all I have to do is set up a simple cron job to touch /tmp/reboot.now every five or so minutes, and I am laughing. It will take a good long while for someone to think about checking crontab on a system that all of a sudden started malfunctioning. With the amount of ports running on that system some exploit is bound to appear at some point that will allow me to get a remote login, or just add another line to root crontab. So here is the question for the list: What is the best way to make secure web interfaces to system functions like adding and deleting users or restarting systems? I realize that the best solution would be to ship the system with ssh and allow a quilified administrator to log into the system (As I believe Corel allowes on their NetWinder Webserver or NetWinder Group Server to log in into a shell and have control over the system. ) or ship the system with something like VNC that would allow an experienced user to connect to the X server and run software similar to RedHat Control Panel for system management, but once again there is an expense in training the user to be Unix "savvy". In fact the question might well be is there a way to minimize a learning curve for the users/administrators with Windoze/MacOS experience (It seems to be the environment that both Corel with their NetWinder product and WindDance Networks with their Breeze product are aiming at) for maintaining/managing the UNIX based system without compromizing security? //Stany, Sun Hardware Specialist, stany@notbsd.org P.S. I have telephoned Mike Pelley, Software Designer of WindDance Networks about 2 weeks ago about the problems with their product, and was promised a swift update, but so far have not been contacted and to the best of my knoweledge the software update was not shipped to us. I have cc:ed Mike to this message as well, and hope that someone at WindDance will get somehting done about the above.