Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion .gitmodules
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
[submodule "buildroot"]
path = buildroot
url = git@github.com:buildroot/buildroot.git
url = git@github.com:o7-machinehum/buildroot.git
branch = numpy-bump

[submodule "Bjorn-blackhat"]
path = package/bjorn/bjorn
url = git@github.com:o7-machinehum/Bjorn-blackhat.git
4 changes: 4 additions & 0 deletions Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -3,3 +3,7 @@ source "$BR2_EXTERNAL_BLACKHAT_PATH/package/python-routersploit/Config.in"
source "$BR2_EXTERNAL_BLACKHAT_PATH/package/python-pycryptodome/Config.in"
source "$BR2_EXTERNAL_BLACKHAT_PATH/package/python-nmap/Config.in"
source "$BR2_EXTERNAL_BLACKHAT_PATH/package/python-pywifi/Config.in"
source "$BR2_EXTERNAL_BLACKHAT_PATH/package/bjorn/Config.in"
source "$BR2_EXTERNAL_BLACKHAT_PATH/package/python-pandas/Config.in"
source "$BR2_EXTERNAL_BLACKHAT_PATH/package/python-getmac/Config.in"
source "$BR2_EXTERNAL_BLACKHAT_PATH/package/python-rich/Config.in"
10 changes: 8 additions & 2 deletions configs/flipper_blackhat_a33_defconfig
Original file line number Diff line number Diff line change
Expand Up @@ -114,16 +114,21 @@ BR2_PACKAGE_PYTHON3_READLINE=y
BR2_PACKAGE_PYTHON3_SQLITE=y
BR2_PACKAGE_PYTHON3_XZ=y
BR2_PACKAGE_PYTHON_FLASK=y
BR2_PACKAGE_PYTHON_PIP=y
BR2_PACKAGE_PYTHON_PYBIND=y
BR2_PACKAGE_PYTHON_SIMPLEJSON=y
BR2_PACKAGE_LIBDRM_INSTALL_TESTS=y
BR2_PACKAGE_TIFF=y
BR2_PACKAGE_WEBP=y
BR2_PACKAGE_LIBCURL=y
BR2_PACKAGE_LIBCURL_CURL=y
BR2_PACKAGE_LIBMICROHTTPD=y
BR2_PACKAGE_LIBMICROHTTPD_SSL=y
BR2_PACKAGE_LIBNDP=y
BR2_PACKAGE_APR_UTIL=y
BR2_PACKAGE_LIBCAP=y
BR2_PACKAGE_LIBGLIB2=y
BR2_PACKAGE_OPENBLAS=y
BR2_PACKAGE_NEWT=y
BR2_PACKAGE_GNURADIO=y
BR2_PACKAGE_GR_OSMOSDR=y
BR2_PACKAGE_GR_OSMOSDR_RTLSDR=y
Expand Down Expand Up @@ -203,7 +208,7 @@ BR2_PACKAGE_UTIL_LINUX_SULOGIN=y
BR2_PACKAGE_NANO=y
BR2_TARGET_ROOTFS_EXT2=y
BR2_TARGET_ROOTFS_EXT2_4=y
BR2_TARGET_ROOTFS_EXT2_SIZE="2048M"
BR2_TARGET_ROOTFS_EXT2_SIZE="1024M"
BR2_TARGET_UBOOT=y
BR2_TARGET_UBOOT_BUILD_SYSTEM_KCONFIG=y
BR2_TARGET_UBOOT_CUSTOM_VERSION=y
Expand All @@ -226,3 +231,4 @@ BR2_PACKAGE_BLACKHAT=y
BR2_PACKAGE_PYTHON_ROUTERSPLOIT=y
BR2_PACKAGE_PYTHON_NMAP=y
BR2_PACKAGE_PYTHON_PYWIFI=y
BR2_PACKAGE_BJORN=y
6 changes: 6 additions & 0 deletions genimage/genimage.cfg
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,12 @@ image userfs.vfat {
file "scripts/telegram_example.py" {
image = "scripts/telegram_example.py"
}
file "scripts/start_bjorn.sh" {
image = "scripts/start_bjorn.sh"
}
file "scripts/stop_bjorn.sh" {
image = "scripts/stop_bjorn.sh"
}
files = {
"readme.txt",
"cmdline.txt",
Expand Down
3 changes: 3 additions & 0 deletions genimage/post-build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,13 @@ cp $CONFIG_DIR/../package/blackhat/scripts/port_scan.py $BINARIES_DIR/scripts/
cp $CONFIG_DIR/../package/blackhat/scripts/data_thief.py $BINARIES_DIR/scripts/
cp $CONFIG_DIR/../package/blackhat/scripts/data_loader.py $BINARIES_DIR/scripts/
cp $CONFIG_DIR/../package/blackhat/scripts/telegram_example.py $BINARIES_DIR/scripts/
cp $CONFIG_DIR/../package/blackhat/scripts/start_bjorn.sh $BINARIES_DIR/scripts/
cp $CONFIG_DIR/../package/blackhat/scripts/stop_bjorn.sh $BINARIES_DIR/scripts/

rm -f $TARGET_DIR/etc/init.d/S50dropbear
rm -f $TARGET_DIR/etc/init.d/S50nginx
rm -f $TARGET_DIR/etc/init.d/S35iptables
rm -f $TARGET_DIR/etc/init.d/S40network
rm -f $TARGET_DIR/etc/init.d/S40xorg
rm -f $TARGET_DIR/etc/init.d/S50gpsd
rm -f $TARGET_DIR/etc/init.d/S80dnsmasq
18 changes: 18 additions & 0 deletions package/bjorn/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
config BR2_PACKAGE_BJORN
bool "bjorn"
help
Bjorn is a Tamagotchi like sophisticated, autonomous network scanning, vulnerability assessment, and offensive security tool

select BR2_PACKAGE_LSOF
select BR2_PACKAGE_PYTHON_NETIFACES
select BR2_PACKAGE_PYTHON_PIP
select BR2_PACKAGE_PYTHON_PYMYSQL
select BR2_PACKAGE_PYTHON_PYSMB
select BR2_PACKAGE_PYTHON_SMBPROTOCOL
select BR2_PACKAGE_PYTHON_SQLALCHEMY
select BR2_PACKAGE_PYTHON_LEGACY_CGI
select BR2_PACKAGE_GNUTLS_OPENSSL
select BR2_PACKAGE_WGET
select BR2_PACKAGE_PYTHON_PANDAS
select BR2_PACKAGE_PYTHON_GETMAC
select BR2_PACKAGE_PYTHON_RICH
1 change: 1 addition & 0 deletions package/bjorn/bjorn
Submodule bjorn added at ce2892
34 changes: 34 additions & 0 deletions package/bjorn/bjorn.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
################################################################################
#
# bjorn
#
################################################################################

BJORN_VERSION = 1.0
BJORN_SITE = $(BJORN_PKGDIR)/bjorn
BJORN_SITE_METHOD = local

define BJORN_INSTALL_TARGET_CMDS
mkdir -p $(TARGET_DIR)/root/bjorn
cp -r $(@D)/* $(TARGET_DIR)/root/bjorn/
endef

BJORN_DEPENDENCIES = \
lsof \
gnutls \
wget \
python-netifaces \
python-pip \
python-pymysql \
python-pysmb \
python-smbprotocol \
python-sqlalchemy \
python-legacy-cgi \
python-pandas \
python-getmac \
python-rich

BJORN_LICENSE = MIT
BJORN_LICENSE_FILES = LICENSE

$(eval $(generic-package))
7 changes: 7 additions & 0 deletions package/blackhat/scripts/start_bjorn.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

cd /root/bjorn/
chmod +x kill_port_8000.sh
./kill_port_8000.sh
python Bjorn.py > /dev/null 2>&1 &
echo Bjorn Started!
3 changes: 3 additions & 0 deletions package/blackhat/scripts/stop_bjorn.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
#!/bin/bash

kill $(pidof python Bjorn.py)
4 changes: 4 additions & 0 deletions package/python-getmac/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
config BR2_PACKAGE_PYTHON_GETMAC
bool "python-getmac"
help
Pure-Python package to get the MAC address of network interfaces and hosts on the local network.
15 changes: 15 additions & 0 deletions package/python-getmac/python-getmac.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
################################################################################
#
# python‑getmac
#
################################################################################

PYTHON_GETMAC_VERSION = 0.9.5

PYTHON_GETMAC_SITE = https://github.com/GhostofGoes/getmac
PYTHON_GETMAC_SITE_METHOD = git
PYTHON_GETMAC_LICENSE = BSD-3-Clause
PYTHON_GETMAC_LICENSE_FILES = LICENSE

PYTHON_GETMAC_SETUP_TYPE = pep517
$(eval $(python-package))
2 changes: 0 additions & 2 deletions package/python-nmap/Config.in
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,3 @@ config BR2_PACKAGE_PYTHON_NMAP
bool "python-nmap"
help
A python 3 library which helps in using nmap port scanner.

select BR2_PACKAGE_PYTHON_SIMPLEJSON
7 changes: 2 additions & 5 deletions package/python-nmap/python-nmap.mk
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,13 @@
#
################################################################################

PYTHON_NMAP_VERSION = 1.9.2
PYTHON_NMAP_VERSION = 0d2cf4650778c95ba1463d709894138829e6c1a9

PYTHON_NMAP_SITE = https://github.com/nmmapper/python3-nmap
PYTHON_NMAP_SITE = https://bitbucket.org/xael/python-nmap
PYTHON_NMAP_SITE_METHOD = git
PYTHON_NMAP_LICENSE = BSD-3-Clause
PYTHON_NMAP_LICENSE_FILES = LICENSE

PYTHON_NMAP_SETUP_TYPE = pep517

PYTHON_NMAP_DEPENDENCIES = \
python-simplejson

$(eval $(python-package))
43 changes: 43 additions & 0 deletions package/python-pandas/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
config BR2_PACKAGE_PYTHON_PANDAS_ARCH_SUPPORTS
bool
# Numpy has some CPU specific code
default y if BR2_arc
default y if BR2_aarch64
default y if BR2_aarch64_be
default y if BR2_arm
default y if BR2_armeb
default y if BR2_i386
default y if BR2_m68k
default y if BR2_mips
default y if BR2_mipsel
default y if BR2_or1k
default y if BR2_powerpc
default y if BR2_powerpc64
default y if BR2_powerpc64le
default y if BR2_riscv
default y if BR2_sh
default y if BR2_sparc
default y if BR2_sparc64
default y if BR2_x86_64

config BR2_PACKAGE_PYTHON_PANDAS
bool "python-pandas"
select BR2_PACKAGE_PYTHON_DATEUTIL
select BR2_PACKAGE_PYTHON_PYTZ
select BR2_PACKAGE_PYTHON_NUMPY
select BR2_PACKAGE_BZIP2
select BR2_PACKAGE_HOST_PYTHON_MESON_PYTHON
select BR2_PACKAGE_HOST_PYTHON_VERSIONEER
select BR2_PACKAGE_HOST_PYTHON_CYTHON
select BR2_PACKAGE_HOST_PYTHON_NUMPY

help
Powerful data structures for data analysis, time series, and statistics.


comment "python-pandas needs a glibc or musl toolchain w/ C++, gcc >= 9"
depends on BR2_PACKAGE_PYTHON_PANDAS_ARCH_SUPPORTS
depends on !BR2_INSTALL_LIBSTDCPP || \
!BR2_TOOLCHAIN_GCC_AT_LEAST_9 || \
!(BR2_TOOLCHAIN_USES_GLIBC || BR2_TOOLCHAIN_USES_MUSL)

76 changes: 76 additions & 0 deletions package/python-pandas/python-pandas.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
################################################################################
#
# python-pandas
#
################################################################################

PYTHON_PANDAS_VERSION = v2.3.3
PYTHON_PANDAS_SITE = https://github.com/pandas-dev/pandas
PYTHON_PANDAS_SITE_METHOD = git
PYTHON_PANDAS_INSTALL_STAGING = YES

PYTHON_PANDAS_LICENSE = BSD
PYTHON_PANDAS_LICENSE_FILES = LICENSE

PYTHON_PANDAS_DEPENDENCIES = \
bzip2 \
python-dateutil \
python-pytz \
python-numpy \
host-python-numpy \
host-python-versioneer \
host-python-cython \
host-python-meson-python

# Generated by running this test program under QEMU:
# https://github.com/numpy/numpy/blob/v1.26.4/numpy/core/meson.build#L376-L455
ifeq ($(BR2_arcle),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_DOUBLE_LE
else ifeq ($(BR2_arceb),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_DOUBLE_BE
else ifeq ($(BR2_aarch64),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_QUAD_LE
else ifeq ($(BR2_aarch64_be),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_QUAD_BE
else ifeq ($(BR2_arm),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_DOUBLE_LE
else ifeq ($(BR2_armeb),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_DOUBLE_BE
else ifeq ($(BR2_i386),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = INTEL_EXTENDED_12_BYTES_LE
else ifeq ($(BR2_or1k),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_DOUBLE_BE
else ifeq ($(BR2_m68k),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = MOTOROLA_EXTENDED_12_BYTES_BE
else ifeq ($(BR2_mips),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_DOUBLE_BE
else ifeq ($(BR2_mipsel),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_DOUBLE_LE
else ifeq ($(BR2_powerpc),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IBM_DOUBLE_DOUBLE_BE
else ifeq ($(BR2_powerpc64),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IBM_DOUBLE_DOUBLE_BE
else ifeq ($(BR2_powerpc64le),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IBM_DOUBLE_DOUBLE_LE
else ifeq ($(BR2_riscv),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_QUAD_LE
else ifeq ($(BR2_sh4)$(BR2_sh4a),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_DOUBLE_LE
else ifeq ($(BR2_sh4eb)$(BR2_sh4aeb),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_DOUBLE_BE
else ifeq ($(BR2_sparc),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_DOUBLE_BE
else ifeq ($(BR2_sparc64),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = IEEE_QUAD_BE
else ifeq ($(BR2_x86_64),y)
PYTHON_PANDAS_LONGDOUBLE_FORMAT = INTEL_EXTENDED_16_BYTES_LE
endif

PYTHON_PANDAS_CONF_ENV += \
_PYTHON_SYSCONFIGDATA_NAME=$(PKG_PYTHON_SYSCONFIGDATA_NAME) \
PYTHONPATH=$(PYTHON3_PATH)

PYTHON_PANDAS_MESON_EXTRA_PROPERTIES = \
longdouble_format='$(PYTHON_PANDAS_LONGDOUBLE_FORMAT)'

$(eval $(meson-package))
6 changes: 6 additions & 0 deletions package/python-rich/Config.in
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
config BR2_PACKAGE_PYTHON_RICH
bool "python-rich"
help
Rich is a Python library for rich text and beautiful formatting in the terminal.

select BR2_PACKAGE_PYTHON_PYGMENTS
19 changes: 19 additions & 0 deletions package/python-rich/python-rich.mk
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
################################################################################
#
# python‑rich
#
################################################################################

PYTHON_RICH_VERSION = v14.2.0

PYTHON_RICH_SITE = https://github.com/Textualize/rich
PYTHON_RICH_SITE_METHOD = git
PYTHON_RICH_LICENSE = BSD-3-Clause
PYTHON_RICH_LICENSE_FILES = LICENSE

PYTHON_RICH_DEPENDENCIES = \
python-pygments

PYTHON_RICH_SETUP_TYPE = pep517

$(eval $(python-package))
1 change: 1 addition & 0 deletions rootfs_overlay/.profile
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
PS1='\u@\h:\w# '; export PS1
7 changes: 7 additions & 0 deletions rootfs_overlay/.xinitrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

rm -rf /.screen/*
kill -9 $(pidof screen) 2>/dev/null
xrandr -o right
source /.profile
exec xterm -maximized -e "screen -S gui"
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ start() {
echo "First Boot, setting up partitions. Do not Power off."
echo ',,c' | sfdisk --force -a -N 3 /dev/mmcblk0
echo "Finished, rebooting"
rm /etc/init.d/S99part_setup
rm $0
reboot
}

Expand Down
3 changes: 3 additions & 0 deletions rootfs_overlay/etc/init.d/S51bh_init
Original file line number Diff line number Diff line change
Expand Up @@ -12,12 +12,15 @@ start() {
else
echo "Set SCREEN_ENABLED=true (/mnt/blackhat.conf) to enable screen."
fi

startx >/dev/null &
}

stop() {
echo 0 > /sys/devices/platform/leds/leds/blackhat:green:usr/brightness

source /mnt/blackhat.conf
kill -9 $(pidof Xorg)

if [[ "${SCREEN_ENABLED}" == "true" ]]; then
echo "Stopping Screen"
Expand Down
6 changes: 6 additions & 0 deletions rootfs_overlay/usr/bin/autoscreen
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
#!/bin/sh
if screen -ls 2>/dev/null | grep -q '\.gui'; then
exec screen -x gui
fi

exec /bin/sh -l
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.