unzip awscliv2.zip
sudo ./aws/installClone this repository and move inside the repository foldergit clone git@github.com/wavestone-cdt/abaddon.git
cd abaddonCreate the files ~/.aws/credentials and ~/.aws/config with your AWS credentials (https://www.kitploit.com/search/label/Credentials) and configuration, using the following command:aws configureMove settings.py.sample to settings.py. Add change the database user password (This password will be asked durring the setup process)/g' abaddon/settings.py ">mv abaddon/settings.py.sample abaddon/settings.py
sed -i 's/yourPasswordHere//g' abaddon/settings.pyLaunch the following command in the abaddon/setup folder:bash setup/install.shThis script will:Update your OSInstall the packages that are required by Django and Abaddon (including docker and docker-compose)Install all the python dependencies (including Django 3.X)Create a PostgreSQL database and a user with the right role (the password for the database that you need to give is inside the abaddon/settings.py file, it is recommended to change the password)Apply Django migrationsCreate a superuser for the Django application, that will be used to connect to the graphical interface of Abaddon.Start the Red Team Angel !bash abaddon.shOpen a browser, and go to the URL 127.0.0.1:8000 (connect with the Django superuser credentials created during the installation).
Deployment of a C&C infrastructure inside Abaddon
If no EC2 instance has been deployed before from Abaddon (it is important that you deploy the EC2 from Abaddon, so that you have access to the SSH key, located in the aws folder), go to the Delivery/Let’s phish! page. Click on Deploy EC2!. Wait for the end of the deployment (you can check inside the terminal used to start Abaddon if the EC2 is ready to be used, all the deployment steps appear in the shell).Go to the misc/apache/default-ssl.conf file and UPDATE the domain name of the EC2 inside the second VirtualHost. To avoid the detection of your infrastructure, buy a new domain name and configure it to point to your EC2. Use this domain name in the Apache configuration file and UPDATE misc/apache/topsecret.key and misc/apache/topsecret.crt accordingly, which is with the private key and the certificate of your new domain.Go then to the Monitor current Scenarios page and click on Configure a RedELK infrastructure. Give this scenario a name. Abaddon supports actually only one scenario at the time. Choose an EC2 instance deployed from your Abaddon and choose Local Deployment (because you deploy your Apache docker locally). Then, choose the ports used by the deployed EC2 to receive the HTTP and SSL connections, and the port and the IP address the Apache reverse proxy will forward the traffic to (for instance, the IP and port your SILENTTRINITY (https://www.kitploit.com/search/label/SILENTTRINITY) server listens to). A common configuration would be the following:http port = 80ssl port = 443Listening Port= 9999C2 IP adress = 172.16.0.1Wait for the end of the deployment and go back to the Monitor current Scenarios page.
Getting Involved
Please do not hesitate to send us Pull Requests, or send me questions (@Ibrahimous).
Call for Contributions
We really would like to see pentesters and other offensive security lovers get out of their secret zone, and share ideas, contribute to establishing a comprehensive framework for red team operations.So, I you want to enhance the tool, please do. If you want to reshape it radically, please submit your ideas.
Documentation, Setup & Basic Usage
The documentation is a work in progress, and will very soon be available in the Wiki (https://github.com/wavestone-cdt/abaddon/wiki).
Author
Charles IBRAHIM (@Ibrahimous (https://twitter.com/Ibrahimous))
Acknowledgments, Contributors & Involuntary Contributors
sudo ./aws/installClone this repository and move inside the repository foldergit clone git@github.com/wavestone-cdt/abaddon.git
cd abaddonCreate the files ~/.aws/credentials and ~/.aws/config with your AWS credentials (https://www.kitploit.com/search/label/Credentials) and configuration, using the following command:aws configureMove settings.py.sample to settings.py. Add change the database user password (This password will be asked durring the setup process)/g' abaddon/settings.py ">mv abaddon/settings.py.sample abaddon/settings.py
sed -i 's/yourPasswordHere//g' abaddon/settings.pyLaunch the following command in the abaddon/setup folder:bash setup/install.shThis script will:Update your OSInstall the packages that are required by Django and Abaddon (including docker and docker-compose)Install all the python dependencies (including Django 3.X)Create a PostgreSQL database and a user with the right role (the password for the database that you need to give is inside the abaddon/settings.py file, it is recommended to change the password)Apply Django migrationsCreate a superuser for the Django application, that will be used to connect to the graphical interface of Abaddon.Start the Red Team Angel !bash abaddon.shOpen a browser, and go to the URL 127.0.0.1:8000 (connect with the Django superuser credentials created during the installation).
Deployment of a C&C infrastructure inside Abaddon
If no EC2 instance has been deployed before from Abaddon (it is important that you deploy the EC2 from Abaddon, so that you have access to the SSH key, located in the aws folder), go to the Delivery/Let’s phish! page. Click on Deploy EC2!. Wait for the end of the deployment (you can check inside the terminal used to start Abaddon if the EC2 is ready to be used, all the deployment steps appear in the shell).Go to the misc/apache/default-ssl.conf file and UPDATE the domain name of the EC2 inside the second VirtualHost. To avoid the detection of your infrastructure, buy a new domain name and configure it to point to your EC2. Use this domain name in the Apache configuration file and UPDATE misc/apache/topsecret.key and misc/apache/topsecret.crt accordingly, which is with the private key and the certificate of your new domain.Go then to the Monitor current Scenarios page and click on Configure a RedELK infrastructure. Give this scenario a name. Abaddon supports actually only one scenario at the time. Choose an EC2 instance deployed from your Abaddon and choose Local Deployment (because you deploy your Apache docker locally). Then, choose the ports used by the deployed EC2 to receive the HTTP and SSL connections, and the port and the IP address the Apache reverse proxy will forward the traffic to (for instance, the IP and port your SILENTTRINITY (https://www.kitploit.com/search/label/SILENTTRINITY) server listens to). A common configuration would be the following:http port = 80ssl port = 443Listening Port= 9999C2 IP adress = 172.16.0.1Wait for the end of the deployment and go back to the Monitor current Scenarios page.
Getting Involved
Please do not hesitate to send us Pull Requests, or send me questions (@Ibrahimous).
Call for Contributions
We really would like to see pentesters and other offensive security lovers get out of their secret zone, and share ideas, contribute to establishing a comprehensive framework for red team operations.So, I you want to enhance the tool, please do. If you want to reshape it radically, please submit your ideas.
Documentation, Setup & Basic Usage
The documentation is a work in progress, and will very soon be available in the Wiki (https://github.com/wavestone-cdt/abaddon/wiki).
Author
Charles IBRAHIM (@Ibrahimous (https://twitter.com/Ibrahimous))
Acknowledgments, Contributors & Involuntary Contributors
(In no particular order)Marcello Salvati (@byt3bl33d3r (https://twitter.com/byt3bl33d3r)), for SILENTTRINITY. Boo-lang, omg.Arthur Villeneuve (@crypt0-M3lon (https://twitter.com/crypt0_m3lon)), for his gorgeous ideas about docker, the proxy protocol, and more.Romain Melchiorre, for integrating lots of great ideasTimon Glasser, for patching SILENTTRINITY, fixing bugs, integrating ideas, and making everything work smoothly during actual engagements!@sbnsec, for currently terraforming all the things!Arnaud Soullié (@arnaudsoullie (https://twitter.com/arnaudsoullie)), because he overviewed most of the project!
Download Abaddon (https://github.com/wavestone-cdt/abaddon)
Download Abaddon (https://github.com/wavestone-cdt/abaddon)
Hacking Articles Tips Tricks Videos Tutorials
Photo
KitPloit - PenTest Tools!
Abaddon - Make red team operations faster, more repeatable, stealthier, while including value-added tools and bringing numerous reporting capabilities
https://blogger.googleusercontent.com/img/a/AVvXsEivByT9o0xqQYC-npGn2EZghL4rcF3BxvxGiK5rS4Na4DP3dg3Mdh7zotWR1FItSlBEeuyvhFzueeKWpfULdlX7g8UBT5qtUrZ1qR_-fSxUoSnBCrtXDP2Qt4-QUWtLKbAaBo4c7UpU3Knf7oXZNGIS30E5BhEHoBtS3HZEkzveFqjkkxyLqQEwTiLYxg=s320 Red team operations involve miscellaneous skills, last several months and are politically sensitive; they require a lot of monitoring, consolidating and caution. Wavestone’s red team operations management software, Abaddon, has been designed to make red team operations faster, more repeatable, stealthier, while including value-added tools and bringing numerous reporting capabilities.
Because:
* There are tons of tools used by red teamers
* ... but no operation management (and free and open-source) software
* ... and no aggregation between these tools, anyway
* ... and "Operational security" failures are common
What did we want with Abaddon ?:
Abaddon aims at facilitating red team operations by:
* Reducing the time to build an infrastructure
* Enabling complex actions with 1 or 2 clicks
* Enabling easier reporting for long operations
* Reducing the “OPSEC failure” risk
The slides presenting Abaddon at RSAC2020 can be found here: (Abaddon, the red team angel) What you can deployhttps://blogger.googleusercontent.com/img/a/AVvXsEh2TrG0m_TjQthnOh718EuPLC_JvRNMzOZPT8yZ7hg8MDuDfv3NCzUIdHmb7Xz4hagmyBnU3-uJL8A2Ajp-XMc0TwPZCJTQyq_EGmm64gLala7vFKMN1s9sdQoei4dQtxej4c8VvWT8bjx2Z8NNhT3qA7-M91jxQGdXv5jvm1ppuHPLSR8ftkmb2sDGRw=w640-h310 * Deployed within 30 minutes
* Throwable, authenticated, stealth
* Enables phishing as well as remote command execution Other features* Reconnaissance: graphical interface to NMAP, Recon-NG, HunterIO, and Amass
* Weaponization: generation of obfuscated payloads under development
* Delivery: one or two-clicks deployment of EC2 instances, Gophish, and of a fully functionnal, stealthy & dockerized C&C infrastructure as shown above
* Exploitation & Post-Exploitation: ideas under development :)
* Reporting: a simple dashboard ready but still under development to follow your operations Installing and launching AbaddonAbaddon has been tested on Debian, LUbuntu, and of course KALI Linux (latest tests have been performed on the 5.4.0 amd64 version). You also need to have Internet access, and a public IP address if you want to deploy your C&C server locally.
Note that to configure your AWS environment, the easiest way is probably to install the aws-cli like indicated here: https://docs.aws.amazon.com/fr_fr/cli/latest/userguide/install-cliv2-linux.html
* Update your OS
* Install the packages that are required by Django and Abaddon (including docker and docker-compose)
* Install all the python dependencies (including Django 3.X)
* Create a PostgreSQL database and a user with the right role (the password for the database that you need to give is [...]
Abaddon - Make red team operations faster, more repeatable, stealthier, while including value-added tools and bringing numerous reporting capabilities
https://blogger.googleusercontent.com/img/a/AVvXsEivByT9o0xqQYC-npGn2EZghL4rcF3BxvxGiK5rS4Na4DP3dg3Mdh7zotWR1FItSlBEeuyvhFzueeKWpfULdlX7g8UBT5qtUrZ1qR_-fSxUoSnBCrtXDP2Qt4-QUWtLKbAaBo4c7UpU3Knf7oXZNGIS30E5BhEHoBtS3HZEkzveFqjkkxyLqQEwTiLYxg=s320 Red team operations involve miscellaneous skills, last several months and are politically sensitive; they require a lot of monitoring, consolidating and caution. Wavestone’s red team operations management software, Abaddon, has been designed to make red team operations faster, more repeatable, stealthier, while including value-added tools and bringing numerous reporting capabilities.
Because:
* There are tons of tools used by red teamers
* ... but no operation management (and free and open-source) software
* ... and no aggregation between these tools, anyway
* ... and "Operational security" failures are common
What did we want with Abaddon ?:
Abaddon aims at facilitating red team operations by:
* Reducing the time to build an infrastructure
* Enabling complex actions with 1 or 2 clicks
* Enabling easier reporting for long operations
* Reducing the “OPSEC failure” risk
The slides presenting Abaddon at RSAC2020 can be found here: (Abaddon, the red team angel) What you can deployhttps://blogger.googleusercontent.com/img/a/AVvXsEh2TrG0m_TjQthnOh718EuPLC_JvRNMzOZPT8yZ7hg8MDuDfv3NCzUIdHmb7Xz4hagmyBnU3-uJL8A2Ajp-XMc0TwPZCJTQyq_EGmm64gLala7vFKMN1s9sdQoei4dQtxej4c8VvWT8bjx2Z8NNhT3qA7-M91jxQGdXv5jvm1ppuHPLSR8ftkmb2sDGRw=w640-h310 * Deployed within 30 minutes
* Throwable, authenticated, stealth
* Enables phishing as well as remote command execution Other features* Reconnaissance: graphical interface to NMAP, Recon-NG, HunterIO, and Amass
* Weaponization: generation of obfuscated payloads under development
* Delivery: one or two-clicks deployment of EC2 instances, Gophish, and of a fully functionnal, stealthy & dockerized C&C infrastructure as shown above
* Exploitation & Post-Exploitation: ideas under development :)
* Reporting: a simple dashboard ready but still under development to follow your operations Installing and launching AbaddonAbaddon has been tested on Debian, LUbuntu, and of course KALI Linux (latest tests have been performed on the 5.4.0 amd64 version). You also need to have Internet access, and a public IP address if you want to deploy your C&C server locally.
Note that to configure your AWS environment, the easiest way is probably to install the aws-cli like indicated here: https://docs.aws.amazon.com/fr_fr/cli/latest/userguide/install-cliv2-linux.html
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install1. Clone this repository and move inside the repository folder git clone git@github.com/wavestone-cdt/abaddon.git
cd abaddon1. Create the files ~/.aws/credentials and ~/.aws/config with your AWS credentials and configuration, using the following command: aws configure1. Move settings.py.sample to settings.py. Add change the database user password (This password will be asked durring the setup process) mv abaddon/settings.py.sample abaddon/settings.py
sed -i 's/yourPasswordHere/<databasepassword/g' abaddon/settings.py1. Launch the following command in the abaddon/setup folder: bash setup/install.shThis script will:* Update your OS
* Install the packages that are required by Django and Abaddon (including docker and docker-compose)
* Install all the python dependencies (including Django 3.X)
* Create a PostgreSQL database and a user with the right role (the password for the database that you need to give is [...]
Hacking Articles Tips Tricks Videos Tutorials
KitPloit - PenTest Tools! Abaddon - Make red team operations faster, more repeatable, stealthier, while including value-added tools and bringing numerous reporting capabilities https://blogger.googleusercontent.com/img/a/AVvXsEivByT9o0xqQYC-npGn2EZghL4rc…
inside the abaddon/settings.py file, it is recommended to change the password)
* Apply Django migrations
* Create a superuser for the Django application, that will be used to connect to the graphical interface of Abaddon.
Start the Red Team Angel !
If no EC2 instance has been deployed before from Abaddon (it is important that you deploy the EC2 from Abaddon, so that you have access to the SSH key, located in the aws folder), go to the Delivery/Let’s phish! page. Click on Deploy EC2!. Wait for the end of the deployment (you can check inside the terminal used to start Abaddon if the EC2 is ready to be used, all the deployment steps appear in the shell).
2.
Go to the misc/apache/default-ssl.conf file and UPDATE the domain name of the EC2 inside the second VirtualHost. To avoid the detection of your infrastructure, buy a new domain name and configure it to point to your EC2. Use this domain name in the Apache configuration file and UPDATE misc/apache/topsecret.key and misc/apache/topsecret.crt accordingly, which is with the private key and the certificate of your new domain.
3.
Go then to the Monitor current Scenarios page and click on Configure a RedELK infrastructure. Give this scenario a name. Abaddon supports actually only one scenario at the time. Choose an EC2 instance deployed from your Abaddon and choose Local Deployment (because you deploy your Apache docker locally). Then, choose the ports used by the deployed EC2 to receive the HTTP and SSL connections, and the port and the IP address the Apache reverse proxy will forward the traffic to (for instance, the IP and port your SILENTTRINITY server listens to). A common configuration would be the following:
So, I you want to enhance the tool, please do. If you want to reshape it radically, please submit your ideas. Documentation, Setup & Basic UsageThe documentation is a work in progress, and will very soon be available in the Wiki. AuthorCharles IBRAHIM (@Ibrahimous) Acknowledgments, Contributors & Involuntary Contributors(In no particular order)
* Marcello Salvati (@byt3bl33d3r), for SILENTTRINITY. Boo-lang, omg.
* Arthur Villeneuve (@crypt0-M3lon), for his gorgeous ideas about docker, the proxy protocol, and more.
* Romain Melchiorre, for integrating lots of great ideas
* Timon Glasser, for patching SILENTTRINITY, fixing bugs, integrating ideas, and making everything work smoothly during actual engagements!
* @sbnsec, for currently terraforming all the things!
* Arnaud Soullié (@arnaudsoullie), because he overviewed most of the project! Download Abaddon
* Apply Django migrations
* Create a superuser for the Django application, that will be used to connect to the graphical interface of Abaddon.
Start the Red Team Angel !
bash abaddon.shOpen a browser, and go to the URL 127.0.0.1:8000 (connect with the Django superuser credentials created during the installation). Deployment of a C&C infrastructure inside Abaddon1. If no EC2 instance has been deployed before from Abaddon (it is important that you deploy the EC2 from Abaddon, so that you have access to the SSH key, located in the aws folder), go to the Delivery/Let’s phish! page. Click on Deploy EC2!. Wait for the end of the deployment (you can check inside the terminal used to start Abaddon if the EC2 is ready to be used, all the deployment steps appear in the shell).
2.
Go to the misc/apache/default-ssl.conf file and UPDATE the domain name of the EC2 inside the second VirtualHost. To avoid the detection of your infrastructure, buy a new domain name and configure it to point to your EC2. Use this domain name in the Apache configuration file and UPDATE misc/apache/topsecret.key and misc/apache/topsecret.crt accordingly, which is with the private key and the certificate of your new domain.
3.
Go then to the Monitor current Scenarios page and click on Configure a RedELK infrastructure. Give this scenario a name. Abaddon supports actually only one scenario at the time. Choose an EC2 instance deployed from your Abaddon and choose Local Deployment (because you deploy your Apache docker locally). Then, choose the ports used by the deployed EC2 to receive the HTTP and SSL connections, and the port and the IP address the Apache reverse proxy will forward the traffic to (for instance, the IP and port your SILENTTRINITY server listens to). A common configuration would be the following:
http port = 80ssl port = 443Listening Port= 9999C2 IP adress = 172.16.0.1Wait for the end of the deployment and go back to the Monitor current Scenarios page. Getting InvolvedPlease do not hesitate to send us Pull Requests, or send me questions (@Ibrahimous). Call for ContributionsWe really would like to see pentesters and other offensive security lovers get out of their secret zone, and share ideas, contribute to establishing a comprehensive framework for red team operations.So, I you want to enhance the tool, please do. If you want to reshape it radically, please submit your ideas. Documentation, Setup & Basic UsageThe documentation is a work in progress, and will very soon be available in the Wiki. AuthorCharles IBRAHIM (@Ibrahimous) Acknowledgments, Contributors & Involuntary Contributors(In no particular order)
* Marcello Salvati (@byt3bl33d3r), for SILENTTRINITY. Boo-lang, omg.
* Arthur Villeneuve (@crypt0-M3lon), for his gorgeous ideas about docker, the proxy protocol, and more.
* Romain Melchiorre, for integrating lots of great ideas
* Timon Glasser, for patching SILENTTRINITY, fixing bugs, integrating ideas, and making everything work smoothly during actual engagements!
* @sbnsec, for currently terraforming all the things!
* Arnaud Soullié (@arnaudsoullie), because he overviewed most of the project! Download Abaddon
Harvest Finance Uninitialized Proxies Bug Fix Postmortem — $200k Bounty
Software development is an iterative process, and mistakes can happen at any time. That’s why, in the practice of developing software…Continue reading on Immunefi »
Read more...
Software development is an iterative process, and mistakes can happen at any time. That’s why, in the practice of developing software…Continue reading on Immunefi »
Read more...
Medium
Harvest Finance Uninitialized Proxies Bug Fix Postmortem — $200k Bounty
Software development is an iterative process, and mistakes can happen at any time. That’s why, in the practice of developing software…
CVE-2021–40578.
Authenticated Blind & Error based SQL injection Lead To RCE.Continue reading on Medium »
Read more...
Authenticated Blind & Error based SQL injection Lead To RCE.Continue reading on Medium »
Read more...
Hacking Articles Tips Tricks Videos Tutorials
Photo
Kali Linux Tutorials
Clash : A Rule-Based Tunnel In Go
Clash a rule-based tunnel in Go.
Features
* Local HTTP/HTTPS/SOCKS server with authentication support
* VMess, Shadowsocks, Trojan, Snell protocol support for remote connections
* Built-in DNS server that aims to minimize DNS pollution attack impact, supports DoH/DoT upstream and fake IP.
* Rules based off domains, GEOIP, IPCIDR or Process to forward packets to different nodes
* Remote groups allow users to implement powerful rules. Supports automatic fallback, load balancing or auto select node based off latency
* Remote providers, allowing users to get node lists remotely instead of hardcoding in config
* Netfilter TCP redirecting. Deploy Clash on your Internet gateway with
* Comprehensive HTTP RESTful API controller
Premium Features
* TUN mode on macOS, Linux and Windows. Doc
* Match your tunnel by Script
* Rule Provider
Getting Started
You can either grab the pre-built binaries of Clash from https://github.com/Dreamacro/clash/releases or build locally.
Clash requires Golang 1.17 or a higher version.
$ go install github.com/Dreamacro/clash@latest
The binary is built under $GOPATH/bin
$ clash -v
You can now move forward to the next chapters of this wiki in which we’ll cover the configuration syntax of Clash.
configuration
Introduction
Clash uses YAML, YAML Ain’t Markup Language, for configuration files. YAML is designed to be easy to be read, be written, and be interpreted by computers, and is commonly used for exact configuration files. In this chapter, we’ll cover the common features of Clash and how they should be used and configured.
Clash works by opening HTTP, SOCKS5, or the transparent proxy server on the local end. When a request, or say packet, comes in, Clash routes the packet to different remote servers (“nodes”) with either VMess, Shadowsocks, Snell, Trojan, SOCKS5 or HTTP protocol. All Configuration Options
Port of HTTP(S) proxy server on the local end
port: 7890
Port of SOCKS5 proxy server on the local end
socks-port: 7891
Transparent proxy server port for Linux and macOS (Redirect TCP and TProxy UDP)
redir-port: 7892
Transparent proxy server port for Linux (TProxy TCP and TProxy UDP)
tproxy-port: 7893
HTTP(S) and SOCKS4(A)/SOCKS5 server on the same port
mixed-port: 7890
authentication of local SOCKS5/HTTP(S) server
authentication:
“user1:pass1”
“user2:pass2”
Set to true to allow connections to the local-end server from
other LAN IP addresses
allow-lan: false
This is only applicable when
192.168.122.11: bind a single IPv4 address
[aaaa::a8aa:ff:fe09:57d8]”: bind a single IPv6 address
bind-address: ‘*’
Clash router working mode
rule: rule-based packet routing
global: all packets will be forwarded to a single endpoint
direct: directly forward the packets to the Internet
mode: rule
Clash by default prints logs to STDOUT
info / warning / error / debug / silent
log-level: info
When set to false, resolver won’t translate hostnames to IPv6 addresses
ipv6: false
RESTful web API listening address
external-controller: 127.0.0.1:9090
A relative path to the configuration directory or an absolute path to a
directory in which you put some static web resource. Clash core will then
serve it at
external-ui: folder
Secret for the RESTful API (optional)
Authenticate by spedifying HTTP header
secret: “”
Outbound interface name
interface-name: en0
Static hosts for DNS server and connection establishment (like /etc/hosts)
Wildcard hostnames are supported (e.g. *.clash.dev, .foo..example.com)
Non-wildcard domain names have a higher priority than wildcard domain names
e.g. foo.[...]
Clash : A Rule-Based Tunnel In Go
Clash a rule-based tunnel in Go.
Features
* Local HTTP/HTTPS/SOCKS server with authentication support
* VMess, Shadowsocks, Trojan, Snell protocol support for remote connections
* Built-in DNS server that aims to minimize DNS pollution attack impact, supports DoH/DoT upstream and fake IP.
* Rules based off domains, GEOIP, IPCIDR or Process to forward packets to different nodes
* Remote groups allow users to implement powerful rules. Supports automatic fallback, load balancing or auto select node based off latency
* Remote providers, allowing users to get node lists remotely instead of hardcoding in config
* Netfilter TCP redirecting. Deploy Clash on your Internet gateway with
iptables.* Comprehensive HTTP RESTful API controller
Premium Features
* TUN mode on macOS, Linux and Windows. Doc
* Match your tunnel by Script
* Rule Provider
Getting Started
You can either grab the pre-built binaries of Clash from https://github.com/Dreamacro/clash/releases or build locally.
Clash requires Golang 1.17 or a higher version.
$ go install github.com/Dreamacro/clash@latest
The binary is built under $GOPATH/bin
$ clash -v
You can now move forward to the next chapters of this wiki in which we’ll cover the configuration syntax of Clash.
configuration
Introduction
Clash uses YAML, YAML Ain’t Markup Language, for configuration files. YAML is designed to be easy to be read, be written, and be interpreted by computers, and is commonly used for exact configuration files. In this chapter, we’ll cover the common features of Clash and how they should be used and configured.
Clash works by opening HTTP, SOCKS5, or the transparent proxy server on the local end. When a request, or say packet, comes in, Clash routes the packet to different remote servers (“nodes”) with either VMess, Shadowsocks, Snell, Trojan, SOCKS5 or HTTP protocol. All Configuration Options
Port of HTTP(S) proxy server on the local end
port: 7890
Port of SOCKS5 proxy server on the local end
socks-port: 7891
Transparent proxy server port for Linux and macOS (Redirect TCP and TProxy UDP)
redir-port: 7892
Transparent proxy server port for Linux (TProxy TCP and TProxy UDP)
tproxy-port: 7893
HTTP(S) and SOCKS4(A)/SOCKS5 server on the same port
mixed-port: 7890
authentication of local SOCKS5/HTTP(S) server
authentication:
“user1:pass1”
“user2:pass2”
Set to true to allow connections to the local-end server from
other LAN IP addresses
allow-lan: false
This is only applicable when
allow-lanis truebind all IP addresses192.168.122.11: bind a single IPv4 address
[aaaa::a8aa:ff:fe09:57d8]”: bind a single IPv6 address
bind-address: ‘*’
Clash router working mode
rule: rule-based packet routing
global: all packets will be forwarded to a single endpoint
direct: directly forward the packets to the Internet
mode: rule
Clash by default prints logs to STDOUT
info / warning / error / debug / silent
log-level: info
When set to false, resolver won’t translate hostnames to IPv6 addresses
ipv6: false
RESTful web API listening address
external-controller: 127.0.0.1:9090
A relative path to the configuration directory or an absolute path to a
directory in which you put some static web resource. Clash core will then
serve it at
http://{{external-controller}}/ui.external-ui: folder
Secret for the RESTful API (optional)
Authenticate by spedifying HTTP header
Authorization: Bearer ${secret}ALWAYS set a secret if RESTful API is listening on 0.0.0.0secret: “”
Outbound interface name
interface-name: en0
Static hosts for DNS server and connection establishment (like /etc/hosts)
Wildcard hostnames are supported (e.g. *.clash.dev, .foo..example.com)
Non-wildcard domain names have a higher priority than wildcard domain names
e.g. foo.[...]
Hacking Articles Tips Tricks Videos Tutorials
Kali Linux Tutorials Clash : A Rule-Based Tunnel In Go Clash a rule-based tunnel in Go. Features * Local HTTP/HTTPS/SOCKS server with authentication support * VMess, Shadowsocks, Trojan, Snell protocol support for remote connections * Built-in DNS server…
example.com > .example.com > .example.com P.S. +.foo.com equals to .foo.com and foo.com hosts: clash.dev’: 127.0.0.1 dev’: 127.0.0.1 ‘alpha.clash.dev’: ‘::1’ profile: Store the
localhost.ptlogin2.qq.com
Supports UDP, TCP, DoT, DoH. You can specify the port to connect to.
All DNS questions are sent directly to the nameserver, without proxies
involved. Clash answers the DNS question with the first result gathered.
nameserver:
114.114.114.114 # default value
8.8.8.8 # default value
tls://dns.rubyfish.cn:853 # DNS over TLS
https://1.1.1.1/dns-query # DNS over HTTPS
dhcp://en0 # dns from dhcp
When
to the servers in this section along with servers in
The answers from fallback servers are used when the GEOIP country
is not
fallback:
– tcp://1.1.1.1
If IP addresses resolved with servers in
subnets below, they are considered invalid and results from
IP address resolved with servers in
If
are always used if not match
This is a countermeasure against DNS pollution attacks.
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
– 240.0.0.0/4
domain:
– ‘+.google.com’
– ‘+.facebook.com’
– ‘+.youtube.com’
Lookup domains via specific nameservers
nameserver-policy:
‘www.baidu.com’: ‘114.114.114.114’
‘+.internal.crop.com’: ‘10.0.0.1’
proxies:
# Shadowsocks
# The supported ciphers (encryption methods):
# aes-128-gcm aes-192-gcm aes-256-gcm
# aes-128-cfb aes-192-cfb aes-256-cfb
# aes-128-ctr aes-192-ctr aes-256-ctr
# rc4-md5 chacha20-ietf xchacha20
# chacha20-ietf-poly1305 xchacha20-ietf-poly1305
name: “ss1”
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: “password”
# udp: true
name: “ss2”
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: “password”
plugin: obfs
plugin-opts:
mode: tls # or http
# host: bing.com
name: “ss3”
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: “password”
plugin: v2ray-plugin
plugin-opts:
mode: websocket # no QUIC now
# tls: true # wss
# skip-cert-verify: true
# host: bing.com
# path: “/”
# mux: true
# headers:
# custom: value
vmess
# cipher support auto/aes-128-gcm/chacha20-poly1305/none
name: “vmess”
type: vmess
server: server
port: 443
uuid: uuid
alterId: 32
cipher: auto
# udp: true
# tls: true
# skip-cert-verify: true
# servername: example.com # priority over wss host
# network: ws
# ws-opts:
# path: /path
# headers:
# Host: v2ray.com
# max-early-data: 2048
# early-data-header-name: Sec-WebSocket-Protocol
name: “vmess-h2”
type: vmess
server: server
port: 443
uuid: uuid
alterId: 32
cipher: aut[...]
selectresults in $HOME/.config/clash/.cache set false If you don’t want this behavior when two different configurations have groups with the same name, the selected values are shared store-selected: false DNS server settings This section is optional. When not present, the DNS server will be disabled. dns: enable: false listen: 0.0.0.0:53 ipv6: false # when the false, response to AAAA questions will be empty These nameservers are used to resolve the DNS nameserver hostnames below. Specify IP addresses only default-nameserver: – 114.114.114.114 – 8.8.8.8 enhanced-mode: redir-host # or fake-ip fake-ip-range: 198.18.0.1/16 # Fake IP addresses pool CIDR use-hosts: true # lookup hosts and return IP record Hostnames in this list will not be resolved with fake IPs i.e. questions to these domain names will always be answered with their real IP addresses fake-ip-filter: ‘.lan’localhost.ptlogin2.qq.com
Supports UDP, TCP, DoT, DoH. You can specify the port to connect to.
All DNS questions are sent directly to the nameserver, without proxies
involved. Clash answers the DNS question with the first result gathered.
nameserver:
114.114.114.114 # default value
8.8.8.8 # default value
tls://dns.rubyfish.cn:853 # DNS over TLS
https://1.1.1.1/dns-query # DNS over HTTPS
dhcp://en0 # dns from dhcp
When
fallbackis present, the DNS server will send concurrent requeststo the servers in this section along with servers in
nameservers.The answers from fallback servers are used when the GEOIP country
is not
CN.fallback:
– tcp://1.1.1.1
If IP addresses resolved with servers in
nameserversare in the specifiedsubnets below, they are considered invalid and results from
fallbackservers are used instead.IP address resolved with servers in
nameserveris used when fallback-filter.geoipis true and when GEOIP of the IP address is CN.If
fallback-filter.geoipis false, results from nameservernameserversare always used if not match
fallback-filter.ipcidr.This is a countermeasure against DNS pollution attacks.
fallback-filter:
geoip: true
geoip-code: CN
ipcidr:
– 240.0.0.0/4
domain:
– ‘+.google.com’
– ‘+.facebook.com’
– ‘+.youtube.com’
Lookup domains via specific nameservers
nameserver-policy:
‘www.baidu.com’: ‘114.114.114.114’
‘+.internal.crop.com’: ‘10.0.0.1’
proxies:
# Shadowsocks
# The supported ciphers (encryption methods):
# aes-128-gcm aes-192-gcm aes-256-gcm
# aes-128-cfb aes-192-cfb aes-256-cfb
# aes-128-ctr aes-192-ctr aes-256-ctr
# rc4-md5 chacha20-ietf xchacha20
# chacha20-ietf-poly1305 xchacha20-ietf-poly1305
name: “ss1”
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: “password”
# udp: true
name: “ss2”
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: “password”
plugin: obfs
plugin-opts:
mode: tls # or http
# host: bing.com
name: “ss3”
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: “password”
plugin: v2ray-plugin
plugin-opts:
mode: websocket # no QUIC now
# tls: true # wss
# skip-cert-verify: true
# host: bing.com
# path: “/”
# mux: true
# headers:
# custom: value
vmess
# cipher support auto/aes-128-gcm/chacha20-poly1305/none
name: “vmess”
type: vmess
server: server
port: 443
uuid: uuid
alterId: 32
cipher: auto
# udp: true
# tls: true
# skip-cert-verify: true
# servername: example.com # priority over wss host
# network: ws
# ws-opts:
# path: /path
# headers:
# Host: v2ray.com
# max-early-data: 2048
# early-data-header-name: Sec-WebSocket-Protocol
name: “vmess-h2”
type: vmess
server: server
port: 443
uuid: uuid
alterId: 32
cipher: aut[...]
Hacking Articles Tips Tricks Videos Tutorials
example.com > .example.com > .example.com P.S. +.foo.com equals to .foo.com and foo.com hosts: clash.dev’: 127.0.0.1 dev’: 127.0.0.1 ‘alpha.clash.dev’: ‘::1’ profile: Store the selectresults in $HOME/.config/clash/.cache set false If you don’t want this behavior…
o
network: h2
tls: true
h2-opts:
host:
– http.example.com
– http-alt.example.com
path: /
name: “vmess-http”
type: vmess
server: server
port: 443
uuid: uuid
alterId: 32
cipher: auto
# udp: true
# network: http
# http-opts:
# # method: “GET”
# # path:
# # – ‘/’
# # – ‘/video’
# # headers:
# # Connection:
# # – keep-alive
name: vmess-grpc
server: server
port: 443
type: vmess
uuid: uuid
alterId: 32
cipher: auto
network: grpc
tls: true
servername: example.com
# skip-cert-verify: true
grpc-opts:
grpc-service-name: “example”
socks5
name: “socks”
type: socks5
server: server
port: 443
# username: username
# password: password
# tls: true
# skip-cert-verify: true
# udp: true
http
name: “http”
type: http
server: server
port: 443
# username: username
# password: password
# tls: true # https
# skip-cert-verify: true
# sni: custom.com
Snell
Beware that there’s currently no UDP support yet
name: “snell”
type: snell
server: server
port: 44046
psk: yourpsk
# version: 2
# obfs-opts:
# mode: http # or tls
# host: bing.com
Trojan
name: “trojan”
type: trojan
server: server
port: 443
password: yourpsk
# udp: true
# sni: example.com # aka server name
# alpn:
# – h2
# – http/1.1
# skip-cert-verify: true
name: trojan-grpc
server: server
port: 443
type: trojan
password: “example”
network: grpc
sni: example.com
# skip-cert-verify: true
udp: true
grpc-opts:
grpc-service-name: “example”
ShadowsocksR
# The supported ciphers (encryption methods): all stream ciphers in ss
# The supported obfses:
# plain http_simple http_post
# random_head tls1.2_ticket_auth tls1.2_ticket_fastauth
# The supported supported protocols:
# origin auth_sha1_v4 auth_aes128_md5
# auth_aes128_sha1 auth_chain_a auth_chain_b
name: “ssr”
type: ssr
server: server
port: 443
cipher: chacha20-ietf
password: “password”
obfs: tls1.2_ticket_auth
protocol: auth_sha1_v4
# obfs-param: domain.tld
# protocol-param: “#”
# udp: true
proxy-groups:
# relay chains the proxies. proxies shall not contain a relay. No UDP support.
# Traffic: clash <-http <-vmess <-ss1 <-ss2 <-Internet
name: “relay”
type: relay
proxies:
– http
– vmess
– ss1
– ss2
url-test select which proxy will be used by benchmarking speed to a URL.
name: “auto”
type: url-test
proxies:
– ss1
– ss2
– vmess1
# tolerance: 150
# lazy: true
url: ‘http://www.gstatic.com/generate_204’
interval: 300
fallback selects an available policy by priority. The availability is tested by accessing an URL, just like an auto url-test group.
name: “fallback-auto”
type: fallback
proxies:
– ss1
– ss2
– vmess1
url: ‘http://www.gstatic.com/generate_204’
interval: 300
load-balance: The request of the same eTLD+1 will be dial to the same proxy.
name: “load-balance”
type: load-balance
proxies:
– ss1
– ss2
– vmess1
url: ‘http://www.gstatic.com/generate_204’
interval: 300
# strategy: consistent-hashing # or round-robin
select is used for selecting proxy or proxy group
you can use RESTful API to switch proxy is recommended for use in GUI.
name: Proxy
type: select
# disable-udp: true
proxies:
– ss1
– ss2
– vmess1
– auto
name: UseProvider
type: select
use:
– provider1
proxies:
Proxy
– DIRECT
proxy-providers:
provider1:
type: http
url: “url”
interval: 3600
path: ./provider1.yaml
health-check:
enable: true
interval: 600
# lazy: true
url: http://www.gstatic.com/generate_204
test:
type: file
path: /test.yaml
health-check:
enable: true
interval: 36000
url: http://www.gstatic.com/generate_204
rules:
DOMAIN-SUFFIX,google.com,auto
* DOMAIN-KEYWORD,google,auto
* DOMAIN,google.com,auto
* DOMAIN-SUFFIX,ad.com,REJECT
* SRC-IP-CIDR,192.168.1.201/32,DIRECT
# optional param “no-resolve” for IP rules (GEOIP, IP-CIDR, IP-CIDR6)
* IP-CIDR,127.0.0.0/8,DIRECT
* GEOIP,CN,DIRECT
* DST-PORT,80,DIRECT
* SRC-PORT,7777,DIRECT
* RULE-SET,apple,REJECT # Premium only
* MATCH,auto[...]
network: h2
tls: true
h2-opts:
host:
– http.example.com
– http-alt.example.com
path: /
name: “vmess-http”
type: vmess
server: server
port: 443
uuid: uuid
alterId: 32
cipher: auto
# udp: true
# network: http
# http-opts:
# # method: “GET”
# # path:
# # – ‘/’
# # – ‘/video’
# # headers:
# # Connection:
# # – keep-alive
name: vmess-grpc
server: server
port: 443
type: vmess
uuid: uuid
alterId: 32
cipher: auto
network: grpc
tls: true
servername: example.com
# skip-cert-verify: true
grpc-opts:
grpc-service-name: “example”
socks5
name: “socks”
type: socks5
server: server
port: 443
# username: username
# password: password
# tls: true
# skip-cert-verify: true
# udp: true
http
name: “http”
type: http
server: server
port: 443
# username: username
# password: password
# tls: true # https
# skip-cert-verify: true
# sni: custom.com
Snell
Beware that there’s currently no UDP support yet
name: “snell”
type: snell
server: server
port: 44046
psk: yourpsk
# version: 2
# obfs-opts:
# mode: http # or tls
# host: bing.com
Trojan
name: “trojan”
type: trojan
server: server
port: 443
password: yourpsk
# udp: true
# sni: example.com # aka server name
# alpn:
# – h2
# – http/1.1
# skip-cert-verify: true
name: trojan-grpc
server: server
port: 443
type: trojan
password: “example”
network: grpc
sni: example.com
# skip-cert-verify: true
udp: true
grpc-opts:
grpc-service-name: “example”
ShadowsocksR
# The supported ciphers (encryption methods): all stream ciphers in ss
# The supported obfses:
# plain http_simple http_post
# random_head tls1.2_ticket_auth tls1.2_ticket_fastauth
# The supported supported protocols:
# origin auth_sha1_v4 auth_aes128_md5
# auth_aes128_sha1 auth_chain_a auth_chain_b
name: “ssr”
type: ssr
server: server
port: 443
cipher: chacha20-ietf
password: “password”
obfs: tls1.2_ticket_auth
protocol: auth_sha1_v4
# obfs-param: domain.tld
# protocol-param: “#”
# udp: true
proxy-groups:
# relay chains the proxies. proxies shall not contain a relay. No UDP support.
# Traffic: clash <-http <-vmess <-ss1 <-ss2 <-Internet
name: “relay”
type: relay
proxies:
– http
– vmess
– ss1
– ss2
url-test select which proxy will be used by benchmarking speed to a URL.
name: “auto”
type: url-test
proxies:
– ss1
– ss2
– vmess1
# tolerance: 150
# lazy: true
url: ‘http://www.gstatic.com/generate_204’
interval: 300
fallback selects an available policy by priority. The availability is tested by accessing an URL, just like an auto url-test group.
name: “fallback-auto”
type: fallback
proxies:
– ss1
– ss2
– vmess1
url: ‘http://www.gstatic.com/generate_204’
interval: 300
load-balance: The request of the same eTLD+1 will be dial to the same proxy.
name: “load-balance”
type: load-balance
proxies:
– ss1
– ss2
– vmess1
url: ‘http://www.gstatic.com/generate_204’
interval: 300
# strategy: consistent-hashing # or round-robin
select is used for selecting proxy or proxy group
you can use RESTful API to switch proxy is recommended for use in GUI.
name: Proxy
type: select
# disable-udp: true
proxies:
– ss1
– ss2
– vmess1
– auto
name: UseProvider
type: select
use:
– provider1
proxies:
Proxy
– DIRECT
proxy-providers:
provider1:
type: http
url: “url”
interval: 3600
path: ./provider1.yaml
health-check:
enable: true
interval: 600
# lazy: true
url: http://www.gstatic.com/generate_204
test:
type: file
path: /test.yaml
health-check:
enable: true
interval: 36000
url: http://www.gstatic.com/generate_204
rules:
DOMAIN-SUFFIX,google.com,auto
* DOMAIN-KEYWORD,google,auto
* DOMAIN,google.com,auto
* DOMAIN-SUFFIX,ad.com,REJECT
* SRC-IP-CIDR,192.168.1.201/32,DIRECT
# optional param “no-resolve” for IP rules (GEOIP, IP-CIDR, IP-CIDR6)
* IP-CIDR,127.0.0.0/8,DIRECT
* GEOIP,CN,DIRECT
* DST-PORT,80,DIRECT
* SRC-PORT,7777,DIRECT
* RULE-SET,apple,REJECT # Premium only
* MATCH,auto[...]
Hacking Articles Tips Tricks Videos Tutorials
Photo
Kali Linux Tutorials
DonPAPI : Dumping DPAPI Credz Remotely
DonPAPI is a Dumping DPAPI Credz Remotely.
DPAPI Dumping
Lots of credentials are protected by DPAPI.
We aim at locating those “secured” credentials, and retreive them using :
* User password
* Domaine DPAPI BackupKey
* Local machine DPAPI Key (protecting
Curently gathered info
* Windows credentials (Taskscheduled credentials & a lot more)
* Windows Vaults
* Windows RDP credentials
* AdConnect (still require a manual operation)
* Wifi key
* Intenet explorer Creentials
* Chrome cookies & credentials
* Firefox cookies & credentials
* VNC passwords
* mRemoteNG password (with default config)
Check for a bit of compliance
* SMB signing status
* OS/Domain/Hostname/Ip of the audited scope
Operational use
With local admin account on a host, we can :
* Gather machine protected DPAPI secrets
* ScheduledTask that will contain cleartext login/password of the account configured to run the task
* Wi-Fi passwords
* Extract Masterkey’s hash value for every user profiles (masterkeys beeing protected by the user’s password, let’s try to crack them with Hashcat)
* Identify who is connected from where, in order to identify admin’s personal computers.
* Extract other non-dpapi protected secrets (VNC/Firefox/mRemoteNG)
* Gather protected secrets from IE, Chrome, Firefox and start reaching the Azure tenant.
With a user password, or the domain PVK we can unprotect the user’s DPAPI secrets.
Examples
Dump all secrets of the target machine with an admin account :
DonPAPI.py domain/user:passw0rd@target
Using user’s hash
DonPAPI.py –hashes : domain/user@target
Using kerberos (-k) and local auth (-local_auth)
DonPAPI.py -k domain/user@target
DonPAPI.py -local_auth user@target
Using a user with LAPS password reading rights
DonPAPI.py -laps domain/user:passw0rd@target
It is also possible to provide the tool with a list of credentials that will be tested on the target. DonPAPI will try to use them to decipher masterkeys.
This credential file must have the following syntax:
user1:pass1
user2:pass2
…
DonPAPI.py -credz credz_file.txt domain/user:passw0rd@target
When a domain admin user is available, it is possible to dump the domain backup key using impacket
dpapi.py backupkey –export
This backup key can then be used to dump all domain user’s secrets!
python DonPAPI.py -pvk domain_backupkey.pvk domain/user:passw0rd@domain_network_list
Target can be an IP, IP range, CIDR, file containing list targets (one per line)
Opsec consideration
The RemoteOps part can be spoted by some EDR. It can be disabled using
Installation
git clone https://github.com/login-securite/DonPAPI.git
cd DonPAPI
python3 -m pip install -r requirements.txt
python3 DonPAPI.py
Download
DonPAPI : Dumping DPAPI Credz Remotely
DonPAPI is a Dumping DPAPI Credz Remotely.
DPAPI Dumping
Lots of credentials are protected by DPAPI.
We aim at locating those “secured” credentials, and retreive them using :
* User password
* Domaine DPAPI BackupKey
* Local machine DPAPI Key (protecting
TaskScheduledblob)Curently gathered info
* Windows credentials (Taskscheduled credentials & a lot more)
* Windows Vaults
* Windows RDP credentials
* AdConnect (still require a manual operation)
* Wifi key
* Intenet explorer Creentials
* Chrome cookies & credentials
* Firefox cookies & credentials
* VNC passwords
* mRemoteNG password (with default config)
Check for a bit of compliance
* SMB signing status
* OS/Domain/Hostname/Ip of the audited scope
Operational use
With local admin account on a host, we can :
* Gather machine protected DPAPI secrets
* ScheduledTask that will contain cleartext login/password of the account configured to run the task
* Wi-Fi passwords
* Extract Masterkey’s hash value for every user profiles (masterkeys beeing protected by the user’s password, let’s try to crack them with Hashcat)
* Identify who is connected from where, in order to identify admin’s personal computers.
* Extract other non-dpapi protected secrets (VNC/Firefox/mRemoteNG)
* Gather protected secrets from IE, Chrome, Firefox and start reaching the Azure tenant.
With a user password, or the domain PVK we can unprotect the user’s DPAPI secrets.
Examples
Dump all secrets of the target machine with an admin account :
DonPAPI.py domain/user:passw0rd@target
Using user’s hash
DonPAPI.py –hashes : domain/user@target
Using kerberos (-k) and local auth (-local_auth)
DonPAPI.py -k domain/user@target
DonPAPI.py -local_auth user@target
Using a user with LAPS password reading rights
DonPAPI.py -laps domain/user:passw0rd@target
It is also possible to provide the tool with a list of credentials that will be tested on the target. DonPAPI will try to use them to decipher masterkeys.
This credential file must have the following syntax:
user1:pass1
user2:pass2
…
DonPAPI.py -credz credz_file.txt domain/user:passw0rd@target
When a domain admin user is available, it is possible to dump the domain backup key using impacket
dpapi.pytool.dpapi.py backupkey –export
This backup key can then be used to dump all domain user’s secrets!
python DonPAPI.py -pvk domain_backupkey.pvk domain/user:passw0rd@domain_network_list
Target can be an IP, IP range, CIDR, file containing list targets (one per line)
Opsec consideration
The RemoteOps part can be spoted by some EDR. It can be disabled using
--no_remoteopsflag, but then the machine DPAPI key won’t be retrieved, and scheduled task credentials/Wi-Fi passwords won’t be harvested.Installation
git clone https://github.com/login-securite/DonPAPI.git
cd DonPAPI
python3 -m pip install -r requirements.txt
python3 DonPAPI.py
Download
Hacking Articles Tips Tricks Videos Tutorials
o network: h2 tls: true h2-opts: host: – http.example.com – http-alt.example.com path: / name: “vmess-http” type: vmess server: server port: 443 uuid: uuid alterId: 32 cipher: auto # udp: true # network: http # http-opts: # # method: “GET” # # path: # # –…
Specifying Configuration Directory
If not otherwise specified, Clash by default reads the configuration file at
You can use command-line option
$ clash -d . # current directory
$ clash -d /etc/clash
You can use command-line option
$ clash -f ./config.yaml # current directory
$ clash -f /etc/clash/config.yaml
Syntax
* IPv6 addresses should be wrapped with
* Wildcard characters. Beware any domain with these characters should be wrapped with single-quotes
*
*
The DNS server shipped with Clash aims to minimize DNS pollution attack impact and improve network performance. There are two modes for it to work:
This is more of a traditional way of how proxies work. In this mode, depending on the settings in
The concept of “fake IP” addresses is originated from RFC 3089:
A “fake IP” address is used as a key to look up the corresponding “FQDN” information.
When a DNS request is sent to the DNS server, Clash allocates a free fake IP address in the fake IP address pool, a mapping table that manages mappings between the FQDN and “fake IP” address. Note that the IP addresses in the fake IP address pool should never be used in real communications. The default CIDR for the pool is a reserved IPv4 address space
Clash will then lookup the FQDN and check the GEOIP for the IP address, this is merely for the rules (like GEOIP). When a request to the said, “fake IP” address is sent to Clash, Clash establishes a connection to the FQDN linked with the “fake IP” through a SOCKS5, Shadowsocks (or other protocols) server. Proxy Groups
Proxy Groups are groups of proxies that you can utilize some special features of Clash to manage and make use of.
*
*
*
*
*
If not otherwise specified, Clash by default reads the configuration file at
$HOME/.config/clash/config.yaml. If it doesn’t exist, Clash will generate the default settings.You can use command-line option
-dto specify a configuration directory:$ clash -d . # current directory
$ clash -d /etc/clash
You can use command-line option
-fto specify a configuration:$ clash -f ./config.yaml # current directory
$ clash -f /etc/clash/config.yaml
Syntax
* IPv6 addresses should be wrapped with
[and ]. For example: [aaaa::a8aa:ff:fe09:57d8].* Wildcard characters. Beware any domain with these characters should be wrapped with single-quotes
'.*
*: single-level wildcard character. *.google.commatches www.google.combut not foo.bar.google.com. It is possible to use *.*.*.google.com.*
+: multi-level wildcard character. +.google.commatches google.com, www.google.comand foo.bar.google.com. This works exactly like DOMAIN-SUFFIX. DNSThe DNS server shipped with Clash aims to minimize DNS pollution attack impact and improve network performance. There are two modes for it to work:
redir-hostand fake-ip. The biggest difference between the two is how IP addresses are resolved and how the connections are established. redir-hostThis is more of a traditional way of how proxies work. In this mode, depending on the settings in
dns.nameserver, dns.fallbackand dns.fallback-filter, the destination FQDN are resolved in several different ways. The first result received by Clash DNS module will be sent back to the client. The client can then establish a connection to the said IP address through Clash. fake-ipThe concept of “fake IP” addresses is originated from RFC 3089:
A “fake IP” address is used as a key to look up the corresponding “FQDN” information.
When a DNS request is sent to the DNS server, Clash allocates a free fake IP address in the fake IP address pool, a mapping table that manages mappings between the FQDN and “fake IP” address. Note that the IP addresses in the fake IP address pool should never be used in real communications. The default CIDR for the pool is a reserved IPv4 address space
198.18.0.1/16, which can be changed in dns.fake-ip-range.Clash will then lookup the FQDN and check the GEOIP for the IP address, this is merely for the rules (like GEOIP). When a request to the said, “fake IP” address is sent to Clash, Clash establishes a connection to the FQDN linked with the “fake IP” through a SOCKS5, Shadowsocks (or other protocols) server. Proxy Groups
Proxy Groups are groups of proxies that you can utilize some special features of Clash to manage and make use of.
*
relay: The request sent to this proxy group will be relayed through the specified proxy servers sequently. There’s currently no UDP support on this. The specified proxy servers should not contain another relay.*
url-test: Clash benchmarks each proxy servers in the list, by sending HTTP HEAD requests to a specified URL through these servers periodically. It’s possible to set a maximum tolerance value, benchmarking interval, and the target URL.*
fallback: Clash periodically tests the availability of servers in the list with the same mechanism of url-test. The first available server will be used.*
load-balance: The request to the same eTLD+1 will be dialed with the same proxy.*
select: The first server is by default used when Clash starts up. Users can choose the server to use with the RESTful API. In this mode, you can hardcode servers in the config or use Proxy Providers. Pro[...]
Hacking Articles Tips Tricks Videos Tutorials
Specifying Configuration Directory If not otherwise specified, Clash by default reads the configuration file at $HOME/.config/clash/config.yaml. If it doesn’t exist, Clash will generate the default settings. You can use command-line option -dto specify a…
xy Providers
Proxy Providers give users the power to load proxy server lists dynamically, instead of hardcoding them in the configuration file. There are currently two sources for a proxy provider to load server list from:
*
*
Health check is available for both modes, and works exactly like
#config.yaml
proxy-providers:
provider1:
type: http
url: “url”
interval: 3600
path: ./provider1.yaml
health-check:
enable: true
interval: 600
# lazy: true
url: http://www.gstatic.com/generate_204
test:
type: file
path: /test.yaml
health-check:
enable: true
interval: 36000
url: http://www.gstatic.com/generate_204
test.yaml
proxies:
* name: “ss1”
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: “password”
name: “ss2”
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: “password”
plugin: obfs
plugin-opts:
mode: tls
# ……
Rules
Available keywords:
*
*
*
*
*
*
*
*
*
*
*
There are two additional special policies:
*
*
A policy can be either
Proxy Providers give users the power to load proxy server lists dynamically, instead of hardcoding them in the configuration file. There are currently two sources for a proxy provider to load server list from:
*
http: Clash loads the server list from a specified URL on startup. Clash periodically pulls the server list from remote if the intervaloption is set.*
file: Clash loads the server list from a specified location on the filesystem on startup.Health check is available for both modes, and works exactly like
fallbackin Proxy Groups. The configuration format for the server list files is also exactly the same in the main configuration file:#config.yaml
proxy-providers:
provider1:
type: http
url: “url”
interval: 3600
path: ./provider1.yaml
health-check:
enable: true
interval: 600
# lazy: true
url: http://www.gstatic.com/generate_204
test:
type: file
path: /test.yaml
health-check:
enable: true
interval: 36000
url: http://www.gstatic.com/generate_204
test.yaml
proxies:
* name: “ss1”
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: “password”
name: “ss2”
type: ss
server: server
port: 443
cipher: chacha20-ietf-poly1305
password: “password”
plugin: obfs
plugin-opts:
mode: tls
# ……
Rules
Available keywords:
*
DOMAIN: DOMAIN,www.google.com,policyroutes only www.google.comto policy.*
DOMAIN-SUFFIX: DOMAIN-SUFFIX,youtube.com,policyroutes any FQDN that ends with youtube.com, for example, www.youtube.comor foo.bar.youtube.com, to policy. This works like the wildcard character +.*
DOMAIN-KEYWORD: DOMAIN-KEYWORD,google,policyroutes any FQDN that contains google, for example, www.google.comor googleapis.com, to policy.*
GEOIP: GEOIP,CN,policyroutes any requests to a China IP address to policy.*
IP-CIDR: IP-CIDR,127.0.0.0/8,DIRECTroutes any packets to 127.0.0.0/8to the DIRECTpolicy.*
IP-CIDR6: IP-CIDR6,2620:0:2d0:200::7/32,policyroutes any packets to 2620:0:2d0:200::7/32to policy.*
SRC-IP-CIDR: SRC-IP-CIDR,192.168.1.201/32,DIRECTroutes any packets from 192.168.1.201/32to the DIRECTpolicy.*
SRC-PORT: SRC-PORT,80,policyroutes any packets from the port 80 to policy.*
DST-PORT: DST-PORT,80,policyroutes any packets to the port 80 to policy.*
PROCESS-NAME: PROCESS-NAME,nc,DIRECTroutes the process ncto DIRECT. (support macOS、Linux、FreeBSD and Windows)*
MATCH: MATCH,policyroutes the rest of the packets to policy. This rule is required.There are two additional special policies:
*
DIRECT: directly connects to the target without any proxies involved*
REJECT: a black hole for packets. Clash will not process any I/O to this policy.A policy can be either
DIRECT, REJECT, a proxy group or a proxy server. no-resolve no-resolveis an additional option for GEOIP, IP-CIDR, or IP-CIDR6rules. Append ,no-resolveto these rules to enable. Clash by default translates the domain names to IP addresses when encountering IP rules. Clash skips the IP rules with this option enabled when encountering packets that have an FQDN target. Download
Hacking Articles Tips Tricks Videos Tutorials
Photo
Hacking on Medium
How to use Wireshark to capture and monitor packets?
https://cdn-images-1.medium.com/max/640/0*yBmCjVnTtN797nZa.jpg
In the last article, I had shared after this article you’ll master LAN sniffing. I hope you have tried your hands on the techniques shared…
Continue reading on Medium »
How to use Wireshark to capture and monitor packets?
https://cdn-images-1.medium.com/max/640/0*yBmCjVnTtN797nZa.jpg
In the last article, I had shared after this article you’ll master LAN sniffing. I hope you have tried your hands on the techniques shared…
Continue reading on Medium »
Hacking Articles Tips Tricks Videos Tutorials
Photo
Hacking on Medium
Cybersecurity Bootcamp: How to Protect Yourself Against Devious Phishing Schemes
https://cdn-images-1.medium.com/max/1411/1*62esF3Kc2e2BnmNI4MymUQ.jpeg
Developed from the ProThink Learning Course Cybersecurity Habits Every Employee Should Master
Continue reading on Medium »
Cybersecurity Bootcamp: How to Protect Yourself Against Devious Phishing Schemes
https://cdn-images-1.medium.com/max/1411/1*62esF3Kc2e2BnmNI4MymUQ.jpeg
Developed from the ProThink Learning Course Cybersecurity Habits Every Employee Should Master
Continue reading on Medium »