Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

usb storage #315

Open
wants to merge 19 commits into
base: master
Choose a base branch
from
134 changes: 55 additions & 79 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,78 +1,77 @@
SHELL := /bin/bash
PATH := /usr/local/go/bin:$(PATH)
#PATH := /usr/local/go/bin:$(PATH)

all: compile

test:
# export PATH="$$PATH:/usr/local/go/bin" # put into ~/.profile
echo $(CURDIR)
echo $(HOME)
echo $(pwd)
echo $HOME

# make dep runs without sudo
# stay in $HOME/P4wnP1
# ONLY RUN -------- make dep / make compile / sudo make installkali
dep:
sudo apt-get -y install git screen hostapd autossh bluez bluez-tools bridge-utils policykit-1 genisoimage iodine haveged
sudo apt-get -y install tcpdump
sudo apt-get -y install python-pip python-dev

# before installing dnsmasq, the nameserver from /etc/resolv.conf should be saved
# to restore after install (gets overwritten by dnsmasq package)
# Disable GUI Login
sudo systemctl set-default multi-user.target
## Disabling ipv6 for me makes repos work faster
echo -e "net.ipv6.conf.all.disable_ipv6 = 1\nnet.ipv6.conf.default.disable_ipv6 = 1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
sudo apt-get update
sudo apt-get -y install git screen hostapd autossh bluez bluez-tools bridge-utils policykit-1 genisoimage iodine haveged tcpdump

sudo apt-get -y install python3-pip python3-dev

# before installing dnsmasq, the nameserver from /etc/resolv.conf should be saved
# to restore after install (gets overwritten by dnsmasq package)
cp /etc/resolv.conf /tmp/backup_resolv.conf
sudo apt-get -y install dnsmasq
sudo /bin/bash -c 'cat /tmp/backup_resolv.conf > /etc/resolv.conf'

# get the correct webapp.js
wget -q "https://raw.githubusercontent.com/lgeekjopt/P4wnP1_aloa/master/webapp.js" -O webapp.js

sudo apt-get -y install dhcpcd5

# python dependencies for HIDbackdoor
# python dependencies for HIDbackdoor
sudo pip install pycrypto # already present on stretch
sudo pip install pydispatcher

# install go
wget https://storage.googleapis.com/golang/go1.10.linux-armv6l.tar.gz
sudo tar -C /usr/local -xzf go1.10.linux-armv6l.tar.gz
# sudo pip install pydispatcher #already present

export PATH="$$PATH:/usr/local/go/bin"
sudo apt-get -y install golang-go

# put into ~/.profile
# ToDo: check if already present
echo "export PATH=\$$PATH:/usr/local/go/bin" >> ~/.profile
sudo bash -c 'echo export PATH=\$$PATH:/usr/local/go/bin >> ~/.profile'
# put into ~/.profile
# ToDo: check if already present
# echo "export PATH=\$$PATH:/usr/local/go/bin" >> ~/.profile
# sudo bash -c 'echo export PATH=\$$PATH:/usr/local/go/bin >> ~/.profile'

# install gopherjs
# install gopherjs
go get -u github.com/gopherjs/gopherjs

# we don't need protoc + protoc-grpc-web, because the proto file is shipped pre-compiled
# we don't need protoc + protoc-grpc-web, because the proto file is shipped pre-compiled

# go dependencies for webapp (without my own)
#go get google.golang.org/grpc
#go get -u github.com/improbable-eng/grpc-web/go/grpcweb
#go get -u github.com/gorilla/websocket
# go dependencies for webapp (without my own)
# go get google.golang.org/grpc
# go get -u github.com/improbable-eng/grpc-web/go/grpcweb
# go get -u github.com/gorilla/websocket

compile:
go get -u github.com/mame82/P4wnP1_aloa/... # partially downloads again, but we need the library packages in go path to build
# <--- second compilation, maybe -d flag on go get above is better
env GOBIN=$(CURDIR)/build go install ./cmd/... # compile all main packages to the build folder
#
go get -d github.com/mame82/P4wnP1_aloa/...
# <--- second compilation, maybe -d flag on go get above is better
env GOBIN=$(pwd)/build go install ./cmd/... # compile all main packages to the build folder

# compile the web app
# ToDo: (check if dependencies have been fetched by 'go get', even with the build js tags)
$(HOME)/go/bin/gopherjs get github.com/mame82/P4wnP1_aloa/web_client/...
$(HOME)/go/bin/gopherjs build -m -o build/webapp.js web_client/*.go
# compile the web app
# ToDo: (check if dependencies have been fetched by 'go get', even with the build js tags)
$HOME/go/bin/gopherjs get github.com/mame82/P4wnP1_aloa/web_client/...
$HOME/go/bin/gopherjs build -m -o build/webapp.js web_client/*.go

installkali:
#apt-get -y install git screen hostapd autossh bluez bluez-tools bridge-utils policykit-1 genisoimage iodine haveged
#apt-get -y install tcpdump
#apt-get -y install python-pip python-dev

# before installing dnsmasq, the nameserver from /etc/resolv.conf should be saved
# to restore after install (gets overwritten by dnsmasq package)
#cp /etc/resolv.conf /tmp/backup_resolv.conf
#apt-get -y install dnsmasq
#/bin/bash -c 'cat /tmp/backup_resolv.conf > /etc/resolv.conf'

# python dependencies for HIDbackdoor
sudo pip install pydispatcher

cp build/P4wnP1_service /usr/local/bin/
cp build/P4wnP1_cli /usr/local/bin/
cp dist/P4wnP1.service /etc/systemd/system/P4wnP1.service
# copy over keymaps, scripts and www data
# copy over keymaps, scripts and www data
mkdir -p /usr/local/P4wnP1
cp -R dist/keymaps /usr/local/P4wnP1/
cp -R dist/scripts /usr/local/P4wnP1/
Expand All @@ -82,46 +81,24 @@ installkali:
cp -R dist/helper /usr/local/P4wnP1/
cp -R dist/ums /usr/local/P4wnP1/
cp -R dist/legacy /usr/local/P4wnP1/
cp build/webapp.js /usr/local/P4wnP1/www
#cp build/webapp.js /usr/local/P4wnP1/www
#
cp ./webapp.js /usr/local/P4wnP1/www
cp build/webapp.js.map /usr/local/P4wnP1/www
# enable otg mode
echo "dtoverlay=dwc2" | sudo tee -a /boot/config.txt

# careful testing
#sudo update-rc.d dhcpcd disable
#sudo update-rc.d dnsmasq disable
# careful testing
#sudo update-rc.d dhcpcd disable
#sudo update-rc.d dnsmasq disable
systemctl disable networking.service # disable network service, relevant parts are wrapped by P4wnP1 (boottime below 20 seconds)

# enable service
# enable service
systemctl enable haveged
systemctl enable avahi-daemon
systemctl enable P4wnP1.service

install:
cp build/P4wnP1_service /usr/local/bin/
cp build/P4wnP1_cli /usr/local/bin/
cp dist/P4wnP1.service /etc/systemd/system/P4wnP1.service
# copy over keymaps, scripts and www data
mkdir -p /usr/local/P4wnP1
cp -R dist/keymaps /usr/local/P4wnP1/
cp -R dist/scripts /usr/local/P4wnP1/
cp -R dist/HIDScripts /usr/local/P4wnP1/
cp -R dist/www /usr/local/P4wnP1/
cp -R dist/db /usr/local/P4wnP1/
cp dist/bin/* /usr/local/bin/
cp build/webapp.js /usr/local/P4wnP1/www
cp build/webapp.js.map /usr/local/P4wnP1/www

# careful testing
#sudo update-rc.d dhcpcd disable
#sudo update-rc.d dnsmasq disable
systemctl disable networking.service # disable network service, relevant parts are wrapped by P4wnP1 (boottime below 20 seconds)

# reinit service daemon
systemctl daemon-reload
# enable service
systemctl enable haveged
systemctl enable P4wnP1.service
# start service
service P4wnP1 start

echo "You should now restart"

remove:
# stop service
Expand All @@ -136,4 +113,3 @@ remove:
systemctl daemon-reload

#sudo update-rc.d dhcpcd enable

140 changes: 140 additions & 0 deletions Makefile1
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
SHELL := /bin/bash
PATH := /usr/local/go/bin:$(PATH)

all: compile

test:
# export PATH="$$PATH:/usr/local/go/bin" # put into ~/.profile
echo $(CURDIR)
echo $(HOME)

# make dep runs without sudo
dep:
sudo apt-get -y install git screen hostapd autossh bluez bluez-tools bridge-utils policykit-1 genisoimage iodine haveged
sudo apt-get -y install tcpdump
#sudo apt-get -y install python-pip python-dev

# before installing dnsmasq, the nameserver from /etc/resolv.conf should be saved
# to restore after install (gets overwritten by dnsmasq package)
cp /etc/resolv.conf /tmp/backup_resolv.conf
sudo apt-get -y install dnsmasq
sudo /bin/bash -c 'cat /tmp/backup_resolv.conf > /etc/resolv.conf'

# python dependencies for HIDbackdoor
sudo pip install pycrypto # already present on stretch
#sudo pip install pydispatcher

# install go
#wget https://storage.googleapis.com/golang/go1.10.linux-armv6l.tar.gz
#sudo tar -C /usr/local -xzf go1.10.linux-armv6l.tar.gz

#export PATH="$$PATH:/usr/local/go/bin"
sudo apt-get install golang-go

# put into ~/.profile
# ToDo: check if already present
#echo "export PATH=\$$PATH:/usr/local/go/bin" >> ~/.profile
#sudo bash -c 'echo export PATH=\$$PATH:/usr/local/go/bin >> ~/.profile'

# install gopherjs
go get -u github.com/gopherjs/gopherjs

# we don't need protoc + protoc-grpc-web, because the proto file is shipped pre-compiled

# go dependencies for webapp (without my own)
#go get google.golang.org/grpc
#go get -u github.com/improbable-eng/grpc-web/go/grpcweb
#go get -u github.com/gorilla/websocket

compile:
go get -u github.com/mame82/P4wnP1_aloa/... # partially downloads again, but we need the library packages in go path to build
# <--- second compilation, maybe -d flag on go get above is better
env GOBIN=$(pwd)/build go install ./cmd/... # compile all main packages to the build folder

# compile the web app
# ToDo: (check if dependencies have been fetched by 'go get', even with the build js tags)
$HOME/go/bin/gopherjs get github.com/mame82/P4wnP1_aloa/web_client/...
$HOME/go/bin/gopherjs build -m -o build/webapp.js web_client/*.go

installkali:
#apt-get -y install git screen hostapd autossh bluez bluez-tools bridge-utils policykit-1 genisoimage iodine haveged
#apt-get -y install tcpdump
#apt-get -y install python-pip python-dev

# before installing dnsmasq, the nameserver from /etc/resolv.conf should be saved
# to restore after install (gets overwritten by dnsmasq package)
#cp /etc/resolv.conf /tmp/backup_resolv.conf
#apt-get -y install dnsmasq
#/bin/bash -c 'cat /tmp/backup_resolv.conf > /etc/resolv.conf'

# python dependencies for HIDbackdoor
#sudo pip install pydispatcher

cp build/P4wnP1_service /usr/local/bin/
cp build/P4wnP1_cli /usr/local/bin/
cp dist/P4wnP1.service /etc/systemd/system/P4wnP1.service
# copy over keymaps, scripts and www data
mkdir -p /usr/local/P4wnP1
cp -R dist/keymaps /usr/local/P4wnP1/
cp -R dist/scripts /usr/local/P4wnP1/
cp -R dist/HIDScripts /usr/local/P4wnP1/
cp -R dist/www /usr/local/P4wnP1/
cp -R dist/db /usr/local/P4wnP1/
cp -R dist/helper /usr/local/P4wnP1/
cp -R dist/ums /usr/local/P4wnP1/
cp -R dist/legacy /usr/local/P4wnP1/
cp build/webapp.js /usr/local/P4wnP1/www
cp build/webapp.js.map /usr/local/P4wnP1/www

# careful testing
#sudo update-rc.d dhcpcd disable
#sudo update-rc.d dnsmasq disable
systemctl disable networking.service # disable network service, relevant parts are wrapped by P4wnP1 (boottime below 20 seconds)

# enable service
systemctl enable haveged
systemctl enable avahi-daemon
systemctl enable P4wnP1.service

install:
cp build/P4wnP1_service /usr/local/bin/
cp build/P4wnP1_cli /usr/local/bin/
cp dist/P4wnP1.service /etc/systemd/system/P4wnP1.service
# copy over keymaps, scripts and www data
mkdir -p /usr/local/P4wnP1
cp -R dist/keymaps /usr/local/P4wnP1/
cp -R dist/scripts /usr/local/P4wnP1/
cp -R dist/HIDScripts /usr/local/P4wnP1/
cp -R dist/www /usr/local/P4wnP1/
cp -R dist/db /usr/local/P4wnP1/
#cp dist/bin/* /usr/local/bin/
cp build/webapp.js /usr/local/P4wnP1/www
cp build/webapp.js.map /usr/local/P4wnP1/www

# careful testing
#sudo update-rc.d dhcpcd disable
#sudo update-rc.d dnsmasq disable
systemctl disable networking.service # disable network service, relevant parts are wrapped by P4wnP1 (boottime below 20 seconds)

# reinit service daemon
systemctl daemon-reload
# enable service
systemctl enable haveged
systemctl enable P4wnP1.service
# start service
service P4wnP1 start

remove:
# stop service
service P4wnP1 stop
# disable service
systemctl disable P4wnP1.service
rm -f /usr/local/bin/P4wnP1_service
rm -f /usr/local/bin/P4wnP1_cli
rm -f /etc/systemd/system/P4wnP1.service
rm -R /usr/local/P4wnP1/ # this folder should be kept, if only an update should be applied
# reinit service daemon
systemctl daemon-reload

#sudo update-rc.d dhcpcd enable

18 changes: 18 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,22 @@
# P4wnP1 A.L.O.A.
---------------EDIT------------
ALL CREDITS GO TO @MaMe82 and all developers involved.

Setup wireless, "kalipi-config"

install git "apt-get update && apt-get install git"

git clone https://github.com/lgeekj/P4wnP1

cd P4wnP1

run "make dep / make compile / sudo make installkali"
(make compile probably will give error but just continue)

check if access gets created and web interface works.
Try conneting via OTG to windows PC, and check ethernet show up

--------------------------------------------------------------------------

P4wnP1 A.L.O.A. by MaMe82 is a framework which turns a Rapsberry Pi Zero W into a flexible, low-cost platform for
pentesting, red teaming and physical engagements ... or into "A Little Offensive Appliance".
Expand Down
Loading