Path: blob/master/payloads/library/general/HostinfoGenerator/payload.txt
2971 views
REM_BLOCK DOCUMENTATION1Title: Hostinfo Generator2Author: str3tch @ Vegas 2.0 | dc702 | PHS (https://github.com/PacketHouse)3Description: This payload generates random hostnames, IPs, and MACs4Target: Windows, Ubuntu5Version: 1.06Category: General7END_REM89EXTENSION PASSIVE_WINDOWS_DETECT10REM VERSION 1.111REM AUTHOR: Korben1213REM_BLOCK DOCUMENTATION14Windows fully passive OS Detection and passive Detect Ready15Includes its own passive detect ready.16Does not require additional extensions.1718USAGE:19Extension runs inline (here)20Place at beginning of payload (besides ATTACKMODE) to act as dynamic21boot delay22$_OS will be set to WINDOWS or NOT_WINDOWS23See end of payload for usage within payload24END_REM2526REM CONFIGURATION:27DEFINE #MAX_WAIT 15028DEFINE #CHECK_INTERVAL 2029DEFINE #WINDOWS_HOST_REQUEST_COUNT 230DEFINE #NOT_WINDOWS 73132$_OS = #NOT_WINDOWS3334VAR $MAX_TRIES = #MAX_WAIT35WHILE(($_RECEIVED_HOST_LOCK_LED_REPLY == FALSE) && ($MAX_TRIES > 0))36DELAY #CHECK_INTERVAL37$MAX_TRIES = ($MAX_TRIES - 1)38END_WHILE39IF ($_HOST_CONFIGURATION_REQUEST_COUNT > #WINDOWS_HOST_REQUEST_COUNT) THEN40$_OS = WINDOWS41END_IF4243REM_BLOCK EXAMPLE USAGE AFTER EXTENSION44IF ($_OS == WINDOWS) THEN45STRING HELLO WINDOWS!46ELSE47STRING HELLO WORLD!48END_IF49END_REM50END_EXTENSION515253EXTENSION HOSTINFO_GENERATOR54REM VERSION 1.055REM AUTHOR: str3tch @ Vegas 2.0 | dc702 | PHS (https://github.com/PacketHouse)5657REM_BLOCK DOCUMENTATION58Random data generator5960USAGE:61Place at beginning of payload (besides ATTACKMODE) to make data62generator functions available for use in payload.63See end of payload for usage within payload64END_REM6566REM CONFIGURATION:67REM length of numerical portion of hostname (ABC-D12345 = 5)68DEFINE #HOST_NUM_LEN 569REM set to 0 for random first octet, or specify your own (e.g. 10 for 10.x)70VAR $IP_FIRST_OCTET = 071REM set one of these to TRUE to add a separator72VAR $MAC_USE_COLON = FALSE73VAR $MAC_USE_HYPHEN = FALSE74VAR $MAC_USE_DOT = FALSE7576REM Change at your own risk77DEFINE #VALUE_6 654378DEFINE #VALUE_5 543279DEFINE #VALUE_4 432180DEFINE #VALUE_3 321081DEFINE #VALUE_2 234582DEFINE #VALUE_1 123483DEFINE #VALUE_0 01238485REM Don't change these86DEFINE #MAC_LEN 1287VAR $GET_NUM = FALSE88VAR $HEX_VALUE = 089VAR $OCTET = 0909192FUNCTION GET_RANDOM_HEX_VALUE()93REM Generate a random decimal or hexadecimal value based on $GET_NUM94$_RANDOM_MIN = 095IF ($GET_NUM == TRUE) THEN96$_RANDOM_MAX = 997ELSE98$_RANDOM_MAX = 1599END_IF100RETURN $_RANDOM_INT101END_FUNCTION102103104REM Print $HEX_VALUE105FUNCTION PRINT_HEX_VALUE()106IF ($HEX_VALUE == 0) THEN107STRING 0108ELSE IF ($HEX_VALUE == 1) THEN109STRING 1110ELSE IF ($HEX_VALUE == 2) THEN111STRING 2112ELSE IF ($HEX_VALUE == 3) THEN113STRING 3114ELSE IF ($HEX_VALUE == 4) THEN115STRING 4116ELSE IF ($HEX_VALUE == 5) THEN117STRING 5118ELSE IF ($HEX_VALUE == 6) THEN119STRING 6120ELSE IF ($HEX_VALUE == 7) THEN121STRING 7122ELSE IF ($HEX_VALUE == 8) THEN123STRING 8124ELSE IF ($HEX_VALUE == 9) THEN125STRING 9126ELSE IF ($HEX_VALUE == 10) THEN127STRING A128ELSE IF ($HEX_VALUE == 11) THEN129STRING B130ELSE IF ($HEX_VALUE == 12) THEN131STRING C132ELSE IF ( $HEX_VALUE == 13 ) THEN133STRING D134ELSE IF ( $HEX_VALUE == 14 ) THEN135STRING E136ELSE IF ( $HEX_VALUE == 15 ) THEN137STRING F138END_IF139END_FUNCTION140141142FUNCTION PRINT_OCTET_VALUE()143REM Print 100s position144IF ($OCTET >= 100) THEN145$HEX_VALUE = ($OCTET / 100)146PRINT_HEX_VALUE()147148REM Remove 100s149$OCTET = ($OCTET % 100)150END_IF151152REM Print 10s position153IF ($OCTET >= 10) THEN154$HEX_VALUE = ($OCTET / 10)155PRINT_HEX_VALUE()156END_IF157158REM Print 1s position159$HEX_VALUE = ($OCTET % 10)160PRINT_HEX_VALUE()161END_FUNCTION162163164REM Generate a random IPv4 address165FUNCTION PRINT_RANDOM_IP()166REM Generate the first octet167IF ($IP_FIRST_OCTET > 0) THEN168$OCTET = $IP_FIRST_OCTET169ELSE170REM Avoiding possible network and broadcast addresses171REM TODO: Do something about other reserved IPs? (e.g. 239., 169.)172$_RANDOM_MIN = 1173$_RANDOM_MAX = 254174$OCTET = $_RANDOM_INT175END_IF176PRINT_OCTET_VALUE()177STRING .178179REM Second octet180$_RANDOM_MIN = 0181$_RANDOM_MAX = 255182$OCTET = $_RANDOM_INT183PRINT_OCTET_VALUE()184STRING .185186REM Third octet187$OCTET = $_RANDOM_INT188PRINT_OCTET_VALUE()189STRING .190191REM Fourth octet, avoiding possible network and broadcast addresses192$_RANDOM_MIN = 1193$_RANDOM_MAX = 254194$OCTET = $_RANDOM_INT195PRINT_OCTET_VALUE()196END_FUNCTION197198199FUNCTION PRINT_RANDOM_MAC()200REM_BLOCK DOCUMENTATION201Generates a random MAC address with support for separators202# Format commonly seen in Forescout203NONE: FEEDDEADBEEF (default)204205# Format commonly seen in Linux/Unix206$MAC_USE_COLON: FE:ED:DE:AD:BE:EF207208# Foremat commonly seen in Windows209$MAC_USE_HYPHEN: FE-ED-DE-AD-BE-EF210211# Format commonly seen in network devices212$MAC_USE_DOT: FEED.DEAD.BEEF213END_REM214215VAR $MAC_POS = 0216$GET_NUM = FALSE217WHILE ($MAC_POS < #MAC_LEN)218$MAC_POS = ($MAC_POS + 1)219$HEX_VALUE = GET_RANDOM_HEX_VALUE()220PRINT_HEX_VALUE()221222REM Print separator223IF (($MAC_POS < #MAC_LEN) && (($MAC_POS % 2) == 0)) THEN224IF ($MAC_USE_COLON) THEN225STRING :226ELSE IF ($MAC_USE_HYPHEN) THEN227STRING -228ELSE IF (($MAC_USE_DOT) && (($MAC_POS % 4) == 0)) THEN229STRING .230END_IF231END_IF232END_WHILE233END_FUNCTION234235236FUNCTION PRINT_RANDOM_SITE_CODE()237REM_BLOCK DOCUMENTATION238Generates a random site code:239RUB = Playa Grande, Guatemala240BER = Schönefeld, Brandenburg241DUC = Duncan, Oklahoma242KIE = Kieta, Papua New Guinea243CAN = Baiyun-Huadu, Guangzhou, Guangdong, China244HAK = Lingshan Town, Meilan District, Haikou, Hainan, China245END_REM246247$_RANDOM_MIN = 0248$_RANDOM_MAX = #VALUE_6249250VAR $SITE_NUM = $_RANDOM_INT251IF ($SITE_NUM > #VALUE_5) THEN252STRING RUB253ELSE IF ($SITE_NUM > #VALUE_4) THEN254STRING BER255ELSE IF ($SITE_NUM > #VALUE_3) THEN256STRING DUC257ELSE IF ($SITE_NUM > #VALUE_2) THEN258STRING KIE259ELSE IF ($SITE_NUM > #VALUE_1) THEN260STRING CAN261ELSE262STRING HAK263END_IF264END_FUNCTION265266267FUNCTION PRINT_RANDOM_HOST_TYPE()268REM_BLOCK DOCUMENTATION269Generates a random device type:270L = Laptop271V = Virtual272S = Server273T = Tablet274D = Desktop275END_REM276277$_RANDOM_MIN = 0278$_RANDOM_MAX = #VALUE_5279VAR $HOST_NUM = $_RANDOM_INT280IF ($HOST_NUM > #VALUE_4) THEN281STRING L282ELSE IF ($HOST_NUM > #VALUE_3) THEN283STRING V284ELSE IF ($HOST_NUM > #VALUE_2) THEN285STRING S286ELSE IF ($HOST_NUM > #VALUE_1) THEN287STRING T288ELSE289STRING D290END_IF291END_FUNCTION292293294REM Print a random hostname295FUNCTION PRINT_RANDOM_HOSTNAME()296PRINT_RANDOM_SITE_CODE()297DELAY 100298299STRING -300301PRINT_RANDOM_HOST_TYPE()302DELAY 100303304$COUNT = 0305$GET_NUM = TRUE306WHILE ($COUNT < #HOST_NUM_LEN)307$HEX_VALUE = GET_RANDOM_HEX_VALUE()308PRINT_HEX_VALUE()309$COUNT = ($COUNT + 1)310END_WHILE311END_FUNCTION312313314REM_BLOCK EXAMPLE EXTENSION USAGE315STRINGLN Host,IP Address,MAC Address316PRINT_RANDOM_HOSTNAME()317STRING ,318PRINT_RANDOM_IP()319STRING ,320$MAC_USE_COLON = TRUE321PRINT_RANDOM_MAC()322ENTER323END_REM324END_EXTENSION325326327REM CONFIGURATION:328REM number of fake host entries to generate329DEFINE #HOST_COUNT 10330$MAC_USE_DOT = TRUE331332REM Impersonate a Logitech DeLuxe 250 Keyboard333ATTACKMODE HID VID_046D PID_C312 MAN_Logitech PROD_DeLuxe250 SERIAL_8013509334DELAY #VALUE_2335336REM Launch a text editor337IF ($_OS == WINDOWS) THEN338REM Open the Run dialog339GUI r340DELAY #VALUE_1341STRINGLN notepad.exe342ELSE343REM launch the Text Editor app344INJECT_MOD WINDOWS345DELAY #VALUE_1346STRING text347DELAY #VALUE_1348ENTER349END_IF350351$_RANDOM_MIN = #VALUE_1352$_RANDOM_MAX = #VALUE_3353DELAY $_RANDOM_INT354355REM CSV header356REM broken up in STRINGs vs STRINGLN due to some chars missing during testing357STRING Host,358STRING IP Address,359STRING MAC Address360ENTER361362VAR $NUM = 0363WHILE ($NUM < #HOST_COUNT)364REM CSV entry365PRINT_RANDOM_HOSTNAME()366STRING ,367PRINT_RANDOM_IP()368STRING ,369$MAC_USE_COLON = TRUE370PRINT_RANDOM_MAC()371ENTER372373$NUM = ($NUM + 1)374375REM Random sleep between CSV entries376$_RANDOM_MIN = #VALUE_0377$_RANDOM_MAX = #VALUE_1378379REM Stop running if CAPSLOCK is turned on380IF ($_CAPSLOCK_ON) THEN381RETURN 0382END_IF383END_WHILE384385