IntraSrv - Simple Web Server

intrasrv.exe (stored in - 30,310) Console Application (Win/NT/2000/XP/V as is - see note below for Win/9x/ME/NT) 2007/06/03
This is a small web server that you can run to allow a directory and all its subdirectories to be accessible via a web browser. You will only want to do this on a local network (LAN) that is protected by a hardware firewall (such as a Linksys or D-Link Firewall Router). This little web server was built from the Visual C - wsrv at Web Programming with Sockets.

The advantage of this web server approach is that you can keep your disk drives as not shared, yet open read only access to a directory tree. This program also defaults to a directory listing rather than index.html if no file is given, which makes it easy to browse for the desired file(s) to download. The default directory is \shared on the same drive as intrasrv.exe, but you can use the -r command line flag to point to another directory (and its subdirectories). You can even use the -p flag to listen at a different port and the -v flag to watch what's being requested. You can make access more secure by using -u to set a user name and -P to set a password - the usual browser login dialog will be presented upon first access by a browser.

intrasrv will generate a "CMD" button next to the header's directory path for directory listing pages if the request comes from the same computer that intrasrv is running on. Clicking this button will open a Command Prompt (aka Dos Box) logged to the directory you are viewing.

By default, intrasrv restricts access to your local subnet (computers whose IP address numbers match the 1st 3 sets of numbers for your computer). You can use the -R command line flag to tighten this restriction (-R 4) to allow only your own computer or to loosen this restriction to allow more IP addresses:

If someone outside the allowed IP addresses attempts to access intrasrv, they receive a password dialog - but there is no valid username and password that will let them in.

intrasrv can be configured to act like a normal web server by using the -i command line flag. When -i is given, and an incoming URL is for a directory rather than a file, a directory listing is returned only if the directory contains a file (or directory) named .htaccess; otherwise index.html is returned (or a 403 Forbidden error if there is no index.html in the directory).

Older Windows systems (at least Win95/98) have an incomplete "Services" file. Look for it in C:\Windows\ or one of its subdirectories. In NT4 Services resides in "...\drivers\etc". What is missing is an entry for http; therefore, using Notepad, after the entry for finger add a line with "http 80/tcp" - intrasrv.exe relies on this entry.

finger     79/tcp

kerberos   88/tcp
finger     79/tcp
http       80/tcp
kerberos   88/tcp

intrasrv will also work with a SSL Wrapper like stunnel to provide https support. There is nothing to do to configure intrasrv itself; you can configure stunnel as follows:

Note that ports 80 and 443 are the standard HTTP and HTTPS ports; you can easily modify the stunnel configuration file to point to less well know ports such as

Then start intrasrv like and point your browser at If you are ignoring the advice in the first paragraph and opening a hole in your firewall, it is strongly recommended that you not use the standard ports! Of course, intrasrv doesn't have much security builtin, so opening your firewall to intrasrv is not recommended - there is even an SEH Based Remote Code Execution flaw that is documented. Also note that you will need to set the -R 0 command line flag to open intrasrv to accepting requests from all IP addresses (all computers); the default -R 3 value restricts accepted requests to just your subnet.

wgetall.exe (stored in - 22,191) Console Application 2007/09/29
This program will download a file via HTTP, save it in the current directory, then download all the files pointed to by downloaded file. It is primarily intended to use with IntraSrv to grab all the files pointed to by a page IntraSrv is displaying. But it can also be used to grab all the files pointed to by any HTML page on the internet (currently there is no support for cgi, php, asp, etc. pages).

It works by downloading the initial file, saving it, and then parsing that file and downloading each href string by calling itself with the -1 flag. All files are stored in the same directory from which wgetall was run.

Documented SEH Based Remote Code Execution flaw in intrasrv
Back to Leigh's Shareware
Back to Leigh's Home Page Site Map                   Site Search 

Permalink [] Hosted by
Leigh Brasington / / Revised 24 Jan 14