refactor: dedup ip removal function
This commit is contained in:
		
							parent
							
								
									f1c763225c
								
							
						
					
					
						commit
						695138c1e2
					
				
							
								
								
									
										71
									
								
								script.sh
								
								
								
								
							
							
						
						
									
										71
									
								
								script.sh
								
								
								
								
							| 
						 | 
				
			
			@ -12,7 +12,7 @@ curl -L "https://urlhaus.abuse.ch/downloads/csv/" -o "urlhaus.zip"
 | 
			
		|||
curl -L "https://s3-us-west-1.amazonaws.com/umbrella-static/top-1m.csv.zip" -o "top-1m-umbrella.zip"
 | 
			
		||||
curl -L "https://tranco-list.eu/top-1m.csv.zip" -o "top-1m-tranco.zip"
 | 
			
		||||
 | 
			
		||||
cp "../src/exclude.txt" "."
 | 
			
		||||
cp -f "../src/exclude.txt" "."
 | 
			
		||||
 | 
			
		||||
## Prepare URLhaus.csv
 | 
			
		||||
unzip -p "urlhaus.zip" | \
 | 
			
		||||
| 
						 | 
				
			
			@ -94,10 +94,13 @@ grep -Fx -f "top-1m-well-known.txt" > "urlhaus-top-domains.txt"
 | 
			
		|||
 | 
			
		||||
## Parse domains from URLhaus excluding popular domains
 | 
			
		||||
cat "urlhaus-domains.txt" | \
 | 
			
		||||
grep -F -vf "urlhaus-top-domains.txt" > "malware-domains.txt"
 | 
			
		||||
grep -F -vf "urlhaus-top-domains.txt" | \
 | 
			
		||||
# Remove blank lines
 | 
			
		||||
sed "/^$/d" > "malware-domains.txt"
 | 
			
		||||
 | 
			
		||||
cat "urlhaus-domains-online.txt" | \
 | 
			
		||||
grep -F -vf "urlhaus-top-domains.txt" > "malware-domains-online.txt"
 | 
			
		||||
grep -F -vf "urlhaus-top-domains.txt" | \
 | 
			
		||||
sed "/^$/d" > "malware-domains-online.txt"
 | 
			
		||||
 | 
			
		||||
## Parse malware URLs from popular domains
 | 
			
		||||
cat "urlhaus.txt" | \
 | 
			
		||||
| 
						 | 
				
			
			@ -214,68 +217,68 @@ sort | \
 | 
			
		|||
sed '1 i\'"$COMMENT_ONLINE"'' > "../urlhaus-filter-domains-online.txt"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Hosts file blocklist
 | 
			
		||||
cat "../urlhaus-filter-domains.txt" | \
 | 
			
		||||
# Exclude comment with #
 | 
			
		||||
grep -vE "^#" | \
 | 
			
		||||
## Hosts only
 | 
			
		||||
cat "malware-domains.txt" | \
 | 
			
		||||
sort | \
 | 
			
		||||
# Remove IPv4 address
 | 
			
		||||
grep -vE "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | \
 | 
			
		||||
grep -vE "([0-9]{1,3}[\.]){3}[0-9]{1,3}" > "malware-hosts.txt"
 | 
			
		||||
 | 
			
		||||
cat "malware-domains-online.txt" | \
 | 
			
		||||
sort | \
 | 
			
		||||
# Remove IPv4 address
 | 
			
		||||
grep -vE "([0-9]{1,3}[\.]){3}[0-9]{1,3}" > "malware-hosts-online.txt"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Hosts file blocklist
 | 
			
		||||
cat "malware-hosts.txt" | \
 | 
			
		||||
sed "s/^/0.0.0.0 /g" | \
 | 
			
		||||
# Re-insert comment
 | 
			
		||||
sed '1 i\'"$COMMENT"'' | \
 | 
			
		||||
sed "1s/Domains/Hosts/" > "../urlhaus-filter-hosts.txt"
 | 
			
		||||
 | 
			
		||||
cat "../urlhaus-filter-domains-online.txt" | \
 | 
			
		||||
grep -vE "^#" | \
 | 
			
		||||
grep -vE "([0-9]{1,3}[\.]){3}[0-9]{1,3}" | \
 | 
			
		||||
cat "malware-hosts-online.txt" | \
 | 
			
		||||
sed "s/^/0.0.0.0 /g" | \
 | 
			
		||||
sed '1 i\'"$COMMENT_ONLINE"'' | \
 | 
			
		||||
sed "1s/Domains/Hosts/" > "../urlhaus-filter-hosts-online.txt"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Dnsmasq-compatible blocklist
 | 
			
		||||
cat "../urlhaus-filter-hosts.txt" | \
 | 
			
		||||
grep -vE "^#" | \
 | 
			
		||||
sed "s/^0.0.0.0 /address=\//g" | \
 | 
			
		||||
cat "malware-hosts.txt" | \
 | 
			
		||||
sed "s/^/address=\//g" | \
 | 
			
		||||
sed "s/$/\/0.0.0.0/g" | \
 | 
			
		||||
sed '1 i\'"$COMMENT"'' | \
 | 
			
		||||
sed "1s/Blocklist/dnsmasq Blocklist/" > "../urlhaus-filter-dnsmasq.conf"
 | 
			
		||||
 | 
			
		||||
cat "../urlhaus-filter-hosts-online.txt" | \
 | 
			
		||||
grep -vE "^#" | \
 | 
			
		||||
sed "s/^0.0.0.0 /address=\//g" | \
 | 
			
		||||
cat "malware-hosts-online.txt" | \
 | 
			
		||||
sed "s/^/address=\//g" | \
 | 
			
		||||
sed "s/$/\/0.0.0.0/g" | \
 | 
			
		||||
sed '1 i\'"$COMMENT_ONLINE"'' | \
 | 
			
		||||
sed "1s/Blocklist/dnsmasq Blocklist/" > "../urlhaus-filter-dnsmasq-online.conf"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## BIND-compatible blocklist
 | 
			
		||||
cat "../urlhaus-filter-hosts.txt" | \
 | 
			
		||||
grep -vE "^#" | \
 | 
			
		||||
sed 's/^0.0.0.0 /zone "/g' | \
 | 
			
		||||
cat "malware-hosts.txt" | \
 | 
			
		||||
sed 's/^/zone "/g' | \
 | 
			
		||||
sed 's/$/" { type master; notify no; file "null.zone.file"; };/g' | \
 | 
			
		||||
sed '1 i\'"$COMMENT"'' | \
 | 
			
		||||
sed "1s/Blocklist/BIND Blocklist/" > "../urlhaus-filter-bind.conf"
 | 
			
		||||
 | 
			
		||||
cat "../urlhaus-filter-hosts-online.txt" | \
 | 
			
		||||
grep -vE "^#" | \
 | 
			
		||||
sed 's/^0.0.0.0 /zone "/g' | \
 | 
			
		||||
cat "malware-hosts-online.txt" | \
 | 
			
		||||
sed 's/^/zone "/g' | \
 | 
			
		||||
sed 's/$/" { type master; notify no; file "null.zone.file"; };/g' | \
 | 
			
		||||
sed '1 i\'"$COMMENT_ONLINE"'' | \
 | 
			
		||||
sed "1s/Blocklist/BIND Blocklist/" > "../urlhaus-filter-bind-online.conf"
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Unbound-compatible blocklist
 | 
			
		||||
cat "../urlhaus-filter-hosts.txt" | \
 | 
			
		||||
grep -vE "^#" | \
 | 
			
		||||
sed 's/^0.0.0.0 /local-zone: "/g' | \
 | 
			
		||||
cat "malware-hosts.txt" | \
 | 
			
		||||
sed 's/^/local-zone: "/g' | \
 | 
			
		||||
sed 's/$/" always_nxdomain/g' | \
 | 
			
		||||
sed '1 i\'"$COMMENT"'' | \
 | 
			
		||||
sed "1s/Blocklist/Unbound Blocklist/" > "../urlhaus-filter-unbound.conf"
 | 
			
		||||
 | 
			
		||||
cat "../urlhaus-filter-hosts-online.txt" | \
 | 
			
		||||
grep -vE "^#" | \
 | 
			
		||||
sed 's/^0.0.0.0 /local-zone: "/g' | \
 | 
			
		||||
cat "malware-hosts-online.txt" | \
 | 
			
		||||
sed 's/^/local-zone: "/g' | \
 | 
			
		||||
sed 's/$/" always_nxdomain/g' | \
 | 
			
		||||
sed '1 i\'"$COMMENT_ONLINE"'' | \
 | 
			
		||||
sed "1s/Blocklist/Unbound Blocklist/" > "../urlhaus-filter-unbound-online.conf"
 | 
			
		||||
| 
						 | 
				
			
			@ -340,15 +343,13 @@ sed -i "1s/Domains Blocklist/URL Suricata Ruleset/" "../urlhaus-filter-suricata-
 | 
			
		|||
COMMENT_IE="msFilterList\n$COMMENT\n: Expires=1\n#"
 | 
			
		||||
COMMENT_ONLINE_IE="msFilterList\n$COMMENT_ONLINE\n: Expires=1\n#"
 | 
			
		||||
 | 
			
		||||
cat "../urlhaus-filter-hosts.txt" | \
 | 
			
		||||
grep -vE "^#" | \
 | 
			
		||||
sed "s/^0\.0\.0\.0/-d/g" | \
 | 
			
		||||
cat "malware-hosts.txt" | \
 | 
			
		||||
sed "s/^/-d /g" | \
 | 
			
		||||
sed '1 i\'"$COMMENT_IE"'' | \
 | 
			
		||||
sed "2s/Domains Blocklist/Hosts Blocklist (IE)/" > "../urlhaus-filter.tpl"
 | 
			
		||||
 | 
			
		||||
cat "../urlhaus-filter-hosts-online.txt" | \
 | 
			
		||||
grep -vE "^#" | \
 | 
			
		||||
sed "s/^0\.0\.0\.0/-d/g" | \
 | 
			
		||||
cat "malware-hosts-online.txt" | \
 | 
			
		||||
sed "s/^/-d /g" | \
 | 
			
		||||
sed '1 i\'"$COMMENT_ONLINE_IE"'' | \
 | 
			
		||||
sed "2s/Domains Blocklist/Hosts Blocklist (IE)/" > "../urlhaus-filter-online.tpl"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue