The Hamburglar
Setup
There are 2 versions of hamburglar, full and lite. The main branch is the full version, and hamburglar lite is on a separate branch.
Hamburglar
Full fledged scraping tool for artifact retrieval from multiple sources. There are some dependencies, so install them first:
pip3 install -r requirements.txt
Hamburglar also has the option of checking against file signatures during a hexdump. It will get skipped if not set up. To get it working, you will need to first create the database and a user:
CREATE DATABASE
CREATE USER 'hamman'@'localhost' IDENTIFIED BY 'deadbeef';
GRANT ALL PRIVILEGES ON fileSign.signatures TO 'hamman'@'localhost';
Then, run magic_sig_scraper. This can be run on a cronjob to regularly update it, or just run it once:
python3 magic_sig_scraper.py
Hamburglar Lite
Multithreaded and recursive directory scraping script. Stores useful information with the filepath and finding. Hamburglar lite will never require external packages, and will always remain as a single script. Setup is as simple as requesting the file and using it:
wget https://raw.githubusercontent.com/needmorecowbell/Hamburglar/hamburglar-lite/hamburglar-lite.py
This is designed to be quickly downloaded and executed on a machine.
Operation
usage: hamburglar.py [-h] [-g] [-x] [-v] [-w] [-i] [-o FILE] [-y YARA] path
positional arguments:
path path to directory, url, or file, depending on flag
used
optional arguments:
-h, --help show this help message and exit
-g, --git sets hamburglar into git mode
-x, --hexdump give hexdump of file
-v, --verbose increase output verbosity
-w, --web sets Hamburgler to web request mode, enter url as path
-i, --ioc uses iocextract to parse contents
-o FILE, --out FILE write results to FILE
-y YARA, --yara YARA use yara ruleset for checking
Directory Traversal
python3 hamburglar.py ~/Directory/- This will recursively scan for files in the given directory, then analyzes each file for a variety of findings using regex filters
Single File Analysis
python3 hamburglar.py ~/Directory/file.txt- This will recursively scan for files in the given directory, then analyzes each file for a variety of findings using regex filters
YARA Rule Based Analysis
python3 hamburglar.py -y rules/ ~/Directory- This will compile the yara rule files in the rules directory and then check them against every item in Directory.
Git Scraping Mode
python3 hamburglar.py -g https://www.github.com/needmorecowbell/Hamburglar- Adding
-y <rulepath>will allow the repo to be scraped using yara rules
- Adding
Web Request Mode
python3 hamburglar.py -w https://google.com- Adding a
-wto hamburgler.py tells the script to handle the path as a url. - Currently this does not spider the page, it just analyzes the requested html content
- Adding a
IOC Extraction
python3 hamburglar.py -w -i https://pastebin.com/SYisR95m- Adding a
-iwill use iocextract to extract any ioc's from the requested url
- Adding a
Hex Dump Mode
python3 hamburglar.py -x ~/file-to-dump- This just does a hex dump and nothing more right now -- could be piped into a file
- This will eventually be used for binary analysis
Tips
- Adding
-vwill set the script into verbose mode, and-hwill show details of available arguments - Adding
-o FILENAMEwill set the results filename, this is especially useful in scripting situations where you might want multiple results tables (ie github repo spidering)
Settings
whitelistOn: turns on or off whitelist checkingmaxWorkers: number of worker threads to run concurrently when reading file stackwhitelist: list of files or directories to exclusively scan for (if whitelistOn=True)blacklist: list of files, extensions, or directories to block in scanregexList: dictionary of regex filters with filter type as the key
The Hamburglar can find
- ipv4 addresses (public and local)
- emails
- private keys
- urls
- ioc's (using iocextract)
- cryptocurrency addresses
- anything you can imagine using regex filters and yara rules
Example output:
{
"/home/adam/Dev/test/email.txt": {
"emails": "{'testingtesting@gmail.com'}"
},
"/home/adam/Dev/test/email2.txt": {
"emails": "{'loall@gmail.com'}"
},
"/home/adam/Dev/test/ips.txt": {
"ipv4": "{'10.0.11.2', '192.168.1.1'}"
},
"/home/adam/Dev/test/test2/email.txt": {
"emails": "{'ntested4@gmail.com', 'ntested@gmail.com'}"
},
"/home/adam/Dev/test/test2/ips.txt": {
"ipv4": "{'10.0.11.2', '192.168.1.1'}"
},
"/home/adam/Dev/test/test2/links.txt": {
"site": "{'http://login.web.com'}"
}
}
Contributions
-
Please contribute! If there's an error let me know -- even better if you can fix it :)
-
A big thank you to anyone who has helped:
- adi928
- jaeger-2601
- tijko
- joanbono and Xumeiquer for the rules from yara-forensics
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file hamburglar-1.0.1.tar.gz.
File metadata
- Download URL: hamburglar-1.0.1.tar.gz
- Upload date:
- Size: 28.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/3.0.0 pkginfo/1.5.0.1 requests/2.22.0 setuptools/41.6.0 requests-toolbelt/0.9.1 tqdm/4.38.0 CPython/3.7.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd459e99dcb6ecf7feb7cc430005775036606ff51908930189a8ca3ca1afa6da
|
|
| MD5 |
1e9bddb93549b8227b66a2c1a52a39d9
|
|
| BLAKE2b-256 |
db8efeaf899a58e1fc36aec89771ba3d55cd0364e64788f3b21a4a1a30af3121
|