Quantcast
Channel: 看得透又看得远者prevail.ppt.cc/flUmLx ppt.cc/fqtgqx ppt.cc/fZsXUx ppt.cc/fhWnZx ppt.cc/fnrkVx ppt.cc/f2CBVx
Viewing all 20452 articles
Browse latest View live

關鍵時刻20200401 完整版 美國武肺死亡人數恐上修到24萬 川普真心話:美國面臨「生死存亡」?


27位逝世艺人,多少人还不知道他们的名字?谢谢你们带给我的青春

99%的人沒看過的30張老照片

Linux桌面系统上的全局proxy程序-transocks和KumaSocks

$
0
0
Transparent SOCKS5 proxy in Go。

transocks - a transparent SOCKS5 proxy

transocks is a background service to redirect TCP connections transparently to a SOCKS5 server or a HTTP proxy server like Squid.
Currently, transocks supports only Linux iptables with DNAT/REDIRECT target.https://github.com/cybozu-go/transocks

Features

  • IPv4 and IPv6
    Both IPv4 and IPv6 are supported. Note that nf_conntrack_ipv4 or nf_conntrack_ipv6 kernel modules must be loaded beforehand.
  • SOCKS5 and HTTP proxy (CONNECT)
    We recommend using SOCKS5 server if available. Take a look at our SOCKS server usocksd if you are looking for.
    HTTP proxies often prohibits CONNECT method to make connections to ports other than 443. Make sure your HTTP proxy allows CONNECT to the ports you want.
  • Graceful stop & restart
    • On SIGINT/SIGTERM, transocks stops gracefully.
    • On SIGHUP, transocks restarts gracefully.
  • Library and executable
    transocks comes with a handy executable. You may use the library to create your own.

Install

Use Go 1.7 or better.
go get -u github.com/cybozu-go/transocks/...

Usage

transocks [-h] [-f CONFIG]
The default configuration file path is /etc/transocks.toml.
In addition, transocks implements the common spec from cybozu-go/cmd.
transocks does not have daemon mode. Use systemd to run it as a background service.

Configuration file format

transocks.toml is a TOML file.
proxy_url is mandatory. Other items are optional.
# listening address of transocks.
listen = "localhost:1081" # default is "localhost:1081"

proxy_url = "socks5://10.20.30.40:1080" # for SOCKS5 server
#proxy_url = "http://10.20.30.40:3128" # for HTTP proxy server

[log]
filename = "/path/to/file" # default to stderr
level = "info" # critical", error, warning, info, debug
format = "json" # plain, logfmt, json

Redirecting connections by iptables

Use DNAT or REDIRECT target in OUTPUT chain of the nat table.
Save the following example to a file, then execute: sudo iptables-restore < FILE
*nat
:PREROUTING ACCEPT [0:0]
:INPUT ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
:POSTROUTING ACCEPT [0:0]
:TRANSOCKS - [0:0]
-A OUTPUT -p tcp -j TRANSOCKS
-A TRANSOCKS -d 0.0.0.0/8 -j RETURN
-A TRANSOCKS -d 10.0.0.0/8 -j RETURN
-A TRANSOCKS -d 127.0.0.0/8 -j RETURN
-A TRANSOCKS -d 169.254.0.0/16 -j RETURN
-A TRANSOCKS -d 172.16.0.0/12 -j RETURN
-A TRANSOCKS -d 192.168.0.0/16 -j RETURN
-A TRANSOCKS -d 224.0.0.0/4 -j RETURN
-A TRANSOCKS -d 240.0.0.0/4 -j RETURN
-A TRANSOCKS -p tcp -j REDIRECT --to-ports 1081
COMMIT
Use ip6tables to redirect IPv6 connections.
-----
A light-weighted transparent proxy to socks5 converter written in Golang.

KumaSocks

A light-weighted transparent proxy to socks5 converter written in Golang, inspired by Transocks.

Usage

You should create a file for the config, using the TOML format.
listen-addr = "0.0.0.0:1234"
proxy-addr = "socks5://192.168.1.210:1080"
The default conf file is located at /etc/kumasocks.toml. You can customize it using the -c parameter.
Then you can use iptables redirect to route traffics to KumaSocks, and it will directly route them to the socks5 server. Be aware, there is no encryption. Use at your own risk!
You can refer to this page to find detailed instructions. (Chinese only)

Advanced Usage

When you want to run KumaSocks on some embedded devices, such as routers, you can reduce the size of executables by using following build command.
go build -ldflags "-s -w"
When you want to make KumaSocks more smaller, you can consider to use upx. Here is the command.
upx --best KumaSocks

FAQS

If you have problems with splice in Linux, try to turn on the io-copy-hack option in config file. It will reduce the performance as it is using a custom version of io.Copy without using splice system call.


以下代码以Windows为例。
首先设置GOPATH环境变量。
打开cmd窗口,切换到你的GOPATH目录。
go get github.com/xsm1997/KumaSocks
cd src\github.com\xsm1997\KumaSocks
SET GOOS=linux
SET GOARCH=mipsle
go build
linux下的编译命令为:
go get github.com/xsm1997/KumaSocks
cd src/github.com/xsm1997/KumaSocks
GOOS=linux GOARCH=mipsle go build
(0619更新)若路由器的储存空间吃紧,可以用以下命令替换上述命令中的go build
go build -ldflags "-s -w"
如果体积还是大,就要祭出我们的神器upx!
upx --best KumaSocks
实测可以把KumaSocks压缩到700k左右,而且没有显著的性能问题。
在目录下,找到linux可执行文件KumaSocks.

proxyMyPhone

$
0
0
Make smart phone go through socks proxy, by serving pac。

Some Android and iOS allow you to configure only HTTP proxy, which can't proxy many apps.
This script makes it possible to configure socks/http proxy. (This script doesn't provide proxy)
No root or JB require. No need to install any app on phone.
Requires python on PC.

How it works

This Script runs a PAC server (HTTP server) on PC. It generates and serves a PAC file that tells your phone (or other devices) to go through the socks/http proxy your PC is serving.
You need to manually type the PAC address in phone's network setting.

Usage

Run this command on PC:
python proxymyphone.py 
Then it will give you an address. On your phone's wifi setting layout, set proxy to "auto" and type the address in.

Other ways

Android

iOS


kalitorify

$
0
0
Transparent proxy through Tor for Kali Linux OS.


About kalitorify

kalitorify is a shell script for Kali Linux which use iptables settings to create a Transparent Proxy through the Tor Network, the program also allows you to perform various checks like checking the Tor Exit Node (i.e. your public IP when you are under Tor proxy), or if Tor has been configured correctly checking service and network settings.
In simple terms, with kalitorify you can redirect all traffic of your Kali Linux operating system through the Tor Network.

What is Tor?

if you don't know the Tor Network and the Tor Project (but even if you know them), I suggest you read the information from here:
Tor Anonimity Network on Wikipedia
Tor Project Website

What is Transparent Proxy through Tor?

Transparent proxy is an intermediary system that sit between a user and a content provider. When a user makes a request to a web server, the transparent proxy intercepts the request to perform various actions including caching, redirection and authentication.
alt text
Transparent proxy via Tor means that every network application will make its TCP connections through Tor; no application will be able to reveal your IP address by connecting directly.
For more information about the Transparent Proxy through Tor please read the Tor project wiki

Install

Install dependencies:

sudo apt update && sudo apt full-upgrade -y

sudo apt install tor -y

Install kalitorify:

git clone https://github.com/brainfucksec/kalitorify

cd kalitorify/

sudo make install

Security

Please read this section carefully before starting kalitorify

kalitorify is produced independently from the Tor anonimity software and carries no guarantee from the Tor Project about quality, suitability or anything else, please read these documents to know how to use the Tor network safely:
kalitorify is a bash script to start a transparent proxy through Tor to be used for a safe navigation during communications, searches or other activities with Kali Linux, but does not guarantee 100% anonymity.
About Transparent Torification, please read Transparent Proxy Leaks (mostly Microsoft Windows related) and/or consider an Isolating Proxy as alternative. See Whonix for a complete, ready-made VM based solution (alternatively using multiple physical computers) built around the Isolating Proxy and Transparent Proxy Anonymizing Middlebox design.

Hostname and MAC Address security risks

Applications can still learn your computer's hostname, MAC address, serial number, timezone, etc. and those with root privileges can disable the firewall entirely. In other words, transparent torification with iptables protects against accidental connections and DNS leaks by misconfigured software, it is not sufficient to protect against malware or software with serious security vulnerabilities.
Before run kalitorify you should change at least the hostname and the MAC address:

Transparent Proxy with kalitorify and Tor Browser

Don't start Tor Browser when transparent browsing (kalitorify) is active, this to avoid Tor over Tor Scenarios.

Checking for leaks

After starting kalitorify you can use tcpdump to check if there are any internet activity other the Tor:
First, get your network interface:
ip -o addr
or
tcpdump -D
We'll assume its eth0.
Next you need to identify the Tor guard IP, you can use ssnetstat or GETINFO entry-guards through the tor controller to identify the guard IP.
Example with ss:
ss -ntp | grep "$(cat /var/run/tor/tor.pid)"
With the interface and guard IP at hand, we can now use tcpdump to check for possible non-tor leaks. Replace IP.TO.TOR.GUARD with the IP you got from the ss output.
tcpdump -n -f -p -i eth0 not arp and not host IP.TO.TOR.GUARD
You are not supposed to see any output other than the first two header lines. You can remove and not host IP to see how it would look like otherwise.

Usage

This program was created for the Kali Linux operating system, don't run on other Linux distributions if you're not sure what you're doing.
Please, before starting kalitorify make sure you have read the section about Security.
Before starting the program make sure to disable your firewall.
Using the program is simple, the command-line options follow the GNU Coding Standards, you can use the short and long options, the commands syntax is:
--
For example, to display the help menù, run command kalitorify with the --help or -h option:
kalitorify -h
The available commands are listed below:
kalitorify [option]

Options:

-h, --help
show this help message and exit
-t, --tor
start transparent proxy through tor
-c, --clearnet
reset iptables and return to clearnet navigation
-s, --status
check status of program and services
-i, --ipinfo
show public IP
-r, --restart
restart tor service and change IP

Demo

asciicast

Credits

进行MITM attacks.的工具bettercap

$
0
0
The Swiss Army knife for 802.11, BLE and Ethernet networks reconnaissance and MITM attacks

bettercap is a powerful, easily extensible and portable framework written in Go which aims to offer to security researchers, red teamers and reverse engineers an easy to useall-in-one solution with all the features they might possibly need for performing reconnaissance and attacking WiFi networks, Bluetooth Low Energy devices, wireless HID devices and Ethernet networks.

Main Features

  • WiFi networks scanning, deauthentication attackclientless PMKID association attack and automatic WPA/WPA2 client handshakes capture.
  • Bluetooth Low Energy devices scanning, characteristics enumeration, reading and writing.
  • 2.4Ghz wireless devices scanning and MouseJacking attacks with over-the-air HID frames injection (with DuckyScript support).
  • Passive and active IP network hosts probing and recon.
  • ARP, DNS and DHCPv6 spoofers for MITM attacks on IP based networks.
  • Proxies at packet level, TCP level and HTTP/HTTPS application level fully scriptable with easy to implement javascript plugins.
  • A powerful network sniffer for credentials harvesting which can also be used as a network protocol fuzzer.
  • A very fast port scanner.
  • A powerful REST API with support for asynchronous events notification on websocket to orchestrate your attacks easily.
  • A very convenient web UI.
  • More!

About the 1.x Legacy Version

While the first version (up to 1.6.2) of bettercap was implemented in Ruby and only offered basic MITM, sniffing and proxying capabilities, the 2.x is a complete reimplementation using the Go programming language.
This ground-up rewrite offered several advantages:
  • bettercap can now be distributed as a single binary with very few dependencies, for basically any OS and any architecture.
  • 1.x proxies, although highly optimized and event based, used to bottleneck the entire network when performing a MITM attack, while the new version adds almost no overhead.
  • Due to such performance and functional limitations, most of the features that the 2.x version is offering were simply impossible to implement properly (read as: without killing the entire network ... or your computer).
For this reason, any version prior to 2.x is considered deprecated and any type of support has been dropped in favor of the new implementation. An archived copy of the legacy documentation is available here, however it is strongly suggested to upgrade.

Documentation and Examples

The project is documented here.

Linux桌面系统的Transparent proxy support

$
0
0


This feature adds Linux 2.2-like transparent proxy support to current kernels.
To use it, enable the socket match and the TPROXY target in your kernel config.
You will need policy routing too, so be sure to enable that as well.

From Linux 4.18 transparent proxy support is also available in nf_tables.

1. Making non-local sockets work
================================

The idea is that you identify packets with destination address matching a local
socket on your box, set the packet mark to a certain value:

# iptables -t mangle -N DIVERT
# iptables -t mangle -A PREROUTING -p tcp -m socket -j DIVERT
# iptables -t mangle -A DIVERT -j MARK --set-mark 1
# iptables -t mangle -A DIVERT -j ACCEPT

Alternatively you can do this in nft with the following commands:

# nft add table filter
# nft add chain filter divert "{ type filter hook prerouting priority -150; }"
# nft add rule filter divert meta l4proto tcp socket transparent 1 meta mark set 1 accept

And then match on that value using policy routing to have those packets
delivered locally:

# ip rule add fwmark 1 lookup 100
# ip route add local 0.0.0.0/0 dev lo table 100

Because of certain restrictions in the IPv4 routing output code you'll have to
modify your application to allow it to send datagrams _from_ non-local IP
addresses. All you have to do is enable the (SOL_IP, IP_TRANSPARENT) socket
option before calling bind:

fd = socket(AF_INET, SOCK_STREAM, 0);
/* - 8< -*/
int value = 1;
setsockopt(fd, SOL_IP, IP_TRANSPARENT, &value, sizeof(value));
/* - 8< -*/
name.sin_family = AF_INET;
name.sin_port = htons(0xCAFE);
name.sin_addr.s_addr = htonl(0xDEADBEEF);
bind(fd, &name, sizeof(name));

A trivial patch for netcat is available here:
http://people.netfilter.org/hidden/tproxy/netcat-ip_transparent-support.patch


2. Redirecting traffic
======================

Transparent proxying often involves "intercepting" traffic on a router. This is
usually done with the iptables REDIRECT target; however, there are serious
limitations of that method. One of the major issues is that it actually
modifies the packets to change the destination address -- which might not be
acceptable in certain situations. (Think of proxying UDP for example: you won't
be able to find out the original destination address. Even in case of TCP
getting the original destination address is racy.)

The 'TPROXY' target provides similar functionality without relying on NAT. Simply
add rules like this to the iptables ruleset above:

# iptables -t mangle -A PREROUTING -p tcp --dport 80 -j TPROXY \
--tproxy-mark 0x1/0x1 --on-port 50080

Or the following rule to nft:

# nft add rule filter divert tcp dport 80 tproxy to :50080 meta mark set 1 accept

Note that for this to work you'll have to modify the proxy to enable (SOL_IP,
IP_TRANSPARENT) for the listening socket.

As an example implementation, tcprdr is available here:
https://git.breakpoint.cc/cgit/fw/tcprdr.git/
This tool is written by Florian Westphal and it was used for testing during the
nf_tables implementation.

3. Iptables and nf_tables extensions
====================================

To use tproxy you'll need to have the following modules compiled for iptables:
- NETFILTER_XT_MATCH_SOCKET
- NETFILTER_XT_TARGET_TPROXY

Or the floowing modules for nf_tables:
- NFT_SOCKET
- NFT_TPROXY

4. Application support
======================

4.1. Squid
----------

Squid 3.HEAD has support built-in. To use it, pass
'--enable-linux-netfilter' to configure and set the 'tproxy' option on
the HTTP listener you redirect traffic to with the TPROXY iptables
target.

For more information please consult the following page on the Squid
wiki: http://wiki.squid-cache.org/Features/Tproxy4

frm https://www.kernel.org/doc/Documentation/networking/tproxy.txt

Linux桌面系统上的基于Tor 的透明Proxy

$
0
0
透明Proxy就是全局Proxy。
Tor Transparent Proxy。


TorTP changes the local iptables configuration in order to force all TCP traffic through Tor (and also UDP DNS requests). Other network traffic which is not capable of passing through Tor (such as UDP or ICMP) it is just dropped.
TorTP is based on stem, a python library which makes easier to enable embedded Transparen Proxy and DNS server capabilities in Tor.

HowTo install:

Add freepto repository:
$ cat deb.gpg | apt-key add -
$ echo "deb http://deb.freepto.mx/freeptorepo berenjena main"> /etc/apt/sources.list.d/freepto.list
Install:
sudo apt-get install tortp python-tortp
Enable Tor Control Port:
sed -i 's/#ControlPort 9051/ControlPort 9051/' /etc/tor/torrc
Install GUI (optional):
apt-get install tortp-gtk

HowTo use TorTP:

cli

$ sudo tortp -h
$ man tortp


一个基于Go的phishing工具muraena

$
0
0

Muraena is an almost-transparent reverse proxy aimed at automating phishing and post-phishing activities.
The tool re-implements the 15-years old idea of using a custom reverse proxy to dynamically interact with the origin to be targeted, rather than maintaining and serving static pages.
Written in Go, Muraena does not use slow-regexes to do replacement magic, and embeds a crawler (Colly) that helps determining in advance which resource should be proxied.
Muraena does the bare minimum to grep/replace origins in request/responses: this means that for complex origins extra manual analysis might be required to tune the auto-generated JSON configuration file. Hence, do not expect the reverse proxy to work straight out of the box for complex origins.
The config folder has some examples of custom replacements needed on complex origins likes GSuite, Dropbox, GitHub and others.

Documentation

The project is documented in the Wiki here.

Contributing

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request 🤩
See the list of contributors who participated in this project.

Linux桌面系统的IITG Transparent Proxy

$
0
0
A bunch of Linux applications without the requirement of a per-app proxy setting.

IITG Transparent Proxy would like to thank the following for their contributions:
(Past, present and future) Users, Testers and Debuggers
Redsocks (http://darkk.net.ru/redsocks/) - an opensource transparent socks redirector that wouldn't work by itself in IITG.
ProxyDroid (http://code.google.com/p/proxydroid/) - the open source android app that worked and showed how it can be done.
Mini fake DNS server (http://code.activestate.com/recipes/491264-mini-fake-dns-server/) - a small fake dns server conforming to protocol.
Me (Suhail Sherif) and Ajaykumar Kannan - for developing it.
iptables - for being so awesome.

TODO - Removing cache entries, Licensing, GUI, packaging and Improvements (Includes analysis of the working of the IITG DNS)

HOWTO:
(Most of these commands may need superuser priveleges)

The easy way (aka the noob way :D)
./easyStart.sh to start the transparent proxy and ./easyStop.sh to stop the proxy. You can edit easyStart.sh if you don't want to enter the proxy details each time.I've included an example.

The more difficult way:
One-time : In the redsocks folder, "make" to get the executable. If make fails, you will need to compile libevent. I've included the tar file for it. Or you can download it online.
Run the following:
./script start
sudo python fakeDNS.py
(defaultIPs has some domains and ip addresses that you might want to have preconfigured)
sh redsocksConfig.sh
(username and password are optional. You can edit this file to make it prompt you for the username and password if you don't like your credentials in plaintext in your history. And have it delete the redsocksauto.conf that it creates in the redsocks folder.)

To stop:
Run sh script stop
(Optionally) stop fakeDNS and redsocks.

IMPORTANT:
Edit /etc/resolv.conf and add a line 'nameserver 127.0.0.1' at the top. Or add 127.0.0.1 to your DNS serverlist. The former seems cooler.

Beware! Non-authentic DNS servers can be used VERY convincingly for phishing. Make sure you are in control of your configuration.

frm https://github.com/suhailsherif/IITG-Transparent-Proxy

Linux桌面系统上的能修改TCP traffic的全局proxy程序trudy

$
0
0
A transparent proxy that can modify and drop traffic for arbitrary TCP connections.

Trudy is a transparent proxy that can modify and drop traffic for arbitrary TCP connections. Trudy can be used to programmatically modify TCP traffic for proxy-unaware clients. Trudy creates a 2-way "pipe" for each connection it proxies. The device you are proxying (the "client") connects to Trudy (but doesn't know this) and Trudy connects to the client's intended destination (the "server"). Traffic is then passed between these pipes. Users can create Go functions to mangle data between pipes. See it in action! For a practical overview, check out @tsusanka's very good blog post on using Trudy to analyze Telegram's MTProto.
Trudy can also proxy TLS connections. Obviously, you will need a valid certificate or a client that does not validate certificates.
Trudy was designed for monitoring and modifying proxy-unaware devices that use non-HTTP protocols. If you want to monitor, intercept, and modify HTTP traffic, Burp Suite is probably the better option.

Author

Written by Kelby Ludwig (@kelbyludwig)

Why I Built This

I have done security research that involved sitting between a embedded device and a server and modifying some custom binary protocol on the fly. This usually is a slow process that involves sniffing legitimate traffic, and then rebuilding packets programmatically. Trudy enables Burp-like features for generalized TCP traffic.

Simple Setup

  1. Configure a virtual machine (Trudy has been tested on a 64-bit Debian 8 VM) to shove all traffic through Trudy. I personally use a Vagrant VM that sets this up for me. The Vagrant VM is available here. If you would like to use different --to-ports values, you can use Trudy's command line flags to change Trudy's listening ports.
    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 8888 -m tcp -j REDIRECT --to-ports 8080
    iptables -t nat -A PREROUTING -i eth1 -p tcp --dport 443 -m tcp -j REDIRECT --to-ports 6443
    iptables -t nat -A PREROUTING -i eth1 -p tcp -m tcp -j REDIRECT --to-ports 6666
    ip route del 0/0
    route add default gw 192.168.1.1 dev eth1
    sysctl -w net.ipv4.ip_forward=1
  2. Clone the repo on the virtual machine and build the Trudy binary.
    git clone https://github.com/kelbyludwig/trudy.git
    cd trudy
    go install
  3. Run the Trudy binary as root. This starts the listeners. If you ran the iptables commands above, iptables will forward traffic destined for port 443 to port 6443. Trudy listens on this port and expects traffic coming into this port to be TLS. All other TCP connections will be forwarded through port 6666.
    sudo $GOPATH/bin/trudy
  4. Setup your host machine to use the virtual machine as its router. You should see connections being made in Trudy's console but not notice any traffic issues on the host machine (except TLS errors).
  5. In order to manipulate data, just implement whatever functions you might need within the module package. The default implementations for these functions are hands-off, so if they do not make sense for your situation, feel free to leave them as they are. More detailed documentation is in the module package and the data flow is detailed below.
  6. To access the interceptor, visit http://:8888/ in your web browser. The only gotcha here is you must visit the interceptor after starting Trudy but before Trudy receives a packet that it wants to intercept.


Wilma

$
0
0
Service Virtualization Solution – a combined Service Stub and Transparent Proxy.

Wilma is a Service Virtualization tool, that combines the capabilities of a Service Stub and a HTTP/HTTPS Transparent Proxy. Its main purpose is to support development and testing applications/services/components those functionality relies/depends on another application/services/components that can be owned by you or can be owned by 3rd party as well. The selected architecture approach makes it capable to use it in unit, integration, functional, end-to-end, performance test environments and environments those contains microservices. It can be used for manual tests too. It is expandable easily via plugins and configurable on-the-fly. It is written in Java, and the solution consists of two standalone applications:
  • Wilma application is the highly configurable Service Virtualization tool
  • Wilma Message Search application (optional component) provides high performance searching capability of the request-response pairs that were logged by Wilma application.

Quick intro for end users

Wilma application

Requirements

  • JRE 8 (pls use earlier Wilma releases than V1.6.x when you need to use Java 7 version)
  • The latest release of Wilma application downloaded and extracted into a folder.

Configuring Components/Services to use Wilma

The most simple way to do this is by configuring the Component/Service to use Wilma as HTTP(S) proxy. In case of Java components/services, this can be done by adding a few VM arguments to the run configuration:
JAVA_PROXY_FLAGS=-Dhttp.proxyHost=[wilma-url] -Dhttp.proxyPort=[wilma-proxy-port] -Dhttps.proxyHost=[wilma-url] -Dhttps.proxyPort=[wilma-proxy-port]
java ${JAVA_PROXY_FLAGS} ...

Configure and run Wilma

To run Wilma with simplest configuration, just download the release, extract it and run: java -jar wilma-x.y.z.jar wilma.conf.properties
See this page for more detailed information on how to configure Wilma, and Component/Service that uses Wilma.

Docker Image of Wilma

  • Docker image of Wilma is available on DockerHub, see details here

Contact, questions and answers

In order to get the latest news, follow this project on GitHub. The latest documentation can be found at http://epam.github.io/Wilma/. Feel free to seek for assistance/advise, or discuss usage scenarios by submitting new Issue on GitHub or by joining to wilma-users mailing list.

Wilma Message Search application

  • Running Wilma Message Search application is optional, Wilma itself does not require it.
  • This optional component just makes your life easier in case you would like to run quick searches on the messages logged by Wilma.
  • To run Wilma Message Search application, java JDK must be used. With JRE, it will not work properly.
  • Docker image of combined Wilma and Wilma Message Search application is available on DockerHub, see details here

Requirements

  • JDK 8 (pls use earlier Wilma releases than V1.6.x when you need to use Java 7 version)
  • The latest release of Wilma Message Search application downloaded and extracted into a folder.

Running

java -jar wilma-message-search-x.y.z.jar message.search.conf.properties

Quick intro for developers/contributors

There are several ways you can help us:
  • Raise an issue. Have you found something that does not work as expected? Let us know about it.
  • Suggest a feature by submitting an issue or by sending an e-mail to us. It's even better if you come up with a new feature and write us about it.
  • Write some code. We would love to see pull requests to this tool. Feel free to contribute (send pull request) on GitHub.

Advised working environment

  • Java JDK 8
  • IntelliJ / Eclipse
  • Gradle, Checkstyle, Git Integration for the IDE

Building with Gradle

The project can be built by following the instructions described here. This way of build is recommended for contributors only, End-Users, please use the pre-built downloadable releases from here, or use the docker image.
Build Status Quality Gate Status

Detailed information

---

Wilma - a combined Universal Stub and Transparent Proxy

Wilma is a Service Virtualization tool, that combines the capabilities of a Service Stub and a HTTP/HTTPS Transparent Proxy. Its main purpose is to support development and testing applications/services/components those functionality relies/depends on another - usually 3rd party - service or services. The selected architecture approach makes it capable to use it in performance test environment and environment that contains microservices. It is written in Java, and the solution consists of two standalone applications:
  • Wilma application
  • Wilma Message Search application
Wilma application is the highly configurable Service Virtualization tool. It logs the messages, and meanwhile acts as a proxy between the components, makes it possible to stub responses based on configuration defined in XML file(s). It is also possible to alter/modify the messages, real-time. It is designed for use in development and test environments where test automation is in use (unit, integration, functional or end-to-end). Also can be used for manual tests. It is expandable easily via plugins.
Wilma Message Search application provides high performance searching of the request-response pairs those were logged by Wilma application.

Detailed information

starttls-mitm

$
0
0
A starttls-capable transparent man-in-the-middle proxy。

starttls-mitm is a mitm proxy that will transparently proxy and dump
both plaintext and TLS traffic
. It uses a user-provided keyfile and
certificate file to impersonate remote servers. The user must
explicitly instruct the device being man-in-the-middled to trust this
certificate authority -- so this is not a security compromise.

It starts out relaying in plaintext, peeking at each packet for a
ClientHello header, at which point it converts the sockets to TLS.
This makes it suitable for proxying protocols that use STARTTLS
(plaintext handshake + SSL upgrade). It's only been tested on XMPP so
far, but it should theoretically work for IMAP and others as well.

frm https://github.com/ipopov/starttls-mitm

Linux桌面系统上的全局proxy程序JellyAP

$
0
0
Create a WiFi AP with transparent proxy quickly。

The name

I love jellyfish.
And it is almost transparent. 

Usage

git clone https://github.com/7sDream/jellyap
cd jellyap
chmod 755 jellyap.sh
./jellyap.sh
will let you into a wizard:
Or if you already know what network interface should be used, run this:
./jellyap.sh eth0 wlan0 NAME PASSWORD no
The 5th argument no means don't enable shadowsocks relay, you can turn on it by value yes

Enable shadowsocks transparent proxy

With wizard:
With arguments:
Argument order:
WAN LAN AP_NAME AP_PASSWORD yes SS_ADDR SS_PORT SS_PASSWORD SS_METHOD SS_LOCAL_PORT

Connection test

You see, just connect the WiFi we create, without any configure or other apps, we already behind a transparent proxy.
Speed depends on your shadowsocks connection and local network quality, in my test, it can run out of all my WAN bandwidth
My test machines:
  • Shadowsocks server: 1 CPU, 500M RAM, 1000M Bandwidth, DightalOcean, SGP
  • Local shadowsocks client: i7-4500U, 8G RAM, 10M Bandwidth, TianJin, China
  • WiFi client: Oneplus 3, Android 7.1.1, OxygenOS
Result:

Dependencies

  • hostapd
  • dnsmasq
  • nmcli (network-manager)
  • rfkill (rfkill)
  • ip (iproute2)
  • iptables
  • shadowsocks-libev (if enable shadowsocks relay, AP as a transparent proxy)
  • run as root

Configure

just open jellyap.sh, find the [User configure] section(line 24).
read the comment and you know how to configure this script.

Linux桌面系统上的基于rust的全局proxy程序moproxy

$
0
0
A transparent TCP to SOCKSv5/HTTP proxy on Linux desktop os written in Rust.

Features:
  • Transparent TCP proxy with iptables -j REDIRECT
  • Support multiple SOCKSv5/HTTP backend proxy servers
  • SOCKS/HTTP-layer alive & latency probe
  • Prioritize backend servers according to latency
  • Full IPv6 support
  • Multiple listen ports, each for a subset of proxy servers
  • Remote DNS resolving for TLS with SNI (extract domain name from TLS handshaking)
  • Optional try-in-parallel for TLS (try multiple proxies and choose the one first response)
  • Optional status web page (latency, traffic, etc. w/ curl-friendly output)
  • Optional Graphite support (to build fancy dashboard with Grafana for example)
  • Customizable proxy selection algorithm with Lua script (see conf/simple_scroe.lua).
+------+  TCP  +----------+       SOCKSv5   +---------+
| Apps +------>+ iptables | +------------> Proxy 1 |
+------+ +----+-----+ | +---------+
redirect | |
to v | HTTP +---------+
+----+----+ | +--------> Proxy 2 |
| +-----+ | +---------+
| moproxy |---------+ :
| +------------... :
+---------+ choose one | +---------+
I'M HERE +---> Proxy N |
+---------+

Usage

Print usage

moproxy --help

Examples

Assume there are three SOCKSv5 servers on localhost:2001localhost:2002, and localhost:2003, and two HTTP proxy servers listen on localhost:3128 and 192.0.2.0:3128. Following commands forward all TCP connections that connect to 80 and 443 to these proxy servers.
moproxy --port 2080 --socks5 2001 2002 2003 --http 3128 192.0.2.0:3128

# redirect local-initiated connections
iptables -t nat -A OUTPUT -p tcp -m multiport --dports 80,443 -j REDIRECT --to-port 2080
# redirect connections initiated by other hosts (if you are router)
iptables -t nat -A PREROUTING -p tcp -m multiport --dports 80,443 -j REDIRECT --to-port 2080

# or the nft equivalent
nft add rule nat output tcp dport {80, 443} redirect to 2080
nft add rule nat prerouting tcp dport {80, 443} redirect to 2080

Server list file

You may list all proxy servers in a text file to avoid messy CLI arguments.
[server-1]
address=127.0.0.1:2001 ;required
protocol=socks5 ;required

[server-2]
address=127.0.0.1:2002
protocol=http
test dns=127.0.0.53:53 ;use remote's local dns server to caculate delay
listen ports=8001

[server-3]
address=127.0.0.1:2003
protocol=http
; server-3 serves for port 8001 & 8002, while server-2 is only for
; port 8001. server-1 accepts connections coming from any ports specified
; by CLI argument --port.
listen ports=8001,8002

[backup]
address=127.0.0.1:2002
protocol=socks5
score base=5000 ;add 5k to pull away from preferred server.
Pass the file path to moproxy via --list argument.
Signal SIGHUP will trigger the program to reload the list.

Install

You may download the binary executable file on releases page.
Arch Linux user can install it from AUR/moproxy.
Or compile it manually:
# Install Rust
curl https://sh.rustup.rs -sSf | sh

# Clone source code
git clone https://github.com/sorz/moproxy
cd moproxy

# Build
cargo build --release
target/release/moproxy --help

# If you are in Debian
cargo install cargo-deb
cargo deb
sudo dpkg -i target/debian/*.deb
moproxy --help
Refer to conf/ for config & systemd service files.

紐約發生威脅槍殺華人事件 FBI介入調查,海外華人最終會成為種族歧視受害者

年代向錢看 美國肺炎疫情宛如珍珠港事件

中共趁火打劫,訛詐法國,想用10億口罩換華為进入法国市场,美國戰略資源加緊脫鉤中共

Redundis

$
0
0
Redis high-availability cluster using Sentinel to transparently proxy connections to the active primary member  - with full redis capability.

Redundis is a smart, sentinel aware proxy for redis that allows redis clients to not care about failover of the redis master node.
Connections are automatically forwarded to the master redis node, and when the master node fails over, clients are disconnected and reconnected to the new master node.

Status

Complete/Stable

Quickstart

cd $GOPATH

go get -u -v github.com/nanopack/redundis/

Simply run redundis to start redundis with the default settings or redundis -c config.json to use config from a file.

Config

Redundis can be configured via a config file, or command line flags. Any configuration in a specified config file will overwrite any cli flags.

Config Flags

redundis -h will show usage and a list of flags:
redundis redis-proxy

Usage:
redundis [flags]

Flags:
-c, --config-file="": Config file location for redundis
-l, --listen-address="127.0.0.1:6379": Redundis listen address
-L, --log-level="info": Log level [fatal, error, info, debug, trace]
-t, --master-wait=30: Time to wait for node to transition to master (seconds)
-m, --monitor-name="test": Name of sentinel monitor
-r, --ready-wait=30: Time to wait to connect to redis|sentinel (seconds)
-s, --sentinel-address="127.0.0.1:26379": Address of sentinel node
-p, --sentinel-password="": Sentinel password
-w, --sentinel-wait=10: Time to wait for sentinel to respond (seconds)

Config File

You can specify a config file by using redundis -c config.json
{
"listen-address": "127.0.0.1:6379",
"sentinel-address": "127.0.0.1:26379",
"sentinel-password": "",
"monitor-name": "test",
"master-wait": 30,
"ready-wait": 30,
"sentinel-wait": 10,
"log-level": "info"
}

Redis Setup

Each redis node will be configured as follows:
+----------+
| redis | - redis-server running on port 6380 with sentinel configured
| sentinel | - sentinel configured and started (default listen port of 26379)
| redundis | - proxies incoming connections to master redis (determined by talking to local sentinel)
| flip* | - manages cluster vip that users connect to
+----------+
* = optional

Limitations

Currently, only connecting to one sentinel is supported. It could be extended in the future to connect to a different sentinel incase of sentinel failure, but right now this is not needed.
frm https://github.com/nanopack/redundis
Viewing all 20452 articles
Browse latest View live


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