security.ssl.errorReporting.enabled → false
security.cert_pinning.enforcement_level → 0
security.ssl.enable_ocsp_stapling → false
security.ssl.errorReporting.enabled → false
security.cert_pinning.enforcement_level → 0
security.ssl.enable_ocsp_stapling → false
Dwa skrypty co robią dużo szumu ale wpada wiele nisko wiszących owoców do koszyczka. Szybko i sprawnie. Do przeszukania wyników z smb lubię wykorzystywać https://github.com/SySS-Research/smbcrawler/tree/main
└─# cat skan_masscan.sh
#!/bin/bash
USER_DOM="w4cky"
PASS_DOM='l0l'
DOMAIN="domena"
PORTS="80,443,8080,8443,445"
RATE=10000
echo "[*] Start masscan-based scanning of 10.0.0.0/8 for ports: $PORTS"
for a in $(seq 15 255); do
PODSIEC="10.$a.0.0/16"
MASSCAN_OUT="masscan-10.$a.0.0.txt"
LIVE_FILE="live-10.$a.0.0.txt"
echo -e "\n[*] Masscan $PODSIEC..."
sudo masscan $PODSIEC -p$PORTS --rate=$RATE -oL "$MASSCAN_OUT" 2>/dev/null
if [ ! -f "$MASSCAN_OUT" ]; then
echo "[!] masscan NIE wygenerował pliku $MASSCAN_OUT – pomijam $PODSIEC"
continue
fi
awk '/^open/ {print $4}' "$MASSCAN_OUT" | sort -u > "$LIVE_FILE"
[ ! -s "$LIVE_FILE" ] && echo "[!] Brak hostów w $PODSIEC – pomijam." && continue
for ip in $(cat "$LIVE_FILE"); do
[[ $ip =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]] || continue
echo -e "\n[+] Skanuję hosta $ip"
PORTY=$(awk -v ip="$ip" '$4 == ip {print $3}' "$MASSCAN_OUT" | sort -n | uniq)
> urls-$ip.txt
for port in $PORTY; do
case $port in
80) echo "http://$ip" >> urls-$ip.txt ;;
8080) echo "http://$ip:8080" >> urls-$ip.txt ;;
443) echo "https://$ip" >> urls-$ip.txt ;;
8443) echo "https://$ip:8443" >> urls-$ip.txt ;;
*) ;; # inne pomiń (np. 445)
esac
done
if [ -s urls-$ip.txt ]; then
echo "[NUCLEI] nuclei -l urls-$ip.txt -silent -o nuclei-$ip.txt"
nuclei -l urls-$ip.txt -silent -o nuclei-$ip.txt
[ -s nuclei-$ip.txt ] || rm -f nuclei-$ip.txt
else
echo "[NUCLEI] Brak portów web – pomijam nuclei dla $ip"
fi
rm -f urls-$ip.txt
echo "[NMAP+SMB] nmap -sS -sV -O -Pn -p- --script smb-* $ip"
nmap -sS -sV -O -Pn -p- \
--script "smb-enum-shares,smb-enum-users,smb-os-discovery" \
--script-args "smbuser=$USER_DOM,smbpass=$PASS_DOM,smbdomain=$DOMAIN" \
$ip -oN nmap-$ip.txt
grep -qE "open|Running:|Domain|anonymous|CENTRALA" nmap-$ip.txt || rm -f nmap-$ip.txt
if command -v enum4linux-ng &>/dev/null; then
echo "[ENUM4LINUX] enum4linux-ng -A $ip -u $USER_DOM -p '****' -d $DOMAIN -o enum-$ip"
enum4linux-ng -A $ip -u $USER_DOM -p "$PASS_DOM" -d $DOMAIN -o enum-$ip
grep -qi 'Access granted\|Group\|User' enum-$ip/* 2>/dev/null || rm -rf enum-$ip
fi
done
└─# cat enum_smb.sh
#!/bin/bash
USER_DOM="w4cky"
PASS_DOM='l0l'
DOMAIN="domena"
echo "[*] Wyszukiwanie IP z portem 445 w masscan-10.*..."
IP_LIST=$(cat masscan-10.* 2>/dev/null | awk '$3 == 445 {print $4}' | sort -u)
if [ -z "$IP_LIST" ]; then
echo "[!] Nie znaleziono IP – kończę."
exit 1
fi
for ip in $IP_LIST; do
echo -e "\n[+] SMB na $ip"
echo "[CMD] smbclient -L //$ip -U '$DOMAIN\\$USER_DOM%$PASS_DOM' -g"
smbclient -L "//$ip" -U '$DOMAIN\\$USER_DOM%$PASS_DOM' -g > "smb-$ip.txt" 2>&1
if grep -q 'NT_STATUS' "smb-$ip.txt"; then
echo "[!] Błąd SMB na $ip: $(grep 'NT_STATUS' "smb-$ip.txt" | head -1)"
rm -f "smb-$ip.txt"
elif grep -q 'Disk' "smb-$ip.txt"; then
echo "[✔] Udziały zapisane do smb-$ip.txt"
else
echo "[~] Brak udziałów – czyszczę"
rm -f "smb-$ip.txt"
fi
done
echo -e "\n[✓] Zakończono."
Form: email=
JSON: {"email": ""}
🔎 Test: walidacja i obsługa błędów
📌 Obserwuj: status code, body, timing
Form: email=alicetest@example.com
JSON: {"email": " alicetest@example.com "}
🔎 Test: trimming i kanonikalizacja
📌 Obserwuj: akceptację, mail sink target
Form: email=alicetest@example.com&email=bobtest@example.com
🔎 Test: który parametr wybiera serwer (pierwszy/ostatni/merge)
📌 Obserwuj: do której skrzynki trafia wiadomość
Form: email=%61licetest%40example.com (czyli alicetest@example.com)
Zdobadz domene
Aby nakłonić odbiorców wiadomości phishingowych do kliknięcia, potrzebujesz nazwy domeny, która wygląda bardzo podobnie do oryginalnej. Możesz ręcznie zacząć zastanawiać się, jakie domeny byłyby świetne i niezbyt oczywiste, a jednocześnie wyglądałyby podobnie... Ale to zajmuje cenny czas. Aby znaleźć odpowiednie domeny, można skorzystać z narzędzi takich jak urlcrazy, które generują domeny z literówkami i warianty zbliżone do domeny oryginalnej, lub przeszukać ExpiredDomains.net w poszukiwaniu dostępnych obecnie domen o wysokiej reputacji.
ExpireDomains to w istocie kosz na śmieci, który pokazuje, jaką wartość ma wyrzucona domena... wspaniałe źródło informacji dla przeciwników!
https://hackmag.com/security/evilginx-gophish-guide/
https://www.mail-tester.com/
https://outpost24.com/blog/phishing-better-proxy-than-story/
DOMENA: account.i-wypozyczalnia.pl
A -> mail.i-wypozyczalnia.pl -> 45.141.3.55
MX -> @ -> account.i-wypozyczalnia.pl
TXT -> @ -> v=spf1 mx a ip4:45.141.3.55 ~all
TXT - > _DMARC -> v=DMARC1; p=none;
sudo apt install postfix
sudo sed -i 's|^mynetworks = 127\.0\.0\.0/8 \[::ffff:127\.0\.0\.0\]/104 \[::1\]/128|mynetworks = 127.0.0.0/8 45.141.3.55 [::ffff:127.0.0.0]/104 [::1]/128|' /etc/postfix/main.cf
#PODAJ DOMENE KTORA USTAWILES: account.i-wypozyczalnia.pl
sudo apt install opendkim opendkim-tools gcc make -y
GraphQL Cop to małe narzędzie Pythona do uruchamiania typowych testów bezpieczeństwa dla interfejsów API GraphQL. GraphQL Cop jest idealny do przeprowadzania kontroli CI/CD w GraphQL. Jest lekki i obejmuje interesujące kwestie bezpieczeństwa w GraphQL.
GraphQL Cop pozwala odtworzyć wyniki, dostarczając polecenia cURL dla wszelkich zidentyfikowanych luk w zabezpieczeniach.
Writeup odnośnie GraphQL - https://blog.koalasec.co/2500-dollars-in-bounties-hacking-graphql
https://github.com/dolevf/graphql-cop
└─# python3 graphql-cop.py -t https://sdb.ua/?q=getnciesList 1 ⨯
[HIGH] Alias Overloading - Alias Overloading with 100+ aliases is allowed (Denial of Service - /graphiql)
[HIGH] Alias Overloading - Alias Overloading with 100+ aliases is allowed (Denial of Service - /playground)
[HIGH] Alias Overloading - Alias Overloading with 100+ aliases is allowed (Denial of Service - /console)
[HIGH] Alias Overloading - Alias Overloading with 100+ aliases is allowed (Denial of Service - /graphql)
[HIGH] Directive Overloading - Multiple duplicated directives allowed in a query (Denial of Service - /graphiql)
[HIGH] Directive Overloading - Multiple duplicated directives allowed in a query (Denial of Service - /playground)
[HIGH] Directive Overloading - Multiple duplicated directives allowed in a query (Denial of Service - /console)
[HIGH] Directive Overloading - Multiple duplicated directives allowed in a query (Denial of Service - /graphql)
[HIGH] Field Duplication - Queries are allowed with 500 of the same repeated field (Denial of Service - /graphiql)
[HIGH] Field Duplication - Queries are allowed with 500 of the same repeated field (Denial of Service - /playground)
[HIGH] Field Duplication - Queries are allowed with 500 of the same repeated field (Denial of Service - /console)
[HIGH] Field Duplication - Queries are allowed with 500 of the same repeated field (Denial of Service - /graphql)
[LOW] Field Suggestions - Field Suggestions are Enabled (Information Leakage - /graphiql)
[LOW] Field Suggestions - Field Suggestions are Enabled (Information Leakage - /playground)
[LOW] Field Suggestions - Field Suggestions are Enabled (Information Leakage - /console)
[LOW] Field Suggestions - Field Suggestions are Enabled (Information Leakage - /graphql)
[HIGH] Introspection - Introspection Query Enabled (Information Leakage - /graphiql)
[HIGH] Introspection - Introspection Query Enabled (Information Leakage - /playground)
[HIGH] Introspection - Introspection Query Enabled (Information Leakage - /console)
[HIGH] Introspection - Introspection Query Enabled (Information Leakage - /graphql)