-
Notifications
You must be signed in to change notification settings - Fork 13
/
Copy path.xonshrc
242 lines (220 loc) · 7.63 KB
/
.xonshrc
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
# ~/.xonshrc
# xonsh rc file
# created by cosmo
# imports
import os
import os.path
import socket
import subprocess
import netifaces
# constants
NOTEBOOK = f'$HOME/obsidian'
OPERATIONS = f'$HOME/operations'
DEVELOPMENT = f'$HOME/development'
DOWNLOADS = f'$HOME/Downloads'
WALLPAPER_DIR = f'$HOME/media/photos/wallpapers'
DISPLAY_SCRIPTS = f'$HOME/.screenlayout'
$SHELL = '/bin/bash'
"""
TOOLS
"""
# get working directory
def pwd():
return os.getcwd()
# get output from system command
def command_output(command):
result = subprocess.check_output(command).decode('utf-8')
return result.strip()
"""
SYSTEM
"""
# get environment name (custom prompt)
def env_name_cust(pre_chars='─[', post_chars=']'):
env_path = __xonsh__.env.get('VIRTUAL_ENV', '')
env_name = os.path.basename(env_path)
if env_name and env_name != 'xonsh':
return '{WHITE}'+pre_chars+'{CYAN}'+env_name+'{WHITE}'+post_chars
# animated-wallpaper
def animated_wallpaper(wp):
wp = wp[0]
# set wallpaper (wp)
def set_wallpaper(args):
# list wallpaper
option = args[0]
if (option == "ls"):
os.system(f'exa --icons {WALLPAPER_DIR}')
return None
# animated
wallpaper = args[1]
if (option == "animated"):
os.system(f'bash {WALLPAPER_DIR}/animated-wallpaper.sh {WALLPAPER_DIR}/{wallpaper}')
return None
# static
for root, dirs, files in os.walk(WALLPAPER_DIR):
for file in files:
name, ext = os.path.splitext(file)
if name == wallpaper:
os.system(f'cp {WALLPAPER_DIR}/{file} {WALLPAPER_DIR}/wallpaper')
os.system(f'feh --bg-{option} {WALLPAPER_DIR}/wallpaper')
return None
# set screen layout [display] (d)
def set_display(mode):
os.system(f'bash {DISPLAY_SCRIPTS}/{mode[0]}.sh')
os.system('i3 restart')
return None
"""
NETWORKING
"""
# get tun0 ipaddr for wargaming
def get_tun0(pre_chars='─[', post_chars=']'):
try:
tun0_ip = netifaces.ifaddresses('tun0')[netifaces.AF_INET][0]['addr']
return '{WHITE}'+pre_chars+'{PURPLE}'+tun0_ip+'{WHITE}'+post_chars
except (KeyError, IndexError, ValueError):
return ''
# get local ip address (ipv4)
def get_local_ip():
try:
temp_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
temp_socket.connect(("8.8.8.8", 80))
get_local_ip = temp_socket.getsockname()[0]
temp_socket.close()
return get_local_ip
except socket.error:
return "Unable to retrieve local IP address"
# monitor mode (monitor_mode)
def monitor_mode(adapter):
adapter = adapter[0]
os.system('sudo airmon-ng check kill')
os.system(f'sudo airmon-ng start {adapter}')
# managed mode (managed_mode)
def managed_mode(adapter):
adapter = adapter[0]
os.system(f'sudo airmon-ng stop {adapter}')
os.system('sudo NetworkManager && sudo wpa_supplicant')
# change mac address (change_mac)
def change_mac(adapter):
adapter = adapter[0]
os.system(f'sudo ifconfig {adapter} down')
os.system(f'sudo macchanger -r {adapter}')
os.system(f'sudo ifconfig {adapter} up')
"""
DEVELOPMENT
"""
# git pull, commit, and push (gup)
def git_sync(args):
branch = args[0]
commit_message = args[1]
os.system('cd .')
os.system('git fetch')
os.system(f'git pull origin {branch}')
os.system('git add .')
os.system(f'git commit -m "{commit_message}"')
os.system(f'git push -u origin {branch}')
# add git token to repo (addtoken)
def add_git_token(args):
git_branch = args[0]
github_path = args[1]
git_token = command_output(['pass', 'tokens/git'])
os.system('cd .')
os.system('git branch -M main')
os.system('git remote remove origin')
os.system(f'git remote add origin https://{git_token}@github.com/{github_path}')
# modify $PATH environment variable
for new_path in [
'$HOME/.local/bin',
'$HOME/.nimble/bin',
f'{OPERATIONS}/tools/',
f'{OPERATIONS}/tools/apps/',
]:
$PATH.insert(0, new_path)
# custom prompt
xontrib load vox
$PROMPT_FIELDS['env_name_cust'] = env_name_cust
$PROMPT_FIELDS['get_tun0'] = get_tun0
$PROMPT = "{WHITE}┌[{RED}{user}{WHITE}@{RED}{hostname}{WHITE}]{get_tun0:{}}─[{YELLOW}{cwd}{WHITE}]\n└─{WHITE}{curr_branch:[{GREEN}{}{WHITE}]}{env_name_cust}─■ {YELLOW}$ "
# aliases
aliases.update({
# apps / tooling / shortcuts
'path_of': 'echo @(pwd())/@($arg0)',
'fuck': 'rm -rf',
'please': 'sudo',
'wp': set_wallpaper,
'd': set_display,
'untar': 'tar -xf *.tar.xz',
'stress': 'strings @($arg0) | less',
'v': 'nvim',
'ls': 'exa --icons',
'll': 'exa --icons -l',
'la': 'exa --icons -a',
'lla': 'exa --icons -la',
'pfchangs': 'proxychains4',
'neo': f'neofetch --ascii $HOME/.dotfiles/.config/neofetch/planet-cosmo.ascii --ascii_colors 255 30 --colors 30 255 255 30 7 255',
'acf': 'auto-cpufreq --stats',
'r': 'ranger .',
'tkill': 'tmux kill-server',
'cat': 'batcat',
'xp': 'tmux set-environment', # "export"
'ipv4': get_local_ip,
'gen_frames': f'bash {WALLPAPER_DIR}/generate-frames.sh',
'wp_animated': animated_wallpaper,
'xc': 'xclip -selection c',
'c': 'clear',
'code': 'codium',
'etit': 'v $HOME/.dotfiles/.config/obs/title.txt',
# update / upload / download
'up': 'sudo apt-get update -y && sudo apt-get upgrade -y && sudo apt autoremove',
'gup': git_sync,
'webup': 'python3 -m http.server 8080',
'kaliup': 'scp -r @($arg0) bluecosmo@kali:~/Downloads',
'kalidow': 'scp -r bluecosmo@kali:~/@($arg0) .',
'remdow': f'scp -r remnux@192.168.122.7:/home/remnux/Downloads/Desktop {OPERATIONS}/research/remnux-desktop',
'sjup': 'scp -r payload.sh root@172.16.24.1:/root/payload',
'duckup': f'mv {DOWNLOADS}/inject.bin /media/bluecosmo/DUCKY',
# connect / disconnect
'pccon': 'ssh bluecosmo@planetcosmo',
'gitcon': 'ssh git@planetcosmo',
'mcon': 'ssh moon -p 69',
'kcon': 'ssh kali',
'dscon': 'ssh deathstar',
'thmcon': f'sudo openvpn {OPERATIONS}/tools/vpn/thm.ovpn',
'htbcon': f'sudo openvpn {OPERATIONS}/tools/vpn/htb.ovpn',
'cst12con': f'sudo openvpn {OPERATIONS}/tools/vpn/cst12.ovpn',
'cst2con': f'sudo openvpn {OPERATIONS}/tools/vpn/cst2.ovpn',
'bbcon': 'ssh root@172.16.64.1',
'sjcon': 'ssh root@172.16.24.1',
'wpcon': 'ssh root@172.16.42.1',
'ltcon': 'ssh root@172.16.84.1',
'pscon': 'ssh root@172.16.32.1',
'mvcon': 'mullvad connect',
'mvdis': 'mullvad disconnect',
'mvstat': 'mullvad status',
# file moving
'analyze': f'mv @($arg0) {OPERATIONS}/research/analyze',
'move': 'mv $HOME/Downloads/* @(pwd())',
'movex': 'mv $HOME/Downloads/*.@($arg0) @(pwd())',
'deport': 'mv $HOME/Downloads/* $HOME/imports',
'add_license': f'cp @(NOTEBOOK)/LICENSE.md ./LICENSE',
'bak': 'cp @($arg0) @($arg0).bak -r',
'trash': 'mv @($arg0) $HOME/.local/share/Trash/files',
# development
'mkvenv':'python3 -m venv ./venv/',
'vac': 'vox activate @($arg0)',
'vdac': 'vox deactivate',
'vlis': 'vox list',
'vls': 'vox list',
'addtoken': add_git_token,
'comelf': 'g++ main.cpp && ./a.out',
'comexe': '/usr/bin/x86_64-w64-mingw32-gcc-win32 main.c',
'comdll': '/usr/bin/x86_64-w64-mingw32-gcc-win32 dll.c -o a.dll -shared',
'runpm': 'npm install && npm run dev',
# hacking
'monitor_mode': monitor_mode,
'managed_mode': managed_mode,
'change_mac': change_mac,
'duckencode': f'python2 {DEVELOPMENT}/rubberducky/encoder/duckencoder.py -i payload.txt',
'onlyrat': 'python3 $HOME/.MK01-OnlyRAT/main.py',
'key': 'python3 $HOME/SkeletonKey/main.py',
})
# zoxide
execx($(zoxide init --cmd cd xonsh), 'exec', __xonsh__.ctx, filename='zoxide')