Kategorier
Verktyg

Kör Kali Linux med Vagrant

Offensive Security gick precis ut med nyheten att Kali Linux nu finns uppladdat till Vagrant Cloud. Detta är en bra nyhet eftersom det är enklare att komma igång och köra Kali på precis det sätt du vill.

Du installerar bara vagrant och skapar bara en ny tom mapp där du kör följande kommando:

vagrant init offensive-security/kali-linux

Då skapas en fil vid namnet Vagrantfile. Exempel:

➜ ~ mkdir kali
➜ ~ cd kali
➜ kali vagrant init offensive-security/kali-linux
A `Vagrantfile` has been placed in this directory. You are now
ready to `vagrant up` your first virtual environment! Please read
the comments in the Vagrantfile as well as documentation on
`vagrantup.com` for more information on using Vagrant.
➜ kali cat Vagrantfile
# -*- mode: ruby -*-
# vi: set ft=ruby :
..klipp..
end
➜ kali

Du kan sedan lägga till egna kommandon eller verktyg som du vill installera/köra i Vagrantfile. Då behöver du bara spara undan din Vagrantfile och slipper således göra en egen ISO-fil eller liknandede. Du kan även med fördel använda ansible, chef eller salt också för att göra provisionering av din Kali Linux-installation.

Här är ett exempel då jag lägger till en inställning till Vagrantfile som installerar SecLists från Github:

config.vm.provision "shell", inline: <<-SHELL
cd /root
git clone https://github.com/danielmiessler/SecLists
SHELL
Kategorier
Verktyg

Ny metod för att gissa SSH-användare

Qualys uppmärksammade att en patch till OpenSSH-projektet åtgärdade en säkerhetsbrist som gör det möjligt för en angripare att lista ut användarnamn på en server. Detta gäller alla versioner av OpenSSH från och med OpenSSH 2.3.0 som släpptes i November 2000.

Genom att skicka olika resultat till servern så kan en angripare således lista ut om användaren är giltig eller ej:

Och redan nu finns det proof-of-concept kod som använder SSH-biblioteket Paramiko. Just denna server har en användare som heter user1 men inte någon som heter user2:

Här kan du ladda hem ssh-check-username.py

Att gissa användarnamnet kan underlätta attacker som försöker forcera användarnamn och lösenord. Bristen i OpenSSH identifierades av Dariusz Tytko och Michał Sajdak.

När det gäller detektion av denna attack så kan man titta efter följande meddelande i loggarna:

fatal: ssh_packet_get_string: incomplete message [preauth]

Dock framgår inte angriparens IP-nummer i loggen. Oklart även hur verktyg såsom fail2ban som försvårar lösenordsgissningar fungerar mot denna attack.

För att testa denna sårbarhet kan även Holm Security användas. Full disclosure: Jag är delägare och sitter med i Advisory Board.

Kategorier
Verktyg

Nytt intressant tillägg till Burp Suite: Upload Scanner

Tobias ’floyd’ Ospelt på företaget modzero AG har släppt en ny intressant extension till Burp Suite. Denna extension går igenom ett stort antal olika sårbarheter som är kopplade till vanliga fel när det hantering av uppladdade filer.

Stöd Penetrationstest.se och Kryptera.se via Patreon > 

För en utförlig lista över samtliga kontroller så kolla in Github-repot.

För bästa resultat så bör du konfigurera så att Upload Scanner gör en ReDownload. Dvs försöker ladda hem filen som Upload Scanner precis laddat upp. Jag gjorde ett enkelt test för att se vad Upload Scanner går för.

Testet jag gjorde utför en enkel kontroll i PHP på filen som laddades upp om den är en bild eller ej genom att använda PHP-GD funktionen getimagesize().

$check = getimagesize($_FILES["fileToUpload"]["tmp_name"]);
if($check !== false) {
 echo "File is an image - " . $check["mime"] . ".";
$uploadOk = 1;
} else {
 echo "File is not an image.";
 $uploadOk = 0;
}

Givetvis ska man inte använda getimagesize() för att kontrollera om en fil är en bild eller ej, vilket även PHP.net:s manualsida framhåller:

Do not use getimagesize() to check that a given file is a valid image. Use a purpose-built solution such as theFileinfo extension instead.

Kom igång med Upload Scanner

Först installerar du tillägget via BApp Store. Då får du några nya menyval samt en ny flik, jag rekommenderar även Logger++ som gör att du kan se bättre exakt vad som händer under huven.

Via webbläsaren laddar du upp en fil till tjänsten och går sedan in i Burp Suites Proxy och högerklickar samt väljer Send to Upload Scanner. Skärmdump för att visa:

Efter det så går vi över till den tabb/flik som heter Upload Scanner. Där konfigurerar vi så att ReDownloader fungerar och i just detta fall är det enkelt eftersom URL:en är statisk

Och knappen ändras då till ”Start scan with ReDownloader”:

Sedan så startar vi scanningen och resultatet kan ses via Scanner-tabben. I mitt fall så skickade den 1777 st http-förfrågningar och när jag tittar direkt på webbservern så laddade den upp 1659 olika filer.

Resultat från Upload Scanner

Givetvis hittade Upload Scanner flertalet brister i min bristfälliga kontroll. De allvarligaste gäller exekvering av kod direkt på servern men även andra intressanta såsom .htaccess uploads och stored XSS.

Här är några stycken som jag klippt ut:

PHP-kod i metadata

Remote command execution through PHP payload in Metadata of type comment. The server replaced the code <?php echo ”gTaxf-InJ” . ”eCt.”.”TeSt”;?> inside the uploaded file with gTaxf-InJeCt.TeSt only, meaning that PHP code execution is possible.

PNG IDAT chunks

Remote command execution through PHP payload in IDAT chunks, payload from https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/ . The server probably tried to execute the code <?=$_GET[0]($_POST[1]);?> inside the uploaded image but failed, meaning that PHP code execution seems possible. Usually the server will respond with only the start of the file which has length 66 and cut off the rest. Also, it usually responds with an HTTP 500 error.

Kategorier
Verktyg

Nmap 7.70

För några minuter sedan så meddelade Fyodor att en ny stabil version av portskannings-verktyget Nmap har släppts. Denna version heter Nmap 7.70 och innehåller en hel del bra uppdateringar samt åtgärdar en säkerhetsbrist.

Säkerhetsbristen har och göra med hur NSE-scriptet http-fetch sparar ner filer på disk. En webbserver som returnerar ett svar som är formterat på ett visst sätt gör att filer kunde sparas ner till kataloger utanför den katalog som är inställd för nedladdning. Dock gick ej befintliga filer att skriva över.

En av de trevligare uppdateringarna är IPv6 samt IPv4 fingerprints som ökat och även service detection som nu känner igen 1224 st nya protokoll såsom filenet-pch, lscp, netassistant, sharp-remote,
urbackup och watchguard.

9 st nya NSE-script som är enligt följande:

– deluge-rpc-brute performs brute-force credential testing against
Deluge BitTorrent RPC services, using the new zlib library. [Claudiu Perta]
– hostmap-crtsh lists subdomains by querying Google’s Certificate
Transparency logs. [Paulino Calderon]
– [GH#892] http-bigip-cookie decodes unencrypted F5 BIG-IP cookies and
reports back the IP address and port of the actual server behind the
load-balancer. [Seth Jackson]
– http-jsonp-detection Attempts to discover JSONP endpoints in web
servers. JSONP endpoints can be used to bypass Same-origin Policy
restrictions in web browsers. [Vinamra Bhatia]
– http-trane-info obtains information from Trane Tracer SC controllers
and connected HVAC devices. [Pedro Joaquin]
– [GH#609] nbd-info uses the new nbd.lua library to query Network Block
Devices for protocol and file export information. [Mak Kolybabi]
– rsa-vuln-roca checks for RSA keys generated by Infineon TPMs
vulnerable to Return Of Coppersmith Attack (ROCA) (CVE-2017-15361). Checks
SSH and TLS services. [Daniel Miller]
– [GH#987] smb-enum-services retrieves the list of services running on a
remote Windows machine. Modern Windows systems requires a privileged domain
account in order to list the services. [Rewanth Cool]
– tls-alpn checks TLS servers for Application Layer Protocol Negotiation
(ALPN) support and reports supported protocols. ALPN largely replaces NPN,
which tls-nextprotoneg was written for. [Daniel Miller]

Kategorier
Verktyg

hashcat 4.0.0 nu släppt

Nu har mjukvaran hashcat släppts i version 4.0.0, som den första i 4.x-serien. Hashcat är en mjukvara för att knäcka lösenord, ungefär som John the Ripper (JtR). Fördelen dock med hashcat är stödet för att använda hårdvara för knäckningen, framförallt GPU:er.

Det som är nytt i version 4.0.0 är följande:

  • Lösenord och salt upp till 256 tecken
  • Ny snabb OpenCL-kernel. Använd -O argumentet för att nyttja denna om du har möjlighet
  • Självkontroll för att upptäcka buggig OpenCL kernel
  • Stöd för hash-mode 2501 = WPA/WPA2 PMK samt 2500 som är WPA/WPA2 (SHA256-AES-CMAC)
  • Förbättrat stöd för macOS
  • Argumentet –example-hashes för att lista exempel på hashar
  • Samt några prylar till

Hahcat stödjer följande GPU:er:

  • AMD GPUs on Linux require ”RadeonOpenCompute (ROCm)” Software Platform (1.6.180 or later)
  • AMD GPUs on Windows require ”AMD Radeon Software Crimson Edition” (15.12 or later)
  • Intel CPUs require ”OpenCL Runtime for Intel Core and Intel Xeon Processors” (16.1.1 or later)
  • Intel GPUs on Linux require ”OpenCL 2.0 GPU Driver Package for Linux” (2.0 or later)
  • Intel GPUs on Windows require ”OpenCL Driver for Intel Iris and Intel HD Graphics”
  • NVIDIA GPUs require ”NVIDIA Driver” (367.x or later)

Och förutom GPU:er så kan du köra hashcat på följande:

  • CPU
  • APU
  • DSP
  • FPGA
  • Coprocessor

Hela listan med algoritmer som hashcat stödjer:

  • MD4
  • MD5
  • Half MD5 (left, mid, right)
  • SHA1
  • SHA-224
  • SHA-256
  • SHA-384
  • SHA-512
  • SHA-3 (Keccak)
  • BLAKE2b-512
  • SipHash
  • Skip32
  • RIPEMD-160
  • Whirlpool
  • DES (PT = $salt, key = $pass)
  • 3DES (PT = $salt, key = $pass)
  • ChaCha20
  • GOST R 34.11-94
  • GOST R 34.11-2012 (Streebog) 256-bit
  • GOST R 34.11-2012 (Streebog) 512-bit
  • md5($pass.$salt)
  • md5($salt.$pass)
  • md5(unicode($pass).$salt)
  • md5($salt.unicode($pass))
  • md5($salt.$pass.$salt)
  • md5($salt.md5($pass))
  • md5($salt.md5($salt.$pass))
  • md5($salt.md5($pass.$salt))
  • md5(md5($pass))
  • md5(md5($pass).md5($salt))
  • md5(strtoupper(md5($pass)))
  • md5(sha1($pass))
  • sha1($pass.$salt)
  • sha1($salt.$pass)
  • sha1(unicode($pass).$salt)
  • sha1($salt.unicode($pass))
  • sha1(sha1($pass))
  • sha1($salt.sha1($pass))
  • sha1(md5($pass))
  • sha1($salt.$pass.$salt)
  • sha1(CX)
  • sha256($pass.$salt)
  • sha256($salt.$pass)
  • sha256(unicode($pass).$salt)
  • sha256($salt.unicode($pass))
  • sha512($pass.$salt)
  • sha512($salt.$pass)
  • sha512(unicode($pass).$salt)
  • sha512($salt.unicode($pass))
  • HMAC-MD5 (key = $pass)
  • HMAC-MD5 (key = $salt)
  • HMAC-SHA1 (key = $pass)
  • HMAC-SHA1 (key = $salt)
  • HMAC-SHA256 (key = $pass)
  • HMAC-SHA256 (key = $salt)
  • HMAC-SHA512 (key = $pass)
  • HMAC-SHA512 (key = $salt)
  • PBKDF2-HMAC-MD5
  • PBKDF2-HMAC-SHA1
  • PBKDF2-HMAC-SHA256
  • PBKDF2-HMAC-SHA512
  • MyBB
  • phpBB3
  • SMF (Simple Machines Forum)
  • vBulletin
  • IPB (Invision Power Board)
  • WBB (Woltlab Burning Board)
  • osCommerce
  • xt:Commerce
  • PrestaShop
  • MediaWiki B type
  • WordPress
  • Drupal 7
  • Joomla
  • PHPS
  • Django (SHA-1)
  • Django (PBKDF2-SHA256)
  • Episerver
  • ColdFusion 10+
  • Apache MD5-APR
  • MySQL
  • PostgreSQL
  • MSSQL
  • Oracle H: Type (Oracle 7+)
  • Oracle S: Type (Oracle 11+)
  • Oracle T: Type (Oracle 12+)
  • Sybase
  • hMailServer
  • DNSSEC (NSEC3)
  • IKE-PSK
  • IPMI2 RAKP
  • iSCSI CHAP
  • CRAM-MD5
  • MySQL CRAM (SHA1)
  • PostgreSQL CRAM (MD5)
  • SIP digest authentication (MD5)
  • WPA/WPA2
  • WPA/WPA2 PMK
  • NetNTLMv1
  • NetNTLMv1+ESS
  • NetNTLMv2
  • Kerberos 5 AS-REQ Pre-Auth etype 23
  • Kerberos 5 TGS-REP etype 23
  • Netscape LDAP SHA/SSHA
  • FileZilla Server
  • LM
  • NTLM
  • Domain Cached Credentials (DCC), MS Cache
  • Domain Cached Credentials 2 (DCC2), MS Cache 2
  • DPAPI masterkey file v1 and v2
  • MS-AzureSync PBKDF2-HMAC-SHA256
  • descrypt
  • bsdicrypt
  • md5crypt
  • sha256crypt
  • sha512crypt
  • bcrypt
  • scrypt
  • macOS v10.4
  • macOS v10.5
  • macOS v10.6
  • macOS v10.7
  • macOS v10.8
  • macOS v10.9
  • macOS v10.10
  • iTunes backup < 10.0
  • iTunes backup >= 10.0
  • AIX {smd5}
  • AIX {ssha1}
  • AIX {ssha256}
  • AIX {ssha512}
  • Cisco-ASA MD5
  • Cisco-PIX MD5
  • Cisco-IOS $1$ (MD5)
  • Cisco-IOS type 4 (SHA256)
  • Cisco $8$ (PBKDF2-SHA256)
  • Cisco $9$ (scrypt)
  • Juniper IVE
  • Juniper NetScreen/SSG (ScreenOS)
  • Juniper/NetBSD sha1crypt
  • Fortigate (FortiOS)
  • Samsung Android Password/PIN
  • Windows Phone 8+ PIN/password
  • GRUB 2
  • CRC32
  • RACF
  • Radmin2
  • Redmine
  • PunBB
  • OpenCart
  • Atlassian (PBKDF2-HMAC-SHA1)
  • Citrix NetScaler
  • SAP CODVN B (BCODE)
  • SAP CODVN F/G (PASSCODE)
  • SAP CODVN H (PWDSALTEDHASH) iSSHA-1
  • PeopleSoft
  • PeopleSoft PS_TOKEN
  • Skype
  • WinZip
  • 7-Zip
  • RAR3-hp
  • RAR5
  • AxCrypt
  • AxCrypt in-memory SHA1
  • PDF 1.1 – 1.3 (Acrobat 2 – 4)
  • PDF 1.4 – 1.6 (Acrobat 5 – 8)
  • PDF 1.7 Level 3 (Acrobat 9)
  • PDF 1.7 Level 8 (Acrobat 10 – 11)
  • MS Office <= 2003 MD5
  • MS Office <= 2003 SHA1
  • MS Office 2007
  • MS Office 2010
  • MS Office 2013
  • Lotus Notes/Domino 5
  • Lotus Notes/Domino 6
  • Lotus Notes/Domino 8
  • Bitcoin/Litecoin wallet.dat
  • Blockchain, My Wallet
  • Blockchain, My Wallet, V2
  • 1Password, agilekeychain
  • 1Password, cloudkeychain
  • LastPass
  • Password Safe v2
  • Password Safe v3
  • KeePass 1 (AES/Twofish) and KeePass 2 (AES)
  • JKS Java Key Store Private Keys (SHA1)
  • Ethereum Wallet, PBKDF2-HMAC-SHA256
  • Ethereum Wallet, SCRYPT
  • eCryptfs
  • Android FDE <= 4.3
  • Android FDE (Samsung DEK)
  • TrueCrypt
  • VeraCrypt
  • LUKS
  • Plaintext
Kategorier
Verktyg

Python Windows Keylogger Radium

Radium är en keylogger skriven i Python som spelar in tangentbordstryckningar. Förutom att läsa av tangentbordet och ta skärmdumpar vid fördefinierade intervaller så kan även Radium läsa av lösenord från följande mjukvaror:

  • Chrome
  • Mozilla
  • Filezilla
  • Core FTP
  • CyberDuck
  • FTPNavigator
  • WinSCP
  • Outlook
  • Putty
  • Skype
  • Generic Network

Även så finns det möjlighet att läsa av cookies från webbläsaren. Förutom python så kräver Radium att du installerar följande:

Du måste också sätta upp en FTP-server dit Radium kan skicka skärmdumpar och ett GMail-konto för att skicka tangentbordsloggar.

Radium kan du ladda hem från Github här:

https://github.com/mehulj94/Radium-Keylogger

Kategorier
Verktyg

Automated Penetration Testing Toolkit (APT2)

APT2 är ett verktyg för att automatiskt genomföra flertalet annars manuellt moment vid ett penetrationstest. Det är skrivet i python av två medarbetare vid företaget Rapid7 (som även utvecklar Metasploit).

Metodiken vid ett penetrationstest ser ungefär ut som liknande:

Och ser man på ovan linje så är inte så mycket automatiserat i dagsläget. Metasploit Pro, Core Impact och Immunity CANVAS är kommersiella verktyg och har många av dessa steg inbyggda.

Ett exempel på ett förfarande som APT2 kan automatisera åt dig:

  • Identifiera öppna portar med Nmap
  • Identifiera FTP och utför bruteforce
  • Identifiera webbservrar och testa efter OWASP Top 10 osv
  • Köra Responder.py identifiera nätverksutdelningar
  • Köra Metasploit mot tjänster

Verktyget går att ladda hem via GitHub här: https://github.com/MooseDojo/apt2

Test av APT2

Först installerar vi alla beroenden med hjälp av pip enligt README-filen. Efter detta så startar jag metasploit och kör kommandot som apt2.py skriver ut för att starta API:t (apt2 pratar med msf).

När det är klart så kör jag nmap och skapar en xml-fil som sedan kan skickas in som argument till apt2. För att få Nmap att skriva ut en XML-fil med resultatet skriver du med -oX argumentet, likt följande:

nmap -oX internal-scan.xml 10.0.1.2

Och denna fil använder vi sedan till apt2.py:

./apt2.py -v -v -b -s 1 -f internal-scan.xml

Och om allt går väl så skrivs det ut en rapport i html-format. Jag är tyvärr inte helt imponerad av rapporten som skapades mot det system som jag testade, nämligen metasploitable3. Resultatet var att apt2 inte lyckades utnyttja något:

Så min rekommendation just nu är att skippa APT2. Det tillför inget även om det är en bra grundidé men har potential att bli något bra.

Kategorier
Verktyg

hashcat version 3.30 släppt

Mitt favoritprogram när det gäller att knäcka lösenord med hjälp av GPU har nu utkommit i en ny version. Det är hashcat version 3.30 som blev släppt i dagarna.

Här kan du ladda hem hashcat: https://hashcat.net/hashcat/

Nya features:

  • Files: Use $HEX[…] in case the password includes the separater character, increases potfile reading performance
  • Files: If the user specifies a folder to scan for wordlists instead of directly a wordlist, then ignore the hidden files
  • Loopback: Include passwords for removed hashes present in the potfile to next loopback iteration
  • New option –progress-only: Quickly provides ideal progress step size and time to process based on the user options, then quit
  • Status screen: Reenabled automatic status screen display in case of stdin used
  • Truecrypt/Veracrypt: Use CRC32 to verify headers instead of fuzzy logic, greatly reduces false positives from 18:2^48 to 3:2^64
  • WPA cracking: Reuse PBKDF2 intermediate keys if duplicate essid is detected

Algorithms:

  • Added hash-mode 1300 = SHA-224

Fixed Bugs:

  • Fixed buffer overflow in status screen display in case of long non-utf8 string
  • Fixed buffer overflow in plaintext parsing code: Leading to segfault
  • Fixed custom char parsing code in maskfiles in –increment mode: Custom charset wasn’t used
  • Fixed display screen to show input queue when using custom charset or rules
  • Fixed double fclose() using AMDGPU-Pro on sysfs compatible platform: Leading to segfault
  • Fixed hash-mode 11400 = SIP digest authentication (MD5): Cracking of hashes which did not include *auth* or *auth-int* was broken
  • Fixed hex output of plaintext in case –outfile-format 4, 5, 6 or 7 was used
  • Fixed infinite loop when using –loopback in case all hashes have been cracked
  • Fixed kernel loops in –increment mode leading to slower performance
  • Fixed mask length check in hybrid attack-modes: Do not include hash-mode dependant mask length checks
  • Fixed parsing of hashes in case the last line did not include a linefeed character
  • Fixed potfile loading to accept blank passwords
  • Fixed runtime limit: No longer required so sample startup time after refactorization

Workarounds added:

  • Workaround added for Intel OpenCL runtime: GPU support is broken, skip the device unless user forces to enable it

Technical:

  • Building: Added hashcat32.dll and hashcat64.dll makefile targets for building hashcat windows libraries
  • Building: Added production flag in Makefile to disable all the GCC compiler options needed only for development
  • Building: Removed access to readlink() on FreeBSD
  • Building: For CYGWIN prefer to use ”opencl.dll” (installed by drivers) instead of optional ”cygOpenCL-1.dll”
  • Events: Added new event EVENT_WEAK_HASH_ALL_CRACKED if all hashes have been cracked during weak hash check
  • Hardware management: Switched matching ADL device with OpenCL device by using PCI bus, device and function
  • Hardware management: Switched matching NvAPI device with OpenCL device by using PCI bus, device and function
  • Hardware management: Switched matching NVML device with OpenCL device by using PCI bus, device and function
  • Hardware management: Switched matching xnvctrl device with OpenCL device by using PCI bus, device and function
  • Hardware management: Removed *throttled* message from NVML as this created more confusion than it helped
  • Hash Parser: Improved error detection of invalid hex characters where hex character are expected
  • OpenCL Runtime: Updated AMDGPU-Pro driver version check, do warn if version 16.50 is detected which is known to be broken
  • OpenCL Runtime: Updated hashcat.hctune for Iris Pro GPU on OSX
  • Potfile: The default potfile suffix changed but the note about was missing. The ”hashcat.pot” became ”hashcat.potfile”
  • Potfile: Added old potfile detection, show warning message
  • Returncode: Added dedicated returncode (see docs/status_codes.txt) for shutdowns caused by –runtime and checkpoint keypress
  • Sanity: Added sanity check to disallow –speed-only in combination with -i
  • Sanity: Added sanity check to disallow –loopback in combination with –runtime
  • Threads: Replaced all calls to ctime() with ctime_r() to ensure thread safety
  • Threads: Replaced all calls to strerror() with %m printf() GNU extension to ensure thread safety
Kategorier
Verktyg

Knäck lösenord i molnet med Hashcat ?

lösenordsknackning GPU Amazon ec2

Att använda Amazons EC2 GPU-instanser kan vara ett snabbt och enkelt alternativ till att köpa en egen gpu-rigg. Hashcat stödjer de grafikkort som Amazon har i sina instanser som tidigare var Nvidia GRID K520 och är inte direkt marknadens snabbaste men nu finns även p2.16xlarge som är 16 GPU-kärnor.

Men du kan snabbt och enkelt starta upp 100 st samtidigt om du vill vilket är aningens jobbigare om du ska köpa en GPU-rigg från Sagitta eller liknande (kolla in denna prestanda).

Så här gör du för att komma igång:

  • Skaffa ett Amazon Web Services-konto och logga in på EC2-konsolen
  • Antingen så gör du en förfrågan på ett spot-pris (hyr oanvänd kapacitet) eller så betalar du fullt pris som är $2.6 för g2.8xlarge GPU-instanstypen. Spotpriset ligger just nu på 1.5$ dock finns inte  p2.16xlarge ännu med som spotpris.
  • Välj Amazon Linux AMI (ami-6e84fa0e)
  • Ange minst 100GB för utrymme om du vill få plats med några stora lösenordslistor såsom rockyou eller crackstation
  • Logga in som ec2-user användare samt med din ssh-nyckel och kör följande kommandon:
    • sudo -s
    • yum update
    • yum install -y kernel-devel
    • yum groupinstall development tools
    • Starta om servern
  • Ladda hem senaste Nvidia-drivarna och installera:
    • wget http://us.download.nvidia.com/XFree86/Linux-x86_64/370.28/NVIDIA-Linux-x86_64-370.28.run
    • chmod +x NVIDIA-Linux-x86_64-370.28.run
    • sudo ./NVIDIA-Linux-x86_64-370.28.run
  • Installera 7zip
    • sudo yum-config-manager –enable epel
    • sudo yum install -y p7zip
  • Ladda hem hashcat:
    • wget https://hashcat.net/files/hashcat-3.10.7z
    • 7za x hashcat-3.10.7z

För att öka prestandan ytterliga:

$ sudo nvidia-smi -pm 1
$ sudo nvidia-smi -acp 0
$ sudo nvidia-smi --auto-boost-permission=0
$ sudo nvidia-smi -ac 2505,875

Då ska allt vara klart. Verifiera med att köra ett prestanda-test:

$ hashcat-3.10/hashcat64.bin -b

Om allt ser bra ut ska du se liknande:

hashcat (v3.10) starting in benchmark-mode...

OpenCL Platform #1: NVIDIA Corporation
======================================
- Device #1: GRID K520, 1009/4036 MB allocatable, 8MCU
- Device #2: GRID K520, 1009/4036 MB allocatable, 8MCU
- Device #3: GRID K520, 1009/4036 MB allocatable, 8MCU
- Device #4: GRID K520, 1009/4036 MB allocatable, 8MCU

Hashtype: MD4

Speed.Dev.#1.: 2438.1 MH/s (95.44ms)
Speed.Dev.#2.: 2444.4 MH/s (95.11ms)
Speed.Dev.#3.: 2436.2 MH/s (95.73ms)
Speed.Dev.#4.: 2449.1 MH/s (94.90ms)
Speed.Dev.#*.: 9767.8 MH/s

Hashtype: MD5

Speed.Dev.#1.: 1714.1 MH/s (95.69ms)
Speed.Dev.#2.: 1705.1 MH/s (96.22ms)
Speed.Dev.#3.: 1714.5 MH/s (95.36ms)
Speed.Dev.#4.: 1726.3 MH/s (95.01ms)
Speed.Dev.#*.: 6860.0 MH/s

Och prestandan för Amazons nya instansstorlek p2.16xlarge som har 16 GPU-kärnor  av typen Nvidia Tesla K80:

hashcat (v3.10) starting in benchmark-mode...

OpenCL Platform #1: NVIDIA Corporation
======================================
- Device #1: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #2: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #3: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #4: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #5: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #6: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #7: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #8: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #9: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #10: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #11: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #12: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #13: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #14: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #15: Tesla K80, 2859/11439 MB allocatable, 13MCU
- Device #16: Tesla K80, 2859/11439 MB allocatable, 13MCU

Hashtype: MD4

Speed.Dev.#1: 7855.7 MH/s (94.09ms)
Speed.Dev.#2: 7867.7 MH/s (94.17ms)
Speed.Dev.#3: 7507.3 MH/s (96.18ms)
Speed.Dev.#4: 8133.3 MH/s (92.06ms)
Speed.Dev.#5: 8109.3 MH/s (92.38ms)
Speed.Dev.#6: 8008.5 MH/s (93.26ms)
Speed.Dev.#7: 8105.7 MH/s (91.53ms)
Speed.Dev.#8: 7718.3 MH/s (95.10ms)
Speed.Dev.#9: 7901.4 MH/s (94.20ms)
Speed.Dev.#10: 7567.9 MH/s (96.07ms)
Speed.Dev.#11: 7999.9 MH/s (94.09ms)
Speed.Dev.#12: 7722.0 MH/s (95.04ms)
Speed.Dev.#13: 7924.9 MH/s (94.51ms)
Speed.Dev.#14: 8088.7 MH/s (92.85ms)
Speed.Dev.#15: 7737.6 MH/s (93.73ms)
Speed.Dev.#16: 7778.7 MH/s (94.77ms)
Speed.Dev.#*.: 126.0 GH/s

Hashtype: MD5

Speed.Dev.#1: 4583.5 MH/s (88.84ms)
Speed.Dev.#2: 4598.8 MH/s (89.07ms)
Speed.Dev.#3: 4590.7 MH/s (86.62ms)
Speed.Dev.#4: 4630.0 MH/s (89.19ms)
Speed.Dev.#5: 4566.5 MH/s (92.30ms)
Speed.Dev.#6: 4552.6 MH/s (89.67ms)
Speed.Dev.#7: 4422.3 MH/s (98.59ms)
Speed.Dev.#8: 4653.7 MH/s (87.06ms)
Speed.Dev.#9: 4630.6 MH/s (90.11ms)
Speed.Dev.#10: 4561.9 MH/s (88.11ms)
Speed.Dev.#11: 4604.7 MH/s (90.25ms)
Speed.Dev.#12: 4572.6 MH/s (88.81ms)
Speed.Dev.#13: 4624.7 MH/s (89.49ms)
Speed.Dev.#14: 4211.1 MH/s (103.55ms)
Speed.Dev.#15: 4617.5 MH/s (87.19ms)
Speed.Dev.#16: 4588.8 MH/s (88.51ms)
Speed.Dev.#*.: 73010.0 MH/s

Du kan även behöva köra med —gpu-tempdisable som argument till hashcat om du ser att throttle förekommer när du kollar status.

Kategorier
Verktyg

Så kommer du igång med Burp Suite

BURPNär det gäller penetrationstest av webbtjänster så är Burp Suite mitt favoritval. Burp Suite är utvecklat i Java och kommer från företaget PortSwigger Web Security.

Runt Burp Suite så finnes det även ett helt ekosystem byggt runt plugin-ramverket. Även om det är lättast att skapa plugins i Java så går det även i andra språk såsom Python.

Det finns att ladda hem en gratis-version för test samt en betal-version som kostar runt 3000kr, och värt varenda krona om du frågar mig. Och värt att nämna att jag även använder mig av Charles Proxy, men det är när jag ska undersöka API:er.

Ladda hem Burp Suite

Surfa till https://portswigger.net/burp/downloadfree.html och ladda hem Jar-filen. När denna artikel skrivs så är senaste versionen:

burpsuite_free_v1.7.03.jar

Starta Burp

För att starta upp Burp Suite så måste du ha Java installerat. Du kan se om du har java installerat genom att köra cmd.exe eller motsvarande kommandoprompt på följande sätt:

$ java -version
java version "1.8.0_71"
Java(TM) SE Runtime Environment (build 1.8.0_71-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.71-b15, mixed mode)

Om du inte har java 1.6 eller senare så kan du ladda hem Java JRE här. Sedan är det bara att skriva

$ java -jar burpsuite_free_v1.7.03.jar

Skulle du få problem med att Burp krashar eller liknande så kan du testa att öka minnesstorleken:

$ java -XX:MaxPermSize=1G -Xmx1g -Xms1g -jar burpsuite_free_v1.7.03.jar

Sedan så startar Burp förhoppningsvis upp och du får se ett dialogfönster liknande detta:

Burp Suite free startup

Här kan vi jobba vidare på ett tidigare projekt eller skapa ett nytt. Även om du väljer Temporary project så kan vi skapa och fortsätta projektet vid ett senare tillfälle.

Klicka på Next och sedan Start Burp när nästa fönster dyker upp. Och sedan bör du se huvudskärmen i Burp som ser ut enligt följande:

Burp Suite Free Edition

Varje flik ovan representerar olika funktioner:

  • Target
  • Proxy
  • Spider
  • Scanner
  • Decoder
  • Comparer
  • Extender
  • Intruder
  • Repeater
  • Sequencer
  • Alerts
  • Project options
  • User options

De som används mestadels är Target, Proxy samt Intruder.

Identifiera brister

Nu när vi lyckats att ladda hem och starta Burp är det dags att försöka hitta vår första sårbarhet. Vi kan givetvis försöka på någon av sajterna som återfinnes på Bugcrowd eller Hackerone men det brukar inte vara helt trivialt. Därför har jag installerat Damn Vulnerable Web Application (DVWA) under XAMPP och VirtualBox.

Om du inte orkar installera VirtualBox, DVWA och XAMPP så kan du alltid använda dig av Google Gruyere.

Damn Vulnerable Web Application DVWA

Men innan vi börjar att identifiera brister så måste vi ställa in så vår webbläsare går via den proxy som finns inbyggt i Burp Suite.

Att ställa in en proxy i sin webbläsare fungerar lite olika beroende på vilken webbläsare det är. För att se vilka inställningar du ska göra så kan du klicka på Proxy och sedan Options i Burp Suite. Där står det under Interface: Burp Suite Proxy settings

Och så här ser det ut i Firefox när vi ställt in enligt ovan:

Firefox Proxy Settings

Nu är det lite knepigt. För observera att om vi nu försöker surfa någonstans med Firefox så kommer det inte att fungera. Och om vi går tillbaka till Burp Suite så ser vi att texten under Proxy samt Intercept ändrat färg, det betyder att det hänt något där.

Så här ser det ut när Burp Suite fångat upp en HTTP-förfrågan och väntar på att vi ska göra något:

Burp Suite Proxy Request

Vi får här fyra val: Forward, Drop, Intercept is on samt Action. Under knappen Action kan vi välja att göra ytterligare saker. För vårat syfte just nu att testa några enskilda inmatningsfält så trycker vi på knappen ”Intercept is on”, för då slipper vi göra ett val på varje förfrågan. Dock så sparas ändå alla http-förfrågningar under Proxy->HTTP history.

Reflected Cross Site Scripting (XSS)

Testet vi ska utföra nu är enkelt. Vi fyller i värdet test123 i ett formulär och tittar sedan hur HTTP-förfrågan ser ut när den går iväg till servern.

Vi kan även se att test123 skickas tillbaka från servern. Så nästa steg är att använda Burp till att automatiskt testa om just name= värdet går att utnyttja.

test123

burp http request

Så nästa steg är att högerklicka och välja Send to Intruder. Då börjar texten under fliken Intruder att börja lysa orange vilket då indikerar att något hänt där, så vi klickar därmed på Intruder-fliken samt vidare på 2:an och Positions på följande sätt:

Burp Suite intruder positions

Det som nu är intressant är att vi ska undersöka vilka Payload Positions vi behöver. Vi kan alltid börja med en payload och då är det lättast att klicka på Clear § till höger. Och sedan markera texten test123 samt trycka på Add §. Då kommer det att se ut så här:

payload positions

Det kan vara lätt nu att trycka på Start Attack, men det ska vi inte göra. Utan vi klickar på nästa tabb där det står Payloads, för där väljer vi nu vad vi ska skicka för värden istället för test123.

Om vi nu hade betalat för Burp Suite så hade vi fått en mängd listor färdiga med olika XSS-tester och dylikt men dessa payload-listor går lika bra att ladda hem gratis från Github och Fuzzdb-projektet (xss-rsnake.txt exempelvis) eller denna fil.

Eftersom vi just nu vet att det är en Cross site scripting-sårbarhet (XSS) vi söker efter så behöver vi således enbart XSS-payloads. Och när vi sedan laddat in payloads och rensat lite så ser det ut ungefär som följande:

Burp Suite payload simple list

Sedan är det bara att trycka på Start attack. Om du tycker att det tar lång tid så kan du klicka på Options-fliken och sedan ändra under Pause before retry, som är standard 2000ms (2 sekunder). Ställ ner den till 200ms exempelvis.

Behöver Er organisation hjälp med tekniska IT-säkerhetsgranskningar såsom denna? Kontakta Triop AB

Det svåra nu är att veta om någon av våra attacker lyckats eller ej. Men det finns några knep som underlättar det arbetet. Dels så finns det plugins såsom XssValidator men vi ska nu försöka avgöra själva om attacken lyckats.

Det vi kan titta efter är några saker:

  • Status – Är koden 200 eller något annat som indikerar på att vår payload gick igenom.
  • Length – Om vi har en lång payload och vi får ett långt response så kan det indikera på att vår xss var lyckad.
  • Filter – Denna funktion är användbar. Går även att skriva negativa sökningar

Annars så är det bara att kontrollera html-källkoden och se om vår payload finnes med ofiltrerad. Samt så kan vi högerklicka och välja Show response in browser.

XSS response

Väljer vi menyvalet Show response in browser och kopierar URL:en och klistrar sedan in den i vår webbläsare som använder Burp som proxy så ser vi följande:

XSS alert dialog

Bingo! Vi lyckades. Vi har i denna guide enbart tittat på ungefär 5% av all funktionalitet som återfinnes i Burp Suite. Så jag rekommenderar verkligen att testa samtliga funktioner och hur dessa kan hjälpa dig att identifiera nya säkerhetsbrister på webbsidor, appar eller API:er.